Skip to content

Commit 89425f0

Browse files
author
Simon Camphausen
committed
Add check lines
1 parent a29404a commit 89425f0

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

mlir/test/Target/Cpp/lvalue.mlir

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,37 @@
11
// RUN: mlir-translate -mlir-to-cpp %s | FileCheck %s
22

3-
// CHECK: int32_t lvalue_variables(
43
emitc.func @lvalue_variables(%v1: i32, %v2: i32) -> i32 {
54
%val = emitc.mul %v1, %v2 : (i32, i32) -> i32
6-
%variable = "emitc.variable"() {value = #emitc.opaque<"">} : () -> !emitc.lvalue<i32> // alloc effect
7-
emitc.assign %val : i32 to %variable : !emitc.lvalue<i32> // write effect
5+
%variable = "emitc.variable"() {value = #emitc.opaque<"">} : () -> !emitc.lvalue<i32>
6+
emitc.assign %val : i32 to %variable : !emitc.lvalue<i32>
87
%addr = emitc.apply "&"(%variable) : (!emitc.lvalue<i32>) -> !emitc.ptr<i32>
98
emitc.call @zero (%addr) : (!emitc.ptr<i32>) -> ()
10-
%updated_val = emitc.lvalue_load %variable : !emitc.lvalue<i32> // read effect, (noop in emitter?)
9+
%updated_val = emitc.lvalue_load %variable : !emitc.lvalue<i32>
1110
%neg_one = "emitc.constant"() {value = -1 : i32} : () -> i32
12-
emitc.assign %neg_one : i32 to %variable : !emitc.lvalue<i32> // invalidates %updated_val
11+
emitc.assign %neg_one : i32 to %variable : !emitc.lvalue<i32>
1312
emitc.return %updated_val : i32
14-
// dealloc effect through automatic allocation scope
1513
}
14+
// CHECK-LABEL: int32_t lvalue_variables(
15+
// CHECK-SAME: int32_t [[V1:[^ ]*]], int32_t [[V2:[^ ]*]])
16+
// CHECK-NEXT: int32_t [[VAL:[^ ]*]] = [[V1]] * [[V2]];
17+
// CHECK-NEXT: int32_t [[VAR:[^ ]*]];
18+
// CHECK-NEXT: [[VAR]] = [[VAL]];
19+
// CHECK-NEXT: int32_t* [[VAR_PTR:[^ ]*]] = &[[VAR]];
20+
// CHECK-NEXT: zero([[VAR_PTR]]);
21+
// CHECK-NEXT: int32_t [[VAR_LOAD:[^ ]*]] = [[VAR]];
22+
// CHECK-NEXT: int32_t [[NEG_ONE:[^ ]*]] = -1;
23+
// CHECK-NEXT: [[VAR]] = [[NEG_ONE]];
24+
// CHECK-NEXT: return [[VAR_LOAD]];
25+
1626

1727
emitc.func @zero(%arg0: !emitc.ptr<i32>) {
1828
%0 = "emitc.constant"() {value = 0 : i32} : () -> i32
1929
%1 = emitc.apply "*"(%arg0) : (!emitc.ptr<i32>) -> !emitc.lvalue<i32>
2030
emitc.assign %0 : i32 to %1 : !emitc.lvalue<i32>
2131
emitc.return
22-
}
32+
}
33+
// CHECK-LABEL: void zero(
34+
// CHECK-SAME: int32_t* [[V1:[^ ]*]])
35+
// CHECK-NEXT: int32_t [[V2:[^ ]*]] = 0;
36+
// CHECK-NEXT: *[[V1]] = [[V2]];
37+
// CHEC-NEXT: return;

0 commit comments

Comments
 (0)