|
1 | 1 | // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fclangir -emit-cir %s -o %t.cir -O1
|
2 | 2 | // RUN: FileCheck --check-prefix=CIR --input-file=%t.cir %s
|
| 3 | +// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fclangir -emit-llvm %s -o %t.ll -O1 -disable-llvm-passes |
| 4 | +// RUN: FileCheck --check-prefix=LLVM --input-file=%t.ll %s |
3 | 5 |
|
4 |
| - |
5 |
| -// CIR: #tbaa[[tbaa_NYI:.*]] = #cir.tbaa |
| 6 | +// CIR: #tbaa[[BitInt33:.*]] = #cir.tbaa_scalar<id = "_BitInt(33)", type = !cir.int<s, 33>> |
| 7 | +// CIR: #tbaa[[BitInt31:.*]] = #cir.tbaa_scalar<id = "_BitInt(31)", type = !cir.int<s, 31>> |
6 | 8 |
|
7 | 9 | _BitInt(33) a;
|
8 | 10 | _BitInt(31) b;
|
9 | 11 | void c() {
|
10 |
| - // CIR: %{{.*}} = cir.load %{{.*}} : !cir.ptr<!cir.int<s, 33>>, !cir.int<s, 33> tbaa(#tbaa[[tbaa_NYI]]) |
11 |
| - // CIR: cir.store %{{.*}}, %{{.*}} : !cir.int<s, 31>, !cir.ptr<!cir.int<s, 31>> tbaa(#tbaa[[tbaa_NYI]]) |
| 12 | + // CIR-LABEL: cir.func {{.*}} @c() |
| 13 | + // CIR: %{{.*}} = cir.load %{{.*}} : !cir.ptr<!cir.int<s, 33>>, !cir.int<s, 33> tbaa(#tbaa[[BitInt33]]) |
| 14 | + // CIR: cir.store %{{.*}}, %{{.*}} : !cir.int<s, 31>, !cir.ptr<!cir.int<s, 31>> tbaa(#tbaa[[BitInt31]]) |
| 15 | + |
| 16 | + // LLVM-LABEL: define {{.*}} void @c() |
| 17 | + // LLVM: %{{.*}} = load i33, ptr @a, align 8, !tbaa [[tbaa_tag_bitint_33:!.*]] |
| 18 | + // LLVM: store i31 %{{.*}}, ptr @b, align 4, !tbaa [[tbaa_tag_bitint_31:!.*]] |
12 | 19 | b = a;
|
13 | 20 | }
|
| 21 | +// LLVM: [[tbaa_tag_bitint_33]] = !{[[TYPE_bitint_33:!.*]], [[TYPE_bitint_33]], i64 0} |
| 22 | +// LLVM: [[TYPE_bitint_33]] = !{!"_BitInt(33)", [[TYPE_char:!.*]], i64 0} |
| 23 | +// LLVM: [[TYPE_char]] = !{!"omnipotent char", [[TAG_c_tbaa:!.*]], i64 0} |
| 24 | +// LLVM: [[TAG_c_tbaa]] = !{!"Simple C/C++ TBAA"} |
| 25 | +// LLVM: [[tbaa_tag_bitint_31]] = !{[[TYPE_bitint_31:!.*]], [[TYPE_bitint_31]], i64 0} |
| 26 | +// LLVM: [[TYPE_bitint_31]] = !{!"_BitInt(31)", [[TYPE_char:!.*]], i64 0} |
0 commit comments