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; FIXME: r600 is broken because the bigger testcases spill and it's not implemented 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_i16: 10*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_ushort v{{[0-9]+}} 11*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_ushort 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 T{{[0-9]+}}.X, T{{[0-9]+}}.X, 0 14*9880d681SAndroid Build Coastguard Workerdefine void @global_load_i16(i16 addrspace(1)* %out, i16 addrspace(1)* %in) { 15*9880d681SAndroid Build Coastguard Workerentry: 16*9880d681SAndroid Build Coastguard Worker %ld = load i16, i16 addrspace(1)* %in 17*9880d681SAndroid Build Coastguard Worker store i16 %ld, i16 addrspace(1)* %out 18*9880d681SAndroid Build Coastguard Worker ret void 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v2i16: 22*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dword v 23*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dword v 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_32 26*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v2i16(<2 x i16> addrspace(1)* %out, <2 x i16> addrspace(1)* %in) { 27*9880d681SAndroid Build Coastguard Workerentry: 28*9880d681SAndroid Build Coastguard Worker %ld = load <2 x i16>, <2 x i16> addrspace(1)* %in 29*9880d681SAndroid Build Coastguard Worker store <2 x i16> %ld, <2 x i16> addrspace(1)* %out 30*9880d681SAndroid Build Coastguard Worker ret void 31*9880d681SAndroid Build Coastguard Worker} 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v3i16: 34*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx2 v 35*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx2 v 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_32 38*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_16 39*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v3i16(<3 x i16> addrspace(1)* %out, <3 x i16> addrspace(1)* %in) { 40*9880d681SAndroid Build Coastguard Workerentry: 41*9880d681SAndroid Build Coastguard Worker %ld = load <3 x i16>, <3 x i16> addrspace(1)* %in 42*9880d681SAndroid Build Coastguard Worker store <3 x i16> %ld, <3 x i16> addrspace(1)* %out 43*9880d681SAndroid Build Coastguard Worker ret void 44*9880d681SAndroid Build Coastguard Worker} 45*9880d681SAndroid Build Coastguard Worker 46*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v4i16: 47*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx2 48*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx2 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_64 51*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v4i16(<4 x i16> addrspace(1)* %out, <4 x i16> addrspace(1)* %in) { 52*9880d681SAndroid Build Coastguard Workerentry: 53*9880d681SAndroid Build Coastguard Worker %ld = load <4 x i16>, <4 x i16> addrspace(1)* %in 54*9880d681SAndroid Build Coastguard Worker store <4 x i16> %ld, <4 x i16> addrspace(1)* %out 55*9880d681SAndroid Build Coastguard Worker ret void 56*9880d681SAndroid Build Coastguard Worker} 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v8i16: 59*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 60*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_128 63*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v8i16(<8 x i16> addrspace(1)* %out, <8 x i16> addrspace(1)* %in) { 64*9880d681SAndroid Build Coastguard Workerentry: 65*9880d681SAndroid Build Coastguard Worker %ld = load <8 x i16>, <8 x i16> addrspace(1)* %in 66*9880d681SAndroid Build Coastguard Worker store <8 x i16> %ld, <8 x i16> addrspace(1)* %out 67*9880d681SAndroid Build Coastguard Worker ret void 68*9880d681SAndroid Build Coastguard Worker} 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_load_v16i16: 71*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 72*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 75*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_128 78*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_128 79*9880d681SAndroid Build Coastguard Workerdefine void @global_load_v16i16(<16 x i16> addrspace(1)* %out, <16 x i16> addrspace(1)* %in) { 80*9880d681SAndroid Build Coastguard Workerentry: 81*9880d681SAndroid Build Coastguard Worker %ld = load <16 x i16>, <16 x i16> addrspace(1)* %in 82*9880d681SAndroid Build Coastguard Worker store <16 x i16> %ld, <16 x i16> addrspace(1)* %out 83*9880d681SAndroid Build Coastguard Worker ret void 84*9880d681SAndroid Build Coastguard Worker} 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_i16_to_i32: 87*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_ushort 88*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_store_dword 89*9880d681SAndroid Build Coastguard Worker 90*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_ushort 91*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_store_dword 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 T{{[0-9]+\.X, T[0-9]+\.X}} 94*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_i16_to_i32(i32 addrspace(1)* %out, i16 addrspace(1)* %in) #0 { 95*9880d681SAndroid Build Coastguard Worker %a = load i16, i16 addrspace(1)* %in 96*9880d681SAndroid Build Coastguard Worker %ext = zext i16 %a to i32 97*9880d681SAndroid Build Coastguard Worker store i32 %ext, i32 addrspace(1)* %out 98*9880d681SAndroid Build Coastguard Worker ret void 99*9880d681SAndroid Build Coastguard Worker} 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_i16_to_i32: 102*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_sshort 103*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_store_dword 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_sshort 106*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_store_dword 107*9880d681SAndroid Build Coastguard Worker 108*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 [[DST:T[0-9]\.[XYZW]]], [[DST]] 109*9880d681SAndroid Build Coastguard Worker; EG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST]], 0.0, literal 110*9880d681SAndroid Build Coastguard Worker; EG: 16 111*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_i16_to_i32(i32 addrspace(1)* %out, i16 addrspace(1)* %in) #0 { 112*9880d681SAndroid Build Coastguard Worker %a = load i16, i16 addrspace(1)* %in 113*9880d681SAndroid Build Coastguard Worker %ext = sext i16 %a to i32 114*9880d681SAndroid Build Coastguard Worker store i32 %ext, i32 addrspace(1)* %out 115*9880d681SAndroid Build Coastguard Worker ret void 116*9880d681SAndroid Build Coastguard Worker} 117*9880d681SAndroid Build Coastguard Worker 118*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v1i16_to_v1i32: 119*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_ushort 120*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_ushort 121*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v1i16_to_v1i32(<1 x i32> addrspace(1)* %out, <1 x i16> addrspace(1)* %in) #0 { 122*9880d681SAndroid Build Coastguard Worker %load = load <1 x i16>, <1 x i16> addrspace(1)* %in 123*9880d681SAndroid Build Coastguard Worker %ext = zext <1 x i16> %load to <1 x i32> 124*9880d681SAndroid Build Coastguard Worker store <1 x i32> %ext, <1 x i32> addrspace(1)* %out 125*9880d681SAndroid Build Coastguard Worker ret void 126*9880d681SAndroid Build Coastguard Worker} 127*9880d681SAndroid Build Coastguard Worker 128*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v1i16_to_v1i32: 129*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_sshort 130*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_sshort 131*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v1i16_to_v1i32(<1 x i32> addrspace(1)* %out, <1 x i16> addrspace(1)* %in) #0 { 132*9880d681SAndroid Build Coastguard Worker %load = load <1 x i16>, <1 x i16> addrspace(1)* %in 133*9880d681SAndroid Build Coastguard Worker %ext = sext <1 x i16> %load to <1 x i32> 134*9880d681SAndroid Build Coastguard Worker store <1 x i32> %ext, <1 x i32> addrspace(1)* %out 135*9880d681SAndroid Build Coastguard Worker ret void 136*9880d681SAndroid Build Coastguard Worker} 137*9880d681SAndroid Build Coastguard Worker 138*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v2i16_to_v2i32: 139*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dword 140*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dword 141*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v2i16_to_v2i32(<2 x i32> addrspace(1)* %out, <2 x i16> addrspace(1)* %in) #0 { 142*9880d681SAndroid Build Coastguard Worker %load = load <2 x i16>, <2 x i16> addrspace(1)* %in 143*9880d681SAndroid Build Coastguard Worker %ext = zext <2 x i16> %load to <2 x i32> 144*9880d681SAndroid Build Coastguard Worker store <2 x i32> %ext, <2 x i32> addrspace(1)* %out 145*9880d681SAndroid Build Coastguard Worker ret void 146*9880d681SAndroid Build Coastguard Worker} 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v2i16_to_v2i32: 149*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dword 150*9880d681SAndroid Build Coastguard Worker 151*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dword 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_16 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]] 154*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_16 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]] 155*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_X]], 0.0, literal 156*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_Y]], 0.0, literal 157*9880d681SAndroid Build Coastguard Worker; EG-DAG: 16 158*9880d681SAndroid Build Coastguard Worker; EG-DAG: 16 159*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v2i16_to_v2i32(<2 x i32> addrspace(1)* %out, <2 x i16> addrspace(1)* %in) #0 { 160*9880d681SAndroid Build Coastguard Worker %load = load <2 x i16>, <2 x i16> addrspace(1)* %in 161*9880d681SAndroid Build Coastguard Worker %ext = sext <2 x i16> %load to <2 x i32> 162*9880d681SAndroid Build Coastguard Worker store <2 x i32> %ext, <2 x i32> addrspace(1)* %out 163*9880d681SAndroid Build Coastguard Worker ret void 164*9880d681SAndroid Build Coastguard Worker} 165*9880d681SAndroid Build Coastguard Worker 166*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_global_zextload_v3i16_to_v3i32: 167*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx2 168*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx2 169*9880d681SAndroid Build Coastguard Workerdefine void @global_global_zextload_v3i16_to_v3i32(<3 x i32> addrspace(1)* %out, <3 x i16> addrspace(1)* %in) { 170*9880d681SAndroid Build Coastguard Workerentry: 171*9880d681SAndroid Build Coastguard Worker %ld = load <3 x i16>, <3 x i16> addrspace(1)* %in 172*9880d681SAndroid Build Coastguard Worker %ext = zext <3 x i16> %ld to <3 x i32> 173*9880d681SAndroid Build Coastguard Worker store <3 x i32> %ext, <3 x i32> addrspace(1)* %out 174*9880d681SAndroid Build Coastguard Worker ret void 175*9880d681SAndroid Build Coastguard Worker} 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_global_sextload_v3i16_to_v3i32: 178*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx2 179*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx2 180*9880d681SAndroid Build Coastguard Workerdefine void @global_global_sextload_v3i16_to_v3i32(<3 x i32> addrspace(1)* %out, <3 x i16> addrspace(1)* %in) { 181*9880d681SAndroid Build Coastguard Workerentry: 182*9880d681SAndroid Build Coastguard Worker %ld = load <3 x i16>, <3 x i16> addrspace(1)* %in 183*9880d681SAndroid Build Coastguard Worker %ext = sext <3 x i16> %ld to <3 x i32> 184*9880d681SAndroid Build Coastguard Worker store <3 x i32> %ext, <3 x i32> addrspace(1)* %out 185*9880d681SAndroid Build Coastguard Worker ret void 186*9880d681SAndroid Build Coastguard Worker} 187*9880d681SAndroid Build Coastguard Worker 188*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_global_zextload_v4i16_to_v4i32: 189*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx2 190*9880d681SAndroid Build Coastguard Worker 191*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx2 192*9880d681SAndroid Build Coastguard Worker 193*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 194*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 195*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 196*9880d681SAndroid Build Coastguard Worker; EG: VTX_READ_16 197*9880d681SAndroid Build Coastguard Workerdefine void @global_global_zextload_v4i16_to_v4i32(<4 x i32> addrspace(1)* %out, <4 x i16> addrspace(1)* %in) #0 { 198*9880d681SAndroid Build Coastguard Worker %load = load <4 x i16>, <4 x i16> addrspace(1)* %in 199*9880d681SAndroid Build Coastguard Worker %ext = zext <4 x i16> %load to <4 x i32> 200*9880d681SAndroid Build Coastguard Worker store <4 x i32> %ext, <4 x i32> addrspace(1)* %out 201*9880d681SAndroid Build Coastguard Worker ret void 202*9880d681SAndroid Build Coastguard Worker} 203*9880d681SAndroid Build Coastguard Worker 204*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v4i16_to_v4i32: 205*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx2 206*9880d681SAndroid Build Coastguard Worker 207*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx2 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_16 [[DST_X:T[0-9]\.[XYZW]]], [[DST_X]] 210*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_16 [[DST_Y:T[0-9]\.[XYZW]]], [[DST_Y]] 211*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_16 [[DST_Z:T[0-9]\.[XYZW]]], [[DST_Z]] 212*9880d681SAndroid Build Coastguard Worker; EG-DAG: VTX_READ_16 [[DST_W:T[0-9]\.[XYZW]]], [[DST_W]] 213*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_X]], 0.0, literal 214*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_Y]], 0.0, literal 215*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_Z]], 0.0, literal 216*9880d681SAndroid Build Coastguard Worker; EG-DAG: BFE_INT {{[* ]*}}T{{[0-9].[XYZW]}}, [[DST_W]], 0.0, literal 217*9880d681SAndroid Build Coastguard Worker; EG-DAG: 16 218*9880d681SAndroid Build Coastguard Worker; EG-DAG: 16 219*9880d681SAndroid Build Coastguard Worker; EG-DAG: 16 220*9880d681SAndroid Build Coastguard Worker; EG-DAG: 16 221*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v4i16_to_v4i32(<4 x i32> addrspace(1)* %out, <4 x i16> addrspace(1)* %in) #0 { 222*9880d681SAndroid Build Coastguard Worker %load = load <4 x i16>, <4 x i16> addrspace(1)* %in 223*9880d681SAndroid Build Coastguard Worker %ext = sext <4 x i16> %load to <4 x i32> 224*9880d681SAndroid Build Coastguard Worker store <4 x i32> %ext, <4 x i32> addrspace(1)* %out 225*9880d681SAndroid Build Coastguard Worker ret void 226*9880d681SAndroid Build Coastguard Worker} 227*9880d681SAndroid Build Coastguard Worker 228*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v8i16_to_v8i32: 229*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 230*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 231*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v8i16_to_v8i32(<8 x i32> addrspace(1)* %out, <8 x i16> addrspace(1)* %in) #0 { 232*9880d681SAndroid Build Coastguard Worker %load = load <8 x i16>, <8 x i16> addrspace(1)* %in 233*9880d681SAndroid Build Coastguard Worker %ext = zext <8 x i16> %load to <8 x i32> 234*9880d681SAndroid Build Coastguard Worker store <8 x i32> %ext, <8 x i32> addrspace(1)* %out 235*9880d681SAndroid Build Coastguard Worker ret void 236*9880d681SAndroid Build Coastguard Worker} 237*9880d681SAndroid Build Coastguard Worker 238*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v8i16_to_v8i32: 239*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 240*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 241*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v8i16_to_v8i32(<8 x i32> addrspace(1)* %out, <8 x i16> addrspace(1)* %in) #0 { 242*9880d681SAndroid Build Coastguard Worker %load = load <8 x i16>, <8 x i16> addrspace(1)* %in 243*9880d681SAndroid Build Coastguard Worker %ext = sext <8 x i16> %load to <8 x i32> 244*9880d681SAndroid Build Coastguard Worker store <8 x i32> %ext, <8 x i32> addrspace(1)* %out 245*9880d681SAndroid Build Coastguard Worker ret void 246*9880d681SAndroid Build Coastguard Worker} 247*9880d681SAndroid Build Coastguard Worker 248*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v16i16_to_v16i32: 249*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 250*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 251*9880d681SAndroid Build Coastguard Worker 252*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 253*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 254*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v16i16_to_v16i32(<16 x i32> addrspace(1)* %out, <16 x i16> addrspace(1)* %in) #0 { 255*9880d681SAndroid Build Coastguard Worker %load = load <16 x i16>, <16 x i16> addrspace(1)* %in 256*9880d681SAndroid Build Coastguard Worker %ext = zext <16 x i16> %load to <16 x i32> 257*9880d681SAndroid Build Coastguard Worker store <16 x i32> %ext, <16 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_v16i16_to_v16i32: 262*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v16i16_to_v16i32(<16 x i32> addrspace(1)* %out, <16 x i16> addrspace(1)* %in) #0 { 263*9880d681SAndroid Build Coastguard Worker %load = load <16 x i16>, <16 x i16> addrspace(1)* %in 264*9880d681SAndroid Build Coastguard Worker %ext = sext <16 x i16> %load to <16 x i32> 265*9880d681SAndroid Build Coastguard Worker store <16 x i32> %ext, <16 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_v32i16_to_v32i32: 270*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 271*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 272*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 273*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 274*9880d681SAndroid Build Coastguard Worker 275*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 276*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 277*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 278*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 279*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v32i16_to_v32i32(<32 x i32> addrspace(1)* %out, <32 x i16> addrspace(1)* %in) #0 { 280*9880d681SAndroid Build Coastguard Worker %load = load <32 x i16>, <32 x i16> addrspace(1)* %in 281*9880d681SAndroid Build Coastguard Worker %ext = zext <32 x i16> %load to <32 x i32> 282*9880d681SAndroid Build Coastguard Worker store <32 x i32> %ext, <32 x i32> addrspace(1)* %out 283*9880d681SAndroid Build Coastguard Worker ret void 284*9880d681SAndroid Build Coastguard Worker} 285*9880d681SAndroid Build Coastguard Worker 286*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v32i16_to_v32i32: 287*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 288*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 289*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 290*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 291*9880d681SAndroid Build Coastguard Worker 292*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 293*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 294*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 295*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 296*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v32i16_to_v32i32(<32 x i32> addrspace(1)* %out, <32 x i16> addrspace(1)* %in) #0 { 297*9880d681SAndroid Build Coastguard Worker %load = load <32 x i16>, <32 x i16> addrspace(1)* %in 298*9880d681SAndroid Build Coastguard Worker %ext = sext <32 x i16> %load to <32 x i32> 299*9880d681SAndroid Build Coastguard Worker store <32 x i32> %ext, <32 x i32> addrspace(1)* %out 300*9880d681SAndroid Build Coastguard Worker ret void 301*9880d681SAndroid Build Coastguard Worker} 302*9880d681SAndroid Build Coastguard Worker 303*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v64i16_to_v64i32: 304*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 305*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 306*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 307*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 308*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 309*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 310*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 311*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_load_dwordx4 312*9880d681SAndroid Build Coastguard Worker 313*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 314*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 315*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 316*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 317*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 318*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 319*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 320*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_load_dwordx4 321*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v64i16_to_v64i32(<64 x i32> addrspace(1)* %out, <64 x i16> addrspace(1)* %in) #0 { 322*9880d681SAndroid Build Coastguard Worker %load = load <64 x i16>, <64 x i16> addrspace(1)* %in 323*9880d681SAndroid Build Coastguard Worker %ext = zext <64 x i16> %load to <64 x i32> 324*9880d681SAndroid Build Coastguard Worker store <64 x i32> %ext, <64 x i32> addrspace(1)* %out 325*9880d681SAndroid Build Coastguard Worker ret void 326*9880d681SAndroid Build Coastguard Worker} 327*9880d681SAndroid Build Coastguard Worker 328*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v64i16_to_v64i32: 329*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v64i16_to_v64i32(<64 x i32> addrspace(1)* %out, <64 x i16> addrspace(1)* %in) #0 { 330*9880d681SAndroid Build Coastguard Worker %load = load <64 x i16>, <64 x i16> addrspace(1)* %in 331*9880d681SAndroid Build Coastguard Worker %ext = sext <64 x i16> %load to <64 x i32> 332*9880d681SAndroid Build Coastguard Worker store <64 x i32> %ext, <64 x i32> addrspace(1)* %out 333*9880d681SAndroid Build Coastguard Worker ret void 334*9880d681SAndroid Build Coastguard Worker} 335*9880d681SAndroid Build Coastguard Worker 336*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_i16_to_i64: 337*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA-DAG: buffer_load_ushort v[[LO:[0-9]+]], 338*9880d681SAndroid Build Coastguard Worker; GCN-HSA-DAG: flat_load_ushort v[[LO:[0-9]+]], 339*9880d681SAndroid Build Coastguard Worker; GCN-DAG: v_mov_b32_e32 v[[HI:[0-9]+]], 0{{$}} 340*9880d681SAndroid Build Coastguard Worker 341*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_store_dwordx2 v{{\[}}[[LO]]:[[HI]]] 342*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_store_dwordx2 v{{\[[0-9]+:[0-9]+\]}}, v{{\[}}[[LO]]:[[HI]]{{\]}} 343*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_i16_to_i64(i64 addrspace(1)* %out, i16 addrspace(1)* %in) #0 { 344*9880d681SAndroid Build Coastguard Worker %a = load i16, i16 addrspace(1)* %in 345*9880d681SAndroid Build Coastguard Worker %ext = zext i16 %a to i64 346*9880d681SAndroid Build Coastguard Worker store i64 %ext, i64 addrspace(1)* %out 347*9880d681SAndroid Build Coastguard Worker ret void 348*9880d681SAndroid Build Coastguard Worker} 349*9880d681SAndroid Build Coastguard Worker 350*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_i16_to_i64: 351*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA-DAG: buffer_load_sshort v[[LO:[0-9]+]], 352*9880d681SAndroid Build Coastguard Worker; GCN-HSA-DAG: flat_load_sshort v[[LO:[0-9]+]], 353*9880d681SAndroid Build Coastguard Worker; GCN-DAG: v_ashrrev_i32_e32 v[[HI:[0-9]+]], 31, v[[LO]] 354*9880d681SAndroid Build Coastguard Worker 355*9880d681SAndroid Build Coastguard Worker; GCN-NOHSA: buffer_store_dwordx2 v{{\[}}[[LO]]:[[HI]]] 356*9880d681SAndroid Build Coastguard Worker; GCN-HSA: flat_store_dwordx2 v{{\[[0-9]+:[0-9]+\]}}, v{{\[}}[[LO]]:[[HI]]{{\]}} 357*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_i16_to_i64(i64 addrspace(1)* %out, i16 addrspace(1)* %in) #0 { 358*9880d681SAndroid Build Coastguard Worker %a = load i16, i16 addrspace(1)* %in 359*9880d681SAndroid Build Coastguard Worker %ext = sext i16 %a to i64 360*9880d681SAndroid Build Coastguard Worker store i64 %ext, i64 addrspace(1)* %out 361*9880d681SAndroid Build Coastguard Worker ret void 362*9880d681SAndroid Build Coastguard Worker} 363*9880d681SAndroid Build Coastguard Worker 364*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v1i16_to_v1i64: 365*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v1i16_to_v1i64(<1 x i64> addrspace(1)* %out, <1 x i16> addrspace(1)* %in) #0 { 366*9880d681SAndroid Build Coastguard Worker %load = load <1 x i16>, <1 x i16> addrspace(1)* %in 367*9880d681SAndroid Build Coastguard Worker %ext = zext <1 x i16> %load to <1 x i64> 368*9880d681SAndroid Build Coastguard Worker store <1 x i64> %ext, <1 x i64> addrspace(1)* %out 369*9880d681SAndroid Build Coastguard Worker ret void 370*9880d681SAndroid Build Coastguard Worker} 371*9880d681SAndroid Build Coastguard Worker 372*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v1i16_to_v1i64: 373*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v1i16_to_v1i64(<1 x i64> addrspace(1)* %out, <1 x i16> addrspace(1)* %in) #0 { 374*9880d681SAndroid Build Coastguard Worker %load = load <1 x i16>, <1 x i16> addrspace(1)* %in 375*9880d681SAndroid Build Coastguard Worker %ext = sext <1 x i16> %load to <1 x i64> 376*9880d681SAndroid Build Coastguard Worker store <1 x i64> %ext, <1 x i64> addrspace(1)* %out 377*9880d681SAndroid Build Coastguard Worker ret void 378*9880d681SAndroid Build Coastguard Worker} 379*9880d681SAndroid Build Coastguard Worker 380*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v2i16_to_v2i64: 381*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v2i16_to_v2i64(<2 x i64> addrspace(1)* %out, <2 x i16> addrspace(1)* %in) #0 { 382*9880d681SAndroid Build Coastguard Worker %load = load <2 x i16>, <2 x i16> addrspace(1)* %in 383*9880d681SAndroid Build Coastguard Worker %ext = zext <2 x i16> %load to <2 x i64> 384*9880d681SAndroid Build Coastguard Worker store <2 x i64> %ext, <2 x i64> addrspace(1)* %out 385*9880d681SAndroid Build Coastguard Worker ret void 386*9880d681SAndroid Build Coastguard Worker} 387*9880d681SAndroid Build Coastguard Worker 388*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v2i16_to_v2i64: 389*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v2i16_to_v2i64(<2 x i64> addrspace(1)* %out, <2 x i16> addrspace(1)* %in) #0 { 390*9880d681SAndroid Build Coastguard Worker %load = load <2 x i16>, <2 x i16> addrspace(1)* %in 391*9880d681SAndroid Build Coastguard Worker %ext = sext <2 x i16> %load to <2 x i64> 392*9880d681SAndroid Build Coastguard Worker store <2 x i64> %ext, <2 x i64> addrspace(1)* %out 393*9880d681SAndroid Build Coastguard Worker ret void 394*9880d681SAndroid Build Coastguard Worker} 395*9880d681SAndroid Build Coastguard Worker 396*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v4i16_to_v4i64: 397*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v4i16_to_v4i64(<4 x i64> addrspace(1)* %out, <4 x i16> addrspace(1)* %in) #0 { 398*9880d681SAndroid Build Coastguard Worker %load = load <4 x i16>, <4 x i16> addrspace(1)* %in 399*9880d681SAndroid Build Coastguard Worker %ext = zext <4 x i16> %load to <4 x i64> 400*9880d681SAndroid Build Coastguard Worker store <4 x i64> %ext, <4 x i64> addrspace(1)* %out 401*9880d681SAndroid Build Coastguard Worker ret void 402*9880d681SAndroid Build Coastguard Worker} 403*9880d681SAndroid Build Coastguard Worker 404*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v4i16_to_v4i64: 405*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v4i16_to_v4i64(<4 x i64> addrspace(1)* %out, <4 x i16> addrspace(1)* %in) #0 { 406*9880d681SAndroid Build Coastguard Worker %load = load <4 x i16>, <4 x i16> addrspace(1)* %in 407*9880d681SAndroid Build Coastguard Worker %ext = sext <4 x i16> %load to <4 x i64> 408*9880d681SAndroid Build Coastguard Worker store <4 x i64> %ext, <4 x i64> addrspace(1)* %out 409*9880d681SAndroid Build Coastguard Worker ret void 410*9880d681SAndroid Build Coastguard Worker} 411*9880d681SAndroid Build Coastguard Worker 412*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v8i16_to_v8i64: 413*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v8i16_to_v8i64(<8 x i64> addrspace(1)* %out, <8 x i16> addrspace(1)* %in) #0 { 414*9880d681SAndroid Build Coastguard Worker %load = load <8 x i16>, <8 x i16> addrspace(1)* %in 415*9880d681SAndroid Build Coastguard Worker %ext = zext <8 x i16> %load to <8 x i64> 416*9880d681SAndroid Build Coastguard Worker store <8 x i64> %ext, <8 x i64> addrspace(1)* %out 417*9880d681SAndroid Build Coastguard Worker ret void 418*9880d681SAndroid Build Coastguard Worker} 419*9880d681SAndroid Build Coastguard Worker 420*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v8i16_to_v8i64: 421*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v8i16_to_v8i64(<8 x i64> addrspace(1)* %out, <8 x i16> addrspace(1)* %in) #0 { 422*9880d681SAndroid Build Coastguard Worker %load = load <8 x i16>, <8 x i16> addrspace(1)* %in 423*9880d681SAndroid Build Coastguard Worker %ext = sext <8 x i16> %load to <8 x i64> 424*9880d681SAndroid Build Coastguard Worker store <8 x i64> %ext, <8 x i64> addrspace(1)* %out 425*9880d681SAndroid Build Coastguard Worker ret void 426*9880d681SAndroid Build Coastguard Worker} 427*9880d681SAndroid Build Coastguard Worker 428*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v16i16_to_v16i64: 429*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v16i16_to_v16i64(<16 x i64> addrspace(1)* %out, <16 x i16> addrspace(1)* %in) #0 { 430*9880d681SAndroid Build Coastguard Worker %load = load <16 x i16>, <16 x i16> addrspace(1)* %in 431*9880d681SAndroid Build Coastguard Worker %ext = zext <16 x i16> %load to <16 x i64> 432*9880d681SAndroid Build Coastguard Worker store <16 x i64> %ext, <16 x i64> addrspace(1)* %out 433*9880d681SAndroid Build Coastguard Worker ret void 434*9880d681SAndroid Build Coastguard Worker} 435*9880d681SAndroid Build Coastguard Worker 436*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_sextload_v16i16_to_v16i64: 437*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v16i16_to_v16i64(<16 x i64> addrspace(1)* %out, <16 x i16> addrspace(1)* %in) #0 { 438*9880d681SAndroid Build Coastguard Worker %load = load <16 x i16>, <16 x i16> addrspace(1)* %in 439*9880d681SAndroid Build Coastguard Worker %ext = sext <16 x i16> %load to <16 x i64> 440*9880d681SAndroid Build Coastguard Worker store <16 x i64> %ext, <16 x i64> addrspace(1)* %out 441*9880d681SAndroid Build Coastguard Worker ret void 442*9880d681SAndroid Build Coastguard Worker} 443*9880d681SAndroid Build Coastguard Worker 444*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}global_zextload_v32i16_to_v32i64: 445*9880d681SAndroid Build Coastguard Workerdefine void @global_zextload_v32i16_to_v32i64(<32 x i64> addrspace(1)* %out, <32 x i16> addrspace(1)* %in) #0 { 446*9880d681SAndroid Build Coastguard Worker %load = load <32 x i16>, <32 x i16> addrspace(1)* %in 447*9880d681SAndroid Build Coastguard Worker %ext = zext <32 x i16> %load to <32 x i64> 448*9880d681SAndroid Build Coastguard Worker store <32 x i64> %ext, <32 x i64> 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_sextload_v32i16_to_v32i64: 453*9880d681SAndroid Build Coastguard Workerdefine void @global_sextload_v32i16_to_v32i64(<32 x i64> addrspace(1)* %out, <32 x i16> addrspace(1)* %in) #0 { 454*9880d681SAndroid Build Coastguard Worker %load = load <32 x i16>, <32 x i16> addrspace(1)* %in 455*9880d681SAndroid Build Coastguard Worker %ext = sext <32 x i16> %load to <32 x i64> 456*9880d681SAndroid Build Coastguard Worker store <32 x i64> %ext, <32 x i64> 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; ; XFUNC-LABEL: {{^}}global_zextload_v64i16_to_v64i64: 461*9880d681SAndroid Build Coastguard Worker; define void @global_zextload_v64i16_to_v64i64(<64 x i64> addrspace(1)* %out, <64 x i16> addrspace(1)* %in) #0 { 462*9880d681SAndroid Build Coastguard Worker; %load = load <64 x i16>, <64 x i16> addrspace(1)* %in 463*9880d681SAndroid Build Coastguard Worker; %ext = zext <64 x i16> %load to <64 x i64> 464*9880d681SAndroid Build Coastguard Worker; store <64 x i64> %ext, <64 x i64> 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; ; XFUNC-LABEL: {{^}}global_sextload_v64i16_to_v64i64: 469*9880d681SAndroid Build Coastguard Worker; define void @global_sextload_v64i16_to_v64i64(<64 x i64> addrspace(1)* %out, <64 x i16> addrspace(1)* %in) #0 { 470*9880d681SAndroid Build Coastguard Worker; %load = load <64 x i16>, <64 x i16> addrspace(1)* %in 471*9880d681SAndroid Build Coastguard Worker; %ext = sext <64 x i16> %load to <64 x i64> 472*9880d681SAndroid Build Coastguard Worker; store <64 x i64> %ext, <64 x i64> addrspace(1)* %out 473*9880d681SAndroid Build Coastguard Worker; ret void 474*9880d681SAndroid Build Coastguard Worker; } 475*9880d681SAndroid Build Coastguard Worker 476*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind } 477