• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; 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) {
8; PTX32: st.u8 [%r{{[0-9]+}}], %rc{{[0-9]+}}
9; PTX32: ret
10; PTX64: st.u8 [%rl{{[0-9]+}}], %rc{{[0-9]+}}
11; 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}
70