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 7 define void @st_global_i8(i8 addrspace(0)* %ptr, i8 %a) { 8 ; PTX32: st.u8 [%r{{[0-9]+}}], %rs{{[0-9]+}} 9 ; PTX32: ret 10 ; PTX64: st.u8 [%rl{{[0-9]+}}], %rs{{[0-9]+}} 11 ; PTX64: ret 12 store i8 %a, i8 addrspace(0)* %ptr 13 ret void 14 } 15 16 ;; i16 17 18 define 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 29 define 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 40 define 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 51 define 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 62 define 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