blob: 44cfe6551b99cae413b31009f926299a97bf32da [file] [log] [blame]
Justin Holewinskiae556d32012-05-04 20:18:50 +00001; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s --check-prefix=PTX32
2; RUN: llc < %s -march=nvptx64 -mcpu=sm_20 | FileCheck %s --check-prefix=PTX64
3
4
5;; i8
6define i8 @ld_global_i8(i8 addrspace(0)* %ptr) {
Justin Holewinskie04e4bd2013-06-28 17:58:10 +00007; PTX32: ld.u8 %r{{[0-9]+}}, [%r{{[0-9]+}}]
Justin Holewinskiae556d32012-05-04 20:18:50 +00008; PTX32: ret
Justin Holewinski3e037d92014-07-16 16:26:58 +00009; PTX64: ld.u8 %r{{[0-9]+}}, [%rd{{[0-9]+}}]
Justin Holewinskiae556d32012-05-04 20:18:50 +000010; PTX64: ret
David Blaikiea79ac142015-02-27 21:17:42 +000011 %a = load i8, i8 addrspace(0)* %ptr
Justin Holewinskiae556d32012-05-04 20:18:50 +000012 ret i8 %a
13}
14
15;; i16
16define i16 @ld_global_i16(i16 addrspace(0)* %ptr) {
Justin Holewinskie04e4bd2013-06-28 17:58:10 +000017; PTX32: ld.u16 %r{{[0-9]+}}, [%r{{[0-9]+}}]
Justin Holewinskiae556d32012-05-04 20:18:50 +000018; PTX32: ret
Justin Holewinski3e037d92014-07-16 16:26:58 +000019; PTX64: ld.u16 %r{{[0-9]+}}, [%rd{{[0-9]+}}]
Justin Holewinskiae556d32012-05-04 20:18:50 +000020; PTX64: ret
David Blaikiea79ac142015-02-27 21:17:42 +000021 %a = load i16, i16 addrspace(0)* %ptr
Justin Holewinskiae556d32012-05-04 20:18:50 +000022 ret i16 %a
23}
24
25;; i32
26define i32 @ld_global_i32(i32 addrspace(0)* %ptr) {
27; PTX32: ld.u32 %r{{[0-9]+}}, [%r{{[0-9]+}}]
28; PTX32: ret
Justin Holewinski3e037d92014-07-16 16:26:58 +000029; PTX64: ld.u32 %r{{[0-9]+}}, [%rd{{[0-9]+}}]
Justin Holewinskiae556d32012-05-04 20:18:50 +000030; PTX64: ret
David Blaikiea79ac142015-02-27 21:17:42 +000031 %a = load i32, i32 addrspace(0)* %ptr
Justin Holewinskiae556d32012-05-04 20:18:50 +000032 ret i32 %a
33}
34
35;; i64
36define i64 @ld_global_i64(i64 addrspace(0)* %ptr) {
Justin Holewinski3e037d92014-07-16 16:26:58 +000037; PTX32: ld.u64 %rd{{[0-9]+}}, [%r{{[0-9]+}}]
Justin Holewinskiae556d32012-05-04 20:18:50 +000038; PTX32: ret
Justin Holewinski3e037d92014-07-16 16:26:58 +000039; PTX64: ld.u64 %rd{{[0-9]+}}, [%rd{{[0-9]+}}]
Justin Holewinskiae556d32012-05-04 20:18:50 +000040; PTX64: ret
David Blaikiea79ac142015-02-27 21:17:42 +000041 %a = load i64, i64 addrspace(0)* %ptr
Justin Holewinskiae556d32012-05-04 20:18:50 +000042 ret i64 %a
43}
44
45;; f32
46define float @ld_global_f32(float addrspace(0)* %ptr) {
47; PTX32: ld.f32 %f{{[0-9]+}}, [%r{{[0-9]+}}]
48; PTX32: ret
Justin Holewinski3e037d92014-07-16 16:26:58 +000049; PTX64: ld.f32 %f{{[0-9]+}}, [%rd{{[0-9]+}}]
Justin Holewinskiae556d32012-05-04 20:18:50 +000050; PTX64: ret
David Blaikiea79ac142015-02-27 21:17:42 +000051 %a = load float, float addrspace(0)* %ptr
Justin Holewinskiae556d32012-05-04 20:18:50 +000052 ret float %a
53}
54
55;; f64
56define double @ld_global_f64(double addrspace(0)* %ptr) {
Justin Holewinski3e037d92014-07-16 16:26:58 +000057; PTX32: ld.f64 %fd{{[0-9]+}}, [%r{{[0-9]+}}]
Justin Holewinskiae556d32012-05-04 20:18:50 +000058; PTX32: ret
Justin Holewinski3e037d92014-07-16 16:26:58 +000059; PTX64: ld.f64 %fd{{[0-9]+}}, [%rd{{[0-9]+}}]
Justin Holewinskiae556d32012-05-04 20:18:50 +000060; PTX64: ret
David Blaikiea79ac142015-02-27 21:17:42 +000061 %a = load double, double addrspace(0)* %ptr
Justin Holewinskiae556d32012-05-04 20:18:50 +000062 ret double %a
63}