@@ -64,6 +64,26 @@ func.func @expression_with_call(%arg0: i32, %arg1: i32, %arg2: i32, %arg3: i32)
64
64
return %c : i1
65
65
}
66
66
67
+ // CHECK-LABEL: func.func @expression_with_dereference(
68
+ // CHECK-SAME: %[[VAL_0:.*]]: i32, %[[VAL_1:.*]]: i32, %[[VAL_2:.*]]: !emitc.ptr<i32>) -> i1 {
69
+ // CHECK: %[[VAL_3:.*]] = emitc.expression : i32 {
70
+ // CHECK: %[[VAL_4:.*]] = emitc.apply "*"(%[[VAL_2]]) : (!emitc.ptr<i32>) -> i32
71
+ // CHECK: emitc.yield %[[VAL_4]] : i32
72
+ // CHECK: }
73
+ // CHECK: %[[VAL_5:.*]] = emitc.expression : i1 {
74
+ // CHECK: %[[VAL_6:.*]] = emitc.mul %[[VAL_0]], %[[VAL_1]] : (i32, i32) -> i32
75
+ // CHECK: %[[VAL_7:.*]] = emitc.cmp lt, %[[VAL_6]], %[[VAL_3]] : (i32, i32) -> i1
76
+ // CHECK: return %[[VAL_5]] : i1
77
+ // CHECK: }
78
+
79
+ func.func @expression_with_dereference (%arg0: i32 , %arg1: i32 , %arg2: !emitc.ptr <i32 >) -> i1 {
80
+ %a = emitc.mul %arg0 , %arg1 : (i32 , i32 ) -> i32
81
+ %b = emitc.apply " *" (%arg2 ) : (!emitc.ptr <i32 >) -> (i32 )
82
+ %c = emitc.cmp lt , %a , %b :(i32 , i32 ) -> i1
83
+ return %c : i1
84
+ }
85
+
86
+
67
87
// CHECK-LABEL: func.func @expression_with_address_taken(
68
88
// CHECK-SAME: %[[VAL_0:.*]]: i32, %[[VAL_1:.*]]: i32, %[[VAL_2:.*]]: !emitc.ptr<i32>, %[[VAL_3:.*]]: !emitc.lvalue<i32>) -> i1 {
69
89
// CHECK: %[[VAL_4:.*]] = emitc.expression : i1 {
0 commit comments