blob: 1119aa469449b3b47d44f84d140111ef35924ffc [file] [log] [blame]
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +00001; RUN: llc < %s -march=ptx | FileCheck %s
2
Justin Holewinskifbc8d302011-03-14 15:40:11 +00003;CHECK: .extern .global .b8 array_i16[20];
Che-Liang Chiou65b14762011-03-02 03:20:28 +00004@array_i16 = external global [10 x i16]
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +00005
Justin Holewinskifbc8d302011-03-14 15:40:11 +00006;CHECK: .extern .const .b8 array_constant_i16[20];
Che-Liang Chiou65b14762011-03-02 03:20:28 +00007@array_constant_i16 = external addrspace(1) constant [10 x i16]
Che-Liang Chiou3ee05012010-12-30 10:41:27 +00008
Justin Holewinskifbc8d302011-03-14 15:40:11 +00009;CHECK: .extern .local .b8 array_local_i16[20];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000010@array_local_i16 = external addrspace(2) global [10 x i16]
Che-Liang Chiou3ee05012010-12-30 10:41:27 +000011
Justin Holewinskifbc8d302011-03-14 15:40:11 +000012;CHECK: .extern .shared .b8 array_shared_i16[20];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000013@array_shared_i16 = external addrspace(4) global [10 x i16]
Che-Liang Chiou3ee05012010-12-30 10:41:27 +000014
Justin Holewinskifbc8d302011-03-14 15:40:11 +000015;CHECK: .extern .global .b8 array_i32[40];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000016@array_i32 = external global [10 x i32]
17
Justin Holewinskifbc8d302011-03-14 15:40:11 +000018;CHECK: .extern .const .b8 array_constant_i32[40];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000019@array_constant_i32 = external addrspace(1) constant [10 x i32]
20
Justin Holewinskifbc8d302011-03-14 15:40:11 +000021;CHECK: .extern .local .b8 array_local_i32[40];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000022@array_local_i32 = external addrspace(2) global [10 x i32]
23
Justin Holewinskifbc8d302011-03-14 15:40:11 +000024;CHECK: .extern .shared .b8 array_shared_i32[40];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000025@array_shared_i32 = external addrspace(4) global [10 x i32]
26
Justin Holewinskifbc8d302011-03-14 15:40:11 +000027;CHECK: .extern .global .b8 array_i64[80];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000028@array_i64 = external global [10 x i64]
29
Justin Holewinskifbc8d302011-03-14 15:40:11 +000030;CHECK: .extern .const .b8 array_constant_i64[80];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000031@array_constant_i64 = external addrspace(1) constant [10 x i64]
32
Justin Holewinskifbc8d302011-03-14 15:40:11 +000033;CHECK: .extern .local .b8 array_local_i64[80];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000034@array_local_i64 = external addrspace(2) global [10 x i64]
35
Justin Holewinskifbc8d302011-03-14 15:40:11 +000036;CHECK: .extern .shared .b8 array_shared_i64[80];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000037@array_shared_i64 = external addrspace(4) global [10 x i64]
38
Justin Holewinskifbc8d302011-03-14 15:40:11 +000039;CHECK: .extern .global .b8 array_float[40];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000040@array_float = external global [10 x float]
41
Justin Holewinskifbc8d302011-03-14 15:40:11 +000042;CHECK: .extern .const .b8 array_constant_float[40];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000043@array_constant_float = external addrspace(1) constant [10 x float]
44
Justin Holewinskifbc8d302011-03-14 15:40:11 +000045;CHECK: .extern .local .b8 array_local_float[40];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000046@array_local_float = external addrspace(2) global [10 x float]
47
Justin Holewinskifbc8d302011-03-14 15:40:11 +000048;CHECK: .extern .shared .b8 array_shared_float[40];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000049@array_shared_float = external addrspace(4) global [10 x float]
50
Justin Holewinskifbc8d302011-03-14 15:40:11 +000051;CHECK: .extern .global .b8 array_double[80];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000052@array_double = external global [10 x double]
53
Justin Holewinskifbc8d302011-03-14 15:40:11 +000054;CHECK: .extern .const .b8 array_constant_double[80];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000055@array_constant_double = external addrspace(1) constant [10 x double]
56
Justin Holewinskifbc8d302011-03-14 15:40:11 +000057;CHECK: .extern .local .b8 array_local_double[80];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000058@array_local_double = external addrspace(2) global [10 x double]
59
Justin Holewinskifbc8d302011-03-14 15:40:11 +000060;CHECK: .extern .shared .b8 array_shared_double[80];
Che-Liang Chiou65b14762011-03-02 03:20:28 +000061@array_shared_double = external addrspace(4) global [10 x double]
62
63
64define ptx_device i16 @t1_u16(i16* %p) {
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +000065entry:
Che-Liang Chiou65b14762011-03-02 03:20:28 +000066;CHECK: ld.global.u16 rh0, [r1];
67;CHECK-NEXT; ret;
68 %x = load i16* %p
69 ret i16 %x
70}
71
72define ptx_device i32 @t1_u32(i32* %p) {
73entry:
74;CHECK: ld.global.u32 r0, [r1];
75;CHECK-NEXT: ret;
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +000076 %x = load i32* %p
77 ret i32 %x
78}
79
Che-Liang Chiou65b14762011-03-02 03:20:28 +000080define ptx_device i64 @t1_u64(i64* %p) {
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +000081entry:
Che-Liang Chiou65b14762011-03-02 03:20:28 +000082;CHECK: ld.global.u64 rd0, [r1];
83;CHECK-NEXT: ret;
84 %x = load i64* %p
85 ret i64 %x
86}
87
88define ptx_device float @t1_f32(float* %p) {
89entry:
90;CHECK: ld.global.f32 f0, [r1];
91;CHECK-NEXT: ret;
92 %x = load float* %p
93 ret float %x
94}
95
96define ptx_device double @t1_f64(double* %p) {
97entry:
98;CHECK: ld.global.f64 fd0, [r1];
99;CHECK-NEXT: ret;
100 %x = load double* %p
101 ret double %x
102}
103
104define ptx_device i16 @t2_u16(i16* %p) {
105entry:
106;CHECK: ld.global.u16 rh0, [r1+2];
107;CHECK-NEXT: ret;
108 %i = getelementptr i16* %p, i32 1
109 %x = load i16* %i
110 ret i16 %x
111}
112
113define ptx_device i32 @t2_u32(i32* %p) {
114entry:
115;CHECK: ld.global.u32 r0, [r1+4];
116;CHECK-NEXT: ret;
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +0000117 %i = getelementptr i32* %p, i32 1
118 %x = load i32* %i
119 ret i32 %x
120}
121
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000122define ptx_device i64 @t2_u64(i64* %p) {
123entry:
124;CHECK: ld.global.u64 rd0, [r1+8];
125;CHECK-NEXT: ret;
126 %i = getelementptr i64* %p, i32 1
127 %x = load i64* %i
128 ret i64 %x
129}
130
131define ptx_device float @t2_f32(float* %p) {
132entry:
133;CHECK: ld.global.f32 f0, [r1+4];
134;CHECK-NEXT: ret;
135 %i = getelementptr float* %p, i32 1
136 %x = load float* %i
137 ret float %x
138}
139
140define ptx_device double @t2_f64(double* %p) {
141entry:
142;CHECK: ld.global.f64 fd0, [r1+8];
143;CHECK-NEXT: ret;
144 %i = getelementptr double* %p, i32 1
145 %x = load double* %i
146 ret double %x
147}
148
149define ptx_device i16 @t3_u16(i16* %p, i32 %q) {
150entry:
151;CHECK: shl.b32 r0, r2, 1;
152;CHECK-NEXT: add.u32 r0, r1, r0;
153;CHECK-NEXT: ld.global.u16 rh0, [r0];
154 %i = getelementptr i16* %p, i32 %q
155 %x = load i16* %i
156 ret i16 %x
157}
158
159define ptx_device i32 @t3_u32(i32* %p, i32 %q) {
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +0000160entry:
161;CHECK: shl.b32 r0, r2, 2;
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000162;CHECK-NEXT: add.u32 r0, r1, r0;
163;CHECK-NEXT: ld.global.u32 r0, [r0];
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +0000164 %i = getelementptr i32* %p, i32 %q
165 %x = load i32* %i
166 ret i32 %x
167}
168
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000169define ptx_device i64 @t3_u64(i64* %p, i32 %q) {
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +0000170entry:
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000171;CHECK: shl.b32 r0, r2, 3;
172;CHECK-NEXT: add.u32 r0, r1, r0;
173;CHECK-NEXT: ld.global.u64 rd0, [r0];
174 %i = getelementptr i64* %p, i32 %q
175 %x = load i64* %i
176 ret i64 %x
177}
178
179define ptx_device float @t3_f32(float* %p, i32 %q) {
180entry:
181;CHECK: shl.b32 r0, r2, 2;
182;CHECK-NEXT: add.u32 r0, r1, r0;
183;CHECK-NEXT: ld.global.f32 f0, [r0];
184 %i = getelementptr float* %p, i32 %q
185 %x = load float* %i
186 ret float %x
187}
188
189define ptx_device double @t3_f64(double* %p, i32 %q) {
190entry:
191;CHECK: shl.b32 r0, r2, 3;
192;CHECK-NEXT: add.u32 r0, r1, r0;
193;CHECK-NEXT: ld.global.f64 fd0, [r0];
194 %i = getelementptr double* %p, i32 %q
195 %x = load double* %i
196 ret double %x
197}
198
199define ptx_device i16 @t4_global_u16() {
200entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000201;CHECK: mov.u32 r0, array_i16;
202;CHECK-NEXT: ld.global.u16 rh0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000203;CHECK-NEXT: ret;
204 %i = getelementptr [10 x i16]* @array_i16, i32 0, i32 0
205 %x = load i16* %i
206 ret i16 %x
207}
208
209define ptx_device i32 @t4_global_u32() {
210entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000211;CHECK: mov.u32 r0, array_i32;
212;CHECK-NEXT: ld.global.u32 r0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000213;CHECK-NEXT: ret;
214 %i = getelementptr [10 x i32]* @array_i32, i32 0, i32 0
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +0000215 %x = load i32* %i
216 ret i32 %x
217}
218
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000219define ptx_device i64 @t4_global_u64() {
Che-Liang Chiou3ee05012010-12-30 10:41:27 +0000220entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000221;CHECK: mov.u32 r0, array_i64;
222;CHECK-NEXT: ld.global.u64 rd0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000223;CHECK-NEXT: ret;
224 %i = getelementptr [10 x i64]* @array_i64, i32 0, i32 0
225 %x = load i64* %i
226 ret i64 %x
227}
228
229define ptx_device float @t4_global_f32() {
230entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000231;CHECK: mov.u32 r0, array_float;
232;CHECK-NEXT: ld.global.f32 f0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000233;CHECK-NEXT: ret;
234 %i = getelementptr [10 x float]* @array_float, i32 0, i32 0
235 %x = load float* %i
236 ret float %x
237}
238
239define ptx_device double @t4_global_f64() {
240entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000241;CHECK: mov.u32 r0, array_double;
242;CHECK-NEXT: ld.global.f64 fd0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000243;CHECK-NEXT: ret;
244 %i = getelementptr [10 x double]* @array_double, i32 0, i32 0
245 %x = load double* %i
246 ret double %x
247}
248
249define ptx_device i16 @t4_const_u16() {
250entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000251;CHECK: mov.u32 r0, array_constant_i16;
252;CHECK-NEXT: ld.const.u16 rh0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000253;CHECK-NEXT: ret;
254 %i = getelementptr [10 x i16] addrspace(1)* @array_constant_i16, i32 0, i32 0
255 %x = load i16 addrspace(1)* %i
256 ret i16 %x
257}
258
259define ptx_device i32 @t4_const_u32() {
260entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000261;CHECK: mov.u32 r0, array_constant_i32;
262;CHECK-NEXT: ld.const.u32 r0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000263;CHECK-NEXT: ret;
264 %i = getelementptr [10 x i32] addrspace(1)* @array_constant_i32, i32 0, i32 0
Che-Liang Chiou3ee05012010-12-30 10:41:27 +0000265 %x = load i32 addrspace(1)* %i
266 ret i32 %x
267}
268
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000269define ptx_device i64 @t4_const_u64() {
Che-Liang Chiou3ee05012010-12-30 10:41:27 +0000270entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000271;CHECK: mov.u32 r0, array_constant_i64;
272;CHECK-NEXT: ld.const.u64 rd0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000273;CHECK-NEXT: ret;
274 %i = getelementptr [10 x i64] addrspace(1)* @array_constant_i64, i32 0, i32 0
275 %x = load i64 addrspace(1)* %i
276 ret i64 %x
277}
278
279define ptx_device float @t4_const_f32() {
280entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000281;CHECK: mov.u32 r0, array_constant_float;
282;CHECK-NEXT: ld.const.f32 f0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000283;CHECK-NEXT: ret;
284 %i = getelementptr [10 x float] addrspace(1)* @array_constant_float, i32 0, i32 0
285 %x = load float addrspace(1)* %i
286 ret float %x
287}
288
289define ptx_device double @t4_const_f64() {
290entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000291;CHECK: mov.u32 r0, array_constant_double;
292;CHECK-NEXT: ld.const.f64 fd0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000293;CHECK-NEXT: ret;
294 %i = getelementptr [10 x double] addrspace(1)* @array_constant_double, i32 0, i32 0
295 %x = load double addrspace(1)* %i
296 ret double %x
297}
298
299define ptx_device i16 @t4_local_u16() {
300entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000301;CHECK: mov.u32 r0, array_local_i16;
302;CHECK-NEXT: ld.local.u16 rh0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000303;CHECK-NEXT: ret;
304 %i = getelementptr [10 x i16] addrspace(2)* @array_local_i16, i32 0, i32 0
305 %x = load i16 addrspace(2)* %i
306 ret i16 %x
307}
308
309define ptx_device i32 @t4_local_u32() {
310entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000311;CHECK: mov.u32 r0, array_local_i32;
312;CHECK-NEXT: ld.local.u32 r0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000313;CHECK-NEXT: ret;
314 %i = getelementptr [10 x i32] addrspace(2)* @array_local_i32, i32 0, i32 0
Che-Liang Chiou3ee05012010-12-30 10:41:27 +0000315 %x = load i32 addrspace(2)* %i
316 ret i32 %x
317}
318
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000319define ptx_device i64 @t4_local_u64() {
Che-Liang Chiou3ee05012010-12-30 10:41:27 +0000320entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000321;CHECK: mov.u32 r0, array_local_i64;
322;CHECK-NEXT: ld.local.u64 rd0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000323;CHECK-NEXT: ret;
324 %i = getelementptr [10 x i64] addrspace(2)* @array_local_i64, i32 0, i32 0
325 %x = load i64 addrspace(2)* %i
326 ret i64 %x
327}
328
329define ptx_device float @t4_local_f32() {
330entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000331;CHECK: mov.u32 r0, array_local_float;
332;CHECK-NEXT: ld.local.f32 f0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000333;CHECK-NEXT: ret;
334 %i = getelementptr [10 x float] addrspace(2)* @array_local_float, i32 0, i32 0
335 %x = load float addrspace(2)* %i
336 ret float %x
337}
338
339define ptx_device double @t4_local_f64() {
340entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000341;CHECK: mov.u32 r0, array_local_double;
342;CHECK-NEXT: ld.local.f64 fd0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000343;CHECK-NEXT: ret;
344 %i = getelementptr [10 x double] addrspace(2)* @array_local_double, i32 0, i32 0
345 %x = load double addrspace(2)* %i
346 ret double %x
347}
348
349define ptx_device i16 @t4_shared_u16() {
350entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000351;CHECK: mov.u32 r0, array_shared_i16;
352;CHECK-NEXT: ld.shared.u16 rh0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000353;CHECK-NEXT: ret;
354 %i = getelementptr [10 x i16] addrspace(4)* @array_shared_i16, i32 0, i32 0
355 %x = load i16 addrspace(4)* %i
356 ret i16 %x
357}
358
359define ptx_device i32 @t4_shared_u32() {
360entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000361;CHECK: mov.u32 r0, array_shared_i32;
362;CHECK-NEXT: ld.shared.u32 r0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000363;CHECK-NEXT: ret;
364 %i = getelementptr [10 x i32] addrspace(4)* @array_shared_i32, i32 0, i32 0
Che-Liang Chiou3ee05012010-12-30 10:41:27 +0000365 %x = load i32 addrspace(4)* %i
366 ret i32 %x
367}
368
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000369define ptx_device i64 @t4_shared_u64() {
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +0000370entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000371;CHECK: mov.u32 r0, array_shared_i64;
372;CHECK-NEXT: ld.shared.u64 rd0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000373;CHECK-NEXT: ret;
374 %i = getelementptr [10 x i64] addrspace(4)* @array_shared_i64, i32 0, i32 0
375 %x = load i64 addrspace(4)* %i
376 ret i64 %x
377}
378
379define ptx_device float @t4_shared_f32() {
380entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000381;CHECK: mov.u32 r0, array_shared_float;
382;CHECK-NEXT: ld.shared.f32 f0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000383;CHECK-NEXT: ret;
384 %i = getelementptr [10 x float] addrspace(4)* @array_shared_float, i32 0, i32 0
385 %x = load float addrspace(4)* %i
386 ret float %x
387}
388
389define ptx_device double @t4_shared_f64() {
390entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000391;CHECK: mov.u32 r0, array_shared_double;
392;CHECK-NEXT: ld.shared.f64 fd0, [r0];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000393;CHECK-NEXT: ret;
394 %i = getelementptr [10 x double] addrspace(4)* @array_shared_double, i32 0, i32 0
395 %x = load double addrspace(4)* %i
396 ret double %x
397}
398
399define ptx_device i16 @t5_u16() {
400entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000401;CHECK: mov.u32 r0, array_i16;
402;CHECK-NEXT: ld.global.u16 rh0, [r0+2];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000403;CHECK-NEXT: ret;
404 %i = getelementptr [10 x i16]* @array_i16, i32 0, i32 1
405 %x = load i16* %i
406 ret i16 %x
407}
408
409define ptx_device i32 @t5_u32() {
410entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000411;CHECK: mov.u32 r0, array_i32;
412;CHECK-NEXT: ld.global.u32 r0, [r0+4];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000413;CHECK-NEXT: ret;
414 %i = getelementptr [10 x i32]* @array_i32, i32 0, i32 1
Che-Liang Chiouaaedf8b2010-12-22 10:38:51 +0000415 %x = load i32* %i
416 ret i32 %x
417}
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000418
419define ptx_device i64 @t5_u64() {
420entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000421;CHECK: mov.u32 r0, array_i64;
422;CHECK-NEXT: ld.global.u64 rd0, [r0+8];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000423;CHECK-NEXT: ret;
424 %i = getelementptr [10 x i64]* @array_i64, i32 0, i32 1
425 %x = load i64* %i
426 ret i64 %x
427}
428
429define ptx_device float @t5_f32() {
430entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000431;CHECK: mov.u32 r0, array_float;
432;CHECK-NEXT: ld.global.f32 f0, [r0+4];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000433;CHECK-NEXT: ret;
434 %i = getelementptr [10 x float]* @array_float, i32 0, i32 1
435 %x = load float* %i
436 ret float %x
437}
438
439define ptx_device double @t5_f64() {
440entry:
Justin Holewinski0984dcc2011-03-18 19:24:28 +0000441;CHECK: mov.u32 r0, array_double;
442;CHECK-NEXT: ld.global.f64 fd0, [r0+8];
Che-Liang Chiou65b14762011-03-02 03:20:28 +0000443;CHECK-NEXT: ret;
444 %i = getelementptr [10 x double]* @array_double, i32 0, i32 1
445 %x = load double* %i
446 ret double %x
447}