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