@@ -29,7 +29,7 @@ typedef struct {
2929
3030// CHECK: cir.func {{.*@ret_lt_64}}() -> !u16i
3131// 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>
3333// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!u16i>, !u16i
3434// CHECK: cir.return %[[#V2]] : !u16i
3535LT_64 ret_lt_64 () {
@@ -39,7 +39,7 @@ LT_64 ret_lt_64() {
3939
4040// CHECK: cir.func {{.*@ret_eq_64}}() -> !u64i
4141// 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>
4343// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!u64i>, !u64i
4444// CHECK: cir.return %[[#V2]] : !u64i
4545EQ_64 ret_eq_64 () {
@@ -49,7 +49,7 @@ EQ_64 ret_eq_64() {
4949
5050// CHECK: cir.func {{.*@ret_lt_128}}() -> !cir.array<!u64i x 2>
5151// 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>>
5353// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
5454// CHECK: cir.return %[[#V2]] : !cir.array<!u64i x 2>
5555LT_128 ret_lt_128 () {
@@ -59,7 +59,7 @@ LT_128 ret_lt_128() {
5959
6060// CHECK: cir.func {{.*@ret_eq_128}}() -> !cir.array<!u64i x 2>
6161// 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>>
6363// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
6464// CHECK: cir.return %[[#V2]] : !cir.array<!u64i x 2>
6565EQ_128 ret_eq_128 () {
@@ -83,8 +83,8 @@ typedef struct {
8383// CHECK: cir.func {{.*@retS}}() -> !cir.array<!u64i x 2>
8484// CHECK: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, ["__retval"] {alignment = 4 : i64}
8585// 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>
8888// CHECK: %[[#V4:]] = cir.const #cir.int<12> : !u64i
8989// CHECK: cir.libc.memcpy %[[#V4]] bytes from %[[#V2]] to %[[#V3]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
9090// CHECK: %[[#V5:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
@@ -102,8 +102,8 @@ S retS() {
102102}
103103// CHECK: cir.func {{.*@pass_lt_64}}(%arg0: !u64
104104// 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>
107107// CHECK: cir.store{{.*}} %[[#V1]], %[[#V2]] : !u16i, !cir.ptr<!u16i>
108108
109109// LLVM: void @pass_lt_64(i64 %0)
@@ -114,7 +114,7 @@ void pass_lt_64(LT_64 s) {}
114114
115115// CHECK: cir.func {{.*@pass_eq_64}}(%arg0: !u64i
116116// 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>
118118// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !u64i, !cir.ptr<!u64i>
119119
120120// LLVM: void @pass_eq_64(i64 %0)
@@ -124,7 +124,7 @@ void pass_eq_64(EQ_64 s) {}
124124
125125// CHECK: cir.func {{.*@pass_lt_128}}(%arg0: !cir.array<!u64i x 2>
126126// 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>>
128128// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>
129129
130130// LLVM: void @pass_lt_128([2 x i64] %0)
@@ -134,7 +134,7 @@ void pass_lt_128(LT_128 s) {}
134134
135135// CHECK: cir.func {{.*@pass_eq_128}}(%arg0: !cir.array<!u64i x 2>
136136// 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>>
138138// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>
139139
140140// LLVM: void @pass_eq_128([2 x i64] %0)
@@ -175,8 +175,8 @@ GT_128 get_gt_128(GT_128 s) {
175175// CHECK: %[[#V1:]] = cir.load{{.*}} %arg0 : !cir.ptr<!rec_GT_128>, !rec_GT_128
176176// CHECK: %[[#V2:]] = cir.alloca !rec_GT_128, !cir.ptr<!rec_GT_128>, [""] {alignment = 8 : i64}
177177// 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>
180180// CHECK: %[[#V6:]] = cir.const #cir.int<24> : !u64i
181181// CHECK: cir.libc.memcpy %[[#V6]] bytes from %[[#V4]] to %[[#V5]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
182182// 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() {
198198// CHECK: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, [""] {alignment = 4 : i64}
199199// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"] {alignment = 8 : i64}
200200// 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>
203203// CHECK: %[[#V4:]] = cir.const #cir.int<12> : !u64i
204204// CHECK: cir.libc.memcpy %[[#V4]] bytes from %[[#V2]] to %[[#V3]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
205205
@@ -214,8 +214,8 @@ void passS(S s) {}
214214// CHECK: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, ["s"] {alignment = 4 : i64}
215215// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"] {alignment = 8 : i64}
216216// 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>
219219// CHECK: %[[#V5:]] = cir.const #cir.int<12> : !u64i
220220// CHECK: cir.libc.memcpy %[[#V5]] bytes from %[[#V3]] to %[[#V4]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
221221// CHECK: %[[#V6:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
@@ -245,8 +245,8 @@ typedef struct {
245245// CHECK: %[[#V0:]] = cir.alloca !rec_S_PAD, !cir.ptr<!rec_S_PAD>, ["__retval"] {alignment = 2 : i64}
246246// CHECK: %[[#V1:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!rec_S_PAD>, !rec_S_PAD
247247// 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>
250250// CHECK: %[[#V5:]] = cir.const #cir.int<6> : !u64i
251251// CHECK: cir.libc.memcpy %[[#V5]] bytes from %[[#V3]] to %[[#V4]] : !u64i, !cir.ptr<!void>
252252// CHECK: %[[#V6:]] = cir.load{{.*}} %[[#V2]] : !cir.ptr<!u48i>
@@ -292,8 +292,8 @@ typedef struct {
292292
293293// CHECK: cir.func dso_local @pass_nested_u(%arg0: !u64i
294294// 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>
297297// CHECK: cir.store{{.*}} %[[#V1]], %[[#V2]] : !u16i
298298// CHECK: cir.return
299299
@@ -308,12 +308,12 @@ void pass_nested_u(NESTED_U a) {}
308308// CHECK: %[[#V0:]] = cir.alloca !rec_NESTED_U, !cir.ptr<!rec_NESTED_U>
309309// CHECK: %[[#V1:]] = cir.alloca !u64i, !cir.ptr<!u64i>, ["tmp"]
310310// 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>
312312// 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>
314314// 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>
317317// CHECK: %[[#V9:]] = cir.const #cir.int<2> : !u64i
318318// CHECK: cir.libc.memcpy %[[#V9]] bytes from %[[#V7]] to %[[#V8]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
319319// CHECK: %[[#V10:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!u64i>, !u64i
@@ -360,8 +360,8 @@ void bar(void) {
360360// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"]
361361// CHECK: %[[#V2:]] = cir.call @foo() : () -> !cir.array<!u64i x 2>
362362// 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>
365365// CHECK: %[[#V5:]] = cir.const #cir.int<14> : !u64i
366366// CHECK: cir.libc.memcpy %[[#V5]] bytes from %[[#V3]] to %[[#V4]] : !u64i, !cir.ptr<!void> -> !cir.ptr<!void>
367367
@@ -402,7 +402,7 @@ void qux(void) {
402402// CHECK: %[[#V5:]] = cir.get_element %[[#V2]][%[[#V3]]] : (!cir.ptr<!cir.array<!rec_PackedS2 x 3>>, !s32i) -> !cir.ptr<!rec_PackedS2>
403403// CHECK: cir.store{{.*}} %[[#V5]], %[[#V0]] : !cir.ptr<!rec_PackedS2>, !cir.ptr<!cir.ptr<!rec_PackedS2>>
404404// 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>
406406// CHECK: %[[#V8:]] = cir.const #cir.int<6> : !u64i
407407// CHECK: cir.libc.memcpy %[[#V8]] bytes from %[[#V7]]
408408
0 commit comments