Skip to content

Commit 5201bc5

Browse files
committed
[AutoBump] Merge with fixes of 977d744 (Jan 20)
2 parents e6c513d + 977d744 commit 5201bc5

File tree

7 files changed

+149
-107
lines changed

7 files changed

+149
-107
lines changed

mlir/include/mlir/Dialect/EmitC/IR/EmitC.td

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -439,8 +439,8 @@ def EmitC_DivOp : EmitC_BinaryOp<"div", [CExpression]> {
439439
}
440440

441441
def EmitC_ExpressionOp : EmitC_Op<"expression",
442-
[HasOnlyGraphRegion, SingleBlockImplicitTerminator<"emitc::YieldOp">,
443-
NoRegionArguments]> {
442+
[HasOnlyGraphRegion, OpAsmOpInterface,
443+
SingleBlockImplicitTerminator<"emitc::YieldOp">, NoRegionArguments]> {
444444
let summary = "Expression operation";
445445
let description = [{
446446
The `emitc.expression` operation returns a single SSA value which is yielded by
@@ -506,12 +506,21 @@ def EmitC_ExpressionOp : EmitC_Op<"expression",
506506
return llvm::any_of(getRegion().front().without_terminator(), predicate);
507507
};
508508
Operation *getRootOp();
509+
510+
//===------------------------------------------------------------------===//
511+
// OpAsmOpInterface Methods
512+
//===------------------------------------------------------------------===//
513+
514+
/// EmitC ops in the body can omit their 'emitc.' prefix in the assembly.
515+
static ::llvm::StringRef getDefaultDialect() {
516+
return "emitc";
517+
}
509518
}];
510519
}
511520

512521
def EmitC_ForOp : EmitC_Op<"for",
513522
[AllTypesMatch<["lowerBound", "upperBound", "step"]>,
514-
SingleBlockImplicitTerminator<"emitc::YieldOp">,
523+
OpAsmOpInterface, SingleBlockImplicitTerminator<"emitc::YieldOp">,
515524
RecursiveMemoryEffects]> {
516525
let summary = "For operation";
517526
let description = [{
@@ -563,6 +572,15 @@ def EmitC_ForOp : EmitC_Op<"for",
563572
void setLowerBound(Value bound) { getOperation()->setOperand(0, bound); }
564573
void setUpperBound(Value bound) { getOperation()->setOperand(1, bound); }
565574
void setStep(Value step) { getOperation()->setOperand(2, step); }
575+
576+
//===------------------------------------------------------------------===//
577+
// OpAsmOpInterface Methods
578+
//===------------------------------------------------------------------===//
579+
580+
/// EmitC ops in the body can omit their 'emitc.' prefix in the assembly.
581+
static ::llvm::StringRef getDefaultDialect() {
582+
return "emitc";
583+
}
566584
}];
567585

568586
let hasCanonicalizer = 1;
@@ -1334,7 +1352,7 @@ def EmitC_YieldOp : EmitC_Op<"yield",
13341352
def EmitC_IfOp : EmitC_Op<"if",
13351353
[DeclareOpInterfaceMethods<RegionBranchOpInterface, [
13361354
"getNumRegionInvocations", "getRegionInvocationBounds",
1337-
"getEntrySuccessorRegions"]>, SingleBlock,
1355+
"getEntrySuccessorRegions"]>, OpAsmOpInterface, SingleBlock,
13381356
SingleBlockImplicitTerminator<"emitc::YieldOp">,
13391357
RecursiveMemoryEffects, NoRegionArguments]> {
13401358
let summary = "If-then-else operation";
@@ -1382,6 +1400,15 @@ def EmitC_IfOp : EmitC_Op<"if",
13821400
Block* body = getBody(1);
13831401
return OpBuilder::atBlockEnd(body, listener);
13841402
}
1403+
1404+
//===------------------------------------------------------------------===//
1405+
// OpAsmOpInterface Methods
1406+
//===------------------------------------------------------------------===//
1407+
1408+
/// EmitC ops in the body can omit their 'emitc.' prefix in the assembly.
1409+
static ::llvm::StringRef getDefaultDialect() {
1410+
return "emitc";
1411+
}
13851412
}];
13861413
let hasCustomAssemblyFormat = 1;
13871414
}
@@ -1437,7 +1464,7 @@ def EmitC_SubscriptOp : EmitC_Op<"subscript", []> {
14371464
}
14381465

14391466
def EmitC_SwitchOp : EmitC_Op<"switch", [RecursiveMemoryEffects,
1440-
SingleBlockImplicitTerminator<"emitc::YieldOp">,
1467+
OpAsmOpInterface, SingleBlockImplicitTerminator<"emitc::YieldOp">,
14411468
DeclareOpInterfaceMethods<RegionBranchOpInterface,
14421469
["getRegionInvocationBounds",
14431470
"getEntrySuccessorRegions"]>]> {
@@ -1515,6 +1542,15 @@ def EmitC_SwitchOp : EmitC_Op<"switch", [RecursiveMemoryEffects,
15151542

15161543
/// Get the body of a case region.
15171544
Block &getCaseBlock(unsigned idx);
1545+
1546+
//===------------------------------------------------------------------===//
1547+
// OpAsmOpInterface Methods
1548+
//===------------------------------------------------------------------===//
1549+
1550+
/// EmitC ops in the body can omit their 'emitc.' prefix in the assembly.
1551+
static ::llvm::StringRef getDefaultDialect() {
1552+
return "emitc";
1553+
}
15181554
}];
15191555

15201556
let hasVerifier = 1;

mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,12 @@ func.func @arith_shift_left(%arg0: i32, %arg1: i32) {
152152
// CHECK-DAG: %[[SizeConstant:[^ ]*]] = "emitc.constant"{{.*}}value = 32
153153
// CHECK-DAG: %[[CmpNoExcess:[^ ]*]] = emitc.cmp lt, %[[C2]], %[[SizeConstant]] : (ui32, ui32) -> i1
154154
// CHECK-DAG: %[[Zero:[^ ]*]] = "emitc.constant"{{.*}}value = 0
155-
// CHECK: %[[ShiftRes:[^ ]*]] = emitc.expression : ui32
156-
// CHECK: %[[SHL:[^ ]*]] = emitc.bitwise_left_shift %[[C1]], %[[C2]] : (ui32, ui32) -> ui32
157-
// CHECK: %[[Ternary:[^ ]*]] = emitc.conditional %[[CmpNoExcess]], %[[SHL]], %[[Zero]] : ui32
158-
// CHECK: emitc.yield %[[Ternary]] : ui32
159-
// CHECK: emitc.cast %[[ShiftRes]] : ui32 to i32
155+
// CHECK: %[[ShiftRes:[^ ]*]] = emitc.expression : ui32 {
156+
// CHECK-NEXT: %[[SHL:[^ ]*]] = bitwise_left_shift %[[C1]], %[[C2]] : (ui32, ui32) -> ui32
157+
// CHECK-NEXT: %[[Ternary:[^ ]*]] = conditional %[[CmpNoExcess]], %[[SHL]], %[[Zero]] : ui32
158+
// CHECK-NEXT: yield %[[Ternary]] : ui32
159+
// CHECK-NEXT: }
160+
// CHECK-NEXT: emitc.cast %[[ShiftRes]] : ui32 to i32
160161
%1 = arith.shli %arg0, %arg1 : i32
161162
return
162163
}
@@ -171,21 +172,23 @@ func.func @arith_shift_right(%arg0: i32, %arg1: i32) {
171172
// CHECK-DAG: %[[SizeConstant:[^ ]*]] = "emitc.constant"{{.*}}value = 32{{.*}}ui32
172173
// CHECK-DAG: %[[CmpNoExcess:[^ ]*]] = emitc.cmp lt, %[[C2]], %[[SizeConstant]] : (ui32, ui32) -> i1
173174
// CHECK-DAG: %[[Zero:[^ ]*]] = "emitc.constant"{{.*}}value = 0{{.*}}ui32
174-
// CHECK: %[[ShiftRes:[^ ]*]] = emitc.expression : ui32
175-
// CHECK: %[[SHR:[^ ]*]] = emitc.bitwise_right_shift %[[C1]], %[[C2]] : (ui32, ui32) -> ui32
176-
// CHECK: %[[Ternary:[^ ]*]] = emitc.conditional %[[CmpNoExcess]], %[[SHR]], %[[Zero]] : ui32
177-
// CHECK: emitc.yield %[[Ternary]] : ui32
178-
// CHECK: emitc.cast %[[ShiftRes]] : ui32 to i32
175+
// CHECK: %[[ShiftRes:[^ ]*]] = emitc.expression : ui32 {
176+
// CHECK-NEXT: %[[SHR:[^ ]*]] = bitwise_right_shift %[[C1]], %[[C2]] : (ui32, ui32) -> ui32
177+
// CHECK-NEXT: %[[Ternary:[^ ]*]] = conditional %[[CmpNoExcess]], %[[SHR]], %[[Zero]] : ui32
178+
// CHECK-NEXT: yield %[[Ternary]] : ui32
179+
// CHECK-NEXT: }
180+
// CHECK-NEXT: emitc.cast %[[ShiftRes]] : ui32 to i32
179181
%2 = arith.shrui %arg0, %arg1 : i32
180182

181183
// CHECK-DAG: %[[SC2:[^ ]*]] = emitc.cast %[[ARG1]] : i32 to ui32
182184
// CHECK-DAG: %[[SSizeConstant:[^ ]*]] = "emitc.constant"{{.*}}value = 32{{.*}}ui32
183185
// CHECK-DAG: %[[SCmpNoExcess:[^ ]*]] = emitc.cmp lt, %[[SC2]], %[[SSizeConstant]] : (ui32, ui32) -> i1
184186
// CHECK-DAG: %[[SZero:[^ ]*]] = "emitc.constant"{{.*}}value = 0{{.*}}i32
185-
// CHECK: %[[SShiftRes:[^ ]*]] = emitc.expression : i32
186-
// CHECK: %[[SHRSI:[^ ]*]] = emitc.bitwise_right_shift %[[ARG0]], %[[SC2]] : (i32, ui32) -> i32
187-
// CHECK: %[[STernary:[^ ]*]] = emitc.conditional %[[SCmpNoExcess]], %[[SHRSI]], %[[SZero]] : i32
188-
// CHECK: emitc.yield %[[STernary]] : i32
187+
// CHECK: %[[SShiftRes:[^ ]*]] = emitc.expression : i32 {
188+
// CHECK-NEXT: %[[SHRSI:[^ ]*]] = bitwise_right_shift %[[ARG0]], %[[SC2]] : (i32, ui32) -> i32
189+
// CHECK-NEXT: %[[STernary:[^ ]*]] = conditional %[[SCmpNoExcess]], %[[SHRSI]], %[[SZero]] : i32
190+
// CHECK-NEXT: yield %[[STernary]] : i32
191+
// CHECK-NEXT: }
189192
%3 = arith.shrsi %arg0, %arg1 : i32
190193

191194
return
@@ -206,10 +209,11 @@ func.func @arith_shift_left_index(%amount: i32) {
206209
// CHECK-DAG: %[[SizeConstant:[^ ]*]] = emitc.mul %[[Byte]], %[[SizeOf]] : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
207210
// CHECK-DAG: %[[CmpNoExcess:[^ ]*]] = emitc.cmp lt, %[[AmountIdx]], %[[SizeConstant]] : (!emitc.size_t, !emitc.size_t) -> i1
208211
// CHECK-DAG: %[[Zero:[^ ]*]] = "emitc.constant"{{.*}}value = 0
209-
// CHECK: %[[ShiftRes:[^ ]*]] = emitc.expression : !emitc.size_t
210-
// CHECK: %[[SHL:[^ ]*]] = emitc.bitwise_left_shift %[[C1]], %[[AmountIdx]] : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
211-
// CHECK: %[[Ternary:[^ ]*]] = emitc.conditional %[[CmpNoExcess]], %[[SHL]], %[[Zero]] : !emitc.size_t
212-
// CHECK: emitc.yield %[[Ternary]] : !emitc.size_t
212+
// CHECK: %[[ShiftRes:[^ ]*]] = emitc.expression : !emitc.size_t {
213+
// CHECK-NEXT: %[[SHL:[^ ]*]] = bitwise_left_shift %[[C1]], %[[AmountIdx]] : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
214+
// CHECK-NEXT: %[[Ternary:[^ ]*]] = conditional %[[CmpNoExcess]], %[[SHL]], %[[Zero]] : !emitc.size_t
215+
// CHECK-NEXT: yield %[[Ternary]] : !emitc.size_t
216+
// CHECK-NEXT: }
213217
%1 = arith.shli %cst0, %cast1 : index
214218
return
215219
}
@@ -230,10 +234,11 @@ func.func @arith_shift_right_index(%amount: i32) {
230234
// CHECK-DAG: %[[SizeConstant:[^ ]*]] = emitc.mul %[[Byte]], %[[SizeOf]] : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
231235
// CHECK-DAG: %[[CmpNoExcess:[^ ]*]] = emitc.cmp lt, %[[AmountIdx]], %[[SizeConstant]] : (!emitc.size_t, !emitc.size_t) -> i1
232236
// CHECK-DAG: %[[Zero:[^ ]*]] = "emitc.constant"{{.*}}value = 0{{.*}}!emitc.size_t
233-
// CHECK: %[[ShiftRes:[^ ]*]] = emitc.expression : !emitc.size_t
234-
// CHECK: %[[SHR:[^ ]*]] = emitc.bitwise_right_shift %[[C1]], %[[AmountIdx]] : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
235-
// CHECK: %[[Ternary:[^ ]*]] = emitc.conditional %[[CmpNoExcess]], %[[SHR]], %[[Zero]] : !emitc.size_t
236-
// CHECK: emitc.yield %[[Ternary]] : !emitc.size_t
237+
// CHECK: %[[ShiftRes:[^ ]*]] = emitc.expression : !emitc.size_t {
238+
// CHECK-NEXT: %[[SHR:[^ ]*]] = bitwise_right_shift %[[C1]], %[[AmountIdx]] : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
239+
// CHECK-NEXT: %[[Ternary:[^ ]*]] = conditional %[[CmpNoExcess]], %[[SHR]], %[[Zero]] : !emitc.size_t
240+
// CHECK-NEXT: yield %[[Ternary]] : !emitc.size_t
241+
// CHECK-NEXT: }
237242
%2 = arith.shrui %arg0, %arg1 : index
238243

239244
// CHECK-DAG: %[[SC1:[^ ]*]] = emitc.cast %[[C1]] : !emitc.size_t to !emitc.ptrdiff_t
@@ -242,11 +247,12 @@ func.func @arith_shift_right_index(%amount: i32) {
242247
// CHECK-DAG: %[[SSizeConstant:[^ ]*]] = emitc.mul %[[SByte]], %[[SSizeOf]] : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
243248
// CHECK-DAG: %[[SCmpNoExcess:[^ ]*]] = emitc.cmp lt, %[[AmountIdx]], %[[SSizeConstant]] : (!emitc.size_t, !emitc.size_t) -> i1
244249
// CHECK-DAG: %[[SZero:[^ ]*]] = "emitc.constant"{{.*}}value = 0{{.*}}!emitc.ptrdiff_t
245-
// CHECK: %[[SShiftRes:[^ ]*]] = emitc.expression : !emitc.ptrdiff_t
246-
// CHECK: %[[SHRSI:[^ ]*]] = emitc.bitwise_right_shift %[[SC1]], %[[AmountIdx]] : (!emitc.ptrdiff_t, !emitc.size_t) -> !emitc.ptrdiff_t
247-
// CHECK: %[[STernary:[^ ]*]] = emitc.conditional %[[SCmpNoExcess]], %[[SHRSI]], %[[SZero]] : !emitc.ptrdiff_t
248-
// CHECK: emitc.yield %[[STernary]] : !emitc.ptrdiff_t
249-
// CHECK: emitc.cast %[[SShiftRes]] : !emitc.ptrdiff_t to !emitc.size_t
250+
// CHECK: %[[SShiftRes:[^ ]*]] = emitc.expression : !emitc.ptrdiff_t {
251+
// CHECK-NEXT: %[[SHRSI:[^ ]*]] = bitwise_right_shift %[[SC1]], %[[AmountIdx]] : (!emitc.ptrdiff_t, !emitc.size_t) -> !emitc.ptrdiff_t
252+
// CHECK-NEXT: %[[STernary:[^ ]*]] = conditional %[[SCmpNoExcess]], %[[SHRSI]], %[[SZero]] : !emitc.ptrdiff_t
253+
// CHECK-NEXT: yield %[[STernary]] : !emitc.ptrdiff_t
254+
// CHECK-NEXT: }
255+
// CHECK-NEXT: emitc.cast %[[SShiftRes]] : !emitc.ptrdiff_t to !emitc.size_t
250256
%3 = arith.shrsi %arg0, %arg1 : index
251257

252258
return
@@ -833,9 +839,9 @@ func.func @int_opaque_conversion(%arg0: i80, %arg1: i80, %arg2: i1) {
833839
// CHECK: [[LT:[^ ]*]] = emitc.cmp lt, [[arg1_cast]], [[Bitwidth]] : (!emitc.opaque<"i80">, !emitc.opaque<"i80">) -> i1
834840
// CHECK: [[Poison:[^ ]*]] = "emitc.constant"() <{value = #emitc.opaque<"opaque_shift_poison">}> : () -> !emitc.opaque<"i80">
835841
// CHECK: [[Exp:[^ ]*]] = emitc.expression : !emitc.opaque<"i80"> {
836-
// CHECK: [[LShift:[^ ]*]] = emitc.bitwise_left_shift [[arg0_cast]], [[arg1_cast]] : (!emitc.opaque<"i80">, !emitc.opaque<"i80">) -> !emitc.opaque<"i80">
837-
// CHECK: emitc.conditional [[LT]], [[LShift]], [[Poison]] : !emitc.opaque<"i80">
838-
// CHECK: emitc.yield {{.*}} : !emitc.opaque<"i80">
842+
// CHECK: [[LShift:[^ ]*]] = bitwise_left_shift [[arg0_cast]], [[arg1_cast]] : (!emitc.opaque<"i80">, !emitc.opaque<"i80">) -> !emitc.opaque<"i80">
843+
// CHECK: conditional [[LT]], [[LShift]], [[Poison]] : !emitc.opaque<"i80">
844+
// CHECK: yield {{.*}} : !emitc.opaque<"i80">
839845
// CHECK: }
840846
%12 = arith.shli %arg0, %arg1 : i80
841847
// CHECK: emitc.cmp eq, [[arg0_cast]], [[arg1_cast]] : (!emitc.opaque<"i80">, !emitc.opaque<"i80">) -> i1

mlir/test/Conversion/SCFToEmitC/for.mlir

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func.func @simple_std_2_for_loops(%arg0 : index, %arg1 : index, %arg2 : index) {
3333
// CHECK-NEXT: %[[VAL_0:.*]] = builtin.unrealized_conversion_cast %[[ARG_0]] : index to !emitc.size_t
3434
// CHECK-NEXT: emitc.for %[[VAL_3:.*]] = %[[VAL_0]] to %[[VAL_1]] step %[[VAL_2]] {
3535
// CHECK-NEXT: %[[VAL_4:.*]] = arith.constant 1 : index
36-
// CHECK-NEXT: emitc.for %[[VAL_5:.*]] = %[[VAL_0]] to %[[VAL_1]] step %[[VAL_2]] {
36+
// CHECK-NEXT: for %[[VAL_5:.*]] = %[[VAL_0]] to %[[VAL_1]] step %[[VAL_2]] {
3737
// CHECK-NEXT: %[[VAL_6:.*]] = arith.constant 1 : index
3838
// CHECK-NEXT: }
3939
// CHECK-NEXT: }
@@ -61,11 +61,11 @@ func.func @for_yield(%arg0 : index, %arg1 : index, %arg2 : index) -> (f32, f32)
6161
// CHECK-NEXT: emitc.assign %[[VAL_3]] : f32 to %[[VAL_5]] : <f32>
6262
// CHECK-NEXT: emitc.assign %[[VAL_4]] : f32 to %[[VAL_6]] : <f32>
6363
// CHECK-NEXT: emitc.for %[[VAL_7:.*]] = %[[VAL_0]] to %[[VAL_1]] step %[[VAL_2]] {
64-
// CHECK-NEXT: %[[VAL_8:.*]] = emitc.load %[[VAL_5]] : <f32>
65-
// CHECK-NEXT: %[[VAL_9:.*]] = emitc.load %[[VAL_6]] : <f32>
64+
// CHECK-NEXT: %[[VAL_8:.*]] = load %[[VAL_5]] : <f32>
65+
// CHECK-NEXT: %[[VAL_9:.*]] = load %[[VAL_6]] : <f32>
6666
// CHECK-NEXT: %[[VAL_10:.*]] = arith.addf %[[VAL_8]], %[[VAL_9]] : f32
67-
// CHECK-NEXT: emitc.assign %[[VAL_10]] : f32 to %[[VAL_5]] : <f32>
68-
// CHECK-NEXT: emitc.assign %[[VAL_10]] : f32 to %[[VAL_6]] : <f32>
67+
// CHECK-NEXT: assign %[[VAL_10]] : f32 to %[[VAL_5]] : <f32>
68+
// CHECK-NEXT: assign %[[VAL_10]] : f32 to %[[VAL_6]] : <f32>
6969
// CHECK-NEXT: }
7070
// CHECK-NEXT: %[[VAL_11:.*]] = emitc.load %[[VAL_5]] : <f32>
7171
// CHECK-NEXT: %[[VAL_12:.*]] = emitc.load %[[VAL_6]] : <f32>
@@ -92,16 +92,16 @@ func.func @nested_for_yield(%arg0 : index, %arg1 : index, %arg2 : index) -> f32
9292
// CHECK-NEXT: %[[VAL_4:.*]] = "emitc.variable"() <{value = #emitc.opaque<"">}> : () -> !emitc.lvalue<f32>
9393
// CHECK-NEXT: emitc.assign %[[VAL_3]] : f32 to %[[VAL_4]] : <f32>
9494
// CHECK-NEXT: emitc.for %[[VAL_5:.*]] = %[[VAL_0]] to %[[VAL_1]] step %[[VAL_2]] {
95-
// CHECK-NEXT: %[[VAL_6:.*]] = emitc.load %[[VAL_4]] : <f32>
95+
// CHECK-NEXT: %[[VAL_6:.*]] = load %[[VAL_4]] : <f32>
9696
// CHECK-NEXT: %[[VAL_7:.*]] = "emitc.variable"() <{value = #emitc.opaque<"">}> : () -> !emitc.lvalue<f32>
97-
// CHECK-NEXT: emitc.assign %[[VAL_6]] : f32 to %[[VAL_7]] : <f32>
98-
// CHECK-NEXT: emitc.for %[[VAL_8:.*]] = %[[VAL_0]] to %[[VAL_1]] step %[[VAL_2]] {
99-
// CHECK-NEXT: %[[VAL_9:.*]] = emitc.load %[[VAL_7]] : <f32>
97+
// CHECK-NEXT: assign %[[VAL_6]] : f32 to %[[VAL_7]] : <f32>
98+
// CHECK-NEXT: for %[[VAL_8:.*]] = %[[VAL_0]] to %[[VAL_1]] step %[[VAL_2]] {
99+
// CHECK-NEXT: %[[VAL_9:.*]] = load %[[VAL_7]] : <f32>
100100
// CHECK-NEXT: %[[VAL_10:.*]] = arith.addf %[[VAL_9]], %[[VAL_9]] : f32
101-
// CHECK-NEXT: emitc.assign %[[VAL_10]] : f32 to %[[VAL_7]] : <f32>
101+
// CHECK-NEXT: assign %[[VAL_10]] : f32 to %[[VAL_7]] : <f32>
102102
// CHECK-NEXT: }
103-
// CHECK-NEXT: %[[VAL_11:.*]] = emitc.load %[[VAL_7]] : <f32>
104-
// CHECK-NEXT: emitc.assign %[[VAL_11]] : f32 to %[[VAL_4]] : <f32>
103+
// CHECK-NEXT: %[[VAL_11:.*]] = load %[[VAL_7]] : <f32>
104+
// CHECK-NEXT: assign %[[VAL_11]] : f32 to %[[VAL_4]] : <f32>
105105
// CHECK-NEXT: }
106106
// CHECK-NEXT: %[[VAL_12:.*]] = emitc.load %[[VAL_4]] : <f32>
107107
// CHECK-NEXT: return %[[VAL_12]] : f32
@@ -125,8 +125,8 @@ func.func @for_yield_index(%arg0 : index, %arg1 : index, %arg2 : index) -> index
125125
// CHECK: %[[VAL_4:.*]] = "emitc.variable"() <{value = #emitc.opaque<"">}> : () -> !emitc.lvalue<!emitc.size_t>
126126
// CHECK: emitc.assign %[[VAL_3]] : !emitc.size_t to %[[VAL_4]] : <!emitc.size_t>
127127
// CHECK: emitc.for %[[VAL_5:.*]] = %[[VAL_2]] to %[[VAL_1]] step %[[VAL_0]] {
128-
// CHECK: %[[V:.*]] = emitc.load %[[VAL_4]] : <!emitc.size_t>
129-
// CHECK: emitc.assign %[[V]] : !emitc.size_t to %[[VAL_4]] : <!emitc.size_t>
128+
// CHECK: %[[V:.*]] = load %[[VAL_4]] : <!emitc.size_t>
129+
// CHECK: assign %[[V]] : !emitc.size_t to %[[VAL_4]] : <!emitc.size_t>
130130
// CHECK: }
131131
// CHECK: %[[V2:.*]] = emitc.load %[[VAL_4]] : <!emitc.size_t>
132132
// CHECK: %[[VAL_8:.*]] = builtin.unrealized_conversion_cast %[[V2]] : !emitc.size_t to index
@@ -153,11 +153,11 @@ func.func @for_yield_update_loop_carried_var(%arg0 : index, %arg1 : index, %arg2
153153
// CHECK: %[[VAL_4:.*]] = "emitc.variable"() <{value = #emitc.opaque<"">}> : () -> !emitc.lvalue<!emitc.size_t>
154154
// CHECK: emitc.assign %[[VAL_3]] : !emitc.size_t to %[[VAL_4]] : <!emitc.size_t>
155155
// CHECK: emitc.for %[[ARG_3:.*]] = %[[VAL_2]] to %[[VAL_1]] step %[[VAL_0]] {
156-
// CHECK: %[[V:.*]] = emitc.load %[[VAL_4]] : <!emitc.size_t>
156+
// CHECK: %[[V:.*]] = load %[[VAL_4]] : <!emitc.size_t>
157157
// CHECK: %[[VAL_5:.*]] = builtin.unrealized_conversion_cast %[[V]] : !emitc.size_t to index
158158
// CHECK: %[[VAL_6:.*]] = arith.addi %[[VAL_5]], %[[VAL_5]] : index
159159
// CHECK: %[[VAL_8:.*]] = builtin.unrealized_conversion_cast %[[VAL_6]] : index to !emitc.size_t
160-
// CHECK: emitc.assign %[[VAL_8]] : !emitc.size_t to %[[VAL_4]] : <!emitc.size_t>
160+
// CHECK: assign %[[VAL_8]] : !emitc.size_t to %[[VAL_4]] : <!emitc.size_t>
161161
// CHECK: }
162162
// CHECK: %[[V2:.*]] = emitc.load %[[VAL_4]] : <!emitc.size_t>
163163
// CHECK: %[[VAL_9:.*]] = builtin.unrealized_conversion_cast %[[V2]] : !emitc.size_t to index

0 commit comments

Comments
 (0)