@@ -7,10 +7,10 @@ struct S {
7
7
8
8
// CHECK: [[CBLayout:%.*]] = type <{ [2 x float], [2 x <4 x i32>], [2 x [2 x i32]], [1 x target("dx.Layout", %S, 8, 0, 4)] }>
9
9
// CHECK: @CBArrays.cb = global target("dx.CBuffer", target("dx.Layout", [[CBLayout]], 136, 0, 32, 64, 128))
10
- // CHECK: @c1 = external addrspace(2) global [2 x float], align 4
11
- // CHECK: @c2 = external addrspace(2) global [2 x <4 x i32>], align 16
12
- // CHECK: @c3 = external addrspace(2) global [2 x [2 x i32]], align 4
13
- // CHECK: @c4 = external addrspace(2) global [1 x target("dx.Layout", %S, 8, 0, 4)], align 1
10
+ // CHECK: @c1 = external hidden addrspace(2) global [2 x float], align 4
11
+ // CHECK: @c2 = external hidden addrspace(2) global [2 x <4 x i32>], align 16
12
+ // CHECK: @c3 = external hidden addrspace(2) global [2 x [2 x i32]], align 4
13
+ // CHECK: @c4 = external hidden addrspace(2) global [1 x target("dx.Layout", %S, 8, 0, 4)], align 1
14
14
15
15
cbuffer CBArrays : register (b0) {
16
16
float c1[2 ];
@@ -19,7 +19,7 @@ cbuffer CBArrays : register(b0) {
19
19
S c4[1 ];
20
20
}
21
21
22
- // CHECK-LABEL: define void {{.*}}arr_assign1
22
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign1
23
23
// CHECK: [[Arr:%.*]] = alloca [2 x i32], align 4
24
24
// CHECK-NEXT: [[Arr2:%.*]] = alloca [2 x i32], align 4
25
25
// CHECK-NOT: alloca
@@ -33,7 +33,7 @@ void arr_assign1() {
33
33
Arr = Arr2;
34
34
}
35
35
36
- // CHECK-LABEL: define void {{.*}}arr_assign2
36
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign2
37
37
// CHECK: [[Arr:%.*]] = alloca [2 x i32], align 4
38
38
// CHECK-NEXT: [[Arr2:%.*]] = alloca [2 x i32], align 4
39
39
// CHECK-NEXT: [[Arr3:%.*]] = alloca [2 x i32], align 4
@@ -51,7 +51,7 @@ void arr_assign2() {
51
51
Arr = Arr2 = Arr3;
52
52
}
53
53
54
- // CHECK-LABEL: define void {{.*}}arr_assign3
54
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign3
55
55
// CHECK: [[Arr3:%.*]] = alloca [2 x [2 x i32]], align 4
56
56
// CHECK-NEXT: [[Arr4:%.*]] = alloca [2 x [2 x i32]], align 4
57
57
// CHECK-NOT: alloca
@@ -65,7 +65,7 @@ void arr_assign3() {
65
65
Arr2 = Arr3;
66
66
}
67
67
68
- // CHECK-LABEL: define void {{.*}}arr_assign4
68
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign4
69
69
// CHECK: [[Arr:%.*]] = alloca [2 x i32], align 4
70
70
// CHECK-NEXT: [[Arr2:%.*]] = alloca [2 x i32], align 4
71
71
// CHECK-NOT: alloca
@@ -81,7 +81,7 @@ void arr_assign4() {
81
81
(Arr = Arr2)[0 ] = 6 ;
82
82
}
83
83
84
- // CHECK-LABEL: define void {{.*}}arr_assign5
84
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign5
85
85
// CHECK: [[Arr:%.*]] = alloca [2 x i32], align 4
86
86
// CHECK-NEXT: [[Arr2:%.*]] = alloca [2 x i32], align 4
87
87
// CHECK-NEXT: [[Arr3:%.*]] = alloca [2 x i32], align 4
@@ -101,7 +101,7 @@ void arr_assign5() {
101
101
(Arr = Arr2 = Arr3)[0 ] = 6 ;
102
102
}
103
103
104
- // CHECK-LABEL: define void {{.*}}arr_assign6
104
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign6
105
105
// CHECK: [[Arr3:%.*]] = alloca [2 x [2 x i32]], align 4
106
106
// CHECK-NEXT: [[Arr4:%.*]] = alloca [2 x [2 x i32]], align 4
107
107
// CHECK-NOT: alloca
@@ -118,7 +118,7 @@ void arr_assign6() {
118
118
(Arr = Arr2)[0 ][0 ] = 6 ;
119
119
}
120
120
121
- // CHECK-LABEL: define void {{.*}}arr_assign7
121
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign7
122
122
// CHECK: [[Arr:%.*]] = alloca [2 x [2 x i32]], align 4
123
123
// CHECK-NEXT: [[Arr2:%.*]] = alloca [2 x [2 x i32]], align 4
124
124
// CHECK-NOT: alloca
@@ -138,7 +138,7 @@ void arr_assign7() {
138
138
139
139
// Verify you can assign from a cbuffer array
140
140
141
- // CHECK-LABEL: define void {{.*}}arr_assign8
141
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign8
142
142
// CHECK: [[C:%.*]] = alloca [2 x float], align 4
143
143
// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i32(ptr align 4 [[C]], ptr align 4 {{.*}}, i32 8, i1 false)
144
144
// CHECK-NEXT: call void @llvm.memcpy.p0.p2.i32(ptr align 4 [[C]], ptr addrspace(2) align 4 @c1, i32 8, i1 false)
@@ -148,7 +148,7 @@ void arr_assign8() {
148
148
C = c1;
149
149
}
150
150
151
- // CHECK-LABEL: define void {{.*}}arr_assign9
151
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign9
152
152
// CHECK: [[C:%.*]] = alloca [2 x <4 x i32>], align 16
153
153
// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i32(ptr align 16 [[C]], ptr align 16 {{.*}}, i32 32, i1 false)
154
154
// CHECK-NEXT: call void @llvm.memcpy.p0.p2.i32(ptr align 16 [[C]], ptr addrspace(2) align 16 @c2, i32 32, i1 false)
@@ -158,7 +158,7 @@ void arr_assign9() {
158
158
C = c2;
159
159
}
160
160
161
- // CHECK-LABEL: define void {{.*}}arr_assign10
161
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign10
162
162
// CHECK: [[C:%.*]] = alloca [2 x [2 x i32]], align 4
163
163
// CHECK-NEXT: call void @llvm.memcpy.p0.p0.i32(ptr align 4 [[C]], ptr align 4 {{.*}}, i32 16, i1 false)
164
164
// CHECK-NEXT: call void @llvm.memcpy.p0.p2.i32(ptr align 4 [[C]], ptr addrspace(2) align 4 @c3, i32 16, i1 false)
@@ -168,7 +168,7 @@ void arr_assign10() {
168
168
C = c3;
169
169
}
170
170
171
- // CHECK-LABEL: define void {{.*}}arr_assign11
171
+ // CHECK-LABEL: define hidden void {{.*}}arr_assign11
172
172
// CHECK: [[C:%.*]] = alloca [1 x %struct.S], align 1
173
173
// CHECK: call void @llvm.memcpy.p0.p2.i32(ptr align 1 [[C]], ptr addrspace(2) align 1 @c4, i32 8, i1 false)
174
174
// CHECK-NEXT: ret void
0 commit comments