blob: 022f7ab214ca1edebdae7b70817fcb775e572b16 [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 Holewinski3e037d92014-07-16 16:26:58 +000010; PTX64: st.u8 [%rd{{[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
Justin Holewinski3e037d92014-07-16 16:26:58 +000021; PTX64: st.u16 [%rd{{[0-9]+}}], %rs{{[0-9]+}}
Justin Holewinskiae556d32012-05-04 20:18:50 +000022; 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
Justin Holewinski3e037d92014-07-16 16:26:58 +000032; PTX64: st.u32 [%rd{{[0-9]+}}], %r{{[0-9]+}}
Justin Holewinskiae556d32012-05-04 20:18:50 +000033; 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) {
Justin Holewinski3e037d92014-07-16 16:26:58 +000041; PTX32: st.u64 [%r{{[0-9]+}}], %rd{{[0-9]+}}
Justin Holewinskiae556d32012-05-04 20:18:50 +000042; PTX32: ret
Justin Holewinski3e037d92014-07-16 16:26:58 +000043; PTX64: st.u64 [%rd{{[0-9]+}}], %rd{{[0-9]+}}
Justin Holewinskiae556d32012-05-04 20:18:50 +000044; 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
Justin Holewinski3e037d92014-07-16 16:26:58 +000054; PTX64: st.f32 [%rd{{[0-9]+}}], %f{{[0-9]+}}
Justin Holewinskiae556d32012-05-04 20:18:50 +000055; 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) {
Justin Holewinski3e037d92014-07-16 16:26:58 +000063; PTX32: st.f64 [%r{{[0-9]+}}], %fd{{[0-9]+}}
Justin Holewinskiae556d32012-05-04 20:18:50 +000064; PTX32: ret
Justin Holewinski3e037d92014-07-16 16:26:58 +000065; PTX64: st.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}}
Justin Holewinskiae556d32012-05-04 20:18:50 +000066; PTX64: ret
67 store double %a, double addrspace(0)* %ptr
68 ret void
69}