blob: b9c616fbd19e8e691e1c67f4612621feba990aa3 [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
6
7define void @st_global_i8(i8 addrspace(0)* %ptr, i8 %a) {
Justin Holewinskif8f70912013-06-28 17:57:59 +00008; PTX32: st.u8 [%r{{[0-9]+}}], %rs{{[0-9]+}}
Justin Holewinskiae556d32012-05-04 20:18:50 +00009; PTX32: ret
Justin Holewinskif8f70912013-06-28 17:57:59 +000010; PTX64: st.u8 [%rl{{[0-9]+}}], %rs{{[0-9]+}}
Justin Holewinskiae556d32012-05-04 20:18:50 +000011; PTX64: ret
12 store i8 %a, i8 addrspace(0)* %ptr
13 ret void
14}
15
16;; i16
17
18define void @st_global_i16(i16 addrspace(0)* %ptr, i16 %a) {
19; PTX32: st.u16 [%r{{[0-9]+}}], %rs{{[0-9]+}}
20; PTX32: ret
21; PTX64: st.u16 [%rl{{[0-9]+}}], %rs{{[0-9]+}}
22; PTX64: ret
23 store i16 %a, i16 addrspace(0)* %ptr
24 ret void
25}
26
27;; i32
28
29define void @st_global_i32(i32 addrspace(0)* %ptr, i32 %a) {
30; PTX32: st.u32 [%r{{[0-9]+}}], %r{{[0-9]+}}
31; PTX32: ret
32; PTX64: st.u32 [%rl{{[0-9]+}}], %r{{[0-9]+}}
33; PTX64: ret
34 store i32 %a, i32 addrspace(0)* %ptr
35 ret void
36}
37
38;; i64
39
40define void @st_global_i64(i64 addrspace(0)* %ptr, i64 %a) {
41; PTX32: st.u64 [%r{{[0-9]+}}], %rl{{[0-9]+}}
42; PTX32: ret
43; PTX64: st.u64 [%rl{{[0-9]+}}], %rl{{[0-9]+}}
44; PTX64: ret
45 store i64 %a, i64 addrspace(0)* %ptr
46 ret void
47}
48
49;; f32
50
51define void @st_global_f32(float addrspace(0)* %ptr, float %a) {
52; PTX32: st.f32 [%r{{[0-9]+}}], %f{{[0-9]+}}
53; PTX32: ret
54; PTX64: st.f32 [%rl{{[0-9]+}}], %f{{[0-9]+}}
55; PTX64: ret
56 store float %a, float addrspace(0)* %ptr
57 ret void
58}
59
60;; f64
61
62define void @st_global_f64(double addrspace(0)* %ptr, double %a) {
63; PTX32: st.f64 [%r{{[0-9]+}}], %fl{{[0-9]+}}
64; PTX32: ret
65; PTX64: st.f64 [%rl{{[0-9]+}}], %fl{{[0-9]+}}
66; PTX64: ret
67 store double %a, double addrspace(0)* %ptr
68 ret void
69}