1
1
// RUN: mlir-translate -mlir-to-cpp %s | FileCheck %s -check-prefix=CPP-DEFAULT
2
2
3
- func.func @member (%arg0: !emitc.lvalue <!emitc.opaque <" mystruct" >>, %arg1: i32 ) {
4
- %0 = " emitc.member" (%arg0 ) {member = " a" } : (!emitc.lvalue <!emitc.opaque <" mystruct" >>) -> !emitc.lvalue <i32 >
3
+ func.func @member (%arg0: !emitc.opaque <" mystruct" >, %arg1: i32 ) {
4
+ %var0 = " emitc.variable" () <{value = #emitc.opaque <" " >}> : () -> !emitc.lvalue <!emitc.opaque <" mystruct" >>
5
+ emitc.assign %arg0 : !emitc.opaque <" mystruct" > to %var0 : !emitc.lvalue <!emitc.opaque <" mystruct" >>
6
+
7
+ %0 = " emitc.member" (%var0 ) {member = " a" } : (!emitc.lvalue <!emitc.opaque <" mystruct" >>) -> !emitc.lvalue <i32 >
5
8
emitc.assign %arg1 : i32 to %0 : !emitc.lvalue <i32 >
6
9
7
- %1 = " emitc.member" (%arg0 ) {member = " b" } : (!emitc.lvalue <!emitc.opaque <" mystruct" >>) -> !emitc.lvalue <i32 >
10
+ %1 = " emitc.member" (%var0 ) {member = " b" } : (!emitc.lvalue <!emitc.opaque <" mystruct" >>) -> !emitc.lvalue <i32 >
8
11
%2 = emitc.load %1 : !emitc.lvalue <i32 >
9
12
%3 = " emitc.variable" () <{value = #emitc.opaque <" " >}> : () -> !emitc.lvalue <i32 >
10
13
emitc.assign %2 : i32 to %3 : !emitc.lvalue <i32 >
@@ -13,17 +16,22 @@ func.func @member(%arg0: !emitc.lvalue<!emitc.opaque<"mystruct">>, %arg1: i32) {
13
16
}
14
17
15
18
// CPP-DEFAULT: void member(mystruct [[V0:[^ ]*]], int32_t [[V1:[^ ]*]]) {
16
- // CPP-DEFAULT-NEXT: [[V0]].a = [[V1]];
17
- // CPP-DEFAULT-NEXT: int32_t [[V2:[^ ]*]] = [[V0]].b;
18
- // CPP-DEFAULT-NEXT: int32_t [[V3:[^ ]*]];
19
- // CPP-DEFAULT-NEXT: [[V3]] = [[V2]];
20
-
21
-
22
- func.func @member_of_pointer (%arg0: !emitc.lvalue <!emitc.ptr <!emitc.opaque <" mystruct" >>>, %arg1: i32 ) {
23
- %0 = " emitc.member_of_ptr" (%arg0 ) {member = " a" } : (!emitc.lvalue <!emitc.ptr <!emitc.opaque <" mystruct" >>>) -> !emitc.lvalue <i32 >
19
+ // CPP-DEFAULT-NEXT: mystruct [[V2:[^ ]*]];
20
+ // CPP-DEFAULT-NEXT: [[V2]] = [[V0]];
21
+ // CPP-DEFAULT-NEXT: [[V2]].a = [[V1]];
22
+ // CPP-DEFAULT-NEXT: int32_t [[V3:[^ ]*]] = [[V2]].b;
23
+ // CPP-DEFAULT-NEXT: int32_t [[V4:[^ ]*]];
24
+ // CPP-DEFAULT-NEXT: [[V4]] = [[V3]];
25
+
26
+
27
+ func.func @member_of_pointer (%arg0: !emitc.ptr <!emitc.opaque <" mystruct" >>, %arg1: i32 ) {
28
+ %var0 = " emitc.variable" () <{value = #emitc.opaque <" " >}> : () -> !emitc.lvalue <!emitc.ptr <!emitc.opaque <" mystruct" >>>
29
+ emitc.assign %arg0 : !emitc.ptr <!emitc.opaque <" mystruct" >> to %var0 : !emitc.lvalue <!emitc.ptr <!emitc.opaque <" mystruct" >>>
30
+
31
+ %0 = " emitc.member_of_ptr" (%var0 ) {member = " a" } : (!emitc.lvalue <!emitc.ptr <!emitc.opaque <" mystruct" >>>) -> !emitc.lvalue <i32 >
24
32
emitc.assign %arg1 : i32 to %0 : !emitc.lvalue <i32 >
25
33
26
- %1 = " emitc.member_of_ptr" (%arg0 ) {member = " b" } : (!emitc.lvalue <!emitc.ptr <!emitc.opaque <" mystruct" >>>) -> !emitc.lvalue <i32 >
34
+ %1 = " emitc.member_of_ptr" (%var0 ) {member = " b" } : (!emitc.lvalue <!emitc.ptr <!emitc.opaque <" mystruct" >>>) -> !emitc.lvalue <i32 >
27
35
%2 = emitc.load %1 : !emitc.lvalue <i32 >
28
36
%3 = " emitc.variable" () <{value = #emitc.opaque <" " >}> : () -> !emitc.lvalue <i32 >
29
37
emitc.assign %2 : i32 to %3 : !emitc.lvalue <i32 >
@@ -32,8 +40,10 @@ func.func @member_of_pointer(%arg0: !emitc.lvalue<!emitc.ptr<!emitc.opaque<"myst
32
40
}
33
41
34
42
// CPP-DEFAULT: void member_of_pointer(mystruct* [[V0:[^ ]*]], int32_t [[V1:[^ ]*]]) {
35
- // CPP-DEFAULT-NEXT: [[V0]]->a = [[V1]];
36
- // CPP-DEFAULT-NEXT: int32_t [[V2:[^ ]*]] = [[V0]]->b;
37
- // CPP-DEFAULT-NEXT: int32_t [[V3:[^ ]*]];
38
- // CPP-DEFAULT-NEXT: [[V3]] = [[V2]];
43
+ // CPP-DEFAULT-NEXT: mystruct* [[V2:[^ ]*]];
44
+ // CPP-DEFAULT-NEXT: [[V2]] = [[V0]];
45
+ // CPP-DEFAULT-NEXT: [[V2]]->a = [[V1]];
46
+ // CPP-DEFAULT-NEXT: int32_t [[V3:[^ ]*]] = [[V2]]->b;
47
+ // CPP-DEFAULT-NEXT: int32_t [[V4:[^ ]*]];
48
+ // CPP-DEFAULT-NEXT: [[V4]] = [[V3]];
39
49
0 commit comments