1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s --check-prefix=PTX32 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=nvptx64 -mcpu=sm_20 | FileCheck %s --check-prefix=PTX64 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker;; i8 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine void @st_global_i8(i8 addrspace(1)* %ptr, i8 %a) { 8*9880d681SAndroid Build Coastguard Worker; PTX32: st.global.u8 [%r{{[0-9]+}}], %rs{{[0-9]+}} 9*9880d681SAndroid Build Coastguard Worker; PTX32: ret 10*9880d681SAndroid Build Coastguard Worker; PTX64: st.global.u8 [%rd{{[0-9]+}}], %rs{{[0-9]+}} 11*9880d681SAndroid Build Coastguard Worker; PTX64: ret 12*9880d681SAndroid Build Coastguard Worker store i8 %a, i8 addrspace(1)* %ptr 13*9880d681SAndroid Build Coastguard Worker ret void 14*9880d681SAndroid Build Coastguard Worker} 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workerdefine void @st_shared_i8(i8 addrspace(3)* %ptr, i8 %a) { 17*9880d681SAndroid Build Coastguard Worker; PTX32: st.shared.u8 [%r{{[0-9]+}}], %rs{{[0-9]+}} 18*9880d681SAndroid Build Coastguard Worker; PTX32: ret 19*9880d681SAndroid Build Coastguard Worker; PTX64: st.shared.u8 [%rd{{[0-9]+}}], %rs{{[0-9]+}} 20*9880d681SAndroid Build Coastguard Worker; PTX64: ret 21*9880d681SAndroid Build Coastguard Worker store i8 %a, i8 addrspace(3)* %ptr 22*9880d681SAndroid Build Coastguard Worker ret void 23*9880d681SAndroid Build Coastguard Worker} 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerdefine void @st_local_i8(i8 addrspace(5)* %ptr, i8 %a) { 26*9880d681SAndroid Build Coastguard Worker; PTX32: st.local.u8 [%r{{[0-9]+}}], %rs{{[0-9]+}} 27*9880d681SAndroid Build Coastguard Worker; PTX32: ret 28*9880d681SAndroid Build Coastguard Worker; PTX64: st.local.u8 [%rd{{[0-9]+}}], %rs{{[0-9]+}} 29*9880d681SAndroid Build Coastguard Worker; PTX64: ret 30*9880d681SAndroid Build Coastguard Worker store i8 %a, i8 addrspace(5)* %ptr 31*9880d681SAndroid Build Coastguard Worker ret void 32*9880d681SAndroid Build Coastguard Worker} 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker;; i16 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workerdefine void @st_global_i16(i16 addrspace(1)* %ptr, i16 %a) { 37*9880d681SAndroid Build Coastguard Worker; PTX32: st.global.u16 [%r{{[0-9]+}}], %rs{{[0-9]+}} 38*9880d681SAndroid Build Coastguard Worker; PTX32: ret 39*9880d681SAndroid Build Coastguard Worker; PTX64: st.global.u16 [%rd{{[0-9]+}}], %rs{{[0-9]+}} 40*9880d681SAndroid Build Coastguard Worker; PTX64: ret 41*9880d681SAndroid Build Coastguard Worker store i16 %a, i16 addrspace(1)* %ptr 42*9880d681SAndroid Build Coastguard Worker ret void 43*9880d681SAndroid Build Coastguard Worker} 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerdefine void @st_shared_i16(i16 addrspace(3)* %ptr, i16 %a) { 46*9880d681SAndroid Build Coastguard Worker; PTX32: st.shared.u16 [%r{{[0-9]+}}], %rs{{[0-9]+}} 47*9880d681SAndroid Build Coastguard Worker; PTX32: ret 48*9880d681SAndroid Build Coastguard Worker; PTX64: st.shared.u16 [%rd{{[0-9]+}}], %rs{{[0-9]+}} 49*9880d681SAndroid Build Coastguard Worker; PTX64: ret 50*9880d681SAndroid Build Coastguard Worker store i16 %a, i16 addrspace(3)* %ptr 51*9880d681SAndroid Build Coastguard Worker ret void 52*9880d681SAndroid Build Coastguard Worker} 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Workerdefine void @st_local_i16(i16 addrspace(5)* %ptr, i16 %a) { 55*9880d681SAndroid Build Coastguard Worker; PTX32: st.local.u16 [%r{{[0-9]+}}], %rs{{[0-9]+}} 56*9880d681SAndroid Build Coastguard Worker; PTX32: ret 57*9880d681SAndroid Build Coastguard Worker; PTX64: st.local.u16 [%rd{{[0-9]+}}], %rs{{[0-9]+}} 58*9880d681SAndroid Build Coastguard Worker; PTX64: ret 59*9880d681SAndroid Build Coastguard Worker store i16 %a, i16 addrspace(5)* %ptr 60*9880d681SAndroid Build Coastguard Worker ret void 61*9880d681SAndroid Build Coastguard Worker} 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker;; i32 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Workerdefine void @st_global_i32(i32 addrspace(1)* %ptr, i32 %a) { 66*9880d681SAndroid Build Coastguard Worker; PTX32: st.global.u32 [%r{{[0-9]+}}], %r{{[0-9]+}} 67*9880d681SAndroid Build Coastguard Worker; PTX32: ret 68*9880d681SAndroid Build Coastguard Worker; PTX64: st.global.u32 [%rd{{[0-9]+}}], %r{{[0-9]+}} 69*9880d681SAndroid Build Coastguard Worker; PTX64: ret 70*9880d681SAndroid Build Coastguard Worker store i32 %a, i32 addrspace(1)* %ptr 71*9880d681SAndroid Build Coastguard Worker ret void 72*9880d681SAndroid Build Coastguard Worker} 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Workerdefine void @st_shared_i32(i32 addrspace(3)* %ptr, i32 %a) { 75*9880d681SAndroid Build Coastguard Worker; PTX32: st.shared.u32 [%r{{[0-9]+}}], %r{{[0-9]+}} 76*9880d681SAndroid Build Coastguard Worker; PTX32: ret 77*9880d681SAndroid Build Coastguard Worker; PTX64: st.shared.u32 [%rd{{[0-9]+}}], %r{{[0-9]+}} 78*9880d681SAndroid Build Coastguard Worker; PTX64: ret 79*9880d681SAndroid Build Coastguard Worker store i32 %a, i32 addrspace(3)* %ptr 80*9880d681SAndroid Build Coastguard Worker ret void 81*9880d681SAndroid Build Coastguard Worker} 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Workerdefine void @st_local_i32(i32 addrspace(5)* %ptr, i32 %a) { 84*9880d681SAndroid Build Coastguard Worker; PTX32: st.local.u32 [%r{{[0-9]+}}], %r{{[0-9]+}} 85*9880d681SAndroid Build Coastguard Worker; PTX32: ret 86*9880d681SAndroid Build Coastguard Worker; PTX64: st.local.u32 [%rd{{[0-9]+}}], %r{{[0-9]+}} 87*9880d681SAndroid Build Coastguard Worker; PTX64: ret 88*9880d681SAndroid Build Coastguard Worker store i32 %a, i32 addrspace(5)* %ptr 89*9880d681SAndroid Build Coastguard Worker ret void 90*9880d681SAndroid Build Coastguard Worker} 91*9880d681SAndroid Build Coastguard Worker 92*9880d681SAndroid Build Coastguard Worker;; i64 93*9880d681SAndroid Build Coastguard Worker 94*9880d681SAndroid Build Coastguard Workerdefine void @st_global_i64(i64 addrspace(1)* %ptr, i64 %a) { 95*9880d681SAndroid Build Coastguard Worker; PTX32: st.global.u64 [%r{{[0-9]+}}], %rd{{[0-9]+}} 96*9880d681SAndroid Build Coastguard Worker; PTX32: ret 97*9880d681SAndroid Build Coastguard Worker; PTX64: st.global.u64 [%rd{{[0-9]+}}], %rd{{[0-9]+}} 98*9880d681SAndroid Build Coastguard Worker; PTX64: ret 99*9880d681SAndroid Build Coastguard Worker store i64 %a, i64 addrspace(1)* %ptr 100*9880d681SAndroid Build Coastguard Worker ret void 101*9880d681SAndroid Build Coastguard Worker} 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Workerdefine void @st_shared_i64(i64 addrspace(3)* %ptr, i64 %a) { 104*9880d681SAndroid Build Coastguard Worker; PTX32: st.shared.u64 [%r{{[0-9]+}}], %rd{{[0-9]+}} 105*9880d681SAndroid Build Coastguard Worker; PTX32: ret 106*9880d681SAndroid Build Coastguard Worker; PTX64: st.shared.u64 [%rd{{[0-9]+}}], %rd{{[0-9]+}} 107*9880d681SAndroid Build Coastguard Worker; PTX64: ret 108*9880d681SAndroid Build Coastguard Worker store i64 %a, i64 addrspace(3)* %ptr 109*9880d681SAndroid Build Coastguard Worker ret void 110*9880d681SAndroid Build Coastguard Worker} 111*9880d681SAndroid Build Coastguard Worker 112*9880d681SAndroid Build Coastguard Workerdefine void @st_local_i64(i64 addrspace(5)* %ptr, i64 %a) { 113*9880d681SAndroid Build Coastguard Worker; PTX32: st.local.u64 [%r{{[0-9]+}}], %rd{{[0-9]+}} 114*9880d681SAndroid Build Coastguard Worker; PTX32: ret 115*9880d681SAndroid Build Coastguard Worker; PTX64: st.local.u64 [%rd{{[0-9]+}}], %rd{{[0-9]+}} 116*9880d681SAndroid Build Coastguard Worker; PTX64: ret 117*9880d681SAndroid Build Coastguard Worker store i64 %a, i64 addrspace(5)* %ptr 118*9880d681SAndroid Build Coastguard Worker ret void 119*9880d681SAndroid Build Coastguard Worker} 120*9880d681SAndroid Build Coastguard Worker 121*9880d681SAndroid Build Coastguard Worker;; f32 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Workerdefine void @st_global_f32(float addrspace(1)* %ptr, float %a) { 124*9880d681SAndroid Build Coastguard Worker; PTX32: st.global.f32 [%r{{[0-9]+}}], %f{{[0-9]+}} 125*9880d681SAndroid Build Coastguard Worker; PTX32: ret 126*9880d681SAndroid Build Coastguard Worker; PTX64: st.global.f32 [%rd{{[0-9]+}}], %f{{[0-9]+}} 127*9880d681SAndroid Build Coastguard Worker; PTX64: ret 128*9880d681SAndroid Build Coastguard Worker store float %a, float addrspace(1)* %ptr 129*9880d681SAndroid Build Coastguard Worker ret void 130*9880d681SAndroid Build Coastguard Worker} 131*9880d681SAndroid Build Coastguard Worker 132*9880d681SAndroid Build Coastguard Workerdefine void @st_shared_f32(float addrspace(3)* %ptr, float %a) { 133*9880d681SAndroid Build Coastguard Worker; PTX32: st.shared.f32 [%r{{[0-9]+}}], %f{{[0-9]+}} 134*9880d681SAndroid Build Coastguard Worker; PTX32: ret 135*9880d681SAndroid Build Coastguard Worker; PTX64: st.shared.f32 [%rd{{[0-9]+}}], %f{{[0-9]+}} 136*9880d681SAndroid Build Coastguard Worker; PTX64: ret 137*9880d681SAndroid Build Coastguard Worker store float %a, float addrspace(3)* %ptr 138*9880d681SAndroid Build Coastguard Worker ret void 139*9880d681SAndroid Build Coastguard Worker} 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Workerdefine void @st_local_f32(float addrspace(5)* %ptr, float %a) { 142*9880d681SAndroid Build Coastguard Worker; PTX32: st.local.f32 [%r{{[0-9]+}}], %f{{[0-9]+}} 143*9880d681SAndroid Build Coastguard Worker; PTX32: ret 144*9880d681SAndroid Build Coastguard Worker; PTX64: st.local.f32 [%rd{{[0-9]+}}], %f{{[0-9]+}} 145*9880d681SAndroid Build Coastguard Worker; PTX64: ret 146*9880d681SAndroid Build Coastguard Worker store float %a, float addrspace(5)* %ptr 147*9880d681SAndroid Build Coastguard Worker ret void 148*9880d681SAndroid Build Coastguard Worker} 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Worker;; f64 151*9880d681SAndroid Build Coastguard Worker 152*9880d681SAndroid Build Coastguard Workerdefine void @st_global_f64(double addrspace(1)* %ptr, double %a) { 153*9880d681SAndroid Build Coastguard Worker; PTX32: st.global.f64 [%r{{[0-9]+}}], %fd{{[0-9]+}} 154*9880d681SAndroid Build Coastguard Worker; PTX32: ret 155*9880d681SAndroid Build Coastguard Worker; PTX64: st.global.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}} 156*9880d681SAndroid Build Coastguard Worker; PTX64: ret 157*9880d681SAndroid Build Coastguard Worker store double %a, double addrspace(1)* %ptr 158*9880d681SAndroid Build Coastguard Worker ret void 159*9880d681SAndroid Build Coastguard Worker} 160*9880d681SAndroid Build Coastguard Worker 161*9880d681SAndroid Build Coastguard Workerdefine void @st_shared_f64(double addrspace(3)* %ptr, double %a) { 162*9880d681SAndroid Build Coastguard Worker; PTX32: st.shared.f64 [%r{{[0-9]+}}], %fd{{[0-9]+}} 163*9880d681SAndroid Build Coastguard Worker; PTX32: ret 164*9880d681SAndroid Build Coastguard Worker; PTX64: st.shared.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}} 165*9880d681SAndroid Build Coastguard Worker; PTX64: ret 166*9880d681SAndroid Build Coastguard Worker store double %a, double addrspace(3)* %ptr 167*9880d681SAndroid Build Coastguard Worker ret void 168*9880d681SAndroid Build Coastguard Worker} 169*9880d681SAndroid Build Coastguard Worker 170*9880d681SAndroid Build Coastguard Workerdefine void @st_local_f64(double addrspace(5)* %ptr, double %a) { 171*9880d681SAndroid Build Coastguard Worker; PTX32: st.local.f64 [%r{{[0-9]+}}], %fd{{[0-9]+}} 172*9880d681SAndroid Build Coastguard Worker; PTX32: ret 173*9880d681SAndroid Build Coastguard Worker; PTX64: st.local.f64 [%rd{{[0-9]+}}], %fd{{[0-9]+}} 174*9880d681SAndroid Build Coastguard Worker; PTX64: ret 175*9880d681SAndroid Build Coastguard Worker store double %a, double addrspace(5)* %ptr 176*9880d681SAndroid Build Coastguard Worker ret void 177*9880d681SAndroid Build Coastguard Worker} 178