@@ -343,13 +343,13 @@ func.func @expression_with_subscript_user(%arg0: !emitc.ptr<!emitc.opaque<"void"
343
343
return %res_load : i32
344
344
}
345
345
346
- // CPP-DEFAULT: bool expression_with_load (int32_t [[VAL_1:v.+]], int32_t [[VAL_2:v.+]], int32_t* [[VAL_3:v.+]]) {
346
+ // CPP-DEFAULT: bool expression_with_var_load_and_subscript (int32_t [[VAL_1:v.+]], int32_t [[VAL_2:v.+]], int32_t* [[VAL_3:v.+]]) {
347
347
// CPP-DEFAULT-NEXT: int64_t [[VAL_4:v.+]] = 0;
348
348
// CPP-DEFAULT-NEXT: int32_t [[VAL_5:v.+]] = 42;
349
349
// CPP-DEFAULT-NEXT: bool [[VAL_6:v.+]] = [[VAL_5]] + [[VAL_2]] < [[VAL_3]][[[VAL_4]]] + [[VAL_1]];
350
350
// CPP-DEFAULT-NEXT: return [[VAL_6]];
351
351
352
- // CPP-DECLTOP: bool expression_with_load (int32_t [[VAL_1:v.+]], int32_t [[VAL_2:v.+]], int32_t* [[VAL_3:v.+]]) {
352
+ // CPP-DECLTOP: bool expression_with_var_load_and_subscript (int32_t [[VAL_1:v.+]], int32_t [[VAL_2:v.+]], int32_t* [[VAL_3:v.+]]) {
353
353
// CPP-DECLTOP-NEXT: int64_t [[VAL_4:v.+]];
354
354
// CPP-DECLTOP-NEXT: int32_t [[VAL_5:v.+]];
355
355
// CPP-DECLTOP-NEXT: bool [[VAL_6:v.+]];
@@ -358,7 +358,7 @@ func.func @expression_with_subscript_user(%arg0: !emitc.ptr<!emitc.opaque<"void"
358
358
// CPP-DECLTOP-NEXT: [[VAL_6]] = [[VAL_5]] + [[VAL_2]] < [[VAL_3]][[[VAL_4]]] + [[VAL_1]];
359
359
// CPP-DECLTOP-NEXT: return [[VAL_6]];
360
360
361
- func.func @expression_with_load (%arg0: i32 , %arg1: i32 , %arg2: !emitc.ptr <i32 >) -> i1 {
361
+ func.func @expression_with_var_load_and_subscript (%arg0: i32 , %arg1: i32 , %arg2: !emitc.ptr <i32 >) -> i1 {
362
362
%c0 = " emitc.constant" () {value = 0 : i64 } : () -> i64
363
363
%0 = " emitc.variable" () <{value = #emitc.opaque <" 42" >}> : () -> !emitc.lvalue <i32 >
364
364
%ptr = emitc.subscript %arg2 [%c0 ] : (!emitc.ptr <i32 >, i64 ) -> !emitc.lvalue <i32 >
@@ -373,6 +373,26 @@ func.func @expression_with_load(%arg0: i32, %arg1: i32, %arg2: !emitc.ptr<i32>)
373
373
return %result : i1
374
374
}
375
375
376
+ // CPP-DEFAULT: bool expression_with_var_load(int32_t [[VAL_1:v.+]], int32_t [[VAL_2:v.+]]) {
377
+ // CPP-DEFAULT-NEXT: int32_t [[VAL_3:v.+]] = 42;
378
+ // CPP-DEFAULT-NEXT: return [[VAL_3]] + [[VAL_1]] < [[VAL_2]];
379
+
380
+ // CPP-DECLTOP: bool expression_with_var_load(int32_t [[VAL_1:v.+]], int32_t [[VAL_2:v.+]]) {
381
+ // CPP-DECLTOP-NEXT: int32_t [[VAL_3:v.+]];
382
+ // CPP-DECLTOP-NEXT: [[VAL_3]] = 42;
383
+ // CPP-DECLTOP-NEXT: return [[VAL_3]] + [[VAL_1]] < [[VAL_2]];
384
+
385
+ func.func @expression_with_var_load (%arg0: i32 , %arg1: i32 ) -> i1 {
386
+ %0 = " emitc.variable" () <{value = #emitc.opaque <" 42" >}> : () -> !emitc.lvalue <i32 >
387
+ %result = emitc.expression : i1 {
388
+ %a = emitc.load %0 : !emitc.lvalue <i32 >
389
+ %b = emitc.add %a , %arg0 : (i32 , i32 ) -> i32
390
+ %d = emitc.cmp lt , %b , %arg1 :(i32 , i32 ) -> i1
391
+ yield %d : i1
392
+ }
393
+ return %result : i1
394
+ }
395
+
376
396
// CPP-DEFAULT: bool expression_with_load_and_call(int32_t* [[VAL_1:v.+]]) {
377
397
// CPP-DEFAULT-NEXT: int64_t [[VAL_2:v.+]] = 0;
378
398
// CPP-DEFAULT-NEXT: bool [[VAL_3:v.+]] = [[VAL_1]][[[VAL_2]]] + bar([[VAL_1]][[[VAL_2]]]) < [[VAL_1]][[[VAL_2]]];
0 commit comments