1; RUN: llc < %s -mtriple=nvptx -mcpu=sm_20 | FileCheck %s --check-prefix=PTX32 2; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s --check-prefix=PTX64 3; RUN: %if ptxas && !ptxas-12.0 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %} 4; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %} 5 6;; i8 7 8define void @st_global_i8(ptr addrspace(0) %ptr, i8 %a) { 9; PTX32: st.u8 [%r{{[0-9]+}}], %rs{{[0-9]+}} 10; PTX32: ret 11; PTX64: st.u8 [%rd{{[0-9]+}}], %rs{{[0-9]+}} 12; PTX64: ret 13 store i8 %a, ptr addrspace(0) %ptr 14 ret void 15} 16 17;; i16 18 19define void @st_global_i16(ptr addrspace(0) %ptr, i16 %a) { 20; PTX32: st.u16 [%r{{[0-9]+}}], %rs{{[0-9]+}} 21; PTX32: ret 22; PTX64: st.u16 [%rd{{[0-9]+}}], %rs{{[0-9]+}} 23; PTX64: ret 24 store i16 %a, ptr addrspace(0) %ptr 25 ret void 26} 27 28;; i32 29 30define void @st_global_i32(ptr addrspace(0) %ptr, i32 %a) { 31; PTX32: st.u32 [%r{{[0-9]+}}], %r{{[0-9]+}} 32; PTX32: ret 33; PTX64: st.u32 [%rd{{[0-9]+}}], %r{{[0-9]+}} 34; PTX64: ret 35 store i32 %a, ptr addrspace(0) %ptr 36 ret void 37} 38 39;; i64 40 41define void @st_global_i64(ptr addrspace(0) %ptr, i64 %a) { 42; PTX32: st.u64 [%r{{[0-9]+}}], %rd{{[0-9]+}} 43; PTX32: ret 44; PTX64: st.u64 [%rd{{[0-9]+}}], %rd{{[0-9]+}} 45; PTX64: ret 46 store i64 %a, ptr addrspace(0) %ptr 47 ret void 48} 49 50;; f32 51 52define void @st_global_f32(ptr addrspace(0) %ptr, float %a) { 53; PTX32: st.f32 [%r{{[0-9]+}}], %f{{[0-9]+}} 54; PTX32: ret 55; PTX64: st.f32 [%rd{{[0-9]+}}], %f{{[0-9]+}} 56; PTX64: ret 57 store float %a, ptr addrspace(0) %ptr 58 ret void 59} 60 61;; f64 62 63define void @st_global_f64(ptr addrspace(0) %ptr, double %a) { 64; PTX32: st.f64 [%r{{[0-9]+}}], %fd{{[0-9]+}} 65; PTX32: ret 66; PTX64: st.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}} 67; PTX64: ret 68 store double %a, ptr addrspace(0) %ptr 69 ret void 70} 71