|
1 | 1 | // Global variables of intergal types
|
2 |
| -// RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-linux-gnu -fclangir -emit-llvm %s -o - | FileCheck %s |
| 2 | +// RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-linux-gnu -fclangir -emit-llvm %s -o %t-cir.ll |
| 3 | +// RUN: FileCheck %s --input-file %t-cir.ll |
| 4 | +// RUN: %clang_cc1 -std=c++20 -triple x86_64-unknown-linux-gnu -emit-llvm %s -o %t.ll |
| 5 | +// RUN: FileCheck %s -check-prefix=OGCG --input-file %t.ll |
3 | 6 |
|
4 |
| -// Note: Currently unsupported features include alignment.. |
| 7 | +// Note: The differences between CHECK and OGCG represent incorrect IR lowering |
| 8 | +// with ClangIR enabled and will be fixed in a future patch. |
5 | 9 |
|
6 | 10 | char c;
|
7 |
| -// CHECK: @c = dso_local global i8 0 |
| 11 | +// CHECK: @c = dso_local global i8 0, align 1 |
| 12 | +// OGCG: @c = global i8 0, align 1 |
8 | 13 |
|
9 | 14 | signed char sc;
|
10 |
| -// CHECK: @sc = dso_local global i8 0 |
| 15 | +// CHECK: @sc = dso_local global i8 0, align 1 |
| 16 | +// OGCG: @sc = global i8 0, align 1 |
11 | 17 |
|
12 | 18 | unsigned char uc;
|
13 |
| -// CHECK: @uc = dso_local global i8 0 |
| 19 | +// CHECK: @uc = dso_local global i8 0, align 1 |
| 20 | +// OGCG: @uc = global i8 0, align 1 |
14 | 21 |
|
15 | 22 | short ss;
|
16 |
| -// CHECK: @ss = dso_local global i16 0 |
| 23 | +// CHECK: @ss = dso_local global i16 0, align 2 |
| 24 | +// OGCG: @ss = global i16 0, align 2 |
17 | 25 |
|
18 | 26 | unsigned short us = 100;
|
19 |
| -// CHECK: @us = dso_local global i16 100 |
| 27 | +// CHECK: @us = dso_local global i16 100, align 2 |
| 28 | +// OGCG: @us = global i16 100, align 2 |
20 | 29 |
|
21 | 30 | int si = 42;
|
22 |
| -// CHECK: @si = dso_local global i32 42 |
| 31 | +// CHECK: @si = dso_local global i32 42, align 4 |
| 32 | +// OGCG: @si = global i32 42, align 4 |
23 | 33 |
|
24 | 34 | unsigned ui;
|
25 |
| -// CHECK: @ui = dso_local global i32 0 |
| 35 | +// CHECK: @ui = dso_local global i32 0, align 4 |
| 36 | +// OGCG: @ui = global i32 0, align 4 |
26 | 37 |
|
27 | 38 | long sl;
|
28 |
| -// CHECK: @sl = dso_local global i64 0 |
| 39 | +// CHECK: @sl = dso_local global i64 0, align 8 |
| 40 | +// OGCG: @sl = global i64 0, align 8 |
29 | 41 |
|
30 | 42 | unsigned long ul;
|
31 |
| -// CHECK: @ul = dso_local global i64 0 |
| 43 | +// CHECK: @ul = dso_local global i64 0, align 8 |
| 44 | +// OGCG: @ul = global i64 0, align 8 |
32 | 45 |
|
33 | 46 | long long sll;
|
34 |
| -// CHECK: @sll = dso_local global i64 0 |
| 47 | +// CHECK: @sll = dso_local global i64 0, align 8 |
| 48 | +// OGCG: @sll = global i64 0, align 8 |
35 | 49 |
|
36 | 50 | unsigned long long ull = 123456;
|
37 |
| -// CHECK: @ull = dso_local global i64 123456 |
| 51 | +// CHECK: @ull = dso_local global i64 123456, align 8 |
| 52 | +// OGCG: @ull = global i64 123456, align 8 |
38 | 53 |
|
39 | 54 | __int128 s128;
|
40 |
| -// CHECK: @s128 = dso_local global i128 0 |
| 55 | +// CHECK: @s128 = dso_local global i128 0, align 16 |
| 56 | +// OGCG: @s128 = global i128 0, align 16 |
41 | 57 |
|
42 | 58 | unsigned __int128 u128;
|
43 |
| -// CHECK: @u128 = dso_local global i128 0 |
| 59 | +// CHECK: @u128 = dso_local global i128 0, align 16 |
| 60 | +// OGCG: @u128 = global i128 0, align 16 |
44 | 61 |
|
45 | 62 | wchar_t wc;
|
46 |
| -// CHECK: @wc = dso_local global i32 0 |
| 63 | +// CHECK: @wc = dso_local global i32 0, align 4 |
| 64 | +// OGCG: @wc = global i32 0, align 4 |
47 | 65 |
|
48 | 66 | char8_t c8;
|
49 |
| -// CHECK: @c8 = dso_local global i8 0 |
| 67 | +// CHECK: @c8 = dso_local global i8 0, align 1 |
| 68 | +// OGCG: @c8 = global i8 0, align 1 |
50 | 69 |
|
51 | 70 | char16_t c16;
|
52 |
| -// CHECK: @c16 = dso_local global i16 0 |
| 71 | +// CHECK: @c16 = dso_local global i16 0, align 2 |
| 72 | +// OGCG: @c16 = global i16 0, align 2 |
53 | 73 |
|
54 | 74 | char32_t c32;
|
55 |
| -// CHECK: @c32 = dso_local global i32 0 |
| 75 | +// CHECK: @c32 = dso_local global i32 0, align 4 |
| 76 | +// OGCG: @c32 = global i32 0, align 4 |
56 | 77 |
|
57 | 78 | _BitInt(20) sb20;
|
58 |
| -// CHECK: @sb20 = dso_local global i20 0 |
| 79 | +// CHECK: @sb20 = dso_local global i20 0, align 4 |
| 80 | +// OGCG: @sb20 = global i32 0, align 4 |
59 | 81 |
|
60 | 82 | unsigned _BitInt(48) ub48;
|
61 |
| -// CHECK: @ub48 = dso_local global i48 0 |
| 83 | +// CHECK: @ub48 = dso_local global i48 0, align 8 |
| 84 | +// OGCG: @ub48 = global i64 0, align 8 |
62 | 85 |
|
63 | 86 | bool boolfalse = false;
|
64 |
| -// CHECK: @boolfalse = dso_local global i8 0 |
| 87 | +// CHECK: @boolfalse = dso_local global i8 0, align 1 |
| 88 | +// OGCG: @boolfalse = global i8 0, align 1 |
65 | 89 |
|
66 | 90 | _Float16 f16;
|
67 |
| -// CHECK: @f16 = dso_local global half |
| 91 | +// CHECK: @f16 = dso_local global half 0xH0000, align 2 |
| 92 | +// OGCG: @f16 = global half 0xH0000, align 2 |
68 | 93 |
|
69 | 94 | __bf16 bf16;
|
70 |
| -// CHECK: @bf16 = dso_local global bfloat |
| 95 | +// CHECK: @bf16 = dso_local global bfloat 0xR0000, align 2 |
| 96 | +// OGCG: @bf16 = global bfloat 0xR0000, align 2 |
71 | 97 |
|
72 | 98 | float f;
|
73 |
| -// CHECK: @f = dso_local global float 0.000000e+00 |
| 99 | +// CHECK: @f = dso_local global float 0.000000e+00, align 4 |
| 100 | +// OGCG: @f = global float 0.000000e+00, align 4 |
74 | 101 |
|
75 | 102 | double d = 1.25;
|
76 |
| -// CHECK: @d = dso_local global double 1.250000e+00 |
| 103 | +// CHECK: @d = dso_local global double 1.250000e+00, align 8 |
| 104 | +// OGCG: @d = global double 1.250000e+00, align 8 |
77 | 105 |
|
78 | 106 | long double ld;
|
79 |
| -// CHECK: @ld = dso_local global x86_fp80 0xK00 |
| 107 | +// CHECK: @ld = dso_local global x86_fp80 0xK00000000000000000000, align 16 |
| 108 | +// OGCG: @ld = global x86_fp80 0xK00000000000000000000, align 16 |
80 | 109 |
|
81 | 110 | __float128 f128;
|
82 |
| -// CHECK: @f128 = dso_local global fp128 0xL00 |
| 111 | +// CHECK: @f128 = dso_local global fp128 0xL00000000000000000000000000000000, align 16 |
| 112 | +// OGCG: @f128 = global fp128 0xL00000000000000000000000000000000, align 16 |
83 | 113 |
|
84 | 114 | void *vp;
|
85 |
| -// CHECK: @vp = dso_local global ptr null |
| 115 | +// CHECK: @vp = dso_local global ptr null, align 8 |
| 116 | +// OGCG: @vp = global ptr null, align 8 |
86 | 117 |
|
87 | 118 | int *ip = 0;
|
88 |
| -// CHECK: @ip = dso_local global ptr null |
| 119 | +// CHECK: @ip = dso_local global ptr null, align 8 |
| 120 | +// OGCG: @ip = global ptr null, align 8 |
89 | 121 |
|
90 | 122 | double *dp;
|
91 |
| -// CHECK: @dp = dso_local global ptr null |
| 123 | +// CHECK: @dp = dso_local global ptr null, align 8 |
| 124 | +// OGCG: @dp = global ptr null, align 8 |
92 | 125 |
|
93 | 126 | char **cpp;
|
94 |
| -// CHECK: @cpp = dso_local global ptr null |
| 127 | +// CHECK: @cpp = dso_local global ptr null, align 8 |
| 128 | +// OGCG: @cpp = global ptr null, align 8 |
95 | 129 |
|
96 | 130 | void (*fp)();
|
97 |
| -// CHECK: @fp = dso_local global ptr null |
| 131 | +// CHECK: @fp = dso_local global ptr null, align 8 |
| 132 | +// OGCG: @fp = global ptr null, align 8 |
98 | 133 |
|
99 | 134 | int (*fpii)(int) = 0;
|
100 |
| -// CHECK: @fpii = dso_local global ptr null |
| 135 | +// CHECK: @fpii = dso_local global ptr null, align 8 |
| 136 | +// OGCG: @fpii = global ptr null, align 8 |
101 | 137 |
|
102 | 138 | void (*fpvar)(int, ...);
|
103 |
| -// CHECK: @fpvar = dso_local global ptr null |
| 139 | +// CHECK: @fpvar = dso_local global ptr null, align 8 |
| 140 | +// OGCG: @fpvar = global ptr null, align 8 |
0 commit comments