Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions clang/test/CIR/CallConvLowering/AArch64/aarch64-cc-structs.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ typedef struct {
int64_t c;
} GT_128;

// CHECK: cir.func {{.*@ret_lt_64}}() -> !u16i
// CHECK: cir.func {{.*}} @ret_lt_64() -> !u16i
// CHECK: %[[#V0:]] = cir.alloca !rec_LT_64, !cir.ptr<!rec_LT_64>, ["__retval"]
// CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_LT_64> -> !cir.ptr<!u16i>
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!u16i>, !u16i
Expand All @@ -37,7 +37,7 @@ LT_64 ret_lt_64() {
return x;
}

// CHECK: cir.func {{.*@ret_eq_64}}() -> !u64i
// CHECK: cir.func {{.*}} @ret_eq_64() -> !u64i
// CHECK: %[[#V0:]] = cir.alloca !rec_EQ_64, !cir.ptr<!rec_EQ_64>, ["__retval"]
// CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_EQ_64> -> !cir.ptr<!u64i>
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!u64i>, !u64i
Expand All @@ -47,7 +47,7 @@ EQ_64 ret_eq_64() {
return x;
}

// CHECK: cir.func {{.*@ret_lt_128}}() -> !cir.array<!u64i x 2>
// CHECK: cir.func {{.*}} @ret_lt_128() -> !cir.array<!u64i x 2>
// CHECK: %[[#V0:]] = cir.alloca !rec_LT_128, !cir.ptr<!rec_LT_128>, ["__retval"]
// CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_LT_128> -> !cir.ptr<!cir.array<!u64i x 2>>
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
Expand All @@ -57,7 +57,7 @@ LT_128 ret_lt_128() {
return x;
}

// CHECK: cir.func {{.*@ret_eq_128}}() -> !cir.array<!u64i x 2>
// CHECK: cir.func {{.*}} @ret_eq_128() -> !cir.array<!u64i x 2>
// CHECK: %[[#V0:]] = cir.alloca !rec_EQ_128, !cir.ptr<!rec_EQ_128>, ["__retval"]
// CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_EQ_128> -> !cir.ptr<!cir.array<!u64i x 2>>
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V1]] : !cir.ptr<!cir.array<!u64i x 2>>, !cir.array<!u64i x 2>
Expand All @@ -67,7 +67,7 @@ EQ_128 ret_eq_128() {
return x;
}

// CHECK: cir.func {{.*@ret_gt_128}}(%arg0: !cir.ptr<!rec_GT_128>
// CHECK: cir.func {{.*}} @ret_gt_128(%arg0: !cir.ptr<!rec_GT_128>
// CHECK-NOT: cir.return {{%.*}}
GT_128 ret_gt_128() {
GT_128 x;
Expand All @@ -80,7 +80,7 @@ typedef struct {
int c;
} S;

// CHECK: cir.func {{.*@retS}}() -> !cir.array<!u64i x 2>
// CHECK: cir.func {{.*}} @retS() -> !cir.array<!u64i x 2>
// CHECK: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, ["__retval"] {alignment = 4 : i64}
// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"] {alignment = 8 : i64}
// CHECK: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S> -> !cir.ptr<!void>
Expand All @@ -100,7 +100,7 @@ S retS() {
S s;
return s;
}
// CHECK: cir.func {{.*@pass_lt_64}}(%arg0: !u64
// CHECK: cir.func {{.*}} @pass_lt_64(%arg0: !u64
// CHECK: %[[#V0:]] = cir.alloca !rec_LT_64, !cir.ptr<!rec_LT_64>
// CHECK: %[[#V1:]] = cir.cast integral %arg0 : !u64i -> !u16i
// CHECK: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_LT_64> -> !cir.ptr<!u16i>
Expand All @@ -112,7 +112,7 @@ S retS() {
// LLVM: store i16 %[[#V2]], ptr %[[#V1]], align 2
void pass_lt_64(LT_64 s) {}

// CHECK: cir.func {{.*@pass_eq_64}}(%arg0: !u64i
// CHECK: cir.func {{.*}} @pass_eq_64(%arg0: !u64i
// CHECK: %[[#V0:]] = cir.alloca !rec_EQ_64, !cir.ptr<!rec_EQ_64>
// CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_EQ_64> -> !cir.ptr<!u64i>
// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !u64i, !cir.ptr<!u64i>
Expand All @@ -122,7 +122,7 @@ void pass_lt_64(LT_64 s) {}
// LLVM: store i64 %0, ptr %[[#V1]], align 8
void pass_eq_64(EQ_64 s) {}

// CHECK: cir.func {{.*@pass_lt_128}}(%arg0: !cir.array<!u64i x 2>
// CHECK: cir.func {{.*}} @pass_lt_128(%arg0: !cir.array<!u64i x 2>
// CHECK: %[[#V0:]] = cir.alloca !rec_LT_128, !cir.ptr<!rec_LT_128>
// CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_LT_128> -> !cir.ptr<!cir.array<!u64i x 2>>
// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>
Expand All @@ -132,7 +132,7 @@ void pass_eq_64(EQ_64 s) {}
// LLVM: store [2 x i64] %0, ptr %[[#V1]], align 8
void pass_lt_128(LT_128 s) {}

// CHECK: cir.func {{.*@pass_eq_128}}(%arg0: !cir.array<!u64i x 2>
// CHECK: cir.func {{.*}} @pass_eq_128(%arg0: !cir.array<!u64i x 2>
// CHECK: %[[#V0:]] = cir.alloca !rec_EQ_128, !cir.ptr<!rec_EQ_128>
// CHECK: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_EQ_128> -> !cir.ptr<!cir.array<!u64i x 2>>
// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>
Expand All @@ -142,7 +142,7 @@ void pass_lt_128(LT_128 s) {}
// LLVM: store [2 x i64] %0, ptr %[[#V1]], align 8
void pass_eq_128(EQ_128 s) {}

// CHECK: cir.func dso_local @pass_gt_128(%arg0: !cir.ptr<!rec_GT_128>
// CHECK: cir.func {{.*}} @pass_gt_128(%arg0: !cir.ptr<!rec_GT_128>
// CHECK: %[[#V0:]] = cir.alloca !cir.ptr<!rec_GT_128>, !cir.ptr<!cir.ptr<!rec_GT_128>>, [""] {alignment = 8 : i64}
// CHECK: cir.store{{.*}} %arg0, %[[#V0]] : !cir.ptr<!rec_GT_128>, !cir.ptr<!cir.ptr<!rec_GT_128>>
// CHECK: %[[#V1:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!cir.ptr<!rec_GT_128>>, !cir.ptr<!rec_GT_128>
Expand All @@ -153,7 +153,7 @@ void pass_eq_128(EQ_128 s) {}
// LLVM: %[[#V2:]] = load ptr, ptr %[[#V1]], align 8
void pass_gt_128(GT_128 s) {}

// CHECK: cir.func dso_local @get_gt_128(%arg0: !cir.ptr<!rec_GT_128> {{.*}}, %arg1: !cir.ptr<!rec_GT_128>
// CHECK: cir.func {{.*}} @get_gt_128(%arg0: !cir.ptr<!rec_GT_128> {{.*}}, %arg1: !cir.ptr<!rec_GT_128>
// CHECK: %[[#V0:]] = cir.alloca !cir.ptr<!rec_GT_128>, !cir.ptr<!cir.ptr<!rec_GT_128>>, [""] {alignment = 8 : i64}
// CHECK: cir.store{{.*}} %arg1, %[[#V0]] : !cir.ptr<!rec_GT_128>, !cir.ptr<!cir.ptr<!rec_GT_128>>
// CHECK: %[[#V1:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!cir.ptr<!rec_GT_128>>, !cir.ptr<!rec_GT_128>
Expand All @@ -170,7 +170,7 @@ GT_128 get_gt_128(GT_128 s) {
return s;
}

// CHECK: cir.func no_proto dso_local @call_and_get_gt_128(%arg0: !cir.ptr<!rec_GT_128>
// CHECK: cir.func {{.*}} @call_and_get_gt_128(%arg0: !cir.ptr<!rec_GT_128>
// CHECK: %[[#V0:]] = cir.alloca !rec_GT_128, !cir.ptr<!rec_GT_128>, ["tmp"] {alignment = 8 : i64}
// CHECK: %[[#V1:]] = cir.load{{.*}} %arg0 : !cir.ptr<!rec_GT_128>, !rec_GT_128
// CHECK: %[[#V2:]] = cir.alloca !rec_GT_128, !cir.ptr<!rec_GT_128>, [""] {alignment = 8 : i64}
Expand All @@ -194,7 +194,7 @@ GT_128 call_and_get_gt_128() {
s = get_gt_128(s);
return s;
}
// CHECK: cir.func dso_local @passS(%arg0: !cir.array<!u64i x 2>
// CHECK: cir.func {{.*}} @passS(%arg0: !cir.array<!u64i x 2>
// CHECK: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, [""] {alignment = 4 : i64}
// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"] {alignment = 8 : i64}
// CHECK: cir.store{{.*}} %arg0, %[[#V1]] : !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>
Expand All @@ -210,7 +210,7 @@ GT_128 call_and_get_gt_128() {
// LLVM: call void @llvm.memcpy.p0.p0.i64(ptr %[[#V1]], ptr %[[#V2]], i64 12, i1 false)
void passS(S s) {}

// CHECK: @callS()
// CHECK: cir.func {{.*}} @callS()
// CHECK: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, ["s"] {alignment = 4 : i64}
// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"] {alignment = 8 : i64}
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!rec_S>, !rec_S
Expand Down Expand Up @@ -241,7 +241,7 @@ typedef struct {
uint8_t c;
} S_PAD;

// CHECK: cir.func {{.*@ret_s_pad}}() -> !u48i
// CHECK: cir.func {{.*}} @ret_s_pad() -> !u48i
// CHECK: %[[#V0:]] = cir.alloca !rec_S_PAD, !cir.ptr<!rec_S_PAD>, ["__retval"] {alignment = 2 : i64}
// CHECK: %[[#V1:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!rec_S_PAD>, !rec_S_PAD
// CHECK: %[[#V2:]] = cir.alloca !u48i, !cir.ptr<!u48i>, [""] {alignment = 2 : i64}
Expand All @@ -268,7 +268,7 @@ typedef struct {
int a[42];
} CAT;

// CHECK: cir.func dso_local @pass_cat(%arg0: !cir.ptr<!rec_CAT>
// CHECK: cir.func {{.*}} @pass_cat
// CHECK: %[[#V0:]] = cir.alloca !cir.ptr<!rec_CAT>, !cir.ptr<!cir.ptr<!rec_CAT>>, [""] {alignment = 8 : i64}
// CHECK: cir.store{{.*}} %arg0, %[[#V0]] : !cir.ptr<!rec_CAT>, !cir.ptr<!cir.ptr<!rec_CAT>>
// CHECK: %[[#V1:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!cir.ptr<!rec_CAT>>, !cir.ptr<!rec_CAT>
Expand All @@ -290,9 +290,9 @@ typedef struct {
};
} NESTED_U;

// CHECK: cir.func dso_local @pass_nested_u(%arg0: !u64i
// CHECK: cir.func {{.*}} @pass_nested_u(%[[ARG0:[a-z0-9]+]]: !u64i
// CHECK: %[[#V0:]] = cir.alloca !rec_NESTED_U, !cir.ptr<!rec_NESTED_U>, [""] {alignment = 4 : i64}
// CHECK: %[[#V1:]] = cir.cast integral %arg0 : !u64i -> !u16i
// CHECK: %[[#V1:]] = cir.cast integral %[[ARG0]] : !u64i -> !u16i
// CHECK: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_NESTED_U>
// CHECK: cir.store{{.*}} %[[#V1]], %[[#V2]] : !u16i
// CHECK: cir.return
Expand All @@ -304,7 +304,7 @@ typedef struct {
// LLVM: ret void
void pass_nested_u(NESTED_U a) {}

// CHECK: cir.func no_proto dso_local @call_nested_u()
// CHECK: cir.func {{.*}} @call_nested_u()
// CHECK: %[[#V0:]] = cir.alloca !rec_NESTED_U, !cir.ptr<!rec_NESTED_U>
// CHECK: %[[#V1:]] = cir.alloca !u64i, !cir.ptr<!u64i>, ["tmp"]
// CHECK: %[[#V2:]] = cir.load{{.*}} %[[#V0]] : !cir.ptr<!rec_NESTED_U>, !rec_NESTED_U
Expand Down Expand Up @@ -355,7 +355,7 @@ void bar(void) {
PackedS1 y = foo();
}

// CHECK: cir.func dso_local @bar
// CHECK: cir.func {{.*}} @bar
// CHECK: %[[#V0:]] = cir.alloca !rec_PackedS1, !cir.ptr<!rec_PackedS1>, ["y", init]
// CHECK: %[[#V1:]] = cir.alloca !cir.array<!u64i x 2>, !cir.ptr<!cir.array<!u64i x 2>>, ["tmp"]
// CHECK: %[[#V2:]] = cir.call @foo() : () -> !cir.array<!u64i x 2>
Expand Down Expand Up @@ -394,7 +394,7 @@ void qux(void) {
}

// check source of memcpy
// CHECK: cir.func dso_local @qux
// CHECK: cir.func {{.*}} @qux
// CHECK: %[[#V0:]] = cir.alloca !cir.ptr<!rec_PackedS2>, !cir.ptr<!cir.ptr<!rec_PackedS2>>, ["s1", init]
// CHECK: %[[#V1:]] = cir.alloca !u64i, !cir.ptr<!u64i>, ["tmp"]
// CHECK: %[[#V2:]] = cir.get_global @g : !cir.ptr<!cir.array<!rec_PackedS2 x 3>>
Expand Down
24 changes: 12 additions & 12 deletions clang/test/CIR/CallConvLowering/AArch64/basic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,27 +15,27 @@ bool Bool(bool a) {
return Bool(a);
}

// CHECK: cir.func dso_local @_Z5UCharh(%arg0: !u8i loc({{.+}})) -> !u8i
// CHECK: cir.func {{.*}} @_Z5UCharh(%arg0: !u8i loc({{.+}})) -> !u8i
unsigned char UChar(unsigned char c) {
// CHECK: cir.call @_Z5UCharh(%2) : (!u8i) -> !u8i
return UChar(c);
}
// CHECK: cir.func dso_local @_Z6UShortt(%arg0: !u16i loc({{.+}})) -> !u16i
// CHECK: cir.func {{.*}} @_Z6UShortt(%arg0: !u16i loc({{.+}})) -> !u16i
unsigned short UShort(unsigned short s) {
// CHECK: cir.call @_Z6UShortt(%2) : (!u16i) -> !u16i
return UShort(s);
}
// CHECK: cir.func dso_local @_Z4UIntj(%arg0: !u32i loc({{.+}})) -> !u32i
// CHECK: cir.func {{.*}} @_Z4UIntj(%arg0: !u32i loc({{.+}})) -> !u32i
unsigned int UInt(unsigned int i) {
// CHECK: cir.call @_Z4UIntj(%2) : (!u32i) -> !u32i
return UInt(i);
}
// CHECK: cir.func dso_local @_Z5ULongm(%arg0: !u64i loc({{.+}})) -> !u64i
// CHECK: cir.func {{.*}} @_Z5ULongm(%arg0: !u64i loc({{.+}})) -> !u64i
unsigned long ULong(unsigned long l) {
// CHECK: cir.call @_Z5ULongm(%2) : (!u64i) -> !u64i
return ULong(l);
}
// CHECK: cir.func dso_local @_Z9ULongLongy(%arg0: !u64i loc({{.+}})) -> !u64i
// CHECK: cir.func {{.*}} @_Z9ULongLongy(%arg0: !u64i loc({{.+}})) -> !u64i
unsigned long long ULongLong(unsigned long long l) {
// CHECK: cir.call @_Z9ULongLongy(%2) : (!u64i) -> !u64i
return ULongLong(l);
Expand All @@ -44,27 +44,27 @@ unsigned long long ULongLong(unsigned long long l) {

/// Test call conv lowering for trivial signed cases. ///

// CHECK: cir.func dso_local @_Z4Chara(%arg0: !s8i loc({{.+}})) -> !s8i
// CHECK: cir.func {{.*}} @_Z4Chara(%arg0: !s8i loc({{.+}})) -> !s8i
char Char(signed char c) {
// CHECK: cir.call @_Z4Chara(%{{.+}}) : (!s8i) -> !s8i
return Char(c);
}
// CHECK: cir.func dso_local @_Z5Shorts(%arg0: !s16i loc({{.+}})) -> !s16i
// CHECK: cir.func {{.*}} @_Z5Shorts(%arg0: !s16i loc({{.+}})) -> !s16i
short Short(short s) {
// CHECK: cir.call @_Z5Shorts(%{{.+}}) : (!s16i) -> !s16i
return Short(s);
}
// CHECK: cir.func dso_local @_Z3Inti(%arg0: !s32i loc({{.+}})) -> !s32i
// CHECK: cir.func {{.*}} @_Z3Inti(%arg0: !s32i loc({{.+}})) -> !s32i
int Int(int i) {
// CHECK: cir.call @_Z3Inti(%{{.+}}) : (!s32i) -> !s32i
return Int(i);
}
// CHECK: cir.func dso_local @_Z4Longl(%arg0: !s64i loc({{.+}})) -> !s64i
// CHECK: cir.func {{.*}} @_Z4Longl(%arg0: !s64i loc({{.+}})) -> !s64i
long Long(long l) {
// CHECK: cir.call @_Z4Longl(%{{.+}}) : (!s64i) -> !s64i
return Long(l);
}
// CHECK: cir.func dso_local @_Z8LongLongx(%arg0: !s64i loc({{.+}})) -> !s64i
// CHECK: cir.func {{.*}} @_Z8LongLongx(%arg0: !s64i loc({{.+}})) -> !s64i
long long LongLong(long long l) {
// CHECK: cir.call @_Z8LongLongx(%{{.+}}) : (!s64i) -> !s64i
return LongLong(l);
Expand All @@ -73,12 +73,12 @@ long long LongLong(long long l) {

/// Test call conv lowering for floating point. ///

// CHECK: cir.func dso_local @_Z5Floatf(%arg0: !cir.float loc({{.+}})) -> !cir.float
// CHECK: cir.func {{.*}} @_Z5Floatf(%arg0: !cir.float loc({{.+}})) -> !cir.float
float Float(float f) {
// cir.call @_Z5Floatf(%{{.+}}) : (!cir.float) -> !cir.float
return Float(f);
}
// CHECK: cir.func dso_local @_Z6Doubled(%arg0: !cir.double loc({{.+}})) -> !cir.double
// CHECK: cir.func {{.*}} @_Z6Doubled(%arg0: !cir.double loc({{.+}})) -> !cir.double
double Double(double d) {
// cir.call @_Z6Doubled(%{{.+}}) : (!cir.double) -> !cir.double
return Double(d);
Expand Down
4 changes: 2 additions & 2 deletions clang/test/CIR/CallConvLowering/AArch64/ptr-fields.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ typedef struct {

int foo(int x) { return x; }

// CIR: cir.func dso_local @passA(%arg0: !u64i
// CIR: cir.func {{.*}} @passA(%arg0: !u64i
// CIR: %[[#V0:]] = cir.alloca !rec_A, !cir.ptr<!rec_A>, [""] {alignment = 4 : i64}
// CIR: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_A> -> !cir.ptr<!u64i>
// CIR: cir.store{{.*}} %arg0, %[[#V1]] : !u64i, !cir.ptr<!u64i>
Expand All @@ -36,7 +36,7 @@ typedef struct {
S_1* s;
} S_2;

// CIR: cir.func dso_local @passB(%arg0: !u64i
// CIR: cir.func {{.*}} @passB(%arg0: !u64i
// CIR: %[[#V0:]] = cir.alloca !rec_S_2, !cir.ptr<!rec_S_2>, [""] {alignment = 4 : i64}
// CIR: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S_2> -> !cir.ptr<!u64i>
// CIR: cir.store{{.*}} %arg0, %[[#V1]] : !u64i, !cir.ptr<!u64i>
Expand Down
10 changes: 5 additions & 5 deletions clang/test/CIR/CallConvLowering/AArch64/struct.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ typedef struct {
int a, b;
} S;

// CIR: cir.func dso_local @init(%arg0: !u64i
// CIR: cir.func {{.*}} @init(%arg0: !u64i
// CIR: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, [""] {alignment = 4 : i64}
// CIR: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S> -> !cir.ptr<!u64i>
// CIR: cir.store{{.*}} %arg0, %[[#V1]] : !u64i, !cir.ptr<!u64i>
Expand Down Expand Up @@ -40,7 +40,7 @@ S init(S s) {
return s;
}

// CIR: cir.func no_proto dso_local @foo1
// CIR: cir.func {{.*}} @foo1
// CIR: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, ["s"]
// CIR: %[[#V1:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, ["tmp"] {alignment = 4 : i64}
// CIR: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S> -> !cir.ptr<!u64i>
Expand All @@ -63,7 +63,7 @@ void foo1() {
s = init(s);
}

// CIR: cir.func dso_local @foo2(%arg0: !u64i
// CIR: cir.func {{.*}} @foo2(%arg0: !u64i
// CIR: %[[#V0:]] = cir.alloca !rec_S, !cir.ptr<!rec_S>, [""] {alignment = 4 : i64}
// CIR: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S> -> !cir.ptr<!u64i>
// CIR: cir.store{{.*}} %arg0, %[[#V1]] : !u64i, !cir.ptr<!u64i>
Expand Down Expand Up @@ -108,7 +108,7 @@ typedef struct {
char b;
} S2;

// CIR: cir.func dso_local @init2(%arg0: !u16i
// CIR: cir.func {{.*}} @init2(%arg0: !u16i
// CIR: %[[#V0:]] = cir.alloca !rec_S2, !cir.ptr<!rec_S2>, [""] {alignment = 4 : i64}
// CIR: %[[#V1:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S2> -> !cir.ptr<!u16i>
// CIR: cir.store{{.*}} %arg0, %[[#V1]] : !u16i, !cir.ptr<!u16i>
Expand Down Expand Up @@ -143,7 +143,7 @@ S2 init2(S2 s) {
return s;
}

// CIR: cir.func no_proto dso_local @foo3()
// CIR: cir.func {{.*}} @foo3()
// CIR: %[[#V0:]] = cir.alloca !rec_S2, !cir.ptr<!rec_S2>, ["s"]
// CIR: %[[#V1:]] = cir.alloca !rec_S2, !cir.ptr<!rec_S2>, ["tmp"] {alignment = 1 : i64}
// CIR: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_S2> -> !cir.ptr<!u16i>
Expand Down
4 changes: 2 additions & 2 deletions clang/test/CIR/CallConvLowering/AArch64/union.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ typedef union {
int a, b, c;
} U;

// CIR: cir.func dso_local @foo(%arg0: !u64i
// CIR: cir.func {{.*}} @foo(%arg0: !u64i
// CIR: %[[#V0:]] = cir.alloca !rec_U, !cir.ptr<!rec_U>, [""] {alignment = 4 : i64}
// CIR: %[[#V1:]] = cir.cast integral %arg0 : !u64i -> !u32i
// CIR: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_U> -> !cir.ptr<!u32i>
Expand All @@ -23,7 +23,7 @@ typedef union {
// LLVM: ret void
void foo(U u) {}

// CIR: cir.func no_proto dso_local @init() -> !u32i
// CIR: cir.func {{.*}} @init() -> !u32i
// CIR: %[[#V0:]] = cir.alloca !rec_U, !cir.ptr<!rec_U>, ["__retval"] {alignment = 4 : i64}
// CIR: %[[#V1:]] = cir.load %[[#V0]] : !cir.ptr<!rec_U>, !rec_U
// CIR: %[[#V2:]] = cir.cast bitcast %[[#V0]] : !cir.ptr<!rec_U> -> !cir.ptr<!u32i>
Expand Down
Loading