@@ -13,17 +13,15 @@ int f1(int i) {
1313}
1414
1515// CIR: module
16- // CIR-NEXT: cir.func @f1(%arg0: !cir.int<s, 32> loc({{.*}})) -> !cir.int<s, 32>
17- // CIR-NEXT: %[[I_PTR:.*]] = cir.alloca !cir.int<s, 32>, !cir.ptr<!cir.int<s, 32>>, ["i", init] {alignment = 4 : i64}
18- // CIR-NEXT: %[[RV:.*]] = cir.alloca !cir.int<s, 32>, !cir.ptr<!cir.int<s, 32>>, ["__retval"] {alignment = 4 : i64}
19- // CIR-NEXT: cir.store %arg0, %[[I_PTR]] : !cir.int<s, 32>, !cir.ptr<!cir.int<s, 32>>
20- // CIR-NEXT: %[[I_IGNORED:.*]] = cir.load %[[I_PTR]] : !cir.ptr<!cir.int<s, 32>>, !cir.int<s, 32>
21- // CIR-NEXT: %[[I:.*]] = cir.load %[[I_PTR]] : !cir.ptr<!cir.int<s, 32>>, !cir.int<s, 32>
22- // CIR-NEXT: cir.store %[[I]], %[[RV]] : !cir.int<s, 32>, !cir.ptr<!cir.int<s, 32>>
23- // CIR-NEXT: cir.br ^[[BB1:[^ ]+]]
24- // CIR-NEXT: ^[[BB1]]:
25- // CIR-NEXT: %[[R:.*]] = cir.load %[[RV]] : !cir.ptr<!cir.int<s, 32>>, !cir.int<s, 32>
26- // CIR-NEXT: cir.return %[[R]] : !cir.int<s, 32>
16+ // CIR-NEXT: cir.func @f1(%arg0: !s32i loc({{.*}})) -> !s32i
17+ // CIR-NEXT: %[[I_PTR:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["i", init] {alignment = 4 : i64}
18+ // CIR-NEXT: %[[RV:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["__retval"] {alignment = 4 : i64}
19+ // CIR-NEXT: cir.store %arg0, %[[I_PTR]] : !s32i, !cir.ptr<!s32i>
20+ // CIR-NEXT: %[[I_IGNORED:.*]] = cir.load %[[I_PTR]] : !cir.ptr<!s32i>, !s32i
21+ // CIR-NEXT: %[[I:.*]] = cir.load %[[I_PTR]] : !cir.ptr<!s32i>, !s32i
22+ // CIR-NEXT: cir.store %[[I]], %[[RV]] : !s32i, !cir.ptr<!s32i>
23+ // CIR-NEXT: %[[R:.*]] = cir.load %[[RV]] : !cir.ptr<!s32i>, !s32i
24+ // CIR-NEXT: cir.return %[[R]] : !s32i
2725
2826// LLVM: define i32 @f1(i32 %[[IP:.*]])
2927// LLVM-NEXT: %[[I_PTR:.*]] = alloca i32, i64 1, align 4
@@ -32,8 +30,6 @@ int f1(int i) {
3230// LLVM-NEXT: %[[I_IGNORED:.*]] = load i32, ptr %[[I_PTR]], align 4
3331// LLVM-NEXT: %[[I:.*]] = load i32, ptr %[[I_PTR]], align 4
3432// LLVM-NEXT: store i32 %[[I]], ptr %[[RV]], align 4
35- // LLVM-NEXT: br label %[[BB1:.*]]
36- // LLVM: [[BB1]]:
3733// LLVM-NEXT: %[[R:.*]] = load i32, ptr %[[RV]], align 4
3834// LLVM-NEXT: ret i32 %[[R]]
3935
@@ -47,20 +43,16 @@ int f1(int i) {
4743
4844int f2 (void ) { return 3 ; }
4945
50- // CIR: cir.func @f2() -> !cir.int<s, 32>
51- // CIR-NEXT: %[[RV:.*]] = cir.alloca !cir.int<s, 32>, !cir.ptr<!cir.int<s, 32>>, ["__retval"] {alignment = 4 : i64}
52- // CIR-NEXT: %[[THREE:.*]] = cir.const #cir.int<3> : !cir.int<s, 32>
53- // CIR-NEXT: cir.store %[[THREE]], %[[RV]] : !cir.int<s, 32>, !cir.ptr<!cir.int<s, 32>>
54- // CIR-NEXT: cir.br ^[[BB1:[^ ]+]]
55- // CIR-NEXT: ^[[BB1]]:
56- // CIR-NEXT: %[[R:.*]] = cir.load %0 : !cir.ptr<!cir.int<s, 32>>, !cir.int<s, 32>
57- // CIR-NEXT: cir.return %[[R]] : !cir.int<s, 32>
46+ // CIR: cir.func @f2() -> !s32i
47+ // CIR-NEXT: %[[RV:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["__retval"] {alignment = 4 : i64}
48+ // CIR-NEXT: %[[THREE:.*]] = cir.const #cir.int<3> : !s32i
49+ // CIR-NEXT: cir.store %[[THREE]], %[[RV]] : !s32i, !cir.ptr<!s32i>
50+ // CIR-NEXT: %[[R:.*]] = cir.load %0 : !cir.ptr<!s32i>, !s32i
51+ // CIR-NEXT: cir.return %[[R]] : !s32i
5852
5953// LLVM: define i32 @f2()
6054// LLVM-NEXT: %[[RV:.*]] = alloca i32, i64 1, align 4
6155// LLVM-NEXT: store i32 3, ptr %[[RV]], align 4
62- // LLVM-NEXT: br label %[[BB1:.*]]
63- // LLVM: [[BB1]]:
6456// LLVM-NEXT: %[[R:.*]] = load i32, ptr %[[RV]], align 4
6557// LLVM-NEXT: ret i32 %[[R]]
6658
@@ -73,26 +65,22 @@ int f3(void) {
7365 return i ;
7466}
7567
76- // CIR: cir.func @f3() -> !cir.int<s, 32>
77- // CIR-NEXT: %[[RV:.*]] = cir.alloca !cir.int<s, 32>, !cir.ptr<!cir.int<s, 32>>, ["__retval"] {alignment = 4 : i64}
78- // CIR-NEXT: %[[I_PTR:.*]] = cir.alloca !cir.int<s, 32>, !cir.ptr<!cir.int<s, 32>>, ["i", init] {alignment = 4 : i64}
79- // CIR-NEXT: %[[THREE:.*]] = cir.const #cir.int<3> : !cir.int<s, 32>
80- // CIR-NEXT: cir.store %[[THREE]], %[[I_PTR]] : !cir.int<s, 32>, !cir.ptr<!cir.int<s, 32>>
81- // CIR-NEXT: %[[I:.*]] = cir.load %[[I_PTR]] : !cir.ptr<!cir.int<s, 32>>, !cir.int<s, 32>
82- // CIR-NEXT: cir.store %[[I]], %[[RV]] : !cir.int<s, 32>, !cir.ptr<!cir.int<s, 32>>
83- // CIR-NEXT: cir.br ^[[BB1:[^ ]+]]
84- // CIR-NEXT: ^[[BB1]]:
85- // CIR-NEXT: %[[R:.*]] = cir.load %[[RV]] : !cir.ptr<!cir.int<s, 32>>, !cir.int<s, 32>
86- // CIR-NEXT: cir.return %[[R]] : !cir.int<s, 32>
68+ // CIR: cir.func @f3() -> !s32i
69+ // CIR-NEXT: %[[RV:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["__retval"] {alignment = 4 : i64}
70+ // CIR-NEXT: %[[I_PTR:.*]] = cir.alloca !s32i, !cir.ptr<!s32i>, ["i", init] {alignment = 4 : i64}
71+ // CIR-NEXT: %[[THREE:.*]] = cir.const #cir.int<3> : !s32i
72+ // CIR-NEXT: cir.store %[[THREE]], %[[I_PTR]] : !s32i, !cir.ptr<!s32i>
73+ // CIR-NEXT: %[[I:.*]] = cir.load %[[I_PTR]] : !cir.ptr<!s32i>, !s32i
74+ // CIR-NEXT: cir.store %[[I]], %[[RV]] : !s32i, !cir.ptr<!s32i>
75+ // CIR-NEXT: %[[R:.*]] = cir.load %[[RV]] : !cir.ptr<!s32i>, !s32i
76+ // CIR-NEXT: cir.return %[[R]] : !s32i
8777
8878// LLVM: define i32 @f3()
8979// LLVM-NEXT: %[[RV:.*]] = alloca i32, i64 1, align 4
9080// LLVM-NEXT: %[[I_PTR:.*]] = alloca i32, i64 1, align 4
9181// LLVM-NEXT: store i32 3, ptr %[[I_PTR]], align 4
9282// LLVM-NEXT: %[[I:.*]] = load i32, ptr %[[I_PTR]], align 4
9383// LLVM-NEXT: store i32 %[[I]], ptr %[[RV]], align 4
94- // LLVM-NEXT: br label %[[BB1:.*]]
95- // LLVM: [[BB1]]:
9684// LLVM-NEXT: %[[R:.*]] = load i32, ptr %[[RV]], align 4
9785// LLVM-NEXT: ret i32 %[[R]]
9886
0 commit comments