44#include <stdint.h>
55
66typedef struct {
7- short a ;
7+ short a ;
88} LT_64 ;
99
1010typedef struct {
@@ -67,7 +67,7 @@ EQ_128 ret_eq_128() {
6767 return x ;
6868}
6969
70- // CHECK: cir.func {{.*@ret_gt_128}}(%arg0: !cir.ptr<!rec_GT_128>
70+ // CHECK: cir.func {{.*@ret_gt_128}}(%arg0: !cir.ptr<!rec_GT_128>
7171// CHECK-NOT: cir.return {{%.*}}
7272GT_128 ret_gt_128 () {
7373 GT_128 x ;
@@ -77,7 +77,7 @@ GT_128 ret_gt_128() {
7777typedef struct {
7878 int a ;
7979 int b ;
80- int c ;
80+ int c ;
8181} S ;
8282
8383// CHECK: cir.func {{.*@retS}}() -> !cir.array<!u64i x 2>
@@ -90,7 +90,7 @@ typedef struct {
9090// CHECK: %[[#V5:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
9191// CHECK: cir.return %[[#V5]] : !cir.array<!u64i x 2>
9292
93- // LLVM: [2 x i64] @retS()
93+ // LLVM: [2 x i64] @retS()
9494// LLVM: %[[#V1:]] = alloca %struct.S, i64 1, align 4
9595// LLVM: %[[#V2:]] = alloca [2 x i64], i64 1, align 8
9696// LLVM: call void @llvm.memcpy.p0.p0.i64(ptr %[[#V2]], ptr %[[#V1]], i64 12, i1 false)
@@ -142,7 +142,7 @@ void pass_lt_128(LT_128 s) {}
142142// LLVM: store [2 x i64] %0, ptr %[[#V1]], align 8
143143void pass_eq_128 (EQ_128 s ) {}
144144
145- // CHECK: cir.func @pass_gt_128(%arg0: !cir.ptr<!rec_GT_128>
145+ // CHECK: cir.func dso_local @pass_gt_128(%arg0: !cir.ptr<!rec_GT_128>
146146// CHECK: %[[#V0:]] = cir.alloca !cir.ptr<!rec_GT_128>, !cir.ptr<!cir.ptr<!rec_GT_128>>, [""] {alignment = 8 : i64}
147147// CHECK: cir.store{{.*}} %arg0, %[[#V0]] : !cir.ptr<!rec_GT_128>, !cir.ptr<!cir.ptr<!rec_GT_128>>
148148// CHECK: %[[#V1:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!cir.ptr<!rec_GT_128>>, !cir.ptr<!rec_GT_128>
@@ -153,7 +153,7 @@ void pass_eq_128(EQ_128 s) {}
153153// LLVM: %[[#V2:]] = load ptr, ptr %[[#V1]], align 8
154154void pass_gt_128 (GT_128 s ) {}
155155
156- // CHECK: cir.func @get_gt_128(%arg0: !cir.ptr<!rec_GT_128> {{.*}}, %arg1: !cir.ptr<!rec_GT_128>
156+ // CHECK: cir.func dso_local @get_gt_128(%arg0: !cir.ptr<!rec_GT_128> {{.*}}, %arg1: !cir.ptr<!rec_GT_128>
157157// CHECK: %[[#V0:]] = cir.alloca !cir.ptr<!rec_GT_128>, !cir.ptr<!cir.ptr<!rec_GT_128>>, [""] {alignment = 8 : i64}
158158// CHECK: cir.store{{.*}} %arg1, %[[#V0]] : !cir.ptr<!rec_GT_128>, !cir.ptr<!cir.ptr<!rec_GT_128>>
159159// CHECK: %[[#V1:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!cir.ptr<!rec_GT_128>>, !cir.ptr<!rec_GT_128>
@@ -170,7 +170,7 @@ GT_128 get_gt_128(GT_128 s) {
170170 return s ;
171171}
172172
173- // CHECK: cir.func no_proto @call_and_get_gt_128(%arg0: !cir.ptr<!rec_GT_128>
173+ // CHECK: cir.func no_proto dso_local @call_and_get_gt_128(%arg0: !cir.ptr<!rec_GT_128>
174174// CHECK: %[[#V0:]] = cir.alloca !rec_GT_128, !cir.ptr<!rec_GT_128>, ["tmp"] {alignment = 8 : i64}
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}
@@ -194,7 +194,7 @@ GT_128 call_and_get_gt_128() {
194194 s = get_gt_128 (s );
195195 return s ;
196196}
197- // CHECK: cir.func @passS(%arg0: !cir.array<!u64i x 2>
197+ // CHECK: cir.func dso_local @passS(%arg0: !cir.array<!u64i x 2>
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>>
@@ -268,7 +268,7 @@ typedef struct {
268268 int a [42 ];
269269} CAT ;
270270
271- // CHECK: cir.func @pass_cat(%arg0: !cir.ptr<!rec_CAT>
271+ // CHECK: cir.func dso_local @pass_cat(%arg0: !cir.ptr<!rec_CAT>
272272// CHECK: %[[#V0:]] = cir.alloca !cir.ptr<!rec_CAT>, !cir.ptr<!cir.ptr<!rec_CAT>>, [""] {alignment = 8 : i64}
273273// CHECK: cir.store{{.*}} %arg0, %[[#V0]] : !cir.ptr<!rec_CAT>, !cir.ptr<!cir.ptr<!rec_CAT>>
274274// CHECK: %[[#V1:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!cir.ptr<!rec_CAT>>, !cir.ptr<!rec_CAT>
@@ -290,7 +290,7 @@ typedef struct {
290290 };
291291} NESTED_U ;
292292
293- // CHECK: cir.func @pass_nested_u(%arg0: !u64i
293+ // 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}
295295// CHECK: %[[#V1:]] = cir.cast(integral, %arg0 : !u64i), !u16i
296296// CHECK: %[[#V2:]] = cir.cast(bitcast, %[[#V0]] : !cir.ptr<!rec_NESTED_U>
@@ -304,7 +304,7 @@ typedef struct {
304304// LLVM: ret void
305305void pass_nested_u (NESTED_U a ) {}
306306
307- // CHECK: cir.func no_proto @call_nested_u()
307+ // CHECK: cir.func no_proto dso_local @call_nested_u()
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
@@ -355,7 +355,7 @@ void bar(void) {
355355 PackedS1 y = foo ();
356356}
357357
358- // CHECK: cir.func @bar
358+ // CHECK: cir.func dso_local @bar
359359// CHECK: %[[#V0:]] = cir.alloca !rec_PackedS1, !cir.ptr<!rec_PackedS1>, ["y", init]
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>
@@ -394,7 +394,7 @@ void qux(void) {
394394}
395395
396396// check source of memcpy
397- // CHECK: cir.func @qux
397+ // CHECK: cir.func dso_local @qux
398398// CHECK: %[[#V0:]] = cir.alloca !cir.ptr<!rec_PackedS2>, !cir.ptr<!cir.ptr<!rec_PackedS2>>, ["s1", init]
399399// CHECK: %[[#V1:]] = cir.alloca !u64i, !cir.ptr<!u64i>, ["tmp"]
400400// CHECK: %[[#V2:]] = cir.get_global @g : !cir.ptr<!cir.array<!rec_PackedS2 x 3>>
@@ -403,9 +403,9 @@ void qux(void) {
403403// CHECK: %[[#V5:]] = cir.ptr_stride(%[[#V4]] : !cir.ptr<!rec_PackedS2>, %[[#V3]] : !s32i), !cir.ptr<!rec_PackedS2>
404404// CHECK: cir.store{{.*}} %[[#V5]], %[[#V0]] : !cir.ptr<!rec_PackedS2>, !cir.ptr<!cir.ptr<!rec_PackedS2>>
405405// CHECK: %[[#V6:]] = cir.load deref{{.*}} %[[#V0]] : !cir.ptr<!cir.ptr<!rec_PackedS2>>, !cir.ptr<!rec_PackedS2>
406- // CHECK: %[[#V7:]] = cir.cast(bitcast, %[[#V6]] : !cir.ptr<!rec_PackedS2>), !cir.ptr<!void>
406+ // CHECK: %[[#V7:]] = cir.cast(bitcast, %[[#V6]] : !cir.ptr<!rec_PackedS2>), !cir.ptr<!void>
407407// CHECK: %[[#V8:]] = cir.const #cir.int<6> : !u64i
408- // CHECK: cir.libc.memcpy %[[#V8]] bytes from %[[#V7]]
408+ // CHECK: cir.libc.memcpy %[[#V8]] bytes from %[[#V7]]
409409
410410// Note: GEP emitted by cir might not be the same as LLVM, due to constant folding.
411411// LLVM: void @qux
0 commit comments