@@ -29,7 +29,7 @@ typedef struct {
29
29
30
30
// CHECK: cir.func {{.*@ret_lt_64}}() -> !u16i
31
31
// CHECK: %[[#V0:]] = cir.alloca !rec_LT_64, !cir.ptr<!rec_LT_64>, ["__retval"]
32
- // CHECK: %[[#V1:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_LT_64>), !cir.ptr<!u16i>
32
+ // CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_LT_64> -> !cir.ptr<!u16i>
33
33
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!u16i>, !u16i
34
34
// CHECK: cir.return %[[#V2]] : !u16i
35
35
LT_64 ret_lt_64 () {
@@ -39,7 +39,7 @@ LT_64 ret_lt_64() {
39
39
40
40
// CHECK: cir.func {{.*@ret_eq_64}}() -> !u64i
41
41
// CHECK: %[[#V0:]] = cir.alloca !rec_EQ_64, !cir.ptr<!rec_EQ_64>, ["__retval"]
42
- // CHECK: %[[#V1:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_EQ_64>), !cir.ptr<!u64i>
42
+ // CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_EQ_64> -> !cir.ptr<!u64i>
43
43
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!u64i>, !u64i
44
44
// CHECK: cir.return %[[#V2]] : !u64i
45
45
EQ_64 ret_eq_64 () {
@@ -49,7 +49,7 @@ EQ_64 ret_eq_64() {
49
49
50
50
// CHECK: cir.func {{.*@ret_lt_128}}() -> !cir.array<!u64i x 2>
51
51
// CHECK: %[[#V0:]] = cir.alloca !rec_LT_128, !cir.ptr<!rec_LT_128>, ["__retval"]
52
- // CHECK: %[[#V1:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_LT_128>), !cir.ptr<!cir.array<!u64i x 2>>
52
+ // CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_LT_128> -> !cir.ptr<!cir.array<!u64i x 2>>
53
53
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
54
54
// CHECK: cir.return %[[#V2]] : !cir.array<!u64i x 2>
55
55
LT_128 ret_lt_128 () {
@@ -59,7 +59,7 @@ LT_128 ret_lt_128() {
59
59
60
60
// CHECK: cir.func {{.*@ret_eq_128}}() -> !cir.array<!u64i x 2>
61
61
// CHECK: %[[#V0:]] = cir.alloca !rec_EQ_128, !cir.ptr<!rec_EQ_128>, ["__retval"]
62
- // CHECK: %[[#V1:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_EQ_128>), !cir.ptr<!cir.array<!u64i x 2>>
62
+ // CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_EQ_128> -> !cir.ptr<!cir.array<!u64i x 2>>
63
63
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
64
64
// CHECK: cir.return %[[#V2]] : !cir.array<!u64i x 2>
65
65
EQ_128 ret_eq_128 () {
@@ -83,8 +83,8 @@ typedef struct {
83
83
// CHECK: cir.func {{.*@retS}}() -> !cir.array<!u64i x 2>
84
84
// CHECK: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, ["__retval"] {alignment = 4 : i64}
85
85
// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"] {alignment = 8 : i64}
86
- // CHECK: %[[#V2:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_S>), !cir.ptr<!void>
87
- // CHECK: %[[#V3:]] = cir.cast( bitcast, %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>), !cir.ptr<!void>
86
+ // CHECK: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S> -> !cir.ptr<!void>
87
+ // CHECK: %[[#V3:]] = cir.cast bitcast %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>> -> !cir.ptr<!void>
88
88
// CHECK: %[[#V4:]] = cir.const #cir.int<12> : !u64i
89
89
// CHECK: cir.libc.memcpy %[[#V4]] bytes from %[[#V2]] to %[[#V3]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
90
90
// CHECK: %[[#V5:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
@@ -102,8 +102,8 @@ S retS() {
102
102
}
103
103
// CHECK: cir.func {{.*@pass_lt_64}}(%arg0: !u64
104
104
// CHECK: %[[#V0:]] = cir.alloca !rec_LT_64, !cir.ptr<!rec_LT_64>
105
- // CHECK: %[[#V1:]] = cir.cast( integral, %arg0 : !u64i), !u16i
106
- // CHECK: %[[#V2:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_LT_64>), !cir.ptr<!u16i>
105
+ // CHECK: %[[#V1:]] = cir.cast integral %arg0 : !u64i -> !u16i
106
+ // CHECK: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_LT_64> -> !cir.ptr<!u16i>
107
107
// CHECK: cir.store{{.*}} %[[#V1]], %[[#V2]] : !u16i, !cir.ptr<!u16i>
108
108
109
109
// LLVM: void @pass_lt_64(i64 %0)
@@ -114,7 +114,7 @@ void pass_lt_64(LT_64 s) {}
114
114
115
115
// CHECK: cir.func {{.*@pass_eq_64}}(%arg0: !u64i
116
116
// CHECK: %[[#V0:]] = cir.alloca !rec_EQ_64, !cir.ptr<!rec_EQ_64>
117
- // CHECK: %[[#V1:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_EQ_64>), !cir.ptr<!u64i>
117
+ // CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_EQ_64> -> !cir.ptr<!u64i>
118
118
// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !u64i, !cir.ptr<!u64i>
119
119
120
120
// LLVM: void @pass_eq_64(i64 %0)
@@ -124,7 +124,7 @@ void pass_eq_64(EQ_64 s) {}
124
124
125
125
// CHECK: cir.func {{.*@pass_lt_128}}(%arg0: !cir.array<!u64i x 2>
126
126
// CHECK: %[[#V0:]] = cir.alloca !rec_LT_128, !cir.ptr<!rec_LT_128>
127
- // CHECK: %[[#V1:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_LT_128>), !cir.ptr<!cir.array<!u64i x 2>>
127
+ // CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_LT_128> -> !cir.ptr<!cir.array<!u64i x 2>>
128
128
// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>
129
129
130
130
// LLVM: void @pass_lt_128([2 x i64] %0)
@@ -134,7 +134,7 @@ void pass_lt_128(LT_128 s) {}
134
134
135
135
// CHECK: cir.func {{.*@pass_eq_128}}(%arg0: !cir.array<!u64i x 2>
136
136
// CHECK: %[[#V0:]] = cir.alloca !rec_EQ_128, !cir.ptr<!rec_EQ_128>
137
- // CHECK: %[[#V1:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_EQ_128>), !cir.ptr<!cir.array<!u64i x 2>>
137
+ // CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_EQ_128> -> !cir.ptr<!cir.array<!u64i x 2>>
138
138
// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>
139
139
140
140
// LLVM: void @pass_eq_128([2 x i64] %0)
@@ -175,8 +175,8 @@ GT_128 get_gt_128(GT_128 s) {
175
175
// CHECK: %[[#V1:]] = cir.load{{.*}} %arg0 : !cir.ptr<!rec_GT_128>, !rec_GT_128
176
176
// CHECK: %[[#V2:]] = cir.alloca !rec_GT_128, !cir.ptr<!rec_GT_128>, [""] {alignment = 8 : i64}
177
177
// CHECK: %[[#V3:]] = cir.alloca !rec_GT_128, !cir.ptr<!rec_GT_128>, ["tmp"] {alignment = 8 : i64}
178
- // CHECK: %[[#V4:]] = cir.cast( bitcast, %arg0 : !cir.ptr<!rec_GT_128>), !cir.ptr<!void>
179
- // CHECK: %[[#V5:]] = cir.cast( bitcast, %[[#V3]] : !cir.ptr<!rec_GT_128>), !cir.ptr<!void>
178
+ // CHECK: %[[#V4:]] = cir.cast bitcast %arg0 : !cir.ptr<!rec_GT_128> -> !cir.ptr<!void>
179
+ // CHECK: %[[#V5:]] = cir.cast bitcast %[[#V3]] : !cir.ptr<!rec_GT_128> -> !cir.ptr<!void>
180
180
// CHECK: %[[#V6:]] = cir.const #cir.int<24> : !u64i
181
181
// CHECK: cir.libc.memcpy %[[#V6]] bytes from %[[#V4]] to %[[#V5]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
182
182
// CHECK: cir.call @get_gt_128(%[[#V2]], %[[#V3]]) : (!cir.ptr<!rec_GT_128>, !cir.ptr<!rec_GT_128>) -> ()
@@ -198,8 +198,8 @@ GT_128 call_and_get_gt_128() {
198
198
// CHECK: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, [""] {alignment = 4 : i64}
199
199
// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"] {alignment = 8 : i64}
200
200
// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>
201
- // CHECK: %[[#V2:]] = cir.cast( bitcast, %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>), !cir.ptr<!void>
202
- // CHECK: %[[#V3:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_S>), !cir.ptr<!void>
201
+ // CHECK: %[[#V2:]] = cir.cast bitcast %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>> -> !cir.ptr<!void>
202
+ // CHECK: %[[#V3:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S> -> !cir.ptr<!void>
203
203
// CHECK: %[[#V4:]] = cir.const #cir.int<12> : !u64i
204
204
// CHECK: cir.libc.memcpy %[[#V4]] bytes from %[[#V2]] to %[[#V3]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
205
205
@@ -214,8 +214,8 @@ void passS(S s) {}
214
214
// CHECK: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, ["s"] {alignment = 4 : i64}
215
215
// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"] {alignment = 8 : i64}
216
216
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!rec_S>, !rec_S
217
- // CHECK: %[[#V3:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_S>), !cir.ptr<!void>
218
- // CHECK: %[[#V4:]] = cir.cast( bitcast, %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>), !cir.ptr<!void>
217
+ // CHECK: %[[#V3:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S> -> !cir.ptr<!void>
218
+ // CHECK: %[[#V4:]] = cir.cast bitcast %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>> -> !cir.ptr<!void>
219
219
// CHECK: %[[#V5:]] = cir.const #cir.int<12> : !u64i
220
220
// CHECK: cir.libc.memcpy %[[#V5]] bytes from %[[#V3]] to %[[#V4]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
221
221
// CHECK: %[[#V6:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
@@ -245,8 +245,8 @@ typedef struct {
245
245
// CHECK: %[[#V0:]] = cir.alloca !rec_S_PAD, !cir.ptr<!rec_S_PAD>, ["__retval"] {alignment = 2 : i64}
246
246
// CHECK: %[[#V1:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!rec_S_PAD>, !rec_S_PAD
247
247
// CHECK: %[[#V2:]] = cir.alloca !u48i, !cir.ptr<!u48i>, [""] {alignment = 2 : i64}
248
- // CHECK: %[[#V3:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_S_PAD>)
249
- // CHECK: %[[#V4:]] = cir.cast( bitcast, %[[#V2:]] : !cir.ptr<!u48i>), !cir.ptr<!void>
248
+ // CHECK: %[[#V3:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S_PAD>
249
+ // CHECK: %[[#V4:]] = cir.cast bitcast %[[#V2:]] : !cir.ptr<!u48i> -> !cir.ptr<!void>
250
250
// CHECK: %[[#V5:]] = cir.const #cir.int<6> : !u64i
251
251
// CHECK: cir.libc.memcpy %[[#V5]] bytes from %[[#V3]] to %[[#V4]] : !u64i, !cir.ptr<!void>
252
252
// CHECK: %[[#V6:]] = cir.load{{.*}} %[[#V2]] : !cir.ptr<!u48i>
@@ -292,8 +292,8 @@ typedef struct {
292
292
293
293
// CHECK: cir.func dso_local @pass_nested_u(%arg0: !u64i
294
294
// CHECK: %[[#V0:]] = cir.alloca !rec_NESTED_U, !cir.ptr<!rec_NESTED_U>, [""] {alignment = 4 : i64}
295
- // CHECK: %[[#V1:]] = cir.cast( integral, %arg0 : !u64i), !u16i
296
- // CHECK: %[[#V2:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_NESTED_U>
295
+ // CHECK: %[[#V1:]] = cir.cast integral %arg0 : !u64i -> !u16i
296
+ // CHECK: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_NESTED_U>
297
297
// CHECK: cir.store{{.*}} %[[#V1]], %[[#V2]] : !u16i
298
298
// CHECK: cir.return
299
299
@@ -308,12 +308,12 @@ void pass_nested_u(NESTED_U a) {}
308
308
// CHECK: %[[#V0:]] = cir.alloca !rec_NESTED_U, !cir.ptr<!rec_NESTED_U>
309
309
// CHECK: %[[#V1:]] = cir.alloca !u64i, !cir.ptr<!u64i>, ["tmp"]
310
310
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!rec_NESTED_U>, !rec_NESTED_U
311
- // CHECK: %[[#V3:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_NESTED_U>), !cir.ptr<!rec_anon2E0>
311
+ // CHECK: %[[#V3:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_NESTED_U> -> !cir.ptr<!rec_anon2E0>
312
312
// CHECK: %[[#V4:]] = cir.load{{.*}} %[[#V3]] : !cir.ptr<!rec_anon2E0>, !rec_anon2E0
313
- // CHECK: %[[#V5:]] = cir.cast( bitcast, %[[#V3]] : !cir.ptr<!rec_anon2E0>), !cir.ptr<!rec_anon2E1>
313
+ // CHECK: %[[#V5:]] = cir.cast bitcast %[[#V3]] : !cir.ptr<!rec_anon2E0> -> !cir.ptr<!rec_anon2E1>
314
314
// CHECK: %[[#V6:]] = cir.load{{.*}} %[[#V5]] : !cir.ptr<!rec_anon2E1>, !rec_anon2E1
315
- // CHECK: %[[#V7:]] = cir.cast( bitcast, %[[#V5]] : !cir.ptr<!rec_anon2E1>), !cir.ptr<!void>
316
- // CHECK: %[[#V8:]] = cir.cast( bitcast, %[[#V1]] : !cir.ptr<!u64i>), !cir.ptr<!void>
315
+ // CHECK: %[[#V7:]] = cir.cast bitcast %[[#V5]] : !cir.ptr<!rec_anon2E1> -> !cir.ptr<!void>
316
+ // CHECK: %[[#V8:]] = cir.cast bitcast %[[#V1]] : !cir.ptr<!u64i> -> !cir.ptr<!void>
317
317
// CHECK: %[[#V9:]] = cir.const #cir.int<2> : !u64i
318
318
// CHECK: cir.libc.memcpy %[[#V9]] bytes from %[[#V7]] to %[[#V8]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
319
319
// CHECK: %[[#V10:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!u64i>, !u64i
@@ -360,8 +360,8 @@ void bar(void) {
360
360
// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"]
361
361
// CHECK: %[[#V2:]] = cir.call @foo() : () -> !cir.array<!u64i x 2>
362
362
// CHECK: cir.store{{.*}} %[[#V2]], %[[#V1]] : !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>
363
- // CHECK: %[[#V3:]] = cir.cast( bitcast, %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>), !cir.ptr<!void>
364
- // CHECK: %[[#V4:]] = cir.cast( bitcast, %[[#V0]] : !cir.ptr<!rec_PackedS1>), !cir.ptr<!void>
363
+ // CHECK: %[[#V3:]] = cir.cast bitcast %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>> -> !cir.ptr<!void>
364
+ // CHECK: %[[#V4:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_PackedS1> -> !cir.ptr<!void>
365
365
// CHECK: %[[#V5:]] = cir.const #cir.int<14> : !u64i
366
366
// CHECK: cir.libc.memcpy %[[#V5]] bytes from %[[#V3]] to %[[#V4]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
367
367
@@ -402,7 +402,7 @@ void qux(void) {
402
402
// CHECK: %[[#V5:]] = cir.get_element %[[#V2]][%[[#V3]]] : (!cir.ptr<!cir.array<!rec_PackedS2 x 3>>, !s32i) -> !cir.ptr<!rec_PackedS2>
403
403
// CHECK: cir.store{{.*}} %[[#V5]], %[[#V0]] : !cir.ptr<!rec_PackedS2>, !cir.ptr<!cir.ptr<!rec_PackedS2>>
404
404
// CHECK: %[[#V6:]] = cir.load deref{{.*}} %[[#V0]] : !cir.ptr<!cir.ptr<!rec_PackedS2>>, !cir.ptr<!rec_PackedS2>
405
- // CHECK: %[[#V7:]] = cir.cast( bitcast, %[[#V6]] : !cir.ptr<!rec_PackedS2>), !cir.ptr<!void>
405
+ // CHECK: %[[#V7:]] = cir.cast bitcast %[[#V6]] : !cir.ptr<!rec_PackedS2> -> !cir.ptr<!void>
406
406
// CHECK: %[[#V8:]] = cir.const #cir.int<6> : !u64i
407
407
// CHECK: cir.libc.memcpy %[[#V8]] bytes from %[[#V7]]
408
408
0 commit comments