1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=GCN-NOHSA -check-prefix=FUNC %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=kaveri -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=GCN-HSA -check-prefix=FUNC %s 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=GCN -check-prefix=GCN-NOHSA -check-prefix=FUNC %s 4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s 5*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=r600 -mcpu=cayman < %s | FileCheck -check-prefix=EG -check-prefix=FUNC %s 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_i8: 9*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_ubyte v{{[0-9]+}} 10*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_ubyte 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 T{{[0-9]+}}.X, T{{[0-9]+}}.X, 0 13*9880d681SAndroid Build Coastguard Workerdefine void @global_load_i8(i8 addrspace(1)* %out, i8 addrspace(1)* %in) #0 { 14*9880d681SAndroid Build Coastguard Workerentry: 15*9880d681SAndroid Build Coastguard Worker %ld = load i8, i8 addrspace(1)* %in 16*9880d681SAndroid Build Coastguard Worker store i8 %ld, i8 addrspace(1)* %out 17*9880d681SAndroid Build Coastguard Worker ret void 18*9880d681SAndroid Build Coastguard Worker} 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v2i8: 21*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_ushort v 22*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_ushort v 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 25*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v2i8(<2 x i8> addrspace(1)* %out, <2 x i8> addrspace(1)* %in) #0 { 26*9880d681SAndroid Build Coastguard Workerentry: 27*9880d681SAndroid Build Coastguard Worker %ld = load <2 x i8>, <2 x i8> addrspace(1)* %in 28*9880d681SAndroid Build Coastguard Worker store <2 x i8> %ld, <2 x i8> addrspace(1)* %out 29*9880d681SAndroid Build Coastguard Worker ret void 30*9880d681SAndroid Build Coastguard Worker} 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v3i8: 33*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dword v 34*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dword v 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_32 37*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v3i8(<3 x i8> addrspace(1)* %out, <3 x i8> addrspace(1)* %in) #0 { 38*9880d681SAndroid Build Coastguard Workerentry: 39*9880d681SAndroid Build Coastguard Worker %ld = load <3 x i8>, <3 x i8> addrspace(1)* %in 40*9880d681SAndroid Build Coastguard Worker store <3 x i8> %ld, <3 x i8> addrspace(1)* %out 41*9880d681SAndroid Build Coastguard Worker ret void 42*9880d681SAndroid Build Coastguard Worker} 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v4i8: 45*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dword v 46*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dword v 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_32 49*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v4i8(<4 x i8> addrspace(1)* %out, <4 x i8> addrspace(1)* %in) #0 { 50*9880d681SAndroid Build Coastguard Workerentry: 51*9880d681SAndroid Build Coastguard Worker %ld = load <4 x i8>, <4 x i8> addrspace(1)* %in 52*9880d681SAndroid Build Coastguard Worker store <4 x i8> %ld, <4 x i8> addrspace(1)* %out 53*9880d681SAndroid Build Coastguard Worker ret void 54*9880d681SAndroid Build Coastguard Worker} 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v8i8: 57*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx2 58*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx2 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_64 61*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v8i8(<8 x i8> addrspace(1)* %out, <8 x i8> addrspace(1)* %in) #0 { 62*9880d681SAndroid Build Coastguard Workerentry: 63*9880d681SAndroid Build Coastguard Worker %ld = load <8 x i8>, <8 x i8> addrspace(1)* %in 64*9880d681SAndroid Build Coastguard Worker store <8 x i8> %ld, <8 x i8> addrspace(1)* %out 65*9880d681SAndroid Build Coastguard Worker ret void 66*9880d681SAndroid Build Coastguard Worker} 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v16i8: 69*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 70*9880d681SAndroid Build Coastguard Worker 71*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_128 74*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v16i8(<16 x i8> addrspace(1)* %out, <16 x i8> addrspace(1)* %in) #0 { 75*9880d681SAndroid Build Coastguard Workerentry: 76*9880d681SAndroid Build Coastguard Worker %ld = load <16 x i8>, <16 x i8> addrspace(1)* %in 77*9880d681SAndroid Build Coastguard Worker store <16 x i8> %ld, <16 x i8> addrspace(1)* %out 78*9880d681SAndroid Build Coastguard Worker ret void 79*9880d681SAndroid Build Coastguard Worker} 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_i8_to_i32: 82*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_ubyte v{{[0-9]+}}, 83*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_ubyte 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 T{{[0-9]+\.X, T[0-9]+\.X}} 86*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_i8_to_i32(i32 addrspace(1)* %out, i8 addrspace(1)* %in) #0 { 87*9880d681SAndroid Build Coastguard Worker %a = load i8, i8 addrspace(1)* %in 88*9880d681SAndroid Build Coastguard Worker %ext = zext i8 %a to i32 89*9880d681SAndroid Build Coastguard Worker store i32 %ext, i32 addrspace(1)* %out 90*9880d681SAndroid Build Coastguard Worker ret void 91*9880d681SAndroid Build Coastguard Worker} 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_i8_to_i32: 94*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_sbyte 95*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_sbyte 96*9880d681SAndroid Build Coastguard Worker 97*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 [[DST:T[0-9]\.[XYZW]]], [[DST]] 98*9880d681SAndroid Build Coastguard Worker; EG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST]], 0.0, literal 99*9880d681SAndroid Build Coastguard Worker; EG: 8 100*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_i8_to_i32(i32 addrspace(1)* %out, i8 addrspace(1)* %in) #0 { 101*9880d681SAndroid Build Coastguard Worker %ld = load i8, i8 addrspace(1)* %in 102*9880d681SAndroid Build Coastguard Worker %ext = sext i8 %ld to i32 103*9880d681SAndroid Build Coastguard Worker store i32 %ext, i32 addrspace(1)* %out 104*9880d681SAndroid Build Coastguard Worker ret void 105*9880d681SAndroid Build Coastguard Worker} 106*9880d681SAndroid Build Coastguard Worker 107*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v1i8_to_v1i32: 108*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v1i8_to_v1i32(<1 x i32> addrspace(1)* %out, <1 x i8> addrspace(1)* %in) #0 { 109*9880d681SAndroid Build Coastguard Worker %load = load <1 x i8>, <1 x i8> addrspace(1)* %in 110*9880d681SAndroid Build Coastguard Worker %ext = zext <1 x i8> %load to <1 x i32> 111*9880d681SAndroid Build Coastguard Worker store <1 x i32> %ext, <1 x i32> addrspace(1)* %out 112*9880d681SAndroid Build Coastguard Worker ret void 113*9880d681SAndroid Build Coastguard Worker} 114*9880d681SAndroid Build Coastguard Worker 115*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v1i8_to_v1i32: 116*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v1i8_to_v1i32(<1 x i32> addrspace(1)* %out, <1 x i8> addrspace(1)* %in) #0 { 117*9880d681SAndroid Build Coastguard Worker %load = load <1 x i8>, <1 x i8> addrspace(1)* %in 118*9880d681SAndroid Build Coastguard Worker %ext = sext <1 x i8> %load to <1 x i32> 119*9880d681SAndroid Build Coastguard Worker store <1 x i32> %ext, <1 x i32> addrspace(1)* %out 120*9880d681SAndroid Build Coastguard Worker ret void 121*9880d681SAndroid Build Coastguard Worker} 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v2i8_to_v2i32: 124*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_ushort 125*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_ushort 126*9880d681SAndroid Build Coastguard Worker 127*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 128*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 129*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v2i8_to_v2i32(<2 x i32> addrspace(1)* %out, <2 x i8> addrspace(1)* %in) #0 { 130*9880d681SAndroid Build Coastguard Worker %load = load <2 x i8>, <2 x i8> addrspace(1)* %in 131*9880d681SAndroid Build Coastguard Worker %ext = zext <2 x i8> %load to <2 x i32> 132*9880d681SAndroid Build Coastguard Worker store <2 x i32> %ext, <2 x i32> addrspace(1)* %out 133*9880d681SAndroid Build Coastguard Worker ret void 134*9880d681SAndroid Build Coastguard Worker} 135*9880d681SAndroid Build Coastguard Worker 136*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v2i8_to_v2i32: 137*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_ushort 138*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_ushort 139*9880d681SAndroid Build Coastguard Worker 140*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_8 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]] 141*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_8 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]] 142*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_X]], 0.0, literal 143*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_Y]], 0.0, literal 144*9880d681SAndroid Build Coastguard Worker; EG-DAG: 8 145*9880d681SAndroid Build Coastguard Worker; EG-DAG: 8 146*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v2i8_to_v2i32(<2 x i32> addrspace(1)* %out, <2 x i8> addrspace(1)* %in) #0 { 147*9880d681SAndroid Build Coastguard Worker %load = load <2 x i8>, <2 x i8> addrspace(1)* %in 148*9880d681SAndroid Build Coastguard Worker %ext = sext <2 x i8> %load to <2 x i32> 149*9880d681SAndroid Build Coastguard Worker store <2 x i32> %ext, <2 x i32> addrspace(1)* %out 150*9880d681SAndroid Build Coastguard Worker ret void 151*9880d681SAndroid Build Coastguard Worker} 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v3i8_to_v3i32: 154*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dword v 155*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dword v 156*9880d681SAndroid Build Coastguard Worker 157*9880d681SAndroid Build Coastguard Worker; GCN-DAG: v_bfe_u32 v{{[0-9]+}}, v{{[0-9]+}}, 8, 8 158*9880d681SAndroid Build Coastguard Worker; GCN-DAG: v_bfe_u32 v{{[0-9]+}}, v{{[0-9]+}}, 16, 8 159*9880d681SAndroid Build Coastguard Worker; GCN-DAG: v_and_b32_e32 v{{[0-9]+}}, 0xff, 160*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v3i8_to_v3i32(<3 x i32> addrspace(1)* %out, <3 x i8> addrspace(1)* %in) #0 { 161*9880d681SAndroid Build Coastguard Workerentry: 162*9880d681SAndroid Build Coastguard Worker %ld = load <3 x i8>, <3 x i8> addrspace(1)* %in 163*9880d681SAndroid Build Coastguard Worker %ext = zext <3 x i8> %ld to <3 x i32> 164*9880d681SAndroid Build Coastguard Worker store <3 x i32> %ext, <3 x i32> addrspace(1)* %out 165*9880d681SAndroid Build Coastguard Worker ret void 166*9880d681SAndroid Build Coastguard Worker} 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v3i8_to_v3i32: 169*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dword v 170*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dword v 171*9880d681SAndroid Build Coastguard Worker 172*9880d681SAndroid Build Coastguard Worker; GCN-DAG: v_bfe_i32 v{{[0-9]+}}, v{{[0-9]+}}, 8, 8 173*9880d681SAndroid Build Coastguard Worker; GCN-DAG: v_bfe_i32 v{{[0-9]+}}, v{{[0-9]+}}, 0, 8 174*9880d681SAndroid Build Coastguard Worker; GCN-DAG: v_bfe_i32 v{{[0-9]+}}, v{{[0-9]+}}, 16, 8 175*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v3i8_to_v3i32(<3 x i32> addrspace(1)* %out, <3 x i8> addrspace(1)* %in) #0 { 176*9880d681SAndroid Build Coastguard Workerentry: 177*9880d681SAndroid Build Coastguard Worker %ld = load <3 x i8>, <3 x i8> addrspace(1)* %in 178*9880d681SAndroid Build Coastguard Worker %ext = sext <3 x i8> %ld to <3 x i32> 179*9880d681SAndroid Build Coastguard Worker store <3 x i32> %ext, <3 x i32> addrspace(1)* %out 180*9880d681SAndroid Build Coastguard Worker ret void 181*9880d681SAndroid Build Coastguard Worker} 182*9880d681SAndroid Build Coastguard Worker 183*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v4i8_to_v4i32: 184*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dword 185*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dword 186*9880d681SAndroid Build Coastguard Worker 187*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_8 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 Workerdefine void @global_zextload_v4i8_to_v4i32(<4 x i32> addrspace(1)* %out, <4 x i8> addrspace(1)* %in) #0 { 192*9880d681SAndroid Build Coastguard Worker %load = load <4 x i8>, <4 x i8> addrspace(1)* %in 193*9880d681SAndroid Build Coastguard Worker %ext = zext <4 x i8> %load to <4 x i32> 194*9880d681SAndroid Build Coastguard Worker store <4 x i32> %ext, <4 x i32> addrspace(1)* %out 195*9880d681SAndroid Build Coastguard Worker ret void 196*9880d681SAndroid Build Coastguard Worker} 197*9880d681SAndroid Build Coastguard Worker 198*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v4i8_to_v4i32: 199*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dword 200*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dword 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_8 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]] 203*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_8 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]] 204*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_8 [[DST_Z:T[0-9]\.[XYZW]]], [[DST_Z]] 205*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_8 [[DST_W:T[0-9]\.[XYZW]]], [[DST_W]] 206*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_X]], 0.0, literal 207*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_Y]], 0.0, literal 208*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_Z]], 0.0, literal 209*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_W]], 0.0, literal 210*9880d681SAndroid Build Coastguard Worker; EG-DAG: 8 211*9880d681SAndroid Build Coastguard Worker; EG-DAG: 8 212*9880d681SAndroid Build Coastguard Worker; EG-DAG: 8 213*9880d681SAndroid Build Coastguard Worker; EG-DAG: 8 214*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v4i8_to_v4i32(<4 x i32> addrspace(1)* %out, <4 x i8> addrspace(1)* %in) #0 { 215*9880d681SAndroid Build Coastguard Worker %load = load <4 x i8>, <4 x i8> addrspace(1)* %in 216*9880d681SAndroid Build Coastguard Worker %ext = sext <4 x i8> %load to <4 x i32> 217*9880d681SAndroid Build Coastguard Worker store <4 x i32> %ext, <4 x i32> addrspace(1)* %out 218*9880d681SAndroid Build Coastguard Worker ret void 219*9880d681SAndroid Build Coastguard Worker} 220*9880d681SAndroid Build Coastguard Worker 221*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v8i8_to_v8i32: 222*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v8i8_to_v8i32(<8 x i32> addrspace(1)* %out, <8 x i8> addrspace(1)* %in) #0 { 223*9880d681SAndroid Build Coastguard Worker %load = load <8 x i8>, <8 x i8> addrspace(1)* %in 224*9880d681SAndroid Build Coastguard Worker %ext = zext <8 x i8> %load to <8 x i32> 225*9880d681SAndroid Build Coastguard Worker store <8 x i32> %ext, <8 x i32> addrspace(1)* %out 226*9880d681SAndroid Build Coastguard Worker ret void 227*9880d681SAndroid Build Coastguard Worker} 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v8i8_to_v8i32: 230*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v8i8_to_v8i32(<8 x i32> addrspace(1)* %out, <8 x i8> addrspace(1)* %in) #0 { 231*9880d681SAndroid Build Coastguard Worker %load = load <8 x i8>, <8 x i8> addrspace(1)* %in 232*9880d681SAndroid Build Coastguard Worker %ext = sext <8 x i8> %load to <8 x i32> 233*9880d681SAndroid Build Coastguard Worker store <8 x i32> %ext, <8 x i32> addrspace(1)* %out 234*9880d681SAndroid Build Coastguard Worker ret void 235*9880d681SAndroid Build Coastguard Worker} 236*9880d681SAndroid Build Coastguard Worker 237*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v16i8_to_v16i32: 238*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v16i8_to_v16i32(<16 x i32> addrspace(1)* %out, <16 x i8> addrspace(1)* %in) #0 { 239*9880d681SAndroid Build Coastguard Worker %load = load <16 x i8>, <16 x i8> addrspace(1)* %in 240*9880d681SAndroid Build Coastguard Worker %ext = zext <16 x i8> %load to <16 x i32> 241*9880d681SAndroid Build Coastguard Worker store <16 x i32> %ext, <16 x i32> addrspace(1)* %out 242*9880d681SAndroid Build Coastguard Worker ret void 243*9880d681SAndroid Build Coastguard Worker} 244*9880d681SAndroid Build Coastguard Worker 245*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v16i8_to_v16i32: 246*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v16i8_to_v16i32(<16 x i32> addrspace(1)* %out, <16 x i8> addrspace(1)* %in) #0 { 247*9880d681SAndroid Build Coastguard Worker %load = load <16 x i8>, <16 x i8> addrspace(1)* %in 248*9880d681SAndroid Build Coastguard Worker %ext = sext <16 x i8> %load to <16 x i32> 249*9880d681SAndroid Build Coastguard Worker store <16 x i32> %ext, <16 x i32> addrspace(1)* %out 250*9880d681SAndroid Build Coastguard Worker ret void 251*9880d681SAndroid Build Coastguard Worker} 252*9880d681SAndroid Build Coastguard Worker 253*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v32i8_to_v32i32: 254*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v32i8_to_v32i32(<32 x i32> addrspace(1)* %out, <32 x i8> addrspace(1)* %in) #0 { 255*9880d681SAndroid Build Coastguard Worker %load = load <32 x i8>, <32 x i8> addrspace(1)* %in 256*9880d681SAndroid Build Coastguard Worker %ext = zext <32 x i8> %load to <32 x i32> 257*9880d681SAndroid Build Coastguard Worker store <32 x i32> %ext, <32 x i32> addrspace(1)* %out 258*9880d681SAndroid Build Coastguard Worker ret void 259*9880d681SAndroid Build Coastguard Worker} 260*9880d681SAndroid Build Coastguard Worker 261*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v32i8_to_v32i32: 262*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v32i8_to_v32i32(<32 x i32> addrspace(1)* %out, <32 x i8> addrspace(1)* %in) #0 { 263*9880d681SAndroid Build Coastguard Worker %load = load <32 x i8>, <32 x i8> addrspace(1)* %in 264*9880d681SAndroid Build Coastguard Worker %ext = sext <32 x i8> %load to <32 x i32> 265*9880d681SAndroid Build Coastguard Worker store <32 x i32> %ext, <32 x i32> addrspace(1)* %out 266*9880d681SAndroid Build Coastguard Worker ret void 267*9880d681SAndroid Build Coastguard Worker} 268*9880d681SAndroid Build Coastguard Worker 269*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v64i8_to_v64i32: 270*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v64i8_to_v64i32(<64 x i32> addrspace(1)* %out, <64 x i8> addrspace(1)* %in) #0 { 271*9880d681SAndroid Build Coastguard Worker %load = load <64 x i8>, <64 x i8> addrspace(1)* %in 272*9880d681SAndroid Build Coastguard Worker %ext = zext <64 x i8> %load to <64 x i32> 273*9880d681SAndroid Build Coastguard Worker store <64 x i32> %ext, <64 x i32> addrspace(1)* %out 274*9880d681SAndroid Build Coastguard Worker ret void 275*9880d681SAndroid Build Coastguard Worker} 276*9880d681SAndroid Build Coastguard Worker 277*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v64i8_to_v64i32: 278*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v64i8_to_v64i32(<64 x i32> addrspace(1)* %out, <64 x i8> addrspace(1)* %in) #0 { 279*9880d681SAndroid Build Coastguard Worker %load = load <64 x i8>, <64 x i8> addrspace(1)* %in 280*9880d681SAndroid Build Coastguard Worker %ext = sext <64 x i8> %load to <64 x i32> 281*9880d681SAndroid Build Coastguard Worker store <64 x i32> %ext, <64 x i32> addrspace(1)* %out 282*9880d681SAndroid Build Coastguard Worker ret void 283*9880d681SAndroid Build Coastguard Worker} 284*9880d681SAndroid Build Coastguard Worker 285*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_i8_to_i64: 286*9880d681SAndroid Build Coastguard Worker; GCN-DAG: v_mov_b32_e32 v[[HI:[0-9]+]], 0{{$}} 287*9880d681SAndroid Build Coastguard Worker 288*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA-DAG: buffer_load_ubyte v[[LO:[0-9]+]], 289*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_store_dwordx2 v{{\[}}[[LO]]:[[HI]]] 290*9880d681SAndroid Build Coastguard Worker 291*9880d681SAndroid Build Coastguard Worker; GCN-HSA-DAG: flat_load_ubyte v[[LO:[0-9]+]], 292*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_store_dwordx2 v{{\[[0-9]+:[0-9]+\]}}, v{{\[}}[[LO]]:[[HI]]] 293*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_i8_to_i64(i64 addrspace(1)* %out, i8 addrspace(1)* %in) #0 { 294*9880d681SAndroid Build Coastguard Worker %a = load i8, i8 addrspace(1)* %in 295*9880d681SAndroid Build Coastguard Worker %ext = zext i8 %a to i64 296*9880d681SAndroid Build Coastguard Worker store i64 %ext, i64 addrspace(1)* %out 297*9880d681SAndroid Build Coastguard Worker ret void 298*9880d681SAndroid Build Coastguard Worker} 299*9880d681SAndroid Build Coastguard Worker 300*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_i8_to_i64: 301*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_sbyte v[[LO:[0-9]+]], 302*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_sbyte v[[LO:[0-9]+]], 303*9880d681SAndroid Build Coastguard Worker; GCN: v_ashrrev_i32_e32 v[[HI:[0-9]+]], 31, v[[LO]] 304*9880d681SAndroid Build Coastguard Worker 305*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_store_dwordx2 v{{\[}}[[LO]]:[[HI]]{{\]}} 306*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_store_dwordx2 v{{\[[0-9]+:[0-9]+\]}}, v{{\[}}[[LO]]:[[HI]]{{\]}} 307*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_i8_to_i64(i64 addrspace(1)* %out, i8 addrspace(1)* %in) #0 { 308*9880d681SAndroid Build Coastguard Worker %a = load i8, i8 addrspace(1)* %in 309*9880d681SAndroid Build Coastguard Worker %ext = sext i8 %a to i64 310*9880d681SAndroid Build Coastguard Worker store i64 %ext, i64 addrspace(1)* %out 311*9880d681SAndroid Build Coastguard Worker ret void 312*9880d681SAndroid Build Coastguard Worker} 313*9880d681SAndroid Build Coastguard Worker 314*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v1i8_to_v1i64: 315*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v1i8_to_v1i64(<1 x i64> addrspace(1)* %out, <1 x i8> addrspace(1)* %in) #0 { 316*9880d681SAndroid Build Coastguard Worker %load = load <1 x i8>, <1 x i8> addrspace(1)* %in 317*9880d681SAndroid Build Coastguard Worker %ext = zext <1 x i8> %load to <1 x i64> 318*9880d681SAndroid Build Coastguard Worker store <1 x i64> %ext, <1 x i64> addrspace(1)* %out 319*9880d681SAndroid Build Coastguard Worker ret void 320*9880d681SAndroid Build Coastguard Worker} 321*9880d681SAndroid Build Coastguard Worker 322*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v1i8_to_v1i64: 323*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v1i8_to_v1i64(<1 x i64> addrspace(1)* %out, <1 x i8> addrspace(1)* %in) #0 { 324*9880d681SAndroid Build Coastguard Worker %load = load <1 x i8>, <1 x i8> addrspace(1)* %in 325*9880d681SAndroid Build Coastguard Worker %ext = sext <1 x i8> %load to <1 x i64> 326*9880d681SAndroid Build Coastguard Worker store <1 x i64> %ext, <1 x i64> addrspace(1)* %out 327*9880d681SAndroid Build Coastguard Worker ret void 328*9880d681SAndroid Build Coastguard Worker} 329*9880d681SAndroid Build Coastguard Worker 330*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v2i8_to_v2i64: 331*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v2i8_to_v2i64(<2 x i64> addrspace(1)* %out, <2 x i8> addrspace(1)* %in) #0 { 332*9880d681SAndroid Build Coastguard Worker %load = load <2 x i8>, <2 x i8> addrspace(1)* %in 333*9880d681SAndroid Build Coastguard Worker %ext = zext <2 x i8> %load to <2 x i64> 334*9880d681SAndroid Build Coastguard Worker store <2 x i64> %ext, <2 x i64> addrspace(1)* %out 335*9880d681SAndroid Build Coastguard Worker ret void 336*9880d681SAndroid Build Coastguard Worker} 337*9880d681SAndroid Build Coastguard Worker 338*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v2i8_to_v2i64: 339*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v2i8_to_v2i64(<2 x i64> addrspace(1)* %out, <2 x i8> addrspace(1)* %in) #0 { 340*9880d681SAndroid Build Coastguard Worker %load = load <2 x i8>, <2 x i8> addrspace(1)* %in 341*9880d681SAndroid Build Coastguard Worker %ext = sext <2 x i8> %load to <2 x i64> 342*9880d681SAndroid Build Coastguard Worker store <2 x i64> %ext, <2 x i64> addrspace(1)* %out 343*9880d681SAndroid Build Coastguard Worker ret void 344*9880d681SAndroid Build Coastguard Worker} 345*9880d681SAndroid Build Coastguard Worker 346*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v4i8_to_v4i64: 347*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v4i8_to_v4i64(<4 x i64> addrspace(1)* %out, <4 x i8> addrspace(1)* %in) #0 { 348*9880d681SAndroid Build Coastguard Worker %load = load <4 x i8>, <4 x i8> addrspace(1)* %in 349*9880d681SAndroid Build Coastguard Worker %ext = zext <4 x i8> %load to <4 x i64> 350*9880d681SAndroid Build Coastguard Worker store <4 x i64> %ext, <4 x i64> addrspace(1)* %out 351*9880d681SAndroid Build Coastguard Worker ret void 352*9880d681SAndroid Build Coastguard Worker} 353*9880d681SAndroid Build Coastguard Worker 354*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v4i8_to_v4i64: 355*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v4i8_to_v4i64(<4 x i64> addrspace(1)* %out, <4 x i8> addrspace(1)* %in) #0 { 356*9880d681SAndroid Build Coastguard Worker %load = load <4 x i8>, <4 x i8> addrspace(1)* %in 357*9880d681SAndroid Build Coastguard Worker %ext = sext <4 x i8> %load to <4 x i64> 358*9880d681SAndroid Build Coastguard Worker store <4 x i64> %ext, <4 x i64> addrspace(1)* %out 359*9880d681SAndroid Build Coastguard Worker ret void 360*9880d681SAndroid Build Coastguard Worker} 361*9880d681SAndroid Build Coastguard Worker 362*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v8i8_to_v8i64: 363*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v8i8_to_v8i64(<8 x i64> addrspace(1)* %out, <8 x i8> addrspace(1)* %in) #0 { 364*9880d681SAndroid Build Coastguard Worker %load = load <8 x i8>, <8 x i8> addrspace(1)* %in 365*9880d681SAndroid Build Coastguard Worker %ext = zext <8 x i8> %load to <8 x i64> 366*9880d681SAndroid Build Coastguard Worker store <8 x i64> %ext, <8 x i64> addrspace(1)* %out 367*9880d681SAndroid Build Coastguard Worker ret void 368*9880d681SAndroid Build Coastguard Worker} 369*9880d681SAndroid Build Coastguard Worker 370*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v8i8_to_v8i64: 371*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v8i8_to_v8i64(<8 x i64> addrspace(1)* %out, <8 x i8> addrspace(1)* %in) #0 { 372*9880d681SAndroid Build Coastguard Worker %load = load <8 x i8>, <8 x i8> addrspace(1)* %in 373*9880d681SAndroid Build Coastguard Worker %ext = sext <8 x i8> %load to <8 x i64> 374*9880d681SAndroid Build Coastguard Worker store <8 x i64> %ext, <8 x i64> addrspace(1)* %out 375*9880d681SAndroid Build Coastguard Worker ret void 376*9880d681SAndroid Build Coastguard Worker} 377*9880d681SAndroid Build Coastguard Worker 378*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v16i8_to_v16i64: 379*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v16i8_to_v16i64(<16 x i64> addrspace(1)* %out, <16 x i8> addrspace(1)* %in) #0 { 380*9880d681SAndroid Build Coastguard Worker %load = load <16 x i8>, <16 x i8> addrspace(1)* %in 381*9880d681SAndroid Build Coastguard Worker %ext = zext <16 x i8> %load to <16 x i64> 382*9880d681SAndroid Build Coastguard Worker store <16 x i64> %ext, <16 x i64> addrspace(1)* %out 383*9880d681SAndroid Build Coastguard Worker ret void 384*9880d681SAndroid Build Coastguard Worker} 385*9880d681SAndroid Build Coastguard Worker 386*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v16i8_to_v16i64: 387*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v16i8_to_v16i64(<16 x i64> addrspace(1)* %out, <16 x i8> addrspace(1)* %in) #0 { 388*9880d681SAndroid Build Coastguard Worker %load = load <16 x i8>, <16 x i8> addrspace(1)* %in 389*9880d681SAndroid Build Coastguard Worker %ext = sext <16 x i8> %load to <16 x i64> 390*9880d681SAndroid Build Coastguard Worker store <16 x i64> %ext, <16 x i64> addrspace(1)* %out 391*9880d681SAndroid Build Coastguard Worker ret void 392*9880d681SAndroid Build Coastguard Worker} 393*9880d681SAndroid Build Coastguard Worker 394*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v32i8_to_v32i64: 395*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v32i8_to_v32i64(<32 x i64> addrspace(1)* %out, <32 x i8> addrspace(1)* %in) #0 { 396*9880d681SAndroid Build Coastguard Worker %load = load <32 x i8>, <32 x i8> addrspace(1)* %in 397*9880d681SAndroid Build Coastguard Worker %ext = zext <32 x i8> %load to <32 x i64> 398*9880d681SAndroid Build Coastguard Worker store <32 x i64> %ext, <32 x i64> addrspace(1)* %out 399*9880d681SAndroid Build Coastguard Worker ret void 400*9880d681SAndroid Build Coastguard Worker} 401*9880d681SAndroid Build Coastguard Worker 402*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v32i8_to_v32i64: 403*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v32i8_to_v32i64(<32 x i64> addrspace(1)* %out, <32 x i8> addrspace(1)* %in) #0 { 404*9880d681SAndroid Build Coastguard Worker %load = load <32 x i8>, <32 x i8> addrspace(1)* %in 405*9880d681SAndroid Build Coastguard Worker %ext = sext <32 x i8> %load to <32 x i64> 406*9880d681SAndroid Build Coastguard Worker store <32 x i64> %ext, <32 x i64> addrspace(1)* %out 407*9880d681SAndroid Build Coastguard Worker ret void 408*9880d681SAndroid Build Coastguard Worker} 409*9880d681SAndroid Build Coastguard Worker 410*9880d681SAndroid Build Coastguard Worker; XFUNC-LABEL: {{^}}global_zextload_v64i8_to_v64i64: 411*9880d681SAndroid Build Coastguard Worker; define void @global_zextload_v64i8_to_v64i64(<64 x i64> addrspace(1)* %out, <64 x i8> addrspace(1)* %in) #0 { 412*9880d681SAndroid Build Coastguard Worker; %load = load <64 x i8>, <64 x i8> addrspace(1)* %in 413*9880d681SAndroid Build Coastguard Worker; %ext = zext <64 x i8> %load to <64 x i64> 414*9880d681SAndroid Build Coastguard Worker; store <64 x i64> %ext, <64 x i64> addrspace(1)* %out 415*9880d681SAndroid Build Coastguard Worker; ret void 416*9880d681SAndroid Build Coastguard Worker; } 417*9880d681SAndroid Build Coastguard Worker 418*9880d681SAndroid Build Coastguard Worker; XFUNC-LABEL: {{^}}global_sextload_v64i8_to_v64i64: 419*9880d681SAndroid Build Coastguard Worker; define void @global_sextload_v64i8_to_v64i64(<64 x i64> addrspace(1)* %out, <64 x i8> addrspace(1)* %in) #0 { 420*9880d681SAndroid Build Coastguard Worker; %load = load <64 x i8>, <64 x i8> addrspace(1)* %in 421*9880d681SAndroid Build Coastguard Worker; %ext = sext <64 x i8> %load to <64 x i64> 422*9880d681SAndroid Build Coastguard Worker; store <64 x i64> %ext, <64 x i64> addrspace(1)* %out 423*9880d681SAndroid Build Coastguard Worker; ret void 424*9880d681SAndroid Build Coastguard Worker; } 425*9880d681SAndroid Build Coastguard Worker 426*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_i8_to_i16: 427*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_ubyte v[[VAL:[0-9]+]], 428*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_store_short v[[VAL]] 429*9880d681SAndroid Build Coastguard Worker 430*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_ubyte v[[VAL:[0-9]+]], 431*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_store_short v{{\[[0-9]+:[0-9]+\]}}, v[[VAL]] 432*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_i8_to_i16(i16 addrspace(1)* %out, i8 addrspace(1)* %in) #0 { 433*9880d681SAndroid Build Coastguard Worker %a = load i8, i8 addrspace(1)* %in 434*9880d681SAndroid Build Coastguard Worker %ext = zext i8 %a to i16 435*9880d681SAndroid Build Coastguard Worker store i16 %ext, i16 addrspace(1)* %out 436*9880d681SAndroid Build Coastguard Worker ret void 437*9880d681SAndroid Build Coastguard Worker} 438*9880d681SAndroid Build Coastguard Worker 439*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_i8_to_i16: 440*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_sbyte v[[VAL:[0-9]+]], 441*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_sbyte v[[VAL:[0-9]+]], 442*9880d681SAndroid Build Coastguard Worker 443*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_store_short v[[VAL]] 444*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_store_short v{{\[[0-9]+:[0-9]+\]}}, v[[VAL]] 445*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_i8_to_i16(i16 addrspace(1)* %out, i8 addrspace(1)* %in) #0 { 446*9880d681SAndroid Build Coastguard Worker %a = load i8, i8 addrspace(1)* %in 447*9880d681SAndroid Build Coastguard Worker %ext = sext i8 %a to i16 448*9880d681SAndroid Build Coastguard Worker store i16 %ext, i16 addrspace(1)* %out 449*9880d681SAndroid Build Coastguard Worker ret void 450*9880d681SAndroid Build Coastguard Worker} 451*9880d681SAndroid Build Coastguard Worker 452*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v1i8_to_v1i16: 453*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v1i8_to_v1i16(<1 x i16> addrspace(1)* %out, <1 x i8> addrspace(1)* %in) #0 { 454*9880d681SAndroid Build Coastguard Worker %load = load <1 x i8>, <1 x i8> addrspace(1)* %in 455*9880d681SAndroid Build Coastguard Worker %ext = zext <1 x i8> %load to <1 x i16> 456*9880d681SAndroid Build Coastguard Worker store <1 x i16> %ext, <1 x i16> addrspace(1)* %out 457*9880d681SAndroid Build Coastguard Worker ret void 458*9880d681SAndroid Build Coastguard Worker} 459*9880d681SAndroid Build Coastguard Worker 460*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v1i8_to_v1i16: 461*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v1i8_to_v1i16(<1 x i16> addrspace(1)* %out, <1 x i8> addrspace(1)* %in) #0 { 462*9880d681SAndroid Build Coastguard Worker %load = load <1 x i8>, <1 x i8> addrspace(1)* %in 463*9880d681SAndroid Build Coastguard Worker %ext = sext <1 x i8> %load to <1 x i16> 464*9880d681SAndroid Build Coastguard Worker store <1 x i16> %ext, <1 x i16> addrspace(1)* %out 465*9880d681SAndroid Build Coastguard Worker ret void 466*9880d681SAndroid Build Coastguard Worker} 467*9880d681SAndroid Build Coastguard Worker 468*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v2i8_to_v2i16: 469*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v2i8_to_v2i16(<2 x i16> addrspace(1)* %out, <2 x i8> addrspace(1)* %in) #0 { 470*9880d681SAndroid Build Coastguard Worker %load = load <2 x i8>, <2 x i8> addrspace(1)* %in 471*9880d681SAndroid Build Coastguard Worker %ext = zext <2 x i8> %load to <2 x i16> 472*9880d681SAndroid Build Coastguard Worker store <2 x i16> %ext, <2 x i16> addrspace(1)* %out 473*9880d681SAndroid Build Coastguard Worker ret void 474*9880d681SAndroid Build Coastguard Worker} 475*9880d681SAndroid Build Coastguard Worker 476*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v2i8_to_v2i16: 477*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v2i8_to_v2i16(<2 x i16> addrspace(1)* %out, <2 x i8> addrspace(1)* %in) #0 { 478*9880d681SAndroid Build Coastguard Worker %load = load <2 x i8>, <2 x i8> addrspace(1)* %in 479*9880d681SAndroid Build Coastguard Worker %ext = sext <2 x i8> %load to <2 x i16> 480*9880d681SAndroid Build Coastguard Worker store <2 x i16> %ext, <2 x i16> addrspace(1)* %out 481*9880d681SAndroid Build Coastguard Worker ret void 482*9880d681SAndroid Build Coastguard Worker} 483*9880d681SAndroid Build Coastguard Worker 484*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v4i8_to_v4i16: 485*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v4i8_to_v4i16(<4 x i16> addrspace(1)* %out, <4 x i8> addrspace(1)* %in) #0 { 486*9880d681SAndroid Build Coastguard Worker %load = load <4 x i8>, <4 x i8> addrspace(1)* %in 487*9880d681SAndroid Build Coastguard Worker %ext = zext <4 x i8> %load to <4 x i16> 488*9880d681SAndroid Build Coastguard Worker store <4 x i16> %ext, <4 x i16> addrspace(1)* %out 489*9880d681SAndroid Build Coastguard Worker ret void 490*9880d681SAndroid Build Coastguard Worker} 491*9880d681SAndroid Build Coastguard Worker 492*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v4i8_to_v4i16: 493*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v4i8_to_v4i16(<4 x i16> addrspace(1)* %out, <4 x i8> addrspace(1)* %in) #0 { 494*9880d681SAndroid Build Coastguard Worker %load = load <4 x i8>, <4 x i8> addrspace(1)* %in 495*9880d681SAndroid Build Coastguard Worker %ext = sext <4 x i8> %load to <4 x i16> 496*9880d681SAndroid Build Coastguard Worker store <4 x i16> %ext, <4 x i16> addrspace(1)* %out 497*9880d681SAndroid Build Coastguard Worker ret void 498*9880d681SAndroid Build Coastguard Worker} 499*9880d681SAndroid Build Coastguard Worker 500*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v8i8_to_v8i16: 501*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v8i8_to_v8i16(<8 x i16> addrspace(1)* %out, <8 x i8> addrspace(1)* %in) #0 { 502*9880d681SAndroid Build Coastguard Worker %load = load <8 x i8>, <8 x i8> addrspace(1)* %in 503*9880d681SAndroid Build Coastguard Worker %ext = zext <8 x i8> %load to <8 x i16> 504*9880d681SAndroid Build Coastguard Worker store <8 x i16> %ext, <8 x i16> addrspace(1)* %out 505*9880d681SAndroid Build Coastguard Worker ret void 506*9880d681SAndroid Build Coastguard Worker} 507*9880d681SAndroid Build Coastguard Worker 508*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v8i8_to_v8i16: 509*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v8i8_to_v8i16(<8 x i16> addrspace(1)* %out, <8 x i8> addrspace(1)* %in) #0 { 510*9880d681SAndroid Build Coastguard Worker %load = load <8 x i8>, <8 x i8> addrspace(1)* %in 511*9880d681SAndroid Build Coastguard Worker %ext = sext <8 x i8> %load to <8 x i16> 512*9880d681SAndroid Build Coastguard Worker store <8 x i16> %ext, <8 x i16> addrspace(1)* %out 513*9880d681SAndroid Build Coastguard Worker ret void 514*9880d681SAndroid Build Coastguard Worker} 515*9880d681SAndroid Build Coastguard Worker 516*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v16i8_to_v16i16: 517*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v16i8_to_v16i16(<16 x i16> addrspace(1)* %out, <16 x i8> addrspace(1)* %in) #0 { 518*9880d681SAndroid Build Coastguard Worker %load = load <16 x i8>, <16 x i8> addrspace(1)* %in 519*9880d681SAndroid Build Coastguard Worker %ext = zext <16 x i8> %load to <16 x i16> 520*9880d681SAndroid Build Coastguard Worker store <16 x i16> %ext, <16 x i16> addrspace(1)* %out 521*9880d681SAndroid Build Coastguard Worker ret void 522*9880d681SAndroid Build Coastguard Worker} 523*9880d681SAndroid Build Coastguard Worker 524*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v16i8_to_v16i16: 525*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v16i8_to_v16i16(<16 x i16> addrspace(1)* %out, <16 x i8> addrspace(1)* %in) #0 { 526*9880d681SAndroid Build Coastguard Worker %load = load <16 x i8>, <16 x i8> addrspace(1)* %in 527*9880d681SAndroid Build Coastguard Worker %ext = sext <16 x i8> %load to <16 x i16> 528*9880d681SAndroid Build Coastguard Worker store <16 x i16> %ext, <16 x i16> addrspace(1)* %out 529*9880d681SAndroid Build Coastguard Worker ret void 530*9880d681SAndroid Build Coastguard Worker} 531*9880d681SAndroid Build Coastguard Worker 532*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v32i8_to_v32i16: 533*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v32i8_to_v32i16(<32 x i16> addrspace(1)* %out, <32 x i8> addrspace(1)* %in) #0 { 534*9880d681SAndroid Build Coastguard Worker %load = load <32 x i8>, <32 x i8> addrspace(1)* %in 535*9880d681SAndroid Build Coastguard Worker %ext = zext <32 x i8> %load to <32 x i16> 536*9880d681SAndroid Build Coastguard Worker store <32 x i16> %ext, <32 x i16> addrspace(1)* %out 537*9880d681SAndroid Build Coastguard Worker ret void 538*9880d681SAndroid Build Coastguard Worker} 539*9880d681SAndroid Build Coastguard Worker 540*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v32i8_to_v32i16: 541*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v32i8_to_v32i16(<32 x i16> addrspace(1)* %out, <32 x i8> addrspace(1)* %in) #0 { 542*9880d681SAndroid Build Coastguard Worker %load = load <32 x i8>, <32 x i8> addrspace(1)* %in 543*9880d681SAndroid Build Coastguard Worker %ext = sext <32 x i8> %load to <32 x i16> 544*9880d681SAndroid Build Coastguard Worker store <32 x i16> %ext, <32 x i16> addrspace(1)* %out 545*9880d681SAndroid Build Coastguard Worker ret void 546*9880d681SAndroid Build Coastguard Worker} 547*9880d681SAndroid Build Coastguard Worker 548*9880d681SAndroid Build Coastguard Worker; XFUNC-LABEL: {{^}}global_zextload_v64i8_to_v64i16: 549*9880d681SAndroid Build Coastguard Worker; define void @global_zextload_v64i8_to_v64i16(<64 x i16> addrspace(1)* %out, <64 x i8> addrspace(1)* %in) #0 { 550*9880d681SAndroid Build Coastguard Worker; %load = load <64 x i8>, <64 x i8> addrspace(1)* %in 551*9880d681SAndroid Build Coastguard Worker; %ext = zext <64 x i8> %load to <64 x i16> 552*9880d681SAndroid Build Coastguard Worker; store <64 x i16> %ext, <64 x i16> addrspace(1)* %out 553*9880d681SAndroid Build Coastguard Worker; ret void 554*9880d681SAndroid Build Coastguard Worker; } 555*9880d681SAndroid Build Coastguard Worker 556*9880d681SAndroid Build Coastguard Worker; XFUNC-LABEL: {{^}}global_sextload_v64i8_to_v64i16: 557*9880d681SAndroid Build Coastguard Worker; define void @global_sextload_v64i8_to_v64i16(<64 x i16> addrspace(1)* %out, <64 x i8> addrspace(1)* %in) #0 { 558*9880d681SAndroid Build Coastguard Worker; %load = load <64 x i8>, <64 x i8> addrspace(1)* %in 559*9880d681SAndroid Build Coastguard Worker; %ext = sext <64 x i8> %load to <64 x i16> 560*9880d681SAndroid Build Coastguard Worker; store <64 x i16> %ext, <64 x i16> addrspace(1)* %out 561*9880d681SAndroid Build Coastguard Worker; ret void 562*9880d681SAndroid Build Coastguard Worker; } 563*9880d681SAndroid Build Coastguard Worker 564*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind } 565