1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=amdgcn -verify-machineinstrs | FileCheck %s --check-prefix=SI --check-prefix=GCN --check-prefix=FUNC 2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=amdgcn -mcpu=tonga -verify-machineinstrs | FileCheck %s --check-prefix=VI --check-prefix=GCN --check-prefix=FUNC 3*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s --check-prefix=EG --check-prefix=FUNC 4*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=r600 -mcpu=cayman | FileCheck %s --check-prefix=EG --check-prefix=FUNC 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i8_arg: 7*9880d681SAndroid Build Coastguard Worker; EG: AND_INT {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 8*9880d681SAndroid Build Coastguard Worker; SI: s_load_dword [[VAL:s[0-9]+]], s[{{[0-9]+:[0-9]+}}], 0xb 9*9880d681SAndroid Build Coastguard Worker; VI: s_load_dword [[VAL:s[0-9]+]], s[{{[0-9]+:[0-9]+}}], 0x2c 10*9880d681SAndroid Build Coastguard Worker; GCN: s_and_b32 s{{[0-9]+}}, [[VAL]], 0xff 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine void @i8_arg(i32 addrspace(1)* nocapture %out, i8 %in) nounwind { 13*9880d681SAndroid Build Coastguard Workerentry: 14*9880d681SAndroid Build Coastguard Worker %0 = zext i8 %in to i32 15*9880d681SAndroid Build Coastguard Worker store i32 %0, i32 addrspace(1)* %out, align 4 16*9880d681SAndroid Build Coastguard Worker ret void 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i8_zext_arg: 20*9880d681SAndroid Build Coastguard Worker; EG: MOV {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 21*9880d681SAndroid Build Coastguard Worker; SI: s_load_dword s{{[0-9]}}, s[0:1], 0xb 22*9880d681SAndroid Build Coastguard Worker; VI: s_load_dword s{{[0-9]}}, s[0:1], 0x2c 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workerdefine void @i8_zext_arg(i32 addrspace(1)* nocapture %out, i8 zeroext %in) nounwind { 25*9880d681SAndroid Build Coastguard Workerentry: 26*9880d681SAndroid Build Coastguard Worker %0 = zext i8 %in to i32 27*9880d681SAndroid Build Coastguard Worker store i32 %0, i32 addrspace(1)* %out, align 4 28*9880d681SAndroid Build Coastguard Worker ret void 29*9880d681SAndroid Build Coastguard Worker} 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i8_sext_arg: 32*9880d681SAndroid Build Coastguard Worker; EG: MOV {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 33*9880d681SAndroid Build Coastguard Worker; SI: s_load_dword s{{[0-9]}}, s[0:1], 0xb 34*9880d681SAndroid Build Coastguard Worker; VI: s_load_dword s{{[0-9]}}, s[0:1], 0x2c 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workerdefine void @i8_sext_arg(i32 addrspace(1)* nocapture %out, i8 signext %in) nounwind { 37*9880d681SAndroid Build Coastguard Workerentry: 38*9880d681SAndroid Build Coastguard Worker %0 = sext i8 %in to i32 39*9880d681SAndroid Build Coastguard Worker store i32 %0, i32 addrspace(1)* %out, align 4 40*9880d681SAndroid Build Coastguard Worker ret void 41*9880d681SAndroid Build Coastguard Worker} 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i16_arg: 44*9880d681SAndroid Build Coastguard Worker; EG: AND_INT {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 45*9880d681SAndroid Build Coastguard Worker; SI: s_load_dword [[VAL:s[0-9]+]], s[{{[0-9]+:[0-9]+}}], 0xb 46*9880d681SAndroid Build Coastguard Worker; VI: s_load_dword [[VAL:s[0-9]+]], s[{{[0-9]+:[0-9]+}}], 0x2c 47*9880d681SAndroid Build Coastguard Worker; GCN: s_and_b32 s{{[0-9]+}}, [[VAL]], 0xff 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Workerdefine void @i16_arg(i32 addrspace(1)* nocapture %out, i16 %in) nounwind { 50*9880d681SAndroid Build Coastguard Workerentry: 51*9880d681SAndroid Build Coastguard Worker %0 = zext i16 %in to i32 52*9880d681SAndroid Build Coastguard Worker store i32 %0, i32 addrspace(1)* %out, align 4 53*9880d681SAndroid Build Coastguard Worker ret void 54*9880d681SAndroid Build Coastguard Worker} 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i16_zext_arg: 57*9880d681SAndroid Build Coastguard Worker; EG: MOV {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 58*9880d681SAndroid Build Coastguard Worker; SI: s_load_dword s{{[0-9]}}, s[0:1], 0xb 59*9880d681SAndroid Build Coastguard Worker; VI: s_load_dword s{{[0-9]}}, s[0:1], 0x2c 60*9880d681SAndroid Build Coastguard Worker 61*9880d681SAndroid Build Coastguard Workerdefine void @i16_zext_arg(i32 addrspace(1)* nocapture %out, i16 zeroext %in) nounwind { 62*9880d681SAndroid Build Coastguard Workerentry: 63*9880d681SAndroid Build Coastguard Worker %0 = zext i16 %in to i32 64*9880d681SAndroid Build Coastguard Worker store i32 %0, i32 addrspace(1)* %out, align 4 65*9880d681SAndroid Build Coastguard Worker ret void 66*9880d681SAndroid Build Coastguard Worker} 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i16_sext_arg: 69*9880d681SAndroid Build Coastguard Worker; EG: MOV {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 70*9880d681SAndroid Build Coastguard Worker; SI: s_load_dword s{{[0-9]}}, s[0:1], 0xb 71*9880d681SAndroid Build Coastguard Worker; VI: s_load_dword s{{[0-9]}}, s[0:1], 0x2c 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Workerdefine void @i16_sext_arg(i32 addrspace(1)* nocapture %out, i16 signext %in) nounwind { 74*9880d681SAndroid Build Coastguard Workerentry: 75*9880d681SAndroid Build Coastguard Worker %0 = sext i16 %in to i32 76*9880d681SAndroid Build Coastguard Worker store i32 %0, i32 addrspace(1)* %out, align 4 77*9880d681SAndroid Build Coastguard Worker ret void 78*9880d681SAndroid Build Coastguard Worker} 79*9880d681SAndroid Build Coastguard Worker 80*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i32_arg: 81*9880d681SAndroid Build Coastguard Worker; EG: T{{[0-9]\.[XYZW]}}, KC0[2].Z 82*9880d681SAndroid Build Coastguard Worker; SI: s_load_dword s{{[0-9]}}, s[0:1], 0xb 83*9880d681SAndroid Build Coastguard Worker; VI: s_load_dword s{{[0-9]}}, s[0:1], 0x2c 84*9880d681SAndroid Build Coastguard Workerdefine void @i32_arg(i32 addrspace(1)* nocapture %out, i32 %in) nounwind { 85*9880d681SAndroid Build Coastguard Workerentry: 86*9880d681SAndroid Build Coastguard Worker store i32 %in, i32 addrspace(1)* %out, align 4 87*9880d681SAndroid Build Coastguard Worker ret void 88*9880d681SAndroid Build Coastguard Worker} 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}f32_arg: 91*9880d681SAndroid Build Coastguard Worker; EG: T{{[0-9]\.[XYZW]}}, KC0[2].Z 92*9880d681SAndroid Build Coastguard Worker; SI: s_load_dword s{{[0-9]}}, s[0:1], 0xb 93*9880d681SAndroid Build Coastguard Worker; VI: s_load_dword s{{[0-9]}}, s[0:1], 0x2c 94*9880d681SAndroid Build Coastguard Workerdefine void @f32_arg(float addrspace(1)* nocapture %out, float %in) nounwind { 95*9880d681SAndroid Build Coastguard Workerentry: 96*9880d681SAndroid Build Coastguard Worker store float %in, float addrspace(1)* %out, align 4 97*9880d681SAndroid Build Coastguard Worker ret void 98*9880d681SAndroid Build Coastguard Worker} 99*9880d681SAndroid Build Coastguard Worker 100*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v2i8_arg: 101*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 102*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 103*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 104*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 105*9880d681SAndroid Build Coastguard Workerdefine void @v2i8_arg(<2 x i8> addrspace(1)* %out, <2 x i8> %in) { 106*9880d681SAndroid Build Coastguard Workerentry: 107*9880d681SAndroid Build Coastguard Worker store <2 x i8> %in, <2 x i8> addrspace(1)* %out 108*9880d681SAndroid Build Coastguard Worker ret void 109*9880d681SAndroid Build Coastguard Worker} 110*9880d681SAndroid Build Coastguard Worker 111*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v2i16_arg: 112*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 113*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 114*9880d681SAndroid Build Coastguard Worker; GCN-DAG: buffer_load_ushort 115*9880d681SAndroid Build Coastguard Worker; GCN-DAG: buffer_load_ushort 116*9880d681SAndroid Build Coastguard Workerdefine void @v2i16_arg(<2 x i16> addrspace(1)* %out, <2 x i16> %in) { 117*9880d681SAndroid Build Coastguard Workerentry: 118*9880d681SAndroid Build Coastguard Worker store <2 x i16> %in, <2 x i16> addrspace(1)* %out 119*9880d681SAndroid Build Coastguard Worker ret void 120*9880d681SAndroid Build Coastguard Worker} 121*9880d681SAndroid Build Coastguard Worker 122*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v2i32_arg: 123*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].X 124*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[2].W 125*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx2 s{{\[[0-9]:[0-9]\]}}, s[0:1], 0xb 126*9880d681SAndroid Build Coastguard Worker; VI: s_load_dwordx2 s{{\[[0-9]:[0-9]\]}}, s[0:1], 0x2c 127*9880d681SAndroid Build Coastguard Workerdefine void @v2i32_arg(<2 x i32> addrspace(1)* nocapture %out, <2 x i32> %in) nounwind { 128*9880d681SAndroid Build Coastguard Workerentry: 129*9880d681SAndroid Build Coastguard Worker store <2 x i32> %in, <2 x i32> addrspace(1)* %out, align 4 130*9880d681SAndroid Build Coastguard Worker ret void 131*9880d681SAndroid Build Coastguard Worker} 132*9880d681SAndroid Build Coastguard Worker 133*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v2f32_arg: 134*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].X 135*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[2].W 136*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx2 s{{\[[0-9]:[0-9]\]}}, s[0:1], 0xb 137*9880d681SAndroid Build Coastguard Worker; VI: s_load_dwordx2 s{{\[[0-9]:[0-9]\]}}, s[0:1], 0x2c 138*9880d681SAndroid Build Coastguard Workerdefine void @v2f32_arg(<2 x float> addrspace(1)* nocapture %out, <2 x float> %in) nounwind { 139*9880d681SAndroid Build Coastguard Workerentry: 140*9880d681SAndroid Build Coastguard Worker store <2 x float> %in, <2 x float> addrspace(1)* %out, align 4 141*9880d681SAndroid Build Coastguard Worker ret void 142*9880d681SAndroid Build Coastguard Worker} 143*9880d681SAndroid Build Coastguard Worker 144*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v3i8_arg: 145*9880d681SAndroid Build Coastguard Worker; VTX_READ_8 T{{[0-9]}}.X, T{{[0-9]}}.X, 40 146*9880d681SAndroid Build Coastguard Worker; VTX_READ_8 T{{[0-9]}}.X, T{{[0-9]}}.X, 41 147*9880d681SAndroid Build Coastguard Worker; VTX_READ_8 T{{[0-9]}}.X, T{{[0-9]}}.X, 42 148*9880d681SAndroid Build Coastguard Workerdefine void @v3i8_arg(<3 x i8> addrspace(1)* nocapture %out, <3 x i8> %in) nounwind { 149*9880d681SAndroid Build Coastguard Workerentry: 150*9880d681SAndroid Build Coastguard Worker store <3 x i8> %in, <3 x i8> addrspace(1)* %out, align 4 151*9880d681SAndroid Build Coastguard Worker ret void 152*9880d681SAndroid Build Coastguard Worker} 153*9880d681SAndroid Build Coastguard Worker 154*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v3i16_arg: 155*9880d681SAndroid Build Coastguard Worker; VTX_READ_16 T{{[0-9]}}.X, T{{[0-9]}}.X, 44 156*9880d681SAndroid Build Coastguard Worker; VTX_READ_16 T{{[0-9]}}.X, T{{[0-9]}}.X, 46 157*9880d681SAndroid Build Coastguard Worker; VTX_READ_16 T{{[0-9]}}.X, T{{[0-9]}}.X, 48 158*9880d681SAndroid Build Coastguard Workerdefine void @v3i16_arg(<3 x i16> addrspace(1)* nocapture %out, <3 x i16> %in) nounwind { 159*9880d681SAndroid Build Coastguard Workerentry: 160*9880d681SAndroid Build Coastguard Worker store <3 x i16> %in, <3 x i16> addrspace(1)* %out, align 4 161*9880d681SAndroid Build Coastguard Worker ret void 162*9880d681SAndroid Build Coastguard Worker} 163*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v3i32_arg: 164*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].Y 165*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].Z 166*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].W 167*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx4 s{{\[[0-9]:[0-9]+\]}}, s[0:1], 0xd 168*9880d681SAndroid Build Coastguard Worker; VI: s_load_dwordx4 s{{\[[0-9]:[0-9]+\]}}, s[0:1], 0x34 169*9880d681SAndroid Build Coastguard Workerdefine void @v3i32_arg(<3 x i32> addrspace(1)* nocapture %out, <3 x i32> %in) nounwind { 170*9880d681SAndroid Build Coastguard Workerentry: 171*9880d681SAndroid Build Coastguard Worker store <3 x i32> %in, <3 x i32> addrspace(1)* %out, align 4 172*9880d681SAndroid Build Coastguard Worker ret void 173*9880d681SAndroid Build Coastguard Worker} 174*9880d681SAndroid Build Coastguard Worker 175*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v3f32_arg: 176*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].Y 177*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].Z 178*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].W 179*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx4 s{{\[[0-9]:[0-9]+\]}}, s[0:1], 0xd 180*9880d681SAndroid Build Coastguard Worker; VI: s_load_dwordx4 s{{\[[0-9]:[0-9]+\]}}, s[0:1], 0x34 181*9880d681SAndroid Build Coastguard Workerdefine void @v3f32_arg(<3 x float> addrspace(1)* nocapture %out, <3 x float> %in) nounwind { 182*9880d681SAndroid Build Coastguard Workerentry: 183*9880d681SAndroid Build Coastguard Worker store <3 x float> %in, <3 x float> addrspace(1)* %out, align 4 184*9880d681SAndroid Build Coastguard Worker ret void 185*9880d681SAndroid Build Coastguard Worker} 186*9880d681SAndroid Build Coastguard Worker 187*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v4i8_arg: 188*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 189*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 190*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 191*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 192*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 193*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 194*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 195*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 196*9880d681SAndroid Build Coastguard Workerdefine void @v4i8_arg(<4 x i8> addrspace(1)* %out, <4 x i8> %in) { 197*9880d681SAndroid Build Coastguard Workerentry: 198*9880d681SAndroid Build Coastguard Worker store <4 x i8> %in, <4 x i8> addrspace(1)* %out 199*9880d681SAndroid Build Coastguard Worker ret void 200*9880d681SAndroid Build Coastguard Worker} 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v4i16_arg: 203*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 204*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 205*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 206*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 207*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 208*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 209*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 210*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 211*9880d681SAndroid Build Coastguard Workerdefine void @v4i16_arg(<4 x i16> addrspace(1)* %out, <4 x i16> %in) { 212*9880d681SAndroid Build Coastguard Workerentry: 213*9880d681SAndroid Build Coastguard Worker store <4 x i16> %in, <4 x i16> addrspace(1)* %out 214*9880d681SAndroid Build Coastguard Worker ret void 215*9880d681SAndroid Build Coastguard Worker} 216*9880d681SAndroid Build Coastguard Worker 217*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v4i32_arg: 218*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].Y 219*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].Z 220*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].W 221*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[4].X 222*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx4 s{{\[[0-9]:[0-9]\]}}, s[0:1], 0xd 223*9880d681SAndroid Build Coastguard Worker; VI: s_load_dwordx4 s{{\[[0-9]:[0-9]\]}}, s[0:1], 0x34 224*9880d681SAndroid Build Coastguard Workerdefine void @v4i32_arg(<4 x i32> addrspace(1)* nocapture %out, <4 x i32> %in) nounwind { 225*9880d681SAndroid Build Coastguard Workerentry: 226*9880d681SAndroid Build Coastguard Worker store <4 x i32> %in, <4 x i32> addrspace(1)* %out, align 4 227*9880d681SAndroid Build Coastguard Worker ret void 228*9880d681SAndroid Build Coastguard Worker} 229*9880d681SAndroid Build Coastguard Worker 230*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v4f32_arg: 231*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].Y 232*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].Z 233*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[3].W 234*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[4].X 235*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx4 s{{\[[0-9]:[0-9]\]}}, s[0:1], 0xd 236*9880d681SAndroid Build Coastguard Worker; VI: s_load_dwordx4 s{{\[[0-9]:[0-9]\]}}, s[0:1], 0x34 237*9880d681SAndroid Build Coastguard Workerdefine void @v4f32_arg(<4 x float> addrspace(1)* nocapture %out, <4 x float> %in) nounwind { 238*9880d681SAndroid Build Coastguard Workerentry: 239*9880d681SAndroid Build Coastguard Worker store <4 x float> %in, <4 x float> addrspace(1)* %out, align 4 240*9880d681SAndroid Build Coastguard Worker ret void 241*9880d681SAndroid Build Coastguard Worker} 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v8i8_arg: 244*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 245*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 246*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 247*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 248*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 249*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 250*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 251*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 252*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 253*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 254*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 255*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 256*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 257*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 258*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 259*9880d681SAndroid Build Coastguard Workerdefine void @v8i8_arg(<8 x i8> addrspace(1)* %out, <8 x i8> %in) { 260*9880d681SAndroid Build Coastguard Workerentry: 261*9880d681SAndroid Build Coastguard Worker store <8 x i8> %in, <8 x i8> addrspace(1)* %out 262*9880d681SAndroid Build Coastguard Worker ret void 263*9880d681SAndroid Build Coastguard Worker} 264*9880d681SAndroid Build Coastguard Worker 265*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v8i16_arg: 266*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 267*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 268*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 269*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 270*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 271*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 272*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 273*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 274*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 275*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 276*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 277*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 278*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 279*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 280*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 281*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 282*9880d681SAndroid Build Coastguard Workerdefine void @v8i16_arg(<8 x i16> addrspace(1)* %out, <8 x i16> %in) { 283*9880d681SAndroid Build Coastguard Workerentry: 284*9880d681SAndroid Build Coastguard Worker store <8 x i16> %in, <8 x i16> addrspace(1)* %out 285*9880d681SAndroid Build Coastguard Worker ret void 286*9880d681SAndroid Build Coastguard Worker} 287*9880d681SAndroid Build Coastguard Worker 288*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v8i32_arg: 289*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[4].Y 290*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[4].Z 291*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[4].W 292*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[5].X 293*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[5].Y 294*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[5].Z 295*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[5].W 296*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[6].X 297*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx8 s{{\[[0-9]+:[0-9]+\]}}, s[0:1], 0x11 298*9880d681SAndroid Build Coastguard Worker; VI: s_load_dwordx8 s{{\[[0-9]+:[0-9]+\]}}, s[0:1], 0x44 299*9880d681SAndroid Build Coastguard Workerdefine void @v8i32_arg(<8 x i32> addrspace(1)* nocapture %out, <8 x i32> %in) nounwind { 300*9880d681SAndroid Build Coastguard Workerentry: 301*9880d681SAndroid Build Coastguard Worker store <8 x i32> %in, <8 x i32> addrspace(1)* %out, align 4 302*9880d681SAndroid Build Coastguard Worker ret void 303*9880d681SAndroid Build Coastguard Worker} 304*9880d681SAndroid Build Coastguard Worker 305*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v8f32_arg: 306*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[4].Y 307*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[4].Z 308*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[4].W 309*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[5].X 310*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[5].Y 311*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[5].Z 312*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[5].W 313*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[6].X 314*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx8 s{{\[[0-9]+:[0-9]+\]}}, s[0:1], 0x11 315*9880d681SAndroid Build Coastguard Workerdefine void @v8f32_arg(<8 x float> addrspace(1)* nocapture %out, <8 x float> %in) nounwind { 316*9880d681SAndroid Build Coastguard Workerentry: 317*9880d681SAndroid Build Coastguard Worker store <8 x float> %in, <8 x float> addrspace(1)* %out, align 4 318*9880d681SAndroid Build Coastguard Worker ret void 319*9880d681SAndroid Build Coastguard Worker} 320*9880d681SAndroid Build Coastguard Worker 321*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v16i8_arg: 322*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 323*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 324*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 325*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 326*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 327*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 328*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 329*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 330*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 331*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 332*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 333*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 334*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 335*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 336*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 337*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 338*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 339*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 340*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 341*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 342*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 343*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 344*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 345*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 346*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 347*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 348*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 349*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 350*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 351*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 352*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 353*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ubyte 354*9880d681SAndroid Build Coastguard Workerdefine void @v16i8_arg(<16 x i8> addrspace(1)* %out, <16 x i8> %in) { 355*9880d681SAndroid Build Coastguard Workerentry: 356*9880d681SAndroid Build Coastguard Worker store <16 x i8> %in, <16 x i8> addrspace(1)* %out 357*9880d681SAndroid Build Coastguard Worker ret void 358*9880d681SAndroid Build Coastguard Worker} 359*9880d681SAndroid Build Coastguard Worker 360*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v16i16_arg: 361*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 362*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 363*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 364*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 365*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 366*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 367*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 368*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 369*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 370*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 371*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 372*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 373*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 374*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 375*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 376*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 377*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 378*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 379*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 380*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 381*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 382*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 383*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 384*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 385*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 386*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 387*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 388*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 389*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 390*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 391*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 392*9880d681SAndroid Build Coastguard Worker; GCN: buffer_load_ushort 393*9880d681SAndroid Build Coastguard Workerdefine void @v16i16_arg(<16 x i16> addrspace(1)* %out, <16 x i16> %in) { 394*9880d681SAndroid Build Coastguard Workerentry: 395*9880d681SAndroid Build Coastguard Worker store <16 x i16> %in, <16 x i16> addrspace(1)* %out 396*9880d681SAndroid Build Coastguard Worker ret void 397*9880d681SAndroid Build Coastguard Worker} 398*9880d681SAndroid Build Coastguard Worker 399*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v16i32_arg: 400*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[6].Y 401*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[6].Z 402*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[6].W 403*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[7].X 404*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[7].Y 405*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[7].Z 406*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[7].W 407*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[8].X 408*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[8].Y 409*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[8].Z 410*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[8].W 411*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[9].X 412*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[9].Y 413*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[9].Z 414*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[9].W 415*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[10].X 416*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx16 s{{\[[0-9]+:[0-9]+\]}}, s[0:1], 0x19 417*9880d681SAndroid Build Coastguard Worker; VI: s_load_dwordx16 s{{\[[0-9]+:[0-9]+\]}}, s[0:1], 0x64 418*9880d681SAndroid Build Coastguard Workerdefine void @v16i32_arg(<16 x i32> addrspace(1)* nocapture %out, <16 x i32> %in) nounwind { 419*9880d681SAndroid Build Coastguard Workerentry: 420*9880d681SAndroid Build Coastguard Worker store <16 x i32> %in, <16 x i32> addrspace(1)* %out, align 4 421*9880d681SAndroid Build Coastguard Worker ret void 422*9880d681SAndroid Build Coastguard Worker} 423*9880d681SAndroid Build Coastguard Worker 424*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}v16f32_arg: 425*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[6].Y 426*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[6].Z 427*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[6].W 428*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[7].X 429*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[7].Y 430*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[7].Z 431*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[7].W 432*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[8].X 433*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[8].Y 434*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[8].Z 435*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[8].W 436*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[9].X 437*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[9].Y 438*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[9].Z 439*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[9].W 440*9880d681SAndroid Build Coastguard Worker; EG-DAG: T{{[0-9]\.[XYZW]}}, KC0[10].X 441*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx16 s{{\[[0-9]+:[0-9]+\]}}, s[0:1], 0x19 442*9880d681SAndroid Build Coastguard Worker; VI: s_load_dwordx16 s{{\[[0-9]+:[0-9]+\]}}, s[0:1], 0x64 443*9880d681SAndroid Build Coastguard Workerdefine void @v16f32_arg(<16 x float> addrspace(1)* nocapture %out, <16 x float> %in) nounwind { 444*9880d681SAndroid Build Coastguard Workerentry: 445*9880d681SAndroid Build Coastguard Worker store <16 x float> %in, <16 x float> addrspace(1)* %out, align 4 446*9880d681SAndroid Build Coastguard Worker ret void 447*9880d681SAndroid Build Coastguard Worker} 448*9880d681SAndroid Build Coastguard Worker 449*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}kernel_arg_i64: 450*9880d681SAndroid Build Coastguard Worker; GCN: s_load_dwordx2 451*9880d681SAndroid Build Coastguard Worker; GCN: s_load_dwordx2 452*9880d681SAndroid Build Coastguard Worker; GCN: buffer_store_dwordx2 453*9880d681SAndroid Build Coastguard Workerdefine void @kernel_arg_i64(i64 addrspace(1)* %out, i64 %a) nounwind { 454*9880d681SAndroid Build Coastguard Worker store i64 %a, i64 addrspace(1)* %out, align 8 455*9880d681SAndroid Build Coastguard Worker ret void 456*9880d681SAndroid Build Coastguard Worker} 457*9880d681SAndroid Build Coastguard Worker 458*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}f64_kernel_arg: 459*9880d681SAndroid Build Coastguard Worker; SI-DAG: s_load_dwordx2 s[{{[0-9]:[0-9]}}], s[0:1], 0x9 460*9880d681SAndroid Build Coastguard Worker; SI-DAG: s_load_dwordx2 s[{{[0-9]:[0-9]}}], s[0:1], 0xb 461*9880d681SAndroid Build Coastguard Worker; VI-DAG: s_load_dwordx2 s[{{[0-9]:[0-9]}}], s[0:1], 0x24 462*9880d681SAndroid Build Coastguard Worker; VI-DAG: s_load_dwordx2 s[{{[0-9]:[0-9]}}], s[0:1], 0x2c 463*9880d681SAndroid Build Coastguard Worker; GCN: buffer_store_dwordx2 464*9880d681SAndroid Build Coastguard Workerdefine void @f64_kernel_arg(double addrspace(1)* %out, double %in) { 465*9880d681SAndroid Build Coastguard Workerentry: 466*9880d681SAndroid Build Coastguard Worker store double %in, double addrspace(1)* %out 467*9880d681SAndroid Build Coastguard Worker ret void 468*9880d681SAndroid Build Coastguard Worker} 469*9880d681SAndroid Build Coastguard Worker 470*9880d681SAndroid Build Coastguard Worker; XFUNC-LABEL: {{^}}kernel_arg_v1i64: 471*9880d681SAndroid Build Coastguard Worker; XGCN: s_load_dwordx2 472*9880d681SAndroid Build Coastguard Worker; XGCN: s_load_dwordx2 473*9880d681SAndroid Build Coastguard Worker; XGCN: buffer_store_dwordx2 474*9880d681SAndroid Build Coastguard Worker; define void @kernel_arg_v1i64(<1 x i64> addrspace(1)* %out, <1 x i64> %a) nounwind { 475*9880d681SAndroid Build Coastguard Worker; store <1 x i64> %a, <1 x i64> addrspace(1)* %out, align 8 476*9880d681SAndroid Build Coastguard Worker; ret void 477*9880d681SAndroid Build Coastguard Worker; } 478*9880d681SAndroid Build Coastguard Worker 479*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i1_arg: 480*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_ubyte 481*9880d681SAndroid Build Coastguard Worker; SI: v_and_b32_e32 482*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_byte 483*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 484*9880d681SAndroid Build Coastguard Workerdefine void @i1_arg(i1 addrspace(1)* %out, i1 %x) nounwind { 485*9880d681SAndroid Build Coastguard Worker store i1 %x, i1 addrspace(1)* %out, align 1 486*9880d681SAndroid Build Coastguard Worker ret void 487*9880d681SAndroid Build Coastguard Worker} 488*9880d681SAndroid Build Coastguard Worker 489*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i1_arg_zext_i32: 490*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_ubyte 491*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dword 492*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 493*9880d681SAndroid Build Coastguard Workerdefine void @i1_arg_zext_i32(i32 addrspace(1)* %out, i1 %x) nounwind { 494*9880d681SAndroid Build Coastguard Worker %ext = zext i1 %x to i32 495*9880d681SAndroid Build Coastguard Worker store i32 %ext, i32 addrspace(1)* %out, align 4 496*9880d681SAndroid Build Coastguard Worker ret void 497*9880d681SAndroid Build Coastguard Worker} 498*9880d681SAndroid Build Coastguard Worker 499*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i1_arg_zext_i64: 500*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_ubyte 501*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dwordx2 502*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 503*9880d681SAndroid Build Coastguard Workerdefine void @i1_arg_zext_i64(i64 addrspace(1)* %out, i1 %x) nounwind { 504*9880d681SAndroid Build Coastguard Worker %ext = zext i1 %x to i64 505*9880d681SAndroid Build Coastguard Worker store i64 %ext, i64 addrspace(1)* %out, align 8 506*9880d681SAndroid Build Coastguard Worker ret void 507*9880d681SAndroid Build Coastguard Worker} 508*9880d681SAndroid Build Coastguard Worker 509*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i1_arg_sext_i32: 510*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_ubyte 511*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dword 512*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 513*9880d681SAndroid Build Coastguard Workerdefine void @i1_arg_sext_i32(i32 addrspace(1)* %out, i1 %x) nounwind { 514*9880d681SAndroid Build Coastguard Worker %ext = sext i1 %x to i32 515*9880d681SAndroid Build Coastguard Worker store i32 %ext, i32addrspace(1)* %out, align 4 516*9880d681SAndroid Build Coastguard Worker ret void 517*9880d681SAndroid Build Coastguard Worker} 518*9880d681SAndroid Build Coastguard Worker 519*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}i1_arg_sext_i64: 520*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_ubyte 521*9880d681SAndroid Build Coastguard Worker; SI: v_bfe_i32 522*9880d681SAndroid Build Coastguard Worker; SI: v_ashrrev_i32 523*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dwordx2 524*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 525*9880d681SAndroid Build Coastguard Workerdefine void @i1_arg_sext_i64(i64 addrspace(1)* %out, i1 %x) nounwind { 526*9880d681SAndroid Build Coastguard Worker %ext = sext i1 %x to i64 527*9880d681SAndroid Build Coastguard Worker store i64 %ext, i64 addrspace(1)* %out, align 8 528*9880d681SAndroid Build Coastguard Worker ret void 529*9880d681SAndroid Build Coastguard Worker} 530