brintos

brintos / llvm-project-archived public Read only

0
0
Text · 209.4 KiB · 7203545 Raw
4727 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn < %s | FileCheck -check-prefix=SI-NOHSA %s3; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn--amdhsa -mcpu=kaveri < %s | FileCheck -check-prefix=GCNX3-HSA %s4; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global < %s | FileCheck -check-prefix=GCNX3-NOHSA %s5; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=r600 -mcpu=redwood < %s | FileCheck -check-prefix=EG %s6; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn--amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefix=GCN-HSA -check-prefix=GCN-GFX900-HSA %s7; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn--amdhsa -mcpu=gfx908 < %s | FileCheck -check-prefix=GCN-HSA -check-prefix=GCN-GFX908-HSA %s8 9define amdgpu_kernel void @global_load_i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {10; SI-NOHSA-LABEL: global_load_i32:11; SI-NOHSA:       ; %bb.0: ; %entry12; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x913; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf00014; SI-NOHSA-NEXT:    s_mov_b32 s6, -115; SI-NOHSA-NEXT:    s_mov_b32 s10, s616; SI-NOHSA-NEXT:    s_mov_b32 s11, s717; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)18; SI-NOHSA-NEXT:    s_mov_b32 s8, s219; SI-NOHSA-NEXT:    s_mov_b32 s9, s320; SI-NOHSA-NEXT:    buffer_load_dword v0, off, s[8:11], 021; SI-NOHSA-NEXT:    s_mov_b32 s4, s022; SI-NOHSA-NEXT:    s_mov_b32 s5, s123; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)24; SI-NOHSA-NEXT:    buffer_store_dword v0, off, s[4:7], 025; SI-NOHSA-NEXT:    s_endpgm26;27; GCNX3-HSA-LABEL: global_load_i32:28; GCNX3-HSA:       ; %bb.0: ; %entry29; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x030; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s1731; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s1332; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 833; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)34; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s235; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s336; GCNX3-HSA-NEXT:    flat_load_dword v2, v[0:1]37; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s038; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s139; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)40; GCNX3-HSA-NEXT:    flat_store_dword v[0:1], v241; GCNX3-HSA-NEXT:    s_endpgm42;43; GCNX3-NOHSA-LABEL: global_load_i32:44; GCNX3-NOHSA:       ; %bb.0: ; %entry45; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x2446; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf00047; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -148; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s649; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s750; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)51; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s252; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s353; GCNX3-NOHSA-NEXT:    buffer_load_dword v0, off, s[8:11], 054; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s055; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s156; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)57; GCNX3-NOHSA-NEXT:    buffer_store_dword v0, off, s[4:7], 058; GCNX3-NOHSA-NEXT:    s_endpgm59;60; EG-LABEL: global_load_i32:61; EG:       ; %bb.0: ; %entry62; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]63; EG-NEXT:    TEX 0 @664; EG-NEXT:    ALU 1, @9, KC0[CB0:0-32], KC1[]65; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 166; EG-NEXT:    CF_END67; EG-NEXT:    PAD68; EG-NEXT:    Fetch clause starting at 6:69; EG-NEXT:     VTX_READ_32 T0.X, T0.X, 0, #170; EG-NEXT:    ALU clause starting at 8:71; EG-NEXT:     MOV * T0.X, KC0[2].Z,72; EG-NEXT:    ALU clause starting at 9:73; EG-NEXT:     LSHR * T1.X, KC0[2].Y, literal.x,74; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)75;76; GCN-HSA-LABEL: global_load_i32:77; GCN-HSA:       ; %bb.0: ; %entry78; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x079; GCN-HSA-NEXT:    v_mov_b32_e32 v0, 080; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)81; GCN-HSA-NEXT:    global_load_dword v1, v0, s[2:3]82; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)83; GCN-HSA-NEXT:    global_store_dword v0, v1, s[0:1]84; GCN-HSA-NEXT:    s_endpgm85entry:86  %ld = load i32, ptr addrspace(1) %in87  store i32 %ld, ptr addrspace(1) %out88  ret void89}90 91define amdgpu_kernel void @global_load_v2i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {92; SI-NOHSA-LABEL: global_load_v2i32:93; SI-NOHSA:       ; %bb.0: ; %entry94; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x995; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf00096; SI-NOHSA-NEXT:    s_mov_b32 s6, -197; SI-NOHSA-NEXT:    s_mov_b32 s10, s698; SI-NOHSA-NEXT:    s_mov_b32 s11, s799; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)100; SI-NOHSA-NEXT:    s_mov_b32 s8, s2101; SI-NOHSA-NEXT:    s_mov_b32 s9, s3102; SI-NOHSA-NEXT:    buffer_load_dwordx2 v[0:1], off, s[8:11], 0103; SI-NOHSA-NEXT:    s_mov_b32 s4, s0104; SI-NOHSA-NEXT:    s_mov_b32 s5, s1105; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)106; SI-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 0107; SI-NOHSA-NEXT:    s_endpgm108;109; GCNX3-HSA-LABEL: global_load_v2i32:110; GCNX3-HSA:       ; %bb.0: ; %entry111; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0112; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s17113; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s13114; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 8115; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)116; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s2117; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s3118; GCNX3-HSA-NEXT:    flat_load_dwordx2 v[0:1], v[0:1]119; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, s0120; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, s1121; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)122; GCNX3-HSA-NEXT:    flat_store_dwordx2 v[2:3], v[0:1]123; GCNX3-HSA-NEXT:    s_endpgm124;125; GCNX3-NOHSA-LABEL: global_load_v2i32:126; GCNX3-NOHSA:       ; %bb.0: ; %entry127; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24128; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf000129; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -1130; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s6131; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s7132; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)133; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s2134; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s3135; GCNX3-NOHSA-NEXT:    buffer_load_dwordx2 v[0:1], off, s[8:11], 0136; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s0137; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s1138; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)139; GCNX3-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 0140; GCNX3-NOHSA-NEXT:    s_endpgm141;142; EG-LABEL: global_load_v2i32:143; EG:       ; %bb.0: ; %entry144; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]145; EG-NEXT:    TEX 0 @6146; EG-NEXT:    ALU 1, @9, KC0[CB0:0-32], KC1[]147; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1148; EG-NEXT:    CF_END149; EG-NEXT:    PAD150; EG-NEXT:    Fetch clause starting at 6:151; EG-NEXT:     VTX_READ_64 T0.XY, T0.X, 0, #1152; EG-NEXT:    ALU clause starting at 8:153; EG-NEXT:     MOV * T0.X, KC0[2].Z,154; EG-NEXT:    ALU clause starting at 9:155; EG-NEXT:     LSHR * T1.X, KC0[2].Y, literal.x,156; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)157;158; GCN-HSA-LABEL: global_load_v2i32:159; GCN-HSA:       ; %bb.0: ; %entry160; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0161; GCN-HSA-NEXT:    v_mov_b32_e32 v2, 0162; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)163; GCN-HSA-NEXT:    global_load_dwordx2 v[0:1], v2, s[2:3]164; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)165; GCN-HSA-NEXT:    global_store_dwordx2 v2, v[0:1], s[0:1]166; GCN-HSA-NEXT:    s_endpgm167entry:168  %ld = load <2 x i32>, ptr addrspace(1) %in169  store <2 x i32> %ld, ptr addrspace(1) %out170  ret void171}172 173define amdgpu_kernel void @global_load_v3i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {174; SI-NOHSA-LABEL: global_load_v3i32:175; SI-NOHSA:       ; %bb.0: ; %entry176; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x9177; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf000178; SI-NOHSA-NEXT:    s_mov_b32 s6, -1179; SI-NOHSA-NEXT:    s_mov_b32 s10, s6180; SI-NOHSA-NEXT:    s_mov_b32 s11, s7181; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)182; SI-NOHSA-NEXT:    s_mov_b32 s8, s2183; SI-NOHSA-NEXT:    s_mov_b32 s9, s3184; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0185; SI-NOHSA-NEXT:    s_mov_b32 s4, s0186; SI-NOHSA-NEXT:    s_mov_b32 s5, s1187; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)188; SI-NOHSA-NEXT:    buffer_store_dword v2, off, s[4:7], 0 offset:8189; SI-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 0190; SI-NOHSA-NEXT:    s_endpgm191;192; GCNX3-HSA-LABEL: global_load_v3i32:193; GCNX3-HSA:       ; %bb.0: ; %entry194; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0195; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s17196; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s13197; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 8198; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)199; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s2200; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s3201; GCNX3-HSA-NEXT:    flat_load_dwordx3 v[0:2], v[0:1]202; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, s0203; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s1204; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)205; GCNX3-HSA-NEXT:    flat_store_dwordx3 v[3:4], v[0:2]206; GCNX3-HSA-NEXT:    s_endpgm207;208; GCNX3-NOHSA-LABEL: global_load_v3i32:209; GCNX3-NOHSA:       ; %bb.0: ; %entry210; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24211; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf000212; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -1213; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s6214; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s7215; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)216; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s2217; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s3218; GCNX3-NOHSA-NEXT:    buffer_load_dwordx3 v[0:2], off, s[8:11], 0219; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s0220; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s1221; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)222; GCNX3-NOHSA-NEXT:    buffer_store_dwordx3 v[0:2], off, s[4:7], 0223; GCNX3-NOHSA-NEXT:    s_endpgm224;225; EG-LABEL: global_load_v3i32:226; EG:       ; %bb.0: ; %entry227; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]228; EG-NEXT:    TEX 0 @6229; EG-NEXT:    ALU 6, @9, KC0[CB0:0-32], KC1[]230; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T2.X, T3.X, 0231; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1232; EG-NEXT:    CF_END233; EG-NEXT:    Fetch clause starting at 6:234; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 0, #1235; EG-NEXT:    ALU clause starting at 8:236; EG-NEXT:     MOV * T0.X, KC0[2].Z,237; EG-NEXT:    ALU clause starting at 9:238; EG-NEXT:     LSHR T1.X, KC0[2].Y, literal.x,239; EG-NEXT:     MOV * T2.X, T0.Z,240; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)241; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,242; EG-NEXT:    8(1.121039e-44), 0(0.000000e+00)243; EG-NEXT:     LSHR * T3.X, PV.W, literal.x,244; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)245;246; GCN-HSA-LABEL: global_load_v3i32:247; GCN-HSA:       ; %bb.0: ; %entry248; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0249; GCN-HSA-NEXT:    v_mov_b32_e32 v3, 0250; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)251; GCN-HSA-NEXT:    global_load_dwordx3 v[0:2], v3, s[2:3]252; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)253; GCN-HSA-NEXT:    global_store_dwordx3 v3, v[0:2], s[0:1]254; GCN-HSA-NEXT:    s_endpgm255entry:256  %ld = load <3 x i32>, ptr addrspace(1) %in257  store <3 x i32> %ld, ptr addrspace(1) %out258  ret void259}260 261define amdgpu_kernel void @global_load_v4i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {262; SI-NOHSA-LABEL: global_load_v4i32:263; SI-NOHSA:       ; %bb.0: ; %entry264; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x9265; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf000266; SI-NOHSA-NEXT:    s_mov_b32 s6, -1267; SI-NOHSA-NEXT:    s_mov_b32 s10, s6268; SI-NOHSA-NEXT:    s_mov_b32 s11, s7269; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)270; SI-NOHSA-NEXT:    s_mov_b32 s8, s2271; SI-NOHSA-NEXT:    s_mov_b32 s9, s3272; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0273; SI-NOHSA-NEXT:    s_mov_b32 s4, s0274; SI-NOHSA-NEXT:    s_mov_b32 s5, s1275; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)276; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0277; SI-NOHSA-NEXT:    s_endpgm278;279; GCNX3-HSA-LABEL: global_load_v4i32:280; GCNX3-HSA:       ; %bb.0: ; %entry281; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0282; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s17283; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s13284; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 8285; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)286; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s2287; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s3288; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]289; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s0290; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s1291; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)292; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]293; GCNX3-HSA-NEXT:    s_endpgm294;295; GCNX3-NOHSA-LABEL: global_load_v4i32:296; GCNX3-NOHSA:       ; %bb.0: ; %entry297; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24298; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf000299; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -1300; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s6301; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s7302; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)303; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s2304; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s3305; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0306; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s0307; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s1308; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)309; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0310; GCNX3-NOHSA-NEXT:    s_endpgm311;312; EG-LABEL: global_load_v4i32:313; EG:       ; %bb.0: ; %entry314; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]315; EG-NEXT:    TEX 0 @6316; EG-NEXT:    ALU 1, @9, KC0[CB0:0-32], KC1[]317; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T1.X, 1318; EG-NEXT:    CF_END319; EG-NEXT:    PAD320; EG-NEXT:    Fetch clause starting at 6:321; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 0, #1322; EG-NEXT:    ALU clause starting at 8:323; EG-NEXT:     MOV * T0.X, KC0[2].Z,324; EG-NEXT:    ALU clause starting at 9:325; EG-NEXT:     LSHR * T1.X, KC0[2].Y, literal.x,326; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)327;328; GCN-HSA-LABEL: global_load_v4i32:329; GCN-HSA:       ; %bb.0: ; %entry330; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0331; GCN-HSA-NEXT:    v_mov_b32_e32 v4, 0332; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)333; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v4, s[2:3]334; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)335; GCN-HSA-NEXT:    global_store_dwordx4 v4, v[0:3], s[0:1]336; GCN-HSA-NEXT:    s_endpgm337entry:338  %ld = load <4 x i32>, ptr addrspace(1) %in339  store <4 x i32> %ld, ptr addrspace(1) %out340  ret void341}342 343define amdgpu_kernel void @global_load_v8i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {344; SI-NOHSA-LABEL: global_load_v8i32:345; SI-NOHSA:       ; %bb.0: ; %entry346; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x9347; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf000348; SI-NOHSA-NEXT:    s_mov_b32 s6, -1349; SI-NOHSA-NEXT:    s_mov_b32 s10, s6350; SI-NOHSA-NEXT:    s_mov_b32 s11, s7351; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)352; SI-NOHSA-NEXT:    s_mov_b32 s8, s2353; SI-NOHSA-NEXT:    s_mov_b32 s9, s3354; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:16355; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0356; SI-NOHSA-NEXT:    s_mov_b32 s4, s0357; SI-NOHSA-NEXT:    s_mov_b32 s5, s1358; SI-NOHSA-NEXT:    s_waitcnt vmcnt(1)359; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:16360; SI-NOHSA-NEXT:    s_waitcnt vmcnt(1)361; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0362; SI-NOHSA-NEXT:    s_endpgm363;364; GCNX3-HSA-LABEL: global_load_v8i32:365; GCNX3-HSA:       ; %bb.0: ; %entry366; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0367; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s17368; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 8369; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s13370; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)371; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s3372; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s2373; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 16374; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 0375; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s2376; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s3377; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]378; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]379; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s1380; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s0381; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 16382; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 0383; GCNX3-HSA-NEXT:    v_mov_b32_e32 v11, s1384; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, s0385; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(1)386; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[10:11], v[0:3]387; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(1)388; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]389; GCNX3-HSA-NEXT:    s_endpgm390;391; GCNX3-NOHSA-LABEL: global_load_v8i32:392; GCNX3-NOHSA:       ; %bb.0: ; %entry393; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24394; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf000395; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -1396; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s6397; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s7398; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)399; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s2400; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s3401; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:16402; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0403; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s0404; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s1405; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(1)406; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:16407; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(1)408; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0409; GCNX3-NOHSA-NEXT:    s_endpgm410;411; EG-LABEL: global_load_v8i32:412; EG:       ; %bb.0: ; %entry413; EG-NEXT:    ALU 0, @10, KC0[CB0:0-32], KC1[]414; EG-NEXT:    TEX 1 @6415; EG-NEXT:    ALU 4, @11, KC0[CB0:0-32], KC1[]416; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T3.X, 0417; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T2.X, 1418; EG-NEXT:    CF_END419; EG-NEXT:    Fetch clause starting at 6:420; EG-NEXT:     VTX_READ_128 T1.XYZW, T0.X, 0, #1421; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 16, #1422; EG-NEXT:    ALU clause starting at 10:423; EG-NEXT:     MOV * T0.X, KC0[2].Z,424; EG-NEXT:    ALU clause starting at 11:425; EG-NEXT:     ADD_INT * T2.W, KC0[2].Y, literal.x,426; EG-NEXT:    16(2.242078e-44), 0(0.000000e+00)427; EG-NEXT:     LSHR T2.X, PV.W, literal.x,428; EG-NEXT:     LSHR * T3.X, KC0[2].Y, literal.x,429; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)430;431; GCN-HSA-LABEL: global_load_v8i32:432; GCN-HSA:       ; %bb.0: ; %entry433; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0434; GCN-HSA-NEXT:    v_mov_b32_e32 v8, 0435; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)436; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v8, s[2:3] offset:16437; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v8, s[2:3]438; GCN-HSA-NEXT:    s_waitcnt vmcnt(1)439; GCN-HSA-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1] offset:16440; GCN-HSA-NEXT:    s_waitcnt vmcnt(1)441; GCN-HSA-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1]442; GCN-HSA-NEXT:    s_endpgm443entry:444  %ld = load <8 x i32>, ptr addrspace(1) %in445  store <8 x i32> %ld, ptr addrspace(1) %out446  ret void447}448 449define amdgpu_kernel void @global_load_v9i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {450; SI-NOHSA-LABEL: global_load_v9i32:451; SI-NOHSA:       ; %bb.0: ; %entry452; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x9453; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf000454; SI-NOHSA-NEXT:    s_mov_b32 s6, -1455; SI-NOHSA-NEXT:    s_mov_b32 s10, s6456; SI-NOHSA-NEXT:    s_mov_b32 s11, s7457; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)458; SI-NOHSA-NEXT:    s_mov_b32 s8, s2459; SI-NOHSA-NEXT:    s_mov_b32 s9, s3460; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0461; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16462; SI-NOHSA-NEXT:    buffer_load_dword v8, off, s[8:11], 0 offset:32463; SI-NOHSA-NEXT:    s_mov_b32 s4, s0464; SI-NOHSA-NEXT:    s_mov_b32 s5, s1465; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)466; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0467; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)468; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:16469; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)470; SI-NOHSA-NEXT:    buffer_store_dword v8, off, s[4:7], 0 offset:32471; SI-NOHSA-NEXT:    s_endpgm472;473; GCNX3-HSA-LABEL: global_load_v9i32:474; GCNX3-HSA:       ; %bb.0: ; %entry475; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0476; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s17477; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 8478; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s13479; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)480; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 32481; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s2482; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 0483; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s3484; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 16485; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 0486; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s3487; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s5488; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s2489; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]490; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s4491; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]492; GCNX3-HSA-NEXT:    flat_load_dword v14, v[8:9]493; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 16494; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s1495; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 0496; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s0497; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 32498; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 0499; GCNX3-HSA-NEXT:    v_mov_b32_e32 v11, s3500; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, s1501; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, s2502; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, s0503; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)504; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[8:9], v[0:3]505; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)506; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[10:11], v[4:7]507; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)508; GCNX3-HSA-NEXT:    flat_store_dword v[12:13], v14509; GCNX3-HSA-NEXT:    s_endpgm510;511; GCNX3-NOHSA-LABEL: global_load_v9i32:512; GCNX3-NOHSA:       ; %bb.0: ; %entry513; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24514; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf000515; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -1516; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s6517; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s7518; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)519; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s2520; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s3521; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0522; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16523; GCNX3-NOHSA-NEXT:    buffer_load_dword v8, off, s[8:11], 0 offset:32524; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s0525; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s1526; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)527; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0528; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)529; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:16530; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)531; GCNX3-NOHSA-NEXT:    buffer_store_dword v8, off, s[4:7], 0 offset:32532; GCNX3-NOHSA-NEXT:    s_endpgm533;534; EG-LABEL: global_load_v9i32:535; EG:       ; %bb.0: ; %entry536; EG-NEXT:    ALU 8, @14, KC0[CB0:0-32], KC1[]537; EG-NEXT:    TEX 2 @8538; EG-NEXT:    ALU 1, @23, KC0[CB0:0-32], KC1[]539; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T5.X, 0540; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T2.XYZW, T1.X, 0541; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T3.X, T0.X, 1542; EG-NEXT:    CF_END543; EG-NEXT:    PAD544; EG-NEXT:    Fetch clause starting at 8:545; EG-NEXT:     VTX_READ_128 T4.XYZW, T2.X, 0, #1546; EG-NEXT:     VTX_READ_128 T2.XYZW, T2.X, 16, #1547; EG-NEXT:     VTX_READ_32 T3.X, T3.X, 32, #1548; EG-NEXT:    ALU clause starting at 14:549; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,550; EG-NEXT:    32(4.484155e-44), 0(0.000000e+00)551; EG-NEXT:     LSHR T0.X, PV.W, literal.x,552; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,553; EG-NEXT:    2(2.802597e-45), 16(2.242078e-44)554; EG-NEXT:     LSHR T1.X, PV.W, literal.x,555; EG-NEXT:     MOV * T2.X, KC0[2].Z,556; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)557; EG-NEXT:     MOV * T3.X, PS,558; EG-NEXT:    ALU clause starting at 23:559; EG-NEXT:     LSHR * T5.X, KC0[2].Y, literal.x,560; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)561;562; GCN-HSA-LABEL: global_load_v9i32:563; GCN-HSA:       ; %bb.0: ; %entry564; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0565; GCN-HSA-NEXT:    v_mov_b32_e32 v8, 0566; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)567; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v8, s[2:3]568; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v8, s[2:3] offset:16569; GCN-HSA-NEXT:    global_load_dword v9, v8, s[2:3] offset:32570; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)571; GCN-HSA-NEXT:    global_store_dwordx4 v8, v[0:3], s[0:1]572; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)573; GCN-HSA-NEXT:    global_store_dwordx4 v8, v[4:7], s[0:1] offset:16574; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)575; GCN-HSA-NEXT:    global_store_dword v8, v9, s[0:1] offset:32576; GCN-HSA-NEXT:    s_endpgm577entry:578  %ld = load <9 x i32>, ptr addrspace(1) %in579  store <9 x i32> %ld, ptr addrspace(1) %out580  ret void581}582 583define amdgpu_kernel void @global_load_v10i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {584; SI-NOHSA-LABEL: global_load_v10i32:585; SI-NOHSA:       ; %bb.0: ; %entry586; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x9587; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf000588; SI-NOHSA-NEXT:    s_mov_b32 s6, -1589; SI-NOHSA-NEXT:    s_mov_b32 s10, s6590; SI-NOHSA-NEXT:    s_mov_b32 s11, s7591; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)592; SI-NOHSA-NEXT:    s_mov_b32 s8, s2593; SI-NOHSA-NEXT:    s_mov_b32 s9, s3594; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0595; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16596; SI-NOHSA-NEXT:    buffer_load_dwordx2 v[8:9], off, s[8:11], 0 offset:32597; SI-NOHSA-NEXT:    s_mov_b32 s4, s0598; SI-NOHSA-NEXT:    s_mov_b32 s5, s1599; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)600; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0601; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)602; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:16603; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)604; SI-NOHSA-NEXT:    buffer_store_dwordx2 v[8:9], off, s[4:7], 0 offset:32605; SI-NOHSA-NEXT:    s_endpgm606;607; GCNX3-HSA-LABEL: global_load_v10i32:608; GCNX3-HSA:       ; %bb.0: ; %entry609; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0610; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s17611; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 8612; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s13613; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)614; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 32615; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s2616; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 0617; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s3618; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 16619; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 0620; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s5621; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s3622; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s4623; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s2624; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]625; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]626; GCNX3-HSA-NEXT:    flat_load_dwordx2 v[8:9], v[8:9]627; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 16628; GCNX3-HSA-NEXT:    v_mov_b32_e32 v11, s1629; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 0630; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, s0631; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 32632; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 0633; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, s3634; GCNX3-HSA-NEXT:    v_mov_b32_e32 v15, s1635; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, s2636; GCNX3-HSA-NEXT:    v_mov_b32_e32 v14, s0637; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)638; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[10:11], v[0:3]639; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)640; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[12:13], v[4:7]641; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)642; GCNX3-HSA-NEXT:    flat_store_dwordx2 v[14:15], v[8:9]643; GCNX3-HSA-NEXT:    s_endpgm644;645; GCNX3-NOHSA-LABEL: global_load_v10i32:646; GCNX3-NOHSA:       ; %bb.0: ; %entry647; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24648; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf000649; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -1650; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s6651; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s7652; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)653; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s2654; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s3655; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0656; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16657; GCNX3-NOHSA-NEXT:    buffer_load_dwordx2 v[8:9], off, s[8:11], 0 offset:32658; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s0659; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s1660; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)661; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0662; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)663; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:16664; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)665; GCNX3-NOHSA-NEXT:    buffer_store_dwordx2 v[8:9], off, s[4:7], 0 offset:32666; GCNX3-NOHSA-NEXT:    s_endpgm667;668; EG-LABEL: global_load_v10i32:669; EG:       ; %bb.0: ; %entry670; EG-NEXT:    ALU 0, @14, KC0[CB0:0-32], KC1[]671; EG-NEXT:    TEX 2 @8672; EG-NEXT:    ALU 7, @15, KC0[CB0:0-32], KC1[]673; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T5.X, 0674; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T2.XYZW, T4.X, 0675; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XY, T3.X, 1676; EG-NEXT:    CF_END677; EG-NEXT:    PAD678; EG-NEXT:    Fetch clause starting at 8:679; EG-NEXT:     VTX_READ_128 T1.XYZW, T0.X, 0, #1680; EG-NEXT:     VTX_READ_128 T2.XYZW, T0.X, 16, #1681; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 32, #1682; EG-NEXT:    ALU clause starting at 14:683; EG-NEXT:     MOV * T0.X, KC0[2].Z,684; EG-NEXT:    ALU clause starting at 15:685; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,686; EG-NEXT:    32(4.484155e-44), 0(0.000000e+00)687; EG-NEXT:     LSHR T3.X, PV.W, literal.x,688; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,689; EG-NEXT:    2(2.802597e-45), 16(2.242078e-44)690; EG-NEXT:     LSHR T4.X, PV.W, literal.x,691; EG-NEXT:     LSHR * T5.X, KC0[2].Y, literal.x,692; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)693;694; GCN-HSA-LABEL: global_load_v10i32:695; GCN-HSA:       ; %bb.0: ; %entry696; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0697; GCN-HSA-NEXT:    v_mov_b32_e32 v10, 0698; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)699; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v10, s[2:3]700; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v10, s[2:3] offset:16701; GCN-HSA-NEXT:    global_load_dwordx2 v[8:9], v10, s[2:3] offset:32702; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)703; GCN-HSA-NEXT:    global_store_dwordx4 v10, v[0:3], s[0:1]704; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)705; GCN-HSA-NEXT:    global_store_dwordx4 v10, v[4:7], s[0:1] offset:16706; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)707; GCN-HSA-NEXT:    global_store_dwordx2 v10, v[8:9], s[0:1] offset:32708; GCN-HSA-NEXT:    s_endpgm709entry:710  %ld = load <10 x i32>, ptr addrspace(1) %in711  store <10 x i32> %ld, ptr addrspace(1) %out712  ret void713}714 715define amdgpu_kernel void @global_load_v11i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {716; SI-NOHSA-LABEL: global_load_v11i32:717; SI-NOHSA:       ; %bb.0: ; %entry718; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x9719; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf000720; SI-NOHSA-NEXT:    s_mov_b32 s6, -1721; SI-NOHSA-NEXT:    s_mov_b32 s10, s6722; SI-NOHSA-NEXT:    s_mov_b32 s11, s7723; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)724; SI-NOHSA-NEXT:    s_mov_b32 s8, s2725; SI-NOHSA-NEXT:    s_mov_b32 s9, s3726; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0727; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16728; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:32729; SI-NOHSA-NEXT:    s_mov_b32 s4, s0730; SI-NOHSA-NEXT:    s_mov_b32 s5, s1731; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)732; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0733; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)734; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:16735; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)736; SI-NOHSA-NEXT:    buffer_store_dword v10, off, s[4:7], 0 offset:40737; SI-NOHSA-NEXT:    buffer_store_dwordx2 v[8:9], off, s[4:7], 0 offset:32738; SI-NOHSA-NEXT:    s_endpgm739;740; GCNX3-HSA-LABEL: global_load_v11i32:741; GCNX3-HSA:       ; %bb.0: ; %entry742; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0743; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s17744; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 8745; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s13746; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)747; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 32748; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s2749; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 0750; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s3751; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 16752; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 0753; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s5754; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s3755; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s4756; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s2757; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]758; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]759; GCNX3-HSA-NEXT:    flat_load_dwordx3 v[8:10], v[8:9]760; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 16761; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, s1762; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 0763; GCNX3-HSA-NEXT:    v_mov_b32_e32 v11, s0764; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 32765; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 0766; GCNX3-HSA-NEXT:    v_mov_b32_e32 v14, s3767; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, s1768; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, s2769; GCNX3-HSA-NEXT:    v_mov_b32_e32 v15, s0770; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)771; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[11:12], v[0:3]772; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)773; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[13:14], v[4:7]774; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)775; GCNX3-HSA-NEXT:    flat_store_dwordx3 v[15:16], v[8:10]776; GCNX3-HSA-NEXT:    s_endpgm777;778; GCNX3-NOHSA-LABEL: global_load_v11i32:779; GCNX3-NOHSA:       ; %bb.0: ; %entry780; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24781; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf000782; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -1783; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s6784; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s7785; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)786; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s2787; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s3788; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0789; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16790; GCNX3-NOHSA-NEXT:    buffer_load_dwordx3 v[8:10], off, s[8:11], 0 offset:32791; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s0792; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s1793; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)794; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0795; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)796; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:16797; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)798; GCNX3-NOHSA-NEXT:    buffer_store_dwordx3 v[8:10], off, s[4:7], 0 offset:32799; GCNX3-NOHSA-NEXT:    s_endpgm800;801; EG-LABEL: global_load_v11i32:802; EG:       ; %bb.0: ; %entry803; EG-NEXT:    ALU 0, @14, KC0[CB0:0-32], KC1[]804; EG-NEXT:    TEX 2 @8805; EG-NEXT:    ALU 12, @15, KC0[CB0:0-32], KC1[]806; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T7.X, 0807; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T2.XYZW, T6.X, 0808; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T4.X, T5.X, 0809; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XY, T3.X, 1810; EG-NEXT:    CF_END811; EG-NEXT:    Fetch clause starting at 8:812; EG-NEXT:     VTX_READ_128 T1.XYZW, T0.X, 0, #1813; EG-NEXT:     VTX_READ_128 T2.XYZW, T0.X, 16, #1814; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 32, #1815; EG-NEXT:    ALU clause starting at 14:816; EG-NEXT:     MOV * T0.X, KC0[2].Z,817; EG-NEXT:    ALU clause starting at 15:818; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,819; EG-NEXT:    32(4.484155e-44), 0(0.000000e+00)820; EG-NEXT:     LSHR T3.X, PV.W, literal.x,821; EG-NEXT:     MOV * T4.X, T0.Z,822; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)823; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,824; EG-NEXT:    40(5.605194e-44), 0(0.000000e+00)825; EG-NEXT:     LSHR T5.X, PV.W, literal.x,826; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,827; EG-NEXT:    2(2.802597e-45), 16(2.242078e-44)828; EG-NEXT:     LSHR T6.X, PV.W, literal.x,829; EG-NEXT:     LSHR * T7.X, KC0[2].Y, literal.x,830; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)831;832; GCN-HSA-LABEL: global_load_v11i32:833; GCN-HSA:       ; %bb.0: ; %entry834; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0835; GCN-HSA-NEXT:    v_mov_b32_e32 v11, 0836; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)837; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v11, s[2:3]838; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v11, s[2:3] offset:16839; GCN-HSA-NEXT:    global_load_dwordx3 v[8:10], v11, s[2:3] offset:32840; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)841; GCN-HSA-NEXT:    global_store_dwordx4 v11, v[0:3], s[0:1]842; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)843; GCN-HSA-NEXT:    global_store_dwordx4 v11, v[4:7], s[0:1] offset:16844; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)845; GCN-HSA-NEXT:    global_store_dwordx3 v11, v[8:10], s[0:1] offset:32846; GCN-HSA-NEXT:    s_endpgm847entry:848  %ld = load <11 x i32>, ptr addrspace(1) %in849  store <11 x i32> %ld, ptr addrspace(1) %out850  ret void851}852 853 854define amdgpu_kernel void @global_load_v12i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {855; SI-NOHSA-LABEL: global_load_v12i32:856; SI-NOHSA:       ; %bb.0: ; %entry857; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x9858; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf000859; SI-NOHSA-NEXT:    s_mov_b32 s6, -1860; SI-NOHSA-NEXT:    s_mov_b32 s10, s6861; SI-NOHSA-NEXT:    s_mov_b32 s11, s7862; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)863; SI-NOHSA-NEXT:    s_mov_b32 s8, s2864; SI-NOHSA-NEXT:    s_mov_b32 s9, s3865; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0866; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16867; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:32868; SI-NOHSA-NEXT:    s_mov_b32 s4, s0869; SI-NOHSA-NEXT:    s_mov_b32 s5, s1870; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)871; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0872; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)873; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:16874; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)875; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:32876; SI-NOHSA-NEXT:    s_endpgm877;878; GCNX3-HSA-LABEL: global_load_v12i32:879; GCNX3-HSA:       ; %bb.0: ; %entry880; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0881; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s17882; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 8883; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s13884; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)885; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 32886; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s2887; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 0888; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s3889; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 16890; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 0891; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s5892; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s3893; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s4894; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s2895; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]896; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]897; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[8:11], v[8:9]898; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 16899; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, s1900; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 0901; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, s0902; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 32903; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 0904; GCNX3-HSA-NEXT:    v_mov_b32_e32 v15, s3905; GCNX3-HSA-NEXT:    v_mov_b32_e32 v17, s1906; GCNX3-HSA-NEXT:    v_mov_b32_e32 v14, s2907; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, s0908; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)909; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[12:13], v[0:3]910; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)911; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[14:15], v[4:7]912; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)913; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[16:17], v[8:11]914; GCNX3-HSA-NEXT:    s_endpgm915;916; GCNX3-NOHSA-LABEL: global_load_v12i32:917; GCNX3-NOHSA:       ; %bb.0: ; %entry918; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x24919; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf000920; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -1921; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s6922; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s7923; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)924; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s2925; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s3926; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0927; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16928; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:32929; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s0930; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s1931; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)932; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0933; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)934; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:16935; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)936; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:32937; GCNX3-NOHSA-NEXT:    s_endpgm938;939; EG-LABEL: global_load_v12i32:940; EG:       ; %bb.0: ; %entry941; EG-NEXT:    ALU 7, @14, KC0[CB0:0-32], KC1[]942; EG-NEXT:    TEX 2 @8943; EG-NEXT:    ALU 1, @22, KC0[CB0:0-32], KC1[]944; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T3.XYZW, T5.X, 0945; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T1.X, 0946; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T2.XYZW, T0.X, 1947; EG-NEXT:    CF_END948; EG-NEXT:    PAD949; EG-NEXT:    Fetch clause starting at 8:950; EG-NEXT:     VTX_READ_128 T3.XYZW, T2.X, 0, #1951; EG-NEXT:     VTX_READ_128 T4.XYZW, T2.X, 16, #1952; EG-NEXT:     VTX_READ_128 T2.XYZW, T2.X, 32, #1953; EG-NEXT:    ALU clause starting at 14:954; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,955; EG-NEXT:    32(4.484155e-44), 0(0.000000e+00)956; EG-NEXT:     LSHR T0.X, PV.W, literal.x,957; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,958; EG-NEXT:    2(2.802597e-45), 16(2.242078e-44)959; EG-NEXT:     LSHR T1.X, PV.W, literal.x,960; EG-NEXT:     MOV * T2.X, KC0[2].Z,961; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)962; EG-NEXT:    ALU clause starting at 22:963; EG-NEXT:     LSHR * T5.X, KC0[2].Y, literal.x,964; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)965;966; GCN-HSA-LABEL: global_load_v12i32:967; GCN-HSA:       ; %bb.0: ; %entry968; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x0969; GCN-HSA-NEXT:    v_mov_b32_e32 v12, 0970; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)971; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v12, s[2:3]972; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v12, s[2:3] offset:16973; GCN-HSA-NEXT:    global_load_dwordx4 v[8:11], v12, s[2:3] offset:32974; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)975; GCN-HSA-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1]976; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)977; GCN-HSA-NEXT:    global_store_dwordx4 v12, v[4:7], s[0:1] offset:16978; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)979; GCN-HSA-NEXT:    global_store_dwordx4 v12, v[8:11], s[0:1] offset:32980; GCN-HSA-NEXT:    s_endpgm981entry:982  %ld = load <12 x i32>, ptr addrspace(1) %in983  store <12 x i32> %ld, ptr addrspace(1) %out984  ret void985}986 987define amdgpu_kernel void @global_load_v16i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {988; SI-NOHSA-LABEL: global_load_v16i32:989; SI-NOHSA:       ; %bb.0: ; %entry990; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x9991; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf000992; SI-NOHSA-NEXT:    s_mov_b32 s6, -1993; SI-NOHSA-NEXT:    s_mov_b32 s10, s6994; SI-NOHSA-NEXT:    s_mov_b32 s11, s7995; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)996; SI-NOHSA-NEXT:    s_mov_b32 s4, s0997; SI-NOHSA-NEXT:    s_mov_b32 s5, s1998; SI-NOHSA-NEXT:    s_mov_b32 s8, s2999; SI-NOHSA-NEXT:    s_mov_b32 s9, s31000; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:321001; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:481002; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 01003; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:161004; SI-NOHSA-NEXT:    s_waitcnt vmcnt(3)1005; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:321006; SI-NOHSA-NEXT:    s_waitcnt vmcnt(3)1007; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:481008; SI-NOHSA-NEXT:    s_waitcnt vmcnt(3)1009; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 01010; SI-NOHSA-NEXT:    s_waitcnt vmcnt(3)1011; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[12:15], off, s[4:7], 0 offset:161012; SI-NOHSA-NEXT:    s_endpgm1013;1014; GCNX3-HSA-LABEL: global_load_v16i32:1015; GCNX3-HSA:       ; %bb.0: ; %entry1016; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01017; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s171018; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 81019; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s131020; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)1021; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 161022; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 01023; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, s51024; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, s41025; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 481026; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s21027; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 01028; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s31029; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 321030; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 01031; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s41032; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s31033; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s51034; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s21035; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]1036; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]1037; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[8:11], v[8:9]1038; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[12:15], v[12:13]1039; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 321040; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 01041; GCNX3-HSA-NEXT:    v_mov_b32_e32 v19, s31042; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, s21043; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 481044; GCNX3-HSA-NEXT:    v_mov_b32_e32 v17, s11045; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 01046; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, s01047; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 161048; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 01049; GCNX3-HSA-NEXT:    v_mov_b32_e32 v21, s31050; GCNX3-HSA-NEXT:    v_mov_b32_e32 v23, s11051; GCNX3-HSA-NEXT:    v_mov_b32_e32 v20, s21052; GCNX3-HSA-NEXT:    v_mov_b32_e32 v22, s01053; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(3)1054; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[16:17], v[0:3]1055; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(3)1056; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[20:21], v[4:7]1057; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(3)1058; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[18:19], v[8:11]1059; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(3)1060; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[22:23], v[12:15]1061; GCNX3-HSA-NEXT:    s_endpgm1062;1063; GCNX3-NOHSA-LABEL: global_load_v16i32:1064; GCNX3-NOHSA:       ; %bb.0: ; %entry1065; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241066; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001067; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -11068; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s61069; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s71070; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1071; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s21072; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s31073; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:321074; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:481075; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 01076; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:161077; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s01078; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s11079; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(3)1080; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:321081; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(3)1082; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:481083; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(3)1084; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 01085; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(3)1086; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[12:15], off, s[4:7], 0 offset:161087; GCNX3-NOHSA-NEXT:    s_endpgm1088;1089; EG-LABEL: global_load_v16i32:1090; EG:       ; %bb.0: ; %entry1091; EG-NEXT:    ALU 11, @16, KC0[CB0:0-32], KC1[]1092; EG-NEXT:    TEX 3 @81093; EG-NEXT:    ALU 1, @28, KC0[], KC1[]1094; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T7.X, 01095; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T2.X, 01096; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T1.X, 01097; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T3.XYZW, T0.X, 11098; EG-NEXT:    CF_END1099; EG-NEXT:    Fetch clause starting at 8:1100; EG-NEXT:     VTX_READ_128 T4.XYZW, T3.X, 32, #11101; EG-NEXT:     VTX_READ_128 T5.XYZW, T3.X, 48, #11102; EG-NEXT:     VTX_READ_128 T6.XYZW, T3.X, 0, #11103; EG-NEXT:     VTX_READ_128 T3.XYZW, T3.X, 16, #11104; EG-NEXT:    ALU clause starting at 16:1105; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,1106; EG-NEXT:    16(2.242078e-44), 0(0.000000e+00)1107; EG-NEXT:     LSHR T0.X, PV.W, literal.x,1108; EG-NEXT:     LSHR * T1.X, KC0[2].Y, literal.x,1109; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)1110; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,1111; EG-NEXT:    48(6.726233e-44), 0(0.000000e+00)1112; EG-NEXT:     LSHR T2.X, PV.W, literal.x,1113; EG-NEXT:     MOV * T3.X, KC0[2].Z,1114; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)1115; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,1116; EG-NEXT:    32(4.484155e-44), 0(0.000000e+00)1117; EG-NEXT:    ALU clause starting at 28:1118; EG-NEXT:     LSHR * T7.X, T0.W, literal.x,1119; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)1120;1121; GCN-HSA-LABEL: global_load_v16i32:1122; GCN-HSA:       ; %bb.0: ; %entry1123; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01124; GCN-HSA-NEXT:    v_mov_b32_e32 v16, 01125; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)1126; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v16, s[2:3] offset:321127; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v16, s[2:3] offset:481128; GCN-HSA-NEXT:    global_load_dwordx4 v[8:11], v16, s[2:3]1129; GCN-HSA-NEXT:    global_load_dwordx4 v[12:15], v16, s[2:3] offset:161130; GCN-HSA-NEXT:    s_waitcnt vmcnt(3)1131; GCN-HSA-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1] offset:321132; GCN-HSA-NEXT:    s_waitcnt vmcnt(3)1133; GCN-HSA-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:481134; GCN-HSA-NEXT:    s_waitcnt vmcnt(3)1135; GCN-HSA-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1]1136; GCN-HSA-NEXT:    s_waitcnt vmcnt(3)1137; GCN-HSA-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:161138; GCN-HSA-NEXT:    s_endpgm1139entry:1140  %ld = load <16 x i32>, ptr addrspace(1) %in1141  store <16 x i32> %ld, ptr addrspace(1) %out1142  ret void1143}1144 1145define amdgpu_kernel void @global_zextload_i32_to_i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1146; SI-NOHSA-LABEL: global_zextload_i32_to_i64:1147; SI-NOHSA:       ; %bb.0:1148; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x91149; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001150; SI-NOHSA-NEXT:    s_mov_b32 s6, -11151; SI-NOHSA-NEXT:    s_mov_b32 s10, s61152; SI-NOHSA-NEXT:    s_mov_b32 s11, s71153; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1154; SI-NOHSA-NEXT:    s_mov_b32 s8, s21155; SI-NOHSA-NEXT:    s_mov_b32 s9, s31156; SI-NOHSA-NEXT:    buffer_load_dword v0, off, s[8:11], 01157; SI-NOHSA-NEXT:    s_mov_b32 s4, s01158; SI-NOHSA-NEXT:    s_mov_b32 s5, s11159; SI-NOHSA-NEXT:    v_mov_b32_e32 v1, 01160; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)1161; SI-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 01162; SI-NOHSA-NEXT:    s_endpgm1163;1164; GCNX3-HSA-LABEL: global_zextload_i32_to_i64:1165; GCNX3-HSA:       ; %bb.0:1166; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01167; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s171168; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s131169; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 81170; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)1171; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s21172; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s31173; GCNX3-HSA-NEXT:    flat_load_dword v0, v[0:1]1174; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, s01175; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, s11176; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, 01177; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)1178; GCNX3-HSA-NEXT:    flat_store_dwordx2 v[2:3], v[0:1]1179; GCNX3-HSA-NEXT:    s_endpgm1180;1181; GCNX3-NOHSA-LABEL: global_zextload_i32_to_i64:1182; GCNX3-NOHSA:       ; %bb.0:1183; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241184; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001185; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -11186; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s61187; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s71188; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1189; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s21190; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s31191; GCNX3-NOHSA-NEXT:    buffer_load_dword v0, off, s[8:11], 01192; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s01193; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s11194; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v1, 01195; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)1196; GCNX3-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 01197; GCNX3-NOHSA-NEXT:    s_endpgm1198;1199; EG-LABEL: global_zextload_i32_to_i64:1200; EG:       ; %bb.0:1201; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]1202; EG-NEXT:    TEX 0 @61203; EG-NEXT:    ALU 2, @9, KC0[CB0:0-32], KC1[]1204; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 11205; EG-NEXT:    CF_END1206; EG-NEXT:    PAD1207; EG-NEXT:    Fetch clause starting at 6:1208; EG-NEXT:     VTX_READ_32 T0.X, T0.X, 0, #11209; EG-NEXT:    ALU clause starting at 8:1210; EG-NEXT:     MOV * T0.X, KC0[2].Z,1211; EG-NEXT:    ALU clause starting at 9:1212; EG-NEXT:     MOV * T0.Y, 0.0,1213; EG-NEXT:     LSHR * T1.X, KC0[2].Y, literal.x,1214; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)1215;1216; GCN-HSA-LABEL: global_zextload_i32_to_i64:1217; GCN-HSA:       ; %bb.0:1218; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01219; GCN-HSA-NEXT:    v_mov_b32_e32 v1, 01220; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)1221; GCN-HSA-NEXT:    global_load_dword v0, v1, s[2:3]1222; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)1223; GCN-HSA-NEXT:    global_store_dwordx2 v1, v[0:1], s[0:1]1224; GCN-HSA-NEXT:    s_endpgm1225  %ld = load i32, ptr addrspace(1) %in1226  %ext = zext i32 %ld to i641227  store i64 %ext, ptr addrspace(1) %out1228  ret void1229}1230 1231define amdgpu_kernel void @global_sextload_i32_to_i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1232; SI-NOHSA-LABEL: global_sextload_i32_to_i64:1233; SI-NOHSA:       ; %bb.0:1234; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x91235; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001236; SI-NOHSA-NEXT:    s_mov_b32 s6, -11237; SI-NOHSA-NEXT:    s_mov_b32 s10, s61238; SI-NOHSA-NEXT:    s_mov_b32 s11, s71239; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1240; SI-NOHSA-NEXT:    s_mov_b32 s8, s21241; SI-NOHSA-NEXT:    s_mov_b32 s9, s31242; SI-NOHSA-NEXT:    buffer_load_dword v0, off, s[8:11], 01243; SI-NOHSA-NEXT:    s_mov_b32 s4, s01244; SI-NOHSA-NEXT:    s_mov_b32 s5, s11245; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)1246; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v01247; SI-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 01248; SI-NOHSA-NEXT:    s_endpgm1249;1250; GCNX3-HSA-LABEL: global_sextload_i32_to_i64:1251; GCNX3-HSA:       ; %bb.0:1252; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01253; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s171254; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s131255; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 81256; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)1257; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s21258; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s31259; GCNX3-HSA-NEXT:    flat_load_dword v0, v[0:1]1260; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, s01261; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, s11262; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)1263; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v01264; GCNX3-HSA-NEXT:    flat_store_dwordx2 v[2:3], v[0:1]1265; GCNX3-HSA-NEXT:    s_endpgm1266;1267; GCNX3-NOHSA-LABEL: global_sextload_i32_to_i64:1268; GCNX3-NOHSA:       ; %bb.0:1269; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241270; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001271; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -11272; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s61273; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s71274; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1275; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s21276; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s31277; GCNX3-NOHSA-NEXT:    buffer_load_dword v0, off, s[8:11], 01278; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s01279; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s11280; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)1281; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v01282; GCNX3-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 01283; GCNX3-NOHSA-NEXT:    s_endpgm1284;1285; EG-LABEL: global_sextload_i32_to_i64:1286; EG:       ; %bb.0:1287; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]1288; EG-NEXT:    TEX 0 @61289; EG-NEXT:    ALU 2, @9, KC0[CB0:0-32], KC1[]1290; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 11291; EG-NEXT:    CF_END1292; EG-NEXT:    PAD1293; EG-NEXT:    Fetch clause starting at 6:1294; EG-NEXT:     VTX_READ_32 T0.X, T0.X, 0, #11295; EG-NEXT:    ALU clause starting at 8:1296; EG-NEXT:     MOV * T0.X, KC0[2].Z,1297; EG-NEXT:    ALU clause starting at 9:1298; EG-NEXT:     LSHR T1.X, KC0[2].Y, literal.x,1299; EG-NEXT:     ASHR * T0.Y, T0.X, literal.y,1300; EG-NEXT:    2(2.802597e-45), 31(4.344025e-44)1301;1302; GCN-HSA-LABEL: global_sextload_i32_to_i64:1303; GCN-HSA:       ; %bb.0:1304; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01305; GCN-HSA-NEXT:    v_mov_b32_e32 v2, 01306; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)1307; GCN-HSA-NEXT:    global_load_dword v0, v2, s[2:3]1308; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)1309; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v01310; GCN-HSA-NEXT:    global_store_dwordx2 v2, v[0:1], s[0:1]1311; GCN-HSA-NEXT:    s_endpgm1312  %ld = load i32, ptr addrspace(1) %in1313  %ext = sext i32 %ld to i641314  store i64 %ext, ptr addrspace(1) %out1315  ret void1316}1317 1318define amdgpu_kernel void @global_zextload_v1i32_to_v1i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1319; SI-NOHSA-LABEL: global_zextload_v1i32_to_v1i64:1320; SI-NOHSA:       ; %bb.0:1321; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x91322; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001323; SI-NOHSA-NEXT:    s_mov_b32 s6, -11324; SI-NOHSA-NEXT:    s_mov_b32 s10, s61325; SI-NOHSA-NEXT:    s_mov_b32 s11, s71326; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1327; SI-NOHSA-NEXT:    s_mov_b32 s8, s21328; SI-NOHSA-NEXT:    s_mov_b32 s9, s31329; SI-NOHSA-NEXT:    buffer_load_dword v0, off, s[8:11], 01330; SI-NOHSA-NEXT:    s_mov_b32 s4, s01331; SI-NOHSA-NEXT:    s_mov_b32 s5, s11332; SI-NOHSA-NEXT:    v_mov_b32_e32 v1, 01333; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)1334; SI-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 01335; SI-NOHSA-NEXT:    s_endpgm1336;1337; GCNX3-HSA-LABEL: global_zextload_v1i32_to_v1i64:1338; GCNX3-HSA:       ; %bb.0:1339; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01340; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s171341; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s131342; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 81343; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)1344; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s21345; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s31346; GCNX3-HSA-NEXT:    flat_load_dword v0, v[0:1]1347; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, s01348; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, s11349; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, 01350; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)1351; GCNX3-HSA-NEXT:    flat_store_dwordx2 v[2:3], v[0:1]1352; GCNX3-HSA-NEXT:    s_endpgm1353;1354; GCNX3-NOHSA-LABEL: global_zextload_v1i32_to_v1i64:1355; GCNX3-NOHSA:       ; %bb.0:1356; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241357; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001358; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -11359; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s61360; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s71361; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1362; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s21363; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s31364; GCNX3-NOHSA-NEXT:    buffer_load_dword v0, off, s[8:11], 01365; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s01366; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s11367; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v1, 01368; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)1369; GCNX3-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 01370; GCNX3-NOHSA-NEXT:    s_endpgm1371;1372; EG-LABEL: global_zextload_v1i32_to_v1i64:1373; EG:       ; %bb.0:1374; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]1375; EG-NEXT:    TEX 0 @61376; EG-NEXT:    ALU 2, @9, KC0[CB0:0-32], KC1[]1377; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 11378; EG-NEXT:    CF_END1379; EG-NEXT:    PAD1380; EG-NEXT:    Fetch clause starting at 6:1381; EG-NEXT:     VTX_READ_32 T0.X, T0.X, 0, #11382; EG-NEXT:    ALU clause starting at 8:1383; EG-NEXT:     MOV * T0.X, KC0[2].Z,1384; EG-NEXT:    ALU clause starting at 9:1385; EG-NEXT:     MOV * T0.Y, 0.0,1386; EG-NEXT:     LSHR * T1.X, KC0[2].Y, literal.x,1387; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)1388;1389; GCN-HSA-LABEL: global_zextload_v1i32_to_v1i64:1390; GCN-HSA:       ; %bb.0:1391; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01392; GCN-HSA-NEXT:    v_mov_b32_e32 v1, 01393; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)1394; GCN-HSA-NEXT:    global_load_dword v0, v1, s[2:3]1395; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)1396; GCN-HSA-NEXT:    global_store_dwordx2 v1, v[0:1], s[0:1]1397; GCN-HSA-NEXT:    s_endpgm1398  %ld = load <1 x i32>, ptr addrspace(1) %in1399  %ext = zext <1 x i32> %ld to <1 x i64>1400  store <1 x i64> %ext, ptr addrspace(1) %out1401  ret void1402}1403 1404define amdgpu_kernel void @global_sextload_v1i32_to_v1i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1405; SI-NOHSA-LABEL: global_sextload_v1i32_to_v1i64:1406; SI-NOHSA:       ; %bb.0:1407; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x91408; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001409; SI-NOHSA-NEXT:    s_mov_b32 s6, -11410; SI-NOHSA-NEXT:    s_mov_b32 s10, s61411; SI-NOHSA-NEXT:    s_mov_b32 s11, s71412; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1413; SI-NOHSA-NEXT:    s_mov_b32 s8, s21414; SI-NOHSA-NEXT:    s_mov_b32 s9, s31415; SI-NOHSA-NEXT:    buffer_load_dword v0, off, s[8:11], 01416; SI-NOHSA-NEXT:    s_mov_b32 s4, s01417; SI-NOHSA-NEXT:    s_mov_b32 s5, s11418; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)1419; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v01420; SI-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 01421; SI-NOHSA-NEXT:    s_endpgm1422;1423; GCNX3-HSA-LABEL: global_sextload_v1i32_to_v1i64:1424; GCNX3-HSA:       ; %bb.0:1425; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01426; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s171427; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s131428; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 81429; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)1430; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s21431; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s31432; GCNX3-HSA-NEXT:    flat_load_dword v0, v[0:1]1433; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, s01434; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, s11435; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)1436; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v01437; GCNX3-HSA-NEXT:    flat_store_dwordx2 v[2:3], v[0:1]1438; GCNX3-HSA-NEXT:    s_endpgm1439;1440; GCNX3-NOHSA-LABEL: global_sextload_v1i32_to_v1i64:1441; GCNX3-NOHSA:       ; %bb.0:1442; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241443; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001444; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -11445; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s61446; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s71447; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1448; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s21449; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s31450; GCNX3-NOHSA-NEXT:    buffer_load_dword v0, off, s[8:11], 01451; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s01452; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s11453; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)1454; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v01455; GCNX3-NOHSA-NEXT:    buffer_store_dwordx2 v[0:1], off, s[4:7], 01456; GCNX3-NOHSA-NEXT:    s_endpgm1457;1458; EG-LABEL: global_sextload_v1i32_to_v1i64:1459; EG:       ; %bb.0:1460; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]1461; EG-NEXT:    TEX 0 @61462; EG-NEXT:    ALU 2, @9, KC0[CB0:0-32], KC1[]1463; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 11464; EG-NEXT:    CF_END1465; EG-NEXT:    PAD1466; EG-NEXT:    Fetch clause starting at 6:1467; EG-NEXT:     VTX_READ_32 T0.X, T0.X, 0, #11468; EG-NEXT:    ALU clause starting at 8:1469; EG-NEXT:     MOV * T0.X, KC0[2].Z,1470; EG-NEXT:    ALU clause starting at 9:1471; EG-NEXT:     LSHR T1.X, KC0[2].Y, literal.x,1472; EG-NEXT:     ASHR * T0.Y, T0.X, literal.y,1473; EG-NEXT:    2(2.802597e-45), 31(4.344025e-44)1474;1475; GCN-HSA-LABEL: global_sextload_v1i32_to_v1i64:1476; GCN-HSA:       ; %bb.0:1477; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01478; GCN-HSA-NEXT:    v_mov_b32_e32 v2, 01479; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)1480; GCN-HSA-NEXT:    global_load_dword v0, v2, s[2:3]1481; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)1482; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v01483; GCN-HSA-NEXT:    global_store_dwordx2 v2, v[0:1], s[0:1]1484; GCN-HSA-NEXT:    s_endpgm1485  %ld = load <1 x i32>, ptr addrspace(1) %in1486  %ext = sext <1 x i32> %ld to <1 x i64>1487  store <1 x i64> %ext, ptr addrspace(1) %out1488  ret void1489}1490 1491define amdgpu_kernel void @global_zextload_v2i32_to_v2i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1492; SI-NOHSA-LABEL: global_zextload_v2i32_to_v2i64:1493; SI-NOHSA:       ; %bb.0:1494; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x91495; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001496; SI-NOHSA-NEXT:    s_mov_b32 s6, -11497; SI-NOHSA-NEXT:    s_mov_b32 s10, s61498; SI-NOHSA-NEXT:    s_mov_b32 s11, s71499; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1500; SI-NOHSA-NEXT:    s_mov_b32 s8, s21501; SI-NOHSA-NEXT:    s_mov_b32 s9, s31502; SI-NOHSA-NEXT:    buffer_load_dwordx2 v[4:5], off, s[8:11], 01503; SI-NOHSA-NEXT:    v_mov_b32_e32 v1, 01504; SI-NOHSA-NEXT:    v_mov_b32_e32 v3, v11505; SI-NOHSA-NEXT:    s_mov_b32 s4, s01506; SI-NOHSA-NEXT:    s_mov_b32 s5, s11507; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)1508; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v41509; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v51510; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 01511; SI-NOHSA-NEXT:    s_endpgm1512;1513; GCNX3-HSA-LABEL: global_zextload_v2i32_to_v2i64:1514; GCNX3-HSA:       ; %bb.0:1515; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01516; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s171517; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s131518; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 81519; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)1520; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s21521; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s31522; GCNX3-HSA-NEXT:    flat_load_dwordx2 v[2:3], v[0:1]1523; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, 01524; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s01525; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s11526; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)1527; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v21528; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v31529; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, v11530; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]1531; GCNX3-HSA-NEXT:    s_endpgm1532;1533; GCNX3-NOHSA-LABEL: global_zextload_v2i32_to_v2i64:1534; GCNX3-NOHSA:       ; %bb.0:1535; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241536; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001537; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -11538; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s61539; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s71540; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1541; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s21542; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s31543; GCNX3-NOHSA-NEXT:    buffer_load_dwordx2 v[2:3], off, s[8:11], 01544; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v1, 01545; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s01546; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s11547; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)1548; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v0, v21549; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v2, v31550; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v3, v11551; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 01552; GCNX3-NOHSA-NEXT:    s_endpgm1553;1554; EG-LABEL: global_zextload_v2i32_to_v2i64:1555; EG:       ; %bb.0:1556; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]1557; EG-NEXT:    TEX 0 @61558; EG-NEXT:    ALU 5, @9, KC0[CB0:0-32], KC1[]1559; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T0.X, 11560; EG-NEXT:    CF_END1561; EG-NEXT:    PAD1562; EG-NEXT:    Fetch clause starting at 6:1563; EG-NEXT:     VTX_READ_64 T0.XY, T0.X, 0, #11564; EG-NEXT:    ALU clause starting at 8:1565; EG-NEXT:     MOV * T0.X, KC0[2].Z,1566; EG-NEXT:    ALU clause starting at 9:1567; EG-NEXT:     MOV T1.X, T0.X,1568; EG-NEXT:     MOV T1.Y, 0.0,1569; EG-NEXT:     MOV T1.Z, T0.Y,1570; EG-NEXT:     MOV T1.W, 0.0,1571; EG-NEXT:     LSHR * T0.X, KC0[2].Y, literal.x,1572; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)1573;1574; GCN-HSA-LABEL: global_zextload_v2i32_to_v2i64:1575; GCN-HSA:       ; %bb.0:1576; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01577; GCN-HSA-NEXT:    v_mov_b32_e32 v1, 01578; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)1579; GCN-HSA-NEXT:    global_load_dwordx2 v[2:3], v1, s[2:3]1580; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)1581; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v21582; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v31583; GCN-HSA-NEXT:    v_mov_b32_e32 v3, v11584; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1]1585; GCN-HSA-NEXT:    s_endpgm1586  %ld = load <2 x i32>, ptr addrspace(1) %in1587  %ext = zext <2 x i32> %ld to <2 x i64>1588  store <2 x i64> %ext, ptr addrspace(1) %out1589  ret void1590}1591 1592define amdgpu_kernel void @global_sextload_v2i32_to_v2i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1593; SI-NOHSA-LABEL: global_sextload_v2i32_to_v2i64:1594; SI-NOHSA:       ; %bb.0:1595; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x91596; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001597; SI-NOHSA-NEXT:    s_mov_b32 s6, -11598; SI-NOHSA-NEXT:    s_mov_b32 s10, s61599; SI-NOHSA-NEXT:    s_mov_b32 s11, s71600; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1601; SI-NOHSA-NEXT:    s_mov_b32 s8, s21602; SI-NOHSA-NEXT:    s_mov_b32 s9, s31603; SI-NOHSA-NEXT:    buffer_load_dwordx2 v[4:5], off, s[8:11], 01604; SI-NOHSA-NEXT:    s_mov_b32 s4, s01605; SI-NOHSA-NEXT:    s_mov_b32 s5, s11606; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)1607; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v51608; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v41609; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v41610; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v51611; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 01612; SI-NOHSA-NEXT:    s_endpgm1613;1614; GCNX3-HSA-LABEL: global_sextload_v2i32_to_v2i64:1615; GCNX3-HSA:       ; %bb.0:1616; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01617; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s171618; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s131619; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 81620; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)1621; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s21622; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s31623; GCNX3-HSA-NEXT:    flat_load_dwordx2 v[4:5], v[0:1]1624; GCNX3-HSA-NEXT:    v_mov_b32_e32 v6, s01625; GCNX3-HSA-NEXT:    v_mov_b32_e32 v7, s11626; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)1627; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v51628; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v41629; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v41630; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v51631; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[6:7], v[0:3]1632; GCNX3-HSA-NEXT:    s_endpgm1633;1634; GCNX3-NOHSA-LABEL: global_sextload_v2i32_to_v2i64:1635; GCNX3-NOHSA:       ; %bb.0:1636; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241637; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001638; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -11639; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s61640; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s71641; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1642; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s21643; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s31644; GCNX3-NOHSA-NEXT:    buffer_load_dwordx2 v[4:5], off, s[8:11], 01645; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s01646; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s11647; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)1648; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v51649; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v41650; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v0, v41651; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v2, v51652; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 01653; GCNX3-NOHSA-NEXT:    s_endpgm1654;1655; EG-LABEL: global_sextload_v2i32_to_v2i64:1656; EG:       ; %bb.0:1657; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]1658; EG-NEXT:    TEX 0 @61659; EG-NEXT:    ALU 7, @9, KC0[CB0:0-32], KC1[]1660; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T0.X, 11661; EG-NEXT:    CF_END1662; EG-NEXT:    PAD1663; EG-NEXT:    Fetch clause starting at 6:1664; EG-NEXT:     VTX_READ_64 T0.XY, T0.X, 0, #11665; EG-NEXT:    ALU clause starting at 8:1666; EG-NEXT:     MOV * T0.X, KC0[2].Z,1667; EG-NEXT:    ALU clause starting at 9:1668; EG-NEXT:     ASHR * T1.W, T0.Y, literal.x,1669; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)1670; EG-NEXT:     ASHR * T1.Y, T0.X, literal.x,1671; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)1672; EG-NEXT:     MOV T1.X, T0.X,1673; EG-NEXT:     LSHR * T0.X, KC0[2].Y, literal.x,1674; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)1675; EG-NEXT:     MOV * T1.Z, T0.Y,1676;1677; GCN-HSA-LABEL: global_sextload_v2i32_to_v2i64:1678; GCN-HSA:       ; %bb.0:1679; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01680; GCN-HSA-NEXT:    v_mov_b32_e32 v6, 01681; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)1682; GCN-HSA-NEXT:    global_load_dwordx2 v[4:5], v6, s[2:3]1683; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)1684; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v51685; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v41686; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v41687; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v51688; GCN-HSA-NEXT:    global_store_dwordx4 v6, v[0:3], s[0:1]1689; GCN-HSA-NEXT:    s_endpgm1690  %ld = load <2 x i32>, ptr addrspace(1) %in1691  %ext = sext <2 x i32> %ld to <2 x i64>1692  store <2 x i64> %ext, ptr addrspace(1) %out1693  ret void1694}1695 1696define amdgpu_kernel void @global_zextload_v4i32_to_v4i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1697; SI-NOHSA-LABEL: global_zextload_v4i32_to_v4i64:1698; SI-NOHSA:       ; %bb.0:1699; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x91700; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001701; SI-NOHSA-NEXT:    s_mov_b32 s6, -11702; SI-NOHSA-NEXT:    s_mov_b32 s10, s61703; SI-NOHSA-NEXT:    s_mov_b32 s11, s71704; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1705; SI-NOHSA-NEXT:    s_mov_b32 s8, s21706; SI-NOHSA-NEXT:    s_mov_b32 s9, s31707; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 01708; SI-NOHSA-NEXT:    v_mov_b32_e32 v5, 01709; SI-NOHSA-NEXT:    v_mov_b32_e32 v7, v51710; SI-NOHSA-NEXT:    s_mov_b32 s4, s01711; SI-NOHSA-NEXT:    s_mov_b32 s5, s11712; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)1713; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v21714; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v31715; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:161716; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)1717; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v01718; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v11719; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 01720; SI-NOHSA-NEXT:    s_endpgm1721;1722; GCNX3-HSA-LABEL: global_zextload_v4i32_to_v4i64:1723; GCNX3-HSA:       ; %bb.0:1724; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01725; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s171726; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s131727; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 81728; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, 01729; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)1730; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s21731; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s31732; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]1733; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 161734; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 01735; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s31736; GCNX3-HSA-NEXT:    v_mov_b32_e32 v7, v51737; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s21738; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)1739; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, v21740; GCNX3-HSA-NEXT:    v_mov_b32_e32 v6, v31741; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]1742; GCNX3-HSA-NEXT:    s_nop 01743; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, v01744; GCNX3-HSA-NEXT:    v_mov_b32_e32 v6, v11745; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s01746; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s11747; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[0:1], v[4:7]1748; GCNX3-HSA-NEXT:    s_endpgm1749;1750; GCNX3-NOHSA-LABEL: global_zextload_v4i32_to_v4i64:1751; GCNX3-NOHSA:       ; %bb.0:1752; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241753; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001754; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -11755; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s61756; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s71757; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1758; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s21759; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s31760; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 01761; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v5, 01762; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v7, v51763; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s01764; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s11765; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)1766; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v4, v21767; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v6, v31768; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:161769; GCNX3-NOHSA-NEXT:    s_nop 01770; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v4, v01771; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v6, v11772; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 01773; GCNX3-NOHSA-NEXT:    s_endpgm1774;1775; EG-LABEL: global_zextload_v4i32_to_v4i64:1776; EG:       ; %bb.0:1777; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]1778; EG-NEXT:    TEX 0 @61779; EG-NEXT:    ALU 12, @9, KC0[CB0:0-32], KC1[]1780; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T3.X, 01781; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T2.XYZW, T0.X, 11782; EG-NEXT:    CF_END1783; EG-NEXT:    Fetch clause starting at 6:1784; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 0, #11785; EG-NEXT:    ALU clause starting at 8:1786; EG-NEXT:     MOV * T0.X, KC0[2].Z,1787; EG-NEXT:    ALU clause starting at 9:1788; EG-NEXT:     MOV T1.X, T0.Z,1789; EG-NEXT:     MOV T1.Y, 0.0,1790; EG-NEXT:     MOV * T2.X, T0.X,1791; EG-NEXT:     MOV T2.Y, 0.0,1792; EG-NEXT:     MOV T1.Z, T0.W,1793; EG-NEXT:     MOV T1.W, 0.0,1794; EG-NEXT:     MOV * T2.Z, T0.Y,1795; EG-NEXT:     MOV * T2.W, 0.0,1796; EG-NEXT:     LSHR T0.X, KC0[2].Y, literal.x,1797; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,1798; EG-NEXT:    2(2.802597e-45), 16(2.242078e-44)1799; EG-NEXT:     LSHR * T3.X, PV.W, literal.x,1800; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)1801;1802; GCN-HSA-LABEL: global_zextload_v4i32_to_v4i64:1803; GCN-HSA:       ; %bb.0:1804; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01805; GCN-HSA-NEXT:    v_mov_b32_e32 v1, 01806; GCN-HSA-NEXT:    v_mov_b32_e32 v3, v11807; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)1808; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v1, s[2:3]1809; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)1810; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v61811; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v71812; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:161813; GCN-HSA-NEXT:    s_nop 01814; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v41815; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v51816; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1]1817; GCN-HSA-NEXT:    s_endpgm1818  %ld = load <4 x i32>, ptr addrspace(1) %in1819  %ext = zext <4 x i32> %ld to <4 x i64>1820  store <4 x i64> %ext, ptr addrspace(1) %out1821  ret void1822}1823 1824define amdgpu_kernel void @global_sextload_v4i32_to_v4i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1825; SI-NOHSA-LABEL: global_sextload_v4i32_to_v4i64:1826; SI-NOHSA:       ; %bb.0:1827; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x91828; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001829; SI-NOHSA-NEXT:    s_mov_b32 s6, -11830; SI-NOHSA-NEXT:    s_mov_b32 s10, s61831; SI-NOHSA-NEXT:    s_mov_b32 s11, s71832; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1833; SI-NOHSA-NEXT:    s_mov_b32 s8, s21834; SI-NOHSA-NEXT:    s_mov_b32 s9, s31835; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 01836; SI-NOHSA-NEXT:    s_mov_b32 s4, s01837; SI-NOHSA-NEXT:    s_mov_b32 s5, s11838; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)1839; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v6, 31, v11840; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v4, 31, v01841; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v10, 31, v31842; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v8, 31, v21843; SI-NOHSA-NEXT:    v_mov_b32_e32 v7, v21844; SI-NOHSA-NEXT:    v_mov_b32_e32 v9, v31845; SI-NOHSA-NEXT:    v_mov_b32_e32 v3, v01846; SI-NOHSA-NEXT:    v_mov_b32_e32 v5, v11847; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[7:10], off, s[4:7], 0 offset:161848; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[3:6], off, s[4:7], 01849; SI-NOHSA-NEXT:    s_endpgm1850;1851; GCNX3-HSA-LABEL: global_sextload_v4i32_to_v4i64:1852; GCNX3-HSA:       ; %bb.0:1853; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01854; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s171855; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s131856; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 81857; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)1858; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s21859; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s31860; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]1861; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 161862; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 01863; GCNX3-HSA-NEXT:    v_mov_b32_e32 v14, s31864; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, s11865; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, s21866; GCNX3-HSA-NEXT:    v_mov_b32_e32 v11, s01867; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(0)1868; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v10, 31, v31869; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v8, 31, v21870; GCNX3-HSA-NEXT:    v_mov_b32_e32 v7, v21871; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, v31872; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v6, 31, v11873; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v4, 31, v01874; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, v01875; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, v11876; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[13:14], v[7:10]1877; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[11:12], v[3:6]1878; GCNX3-HSA-NEXT:    s_endpgm1879;1880; GCNX3-NOHSA-LABEL: global_sextload_v4i32_to_v4i64:1881; GCNX3-NOHSA:       ; %bb.0:1882; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241883; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0001884; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -11885; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s61886; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s71887; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1888; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s21889; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s31890; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 01891; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s01892; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s11893; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)1894; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v10, 31, v31895; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v8, 31, v21896; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v7, v21897; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v9, v31898; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v6, 31, v11899; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v4, 31, v01900; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v3, v01901; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v5, v11902; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[7:10], off, s[4:7], 0 offset:161903; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[3:6], off, s[4:7], 01904; GCNX3-NOHSA-NEXT:    s_endpgm1905;1906; EG-LABEL: global_sextload_v4i32_to_v4i64:1907; EG:       ; %bb.0:1908; EG-NEXT:    ALU 0, @8, KC0[CB0:0-32], KC1[]1909; EG-NEXT:    TEX 0 @61910; EG-NEXT:    ALU 15, @9, KC0[CB0:0-32], KC1[]1911; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T3.XYZW, T0.X, 01912; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T2.X, 11913; EG-NEXT:    CF_END1914; EG-NEXT:    Fetch clause starting at 6:1915; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 0, #11916; EG-NEXT:    ALU clause starting at 8:1917; EG-NEXT:     MOV * T0.X, KC0[2].Z,1918; EG-NEXT:    ALU clause starting at 9:1919; EG-NEXT:     ASHR * T1.W, T0.Y, literal.x,1920; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)1921; EG-NEXT:     LSHR T2.X, KC0[2].Y, literal.x,1922; EG-NEXT:     ASHR T1.Y, T0.X, literal.y,1923; EG-NEXT:     ASHR T3.W, T0.W, literal.y,1924; EG-NEXT:     MOV * T1.X, T0.X,1925; EG-NEXT:    2(2.802597e-45), 31(4.344025e-44)1926; EG-NEXT:     ASHR * T3.Y, T0.Z, literal.x,1927; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)1928; EG-NEXT:     MOV T3.X, T0.Z,1929; EG-NEXT:     MOV T1.Z, T0.Y,1930; EG-NEXT:     ADD_INT * T2.W, KC0[2].Y, literal.x,1931; EG-NEXT:    16(2.242078e-44), 0(0.000000e+00)1932; EG-NEXT:     LSHR T0.X, PV.W, literal.x,1933; EG-NEXT:     MOV * T3.Z, T0.W,1934; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)1935;1936; GCN-HSA-LABEL: global_sextload_v4i32_to_v4i64:1937; GCN-HSA:       ; %bb.0:1938; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01939; GCN-HSA-NEXT:    v_mov_b32_e32 v11, 01940; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)1941; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v11, s[2:3]1942; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)1943; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v10, 31, v31944; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v8, 31, v21945; GCN-HSA-NEXT:    v_mov_b32_e32 v7, v21946; GCN-HSA-NEXT:    v_mov_b32_e32 v9, v31947; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v6, 31, v11948; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v4, 31, v01949; GCN-HSA-NEXT:    v_mov_b32_e32 v3, v01950; GCN-HSA-NEXT:    v_mov_b32_e32 v5, v11951; GCN-HSA-NEXT:    global_store_dwordx4 v11, v[7:10], s[0:1] offset:161952; GCN-HSA-NEXT:    global_store_dwordx4 v11, v[3:6], s[0:1]1953; GCN-HSA-NEXT:    s_endpgm1954  %ld = load <4 x i32>, ptr addrspace(1) %in1955  %ext = sext <4 x i32> %ld to <4 x i64>1956  store <4 x i64> %ext, ptr addrspace(1) %out1957  ret void1958}1959 1960define amdgpu_kernel void @global_zextload_v8i32_to_v8i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1961; SI-NOHSA-LABEL: global_zextload_v8i32_to_v8i64:1962; SI-NOHSA:       ; %bb.0:1963; SI-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x91964; SI-NOHSA-NEXT:    s_mov_b32 s3, 0xf0001965; SI-NOHSA-NEXT:    s_mov_b32 s2, -11966; SI-NOHSA-NEXT:    s_mov_b32 s10, s21967; SI-NOHSA-NEXT:    s_mov_b32 s11, s31968; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)1969; SI-NOHSA-NEXT:    s_mov_b32 s8, s61970; SI-NOHSA-NEXT:    s_mov_b32 s9, s71971; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:161972; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 01973; SI-NOHSA-NEXT:    v_mov_b32_e32 v9, 01974; SI-NOHSA-NEXT:    v_mov_b32_e32 v11, v91975; SI-NOHSA-NEXT:    s_mov_b32 s0, s41976; SI-NOHSA-NEXT:    s_mov_b32 s1, s51977; SI-NOHSA-NEXT:    s_waitcnt vmcnt(1)1978; SI-NOHSA-NEXT:    v_mov_b32_e32 v8, v21979; SI-NOHSA-NEXT:    v_mov_b32_e32 v10, v31980; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:481981; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)1982; SI-NOHSA-NEXT:    v_mov_b32_e32 v8, v01983; SI-NOHSA-NEXT:    v_mov_b32_e32 v10, v11984; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:321985; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2) expcnt(0)1986; SI-NOHSA-NEXT:    v_mov_b32_e32 v8, v61987; SI-NOHSA-NEXT:    v_mov_b32_e32 v10, v71988; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:161989; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)1990; SI-NOHSA-NEXT:    v_mov_b32_e32 v8, v41991; SI-NOHSA-NEXT:    v_mov_b32_e32 v10, v51992; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 01993; SI-NOHSA-NEXT:    s_endpgm1994;1995; GCNX3-HSA-LABEL: global_zextload_v8i32_to_v8i64:1996; GCNX3-HSA:       ; %bb.0:1997; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x01998; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s171999; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 82000; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s132001; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, 02002; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)2003; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s22004; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s32005; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 162006; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 02007; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]2008; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s32009; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s22010; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]2011; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 162012; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02013; GCNX3-HSA-NEXT:    v_mov_b32_e32 v15, s32014; GCNX3-HSA-NEXT:    v_mov_b32_e32 v14, s22015; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 482016; GCNX3-HSA-NEXT:    v_mov_b32_e32 v11, v92017; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, s12018; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02019; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, s02020; GCNX3-HSA-NEXT:    v_mov_b32_e32 v17, s32021; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 322022; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, s22023; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 02024; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(1)2025; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, v22026; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, v32027; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[14:15], v[8:11]2028; GCNX3-HSA-NEXT:    s_nop 02029; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, v02030; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, v12031; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]2032; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s02033; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)2034; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, v62035; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, v72036; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[16:17], v[8:11]2037; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s12038; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, v42039; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, v52040; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[0:1], v[8:11]2041; GCNX3-HSA-NEXT:    s_endpgm2042;2043; GCNX3-NOHSA-LABEL: global_zextload_v8i32_to_v8i64:2044; GCNX3-NOHSA:       ; %bb.0:2045; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x242046; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0002047; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -12048; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s62049; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s72050; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)2051; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s22052; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s32053; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:162054; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 02055; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v9, 02056; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v11, v92057; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s02058; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s12059; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(1)2060; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v8, v22061; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v10, v32062; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:482063; GCNX3-NOHSA-NEXT:    s_nop 02064; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v8, v02065; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v10, v12066; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:322067; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)2068; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v8, v62069; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v10, v72070; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:162071; GCNX3-NOHSA-NEXT:    s_nop 02072; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v8, v42073; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v10, v52074; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 02075; GCNX3-NOHSA-NEXT:    s_endpgm2076;2077; EG-LABEL: global_zextload_v8i32_to_v8i64:2078; EG:       ; %bb.0:2079; EG-NEXT:    ALU 0, @12, KC0[CB0:0-32], KC1[]2080; EG-NEXT:    TEX 1 @82081; EG-NEXT:    ALU 26, @13, KC0[CB0:0-32], KC1[]2082; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T2.XYZW, T7.X, 02083; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T3.XYZW, T6.X, 02084; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T1.X, 02085; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T0.X, 12086; EG-NEXT:    CF_END2087; EG-NEXT:    Fetch clause starting at 8:2088; EG-NEXT:     VTX_READ_128 T1.XYZW, T0.X, 16, #12089; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 0, #12090; EG-NEXT:    ALU clause starting at 12:2091; EG-NEXT:     MOV * T0.X, KC0[2].Z,2092; EG-NEXT:    ALU clause starting at 13:2093; EG-NEXT:     MOV T2.X, T1.Z,2094; EG-NEXT:     MOV T2.Y, 0.0,2095; EG-NEXT:     MOV * T3.X, T1.X,2096; EG-NEXT:     MOV * T3.Y, 0.0,2097; EG-NEXT:     MOV T4.X, T0.Z,2098; EG-NEXT:     MOV T4.Y, 0.0,2099; EG-NEXT:     MOV * T5.X, T0.X,2100; EG-NEXT:     MOV T5.Y, 0.0,2101; EG-NEXT:     MOV T2.Z, T1.W,2102; EG-NEXT:     MOV T2.W, 0.0,2103; EG-NEXT:     MOV * T3.Z, T1.Y,2104; EG-NEXT:     MOV * T3.W, 0.0,2105; EG-NEXT:     MOV T4.Z, T0.W,2106; EG-NEXT:     MOV T4.W, 0.0,2107; EG-NEXT:     MOV * T5.Z, T0.Y,2108; EG-NEXT:     MOV * T5.W, 0.0,2109; EG-NEXT:     LSHR T0.X, KC0[2].Y, literal.x,2110; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,2111; EG-NEXT:    2(2.802597e-45), 16(2.242078e-44)2112; EG-NEXT:     LSHR T1.X, PV.W, literal.x,2113; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,2114; EG-NEXT:    2(2.802597e-45), 32(4.484155e-44)2115; EG-NEXT:     LSHR T6.X, PV.W, literal.x,2116; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,2117; EG-NEXT:    2(2.802597e-45), 48(6.726233e-44)2118; EG-NEXT:     LSHR * T7.X, PV.W, literal.x,2119; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)2120;2121; GCN-HSA-LABEL: global_zextload_v8i32_to_v8i64:2122; GCN-HSA:       ; %bb.0:2123; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x02124; GCN-HSA-NEXT:    v_mov_b32_e32 v1, 02125; GCN-HSA-NEXT:    v_mov_b32_e32 v3, v12126; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)2127; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v1, s[2:3] offset:162128; GCN-HSA-NEXT:    global_load_dwordx4 v[8:11], v1, s[2:3]2129; GCN-HSA-NEXT:    s_waitcnt vmcnt(1)2130; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v62131; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v72132; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:482133; GCN-HSA-NEXT:    s_nop 02134; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v42135; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v52136; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:322137; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)2138; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v102139; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v112140; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:162141; GCN-HSA-NEXT:    s_nop 02142; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v82143; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v92144; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1]2145; GCN-HSA-NEXT:    s_endpgm2146  %ld = load <8 x i32>, ptr addrspace(1) %in2147  %ext = zext <8 x i32> %ld to <8 x i64>2148  store <8 x i64> %ext, ptr addrspace(1) %out2149  ret void2150}2151 2152define amdgpu_kernel void @global_sextload_v8i32_to_v8i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2153; SI-NOHSA-LABEL: global_sextload_v8i32_to_v8i64:2154; SI-NOHSA:       ; %bb.0:2155; SI-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x92156; SI-NOHSA-NEXT:    s_mov_b32 s3, 0xf0002157; SI-NOHSA-NEXT:    s_mov_b32 s2, -12158; SI-NOHSA-NEXT:    s_mov_b32 s10, s22159; SI-NOHSA-NEXT:    s_mov_b32 s11, s32160; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)2161; SI-NOHSA-NEXT:    s_mov_b32 s8, s62162; SI-NOHSA-NEXT:    s_mov_b32 s9, s72163; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 02164; SI-NOHSA-NEXT:    s_mov_b32 s0, s42165; SI-NOHSA-NEXT:    s_mov_b32 s1, s52166; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162167; SI-NOHSA-NEXT:    s_waitcnt vmcnt(1)2168; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v10, 31, v12169; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v8, 31, v02170; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v14, 31, v32171; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v12, 31, v22172; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)2173; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v18, 31, v52174; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v16, 31, v42175; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v22, 31, v72176; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v20, 31, v62177; SI-NOHSA-NEXT:    v_mov_b32_e32 v19, v62178; SI-NOHSA-NEXT:    v_mov_b32_e32 v21, v72179; SI-NOHSA-NEXT:    v_mov_b32_e32 v15, v42180; SI-NOHSA-NEXT:    v_mov_b32_e32 v17, v52181; SI-NOHSA-NEXT:    v_mov_b32_e32 v11, v22182; SI-NOHSA-NEXT:    v_mov_b32_e32 v13, v32183; SI-NOHSA-NEXT:    v_mov_b32_e32 v7, v02184; SI-NOHSA-NEXT:    v_mov_b32_e32 v9, v12185; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[19:22], off, s[0:3], 0 offset:482186; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[15:18], off, s[0:3], 0 offset:322187; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[11:14], off, s[0:3], 0 offset:162188; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[7:10], off, s[0:3], 02189; SI-NOHSA-NEXT:    s_endpgm2190;2191; GCNX3-HSA-LABEL: global_sextload_v8i32_to_v8i64:2192; GCNX3-HSA:       ; %bb.0:2193; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x02194; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s172195; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 82196; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s132197; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)2198; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s22199; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s32200; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 162201; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 02202; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s32203; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]2204; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s22205; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]2206; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 162207; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02208; GCNX3-HSA-NEXT:    v_mov_b32_e32 v19, s32209; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, s22210; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 482211; GCNX3-HSA-NEXT:    v_mov_b32_e32 v17, s12212; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02213; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, s02214; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 322215; GCNX3-HSA-NEXT:    v_mov_b32_e32 v21, s32216; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 02217; GCNX3-HSA-NEXT:    v_mov_b32_e32 v20, s22218; GCNX3-HSA-NEXT:    v_mov_b32_e32 v23, s12219; GCNX3-HSA-NEXT:    v_mov_b32_e32 v22, s02220; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(1)2221; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v12222; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v02223; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v15, 31, v32224; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v13, 31, v22225; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, v22226; GCNX3-HSA-NEXT:    v_mov_b32_e32 v14, v32227; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, v02228; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, v12229; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[18:19], v[12:15]2230; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[16:17], v[8:11]2231; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(2)2232; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v52233; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v72234; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v62235; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, v62236; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, v72237; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v42238; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v42239; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v52240; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[20:21], v[8:11]2241; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[22:23], v[0:3]2242; GCNX3-HSA-NEXT:    s_endpgm2243;2244; GCNX3-NOHSA-LABEL: global_sextload_v8i32_to_v8i64:2245; GCNX3-NOHSA:       ; %bb.0:2246; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x242247; GCNX3-NOHSA-NEXT:    s_mov_b32 s3, 0xf0002248; GCNX3-NOHSA-NEXT:    s_mov_b32 s2, -12249; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s22250; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s32251; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)2252; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s62253; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s72254; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 02255; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162256; GCNX3-NOHSA-NEXT:    s_mov_b32 s0, s42257; GCNX3-NOHSA-NEXT:    s_mov_b32 s1, s52258; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(1)2259; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v10, 31, v12260; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)2261; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v22, 31, v72262; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v20, 31, v62263; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v19, v62264; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v21, v72265; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v8, 31, v02266; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v14, 31, v32267; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v12, 31, v22268; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v18, 31, v52269; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v16, 31, v42270; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v15, v42271; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v17, v52272; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v11, v22273; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v13, v32274; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v7, v02275; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v9, v12276; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[19:22], off, s[0:3], 0 offset:482277; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[15:18], off, s[0:3], 0 offset:322278; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[11:14], off, s[0:3], 0 offset:162279; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[7:10], off, s[0:3], 02280; GCNX3-NOHSA-NEXT:    s_endpgm2281;2282; EG-LABEL: global_sextload_v8i32_to_v8i64:2283; EG:       ; %bb.0:2284; EG-NEXT:    ALU 0, @12, KC0[CB0:0-32], KC1[]2285; EG-NEXT:    TEX 1 @82286; EG-NEXT:    ALU 31, @13, KC0[CB0:0-32], KC1[]2287; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T0.X, 02288; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T5.X, 02289; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T3.X, 02290; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T2.X, 12291; EG-NEXT:    CF_END2292; EG-NEXT:    Fetch clause starting at 8:2293; EG-NEXT:     VTX_READ_128 T1.XYZW, T0.X, 16, #12294; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 0, #12295; EG-NEXT:    ALU clause starting at 12:2296; EG-NEXT:     MOV * T0.X, KC0[2].Z,2297; EG-NEXT:    ALU clause starting at 13:2298; EG-NEXT:     LSHR T2.X, KC0[2].Y, literal.x,2299; EG-NEXT:     ADD_INT * T2.W, KC0[2].Y, literal.y,2300; EG-NEXT:    2(2.802597e-45), 16(2.242078e-44)2301; EG-NEXT:     LSHR T3.X, PV.W, literal.x,2302; EG-NEXT:     ADD_INT T2.W, KC0[2].Y, literal.y,2303; EG-NEXT:     ASHR * T4.W, T0.Y, literal.z,2304; EG-NEXT:    2(2.802597e-45), 32(4.484155e-44)2305; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2306; EG-NEXT:     LSHR T5.X, PV.W, literal.x,2307; EG-NEXT:     ASHR T4.Y, T0.X, literal.y,2308; EG-NEXT:     ASHR T6.W, T0.W, literal.y,2309; EG-NEXT:     MOV * T4.X, T0.X,2310; EG-NEXT:    2(2.802597e-45), 31(4.344025e-44)2311; EG-NEXT:     ASHR T6.Y, T0.Z, literal.x,2312; EG-NEXT:     ASHR * T7.W, T1.Y, literal.x,2313; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2314; EG-NEXT:     MOV T6.X, T0.Z,2315; EG-NEXT:     ASHR T7.Y, T1.X, literal.x,2316; EG-NEXT:     MOV T4.Z, T0.Y,2317; EG-NEXT:     ASHR T8.W, T1.W, literal.x,2318; EG-NEXT:     MOV * T7.X, T1.X,2319; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2320; EG-NEXT:     ASHR T8.Y, T1.Z, literal.x,2321; EG-NEXT:     MOV * T6.Z, T0.W,2322; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2323; EG-NEXT:     MOV T8.X, T1.Z,2324; EG-NEXT:     MOV T7.Z, T1.Y,2325; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,2326; EG-NEXT:    48(6.726233e-44), 0(0.000000e+00)2327; EG-NEXT:     LSHR T0.X, PV.W, literal.x,2328; EG-NEXT:     MOV * T8.Z, T1.W,2329; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)2330;2331; GCN-HSA-LABEL: global_sextload_v8i32_to_v8i64:2332; GCN-HSA:       ; %bb.0:2333; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x02334; GCN-HSA-NEXT:    v_mov_b32_e32 v23, 02335; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)2336; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v23, s[2:3]2337; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v23, s[2:3] offset:162338; GCN-HSA-NEXT:    s_waitcnt vmcnt(1)2339; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v10, 31, v12340; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)2341; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v22, 31, v72342; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v20, 31, v62343; GCN-HSA-NEXT:    v_mov_b32_e32 v19, v62344; GCN-HSA-NEXT:    v_mov_b32_e32 v21, v72345; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v8, 31, v02346; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v14, 31, v32347; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v12, 31, v22348; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v18, 31, v52349; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v16, 31, v42350; GCN-HSA-NEXT:    v_mov_b32_e32 v15, v42351; GCN-HSA-NEXT:    v_mov_b32_e32 v17, v52352; GCN-HSA-NEXT:    v_mov_b32_e32 v11, v22353; GCN-HSA-NEXT:    v_mov_b32_e32 v13, v32354; GCN-HSA-NEXT:    v_mov_b32_e32 v7, v02355; GCN-HSA-NEXT:    v_mov_b32_e32 v9, v12356; GCN-HSA-NEXT:    global_store_dwordx4 v23, v[19:22], s[0:1] offset:482357; GCN-HSA-NEXT:    global_store_dwordx4 v23, v[15:18], s[0:1] offset:322358; GCN-HSA-NEXT:    global_store_dwordx4 v23, v[11:14], s[0:1] offset:162359; GCN-HSA-NEXT:    global_store_dwordx4 v23, v[7:10], s[0:1]2360; GCN-HSA-NEXT:    s_endpgm2361  %ld = load <8 x i32>, ptr addrspace(1) %in2362  %ext = sext <8 x i32> %ld to <8 x i64>2363  store <8 x i64> %ext, ptr addrspace(1) %out2364  ret void2365}2366 2367define amdgpu_kernel void @global_sextload_v16i32_to_v16i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2368; SI-NOHSA-LABEL: global_sextload_v16i32_to_v16i64:2369; SI-NOHSA:       ; %bb.0:2370; SI-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x92371; SI-NOHSA-NEXT:    s_mov_b32 s3, 0xf0002372; SI-NOHSA-NEXT:    s_mov_b32 s2, -12373; SI-NOHSA-NEXT:    s_mov_b32 s10, s22374; SI-NOHSA-NEXT:    s_mov_b32 s11, s32375; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)2376; SI-NOHSA-NEXT:    s_mov_b32 s8, s62377; SI-NOHSA-NEXT:    s_mov_b32 s9, s72378; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:482379; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:322380; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:162381; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 02382; SI-NOHSA-NEXT:    s_waitcnt vmcnt(3)2383; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v19, 31, v32384; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v17, 31, v22385; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v23, 31, v12386; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v21, 31, v02387; SI-NOHSA-NEXT:    v_mov_b32_e32 v20, v02388; SI-NOHSA-NEXT:    v_mov_b32_e32 v22, v12389; SI-NOHSA-NEXT:    v_mov_b32_e32 v16, v22390; SI-NOHSA-NEXT:    v_mov_b32_e32 v18, v32391; SI-NOHSA-NEXT:    s_waitcnt vmcnt(2)2392; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v72393; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v62394; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v27, 31, v52395; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v25, 31, v42396; SI-NOHSA-NEXT:    v_mov_b32_e32 v24, v42397; SI-NOHSA-NEXT:    v_mov_b32_e32 v26, v52398; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v62399; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v72400; SI-NOHSA-NEXT:    s_waitcnt vmcnt(1)2401; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v7, 31, v112402; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v5, 31, v102403; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v31, 31, v92404; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v29, 31, v82405; SI-NOHSA-NEXT:    v_mov_b32_e32 v28, v82406; SI-NOHSA-NEXT:    v_mov_b32_e32 v30, v92407; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v102408; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v112409; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)2410; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v152411; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v142412; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v35, 31, v132413; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v33, 31, v122414; SI-NOHSA-NEXT:    v_mov_b32_e32 v32, v122415; SI-NOHSA-NEXT:    v_mov_b32_e32 v34, v132416; SI-NOHSA-NEXT:    v_mov_b32_e32 v8, v142417; SI-NOHSA-NEXT:    v_mov_b32_e32 v10, v152418; SI-NOHSA-NEXT:    s_mov_b32 s0, s42419; SI-NOHSA-NEXT:    s_mov_b32 s1, s52420; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:962421; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:1122422; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:642423; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:802424; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:322425; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:482426; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[32:35], off, s[0:3], 02427; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:162428; SI-NOHSA-NEXT:    s_endpgm2429;2430; GCNX3-HSA-LABEL: global_sextload_v16i32_to_v16i64:2431; GCNX3-HSA:       ; %bb.0:2432; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x02433; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s172434; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s132435; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 82436; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)2437; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s22438; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s32439; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[8:11], v[0:1]2440; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 482441; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 02442; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s42443; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s52444; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 322445; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[12:15], v[0:1]2446; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 02447; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s42448; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s52449; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 162450; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[0:1]2451; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 02452; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s22453; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s32454; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]2455; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 162456; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02457; GCNX3-HSA-NEXT:    v_mov_b32_e32 v23, s32458; GCNX3-HSA-NEXT:    v_mov_b32_e32 v22, s22459; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x602460; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02461; GCNX3-HSA-NEXT:    v_mov_b32_e32 v25, s32462; GCNX3-HSA-NEXT:    v_mov_b32_e32 v24, s22463; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x702464; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02465; GCNX3-HSA-NEXT:    v_mov_b32_e32 v27, s32466; GCNX3-HSA-NEXT:    v_mov_b32_e32 v21, s12467; GCNX3-HSA-NEXT:    v_mov_b32_e32 v26, s22468; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 642469; GCNX3-HSA-NEXT:    v_mov_b32_e32 v20, s02470; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02471; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(3)2472; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v19, 31, v92473; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v17, 31, v82474; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v82475; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v92476; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[20:21], v[16:19]2477; GCNX3-HSA-NEXT:    v_mov_b32_e32 v21, s32478; GCNX3-HSA-NEXT:    v_mov_b32_e32 v20, s22479; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x502480; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02481; GCNX3-HSA-NEXT:    v_mov_b32_e32 v29, s32482; GCNX3-HSA-NEXT:    v_mov_b32_e32 v28, s22483; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 322484; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v19, 31, v112485; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v17, 31, v102486; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v102487; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v112488; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02489; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[22:23], v[16:19]2490; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(4)2491; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v152492; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v142493; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v19, 31, v132494; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v17, 31, v122495; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v122496; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v132497; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, v142498; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, v152499; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 482500; GCNX3-HSA-NEXT:    v_mov_b32_e32 v23, s32501; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 02502; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[24:25], v[16:19]2503; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[26:27], v[8:11]2504; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(5)2505; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v15, 31, v52506; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v72507; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v62508; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v13, 31, v42509; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, v42510; GCNX3-HSA-NEXT:    v_mov_b32_e32 v14, v52511; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, v62512; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, v72513; GCNX3-HSA-NEXT:    v_mov_b32_e32 v22, s22514; GCNX3-HSA-NEXT:    v_mov_b32_e32 v31, s12515; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[20:21], v[12:15]2516; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[28:29], v[8:11]2517; GCNX3-HSA-NEXT:    v_mov_b32_e32 v30, s02518; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(6)2519; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v12520; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v02521; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, v02522; GCNX3-HSA-NEXT:    v_mov_b32_e32 v10, v12523; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v7, 31, v32524; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v5, 31, v22525; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, v22526; GCNX3-HSA-NEXT:    v_mov_b32_e32 v6, v32527; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[22:23], v[8:11]2528; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[30:31], v[4:7]2529; GCNX3-HSA-NEXT:    s_endpgm2530;2531; GCNX3-NOHSA-LABEL: global_sextload_v16i32_to_v16i64:2532; GCNX3-NOHSA:       ; %bb.0:2533; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x242534; GCNX3-NOHSA-NEXT:    s_mov_b32 s3, 0xf0002535; GCNX3-NOHSA-NEXT:    s_mov_b32 s2, -12536; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s22537; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s32538; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)2539; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s62540; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s72541; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:322542; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:482543; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:162544; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 02545; GCNX3-NOHSA-NEXT:    s_mov_b32 s0, s42546; GCNX3-NOHSA-NEXT:    s_mov_b32 s1, s52547; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(3)2548; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v19, 31, v32549; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)2550; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v27, 31, v52551; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v25, 31, v42552; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v24, v42553; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v26, v52554; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v17, 31, v22555; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v23, 31, v72556; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v21, 31, v62557; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v20, v62558; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v22, v72559; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v7, 31, v12560; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v5, 31, v02561; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v4, v02562; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v6, v12563; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v16, v22564; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v18, v32565; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(1)2566; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v112567; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v102568; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v31, 31, v92569; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v29, 31, v82570; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v82571; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v92572; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v0, v102573; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v2, v112574; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(0)2575; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v152576; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v142577; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v35, 31, v132578; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v33, 31, v122579; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v32, v122580; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v34, v132581; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v8, v142582; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v10, v152583; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:962584; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:1122585; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:642586; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:802587; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:322588; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:482589; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[32:35], off, s[0:3], 02590; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:162591; GCNX3-NOHSA-NEXT:    s_endpgm2592;2593; EG-LABEL: global_sextload_v16i32_to_v16i64:2594; EG:       ; %bb.0:2595; EG-NEXT:    ALU 0, @20, KC0[CB0:0-32], KC1[]2596; EG-NEXT:    TEX 3 @122597; EG-NEXT:    ALU 64, @21, KC0[CB0:0-32], KC1[]2598; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T16.XYZW, T1.X, 02599; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T3.XYZW, T11.X, 02600; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T9.X, 02601; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T8.X, 02602; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T7.X, 02603; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T6.X, 02604; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T5.X, 02605; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T4.X, 12606; EG-NEXT:    CF_END2607; EG-NEXT:    Fetch clause starting at 12:2608; EG-NEXT:     VTX_READ_128 T1.XYZW, T0.X, 48, #12609; EG-NEXT:     VTX_READ_128 T2.XYZW, T0.X, 32, #12610; EG-NEXT:     VTX_READ_128 T3.XYZW, T0.X, 16, #12611; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 0, #12612; EG-NEXT:    ALU clause starting at 20:2613; EG-NEXT:     MOV * T0.X, KC0[2].Z,2614; EG-NEXT:    ALU clause starting at 21:2615; EG-NEXT:     ADD_INT * T4.W, KC0[2].Y, literal.x,2616; EG-NEXT:    16(2.242078e-44), 0(0.000000e+00)2617; EG-NEXT:     LSHR T4.X, PV.W, literal.x,2618; EG-NEXT:     LSHR * T5.X, KC0[2].Y, literal.x,2619; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)2620; EG-NEXT:     ADD_INT * T4.W, KC0[2].Y, literal.x,2621; EG-NEXT:    48(6.726233e-44), 0(0.000000e+00)2622; EG-NEXT:     LSHR T6.X, PV.W, literal.x,2623; EG-NEXT:     ADD_INT * T4.W, KC0[2].Y, literal.y,2624; EG-NEXT:    2(2.802597e-45), 32(4.484155e-44)2625; EG-NEXT:     LSHR T7.X, PV.W, literal.x,2626; EG-NEXT:     ADD_INT * T4.W, KC0[2].Y, literal.y,2627; EG-NEXT:    2(2.802597e-45), 80(1.121039e-43)2628; EG-NEXT:     LSHR T8.X, PV.W, literal.x,2629; EG-NEXT:     ADD_INT * T4.W, KC0[2].Y, literal.y,2630; EG-NEXT:    2(2.802597e-45), 64(8.968310e-44)2631; EG-NEXT:     LSHR T9.X, PV.W, literal.x,2632; EG-NEXT:     ADD_INT T4.W, KC0[2].Y, literal.y,2633; EG-NEXT:     ASHR * T10.W, T0.W, literal.z,2634; EG-NEXT:    2(2.802597e-45), 112(1.569454e-43)2635; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2636; EG-NEXT:     LSHR T11.X, PV.W, literal.x,2637; EG-NEXT:     ASHR T10.Y, T0.Z, literal.y,2638; EG-NEXT:     ASHR T12.W, T0.Y, literal.y,2639; EG-NEXT:     MOV * T10.X, T0.Z,2640; EG-NEXT:    2(2.802597e-45), 31(4.344025e-44)2641; EG-NEXT:     ASHR T12.Y, T0.X, literal.x,2642; EG-NEXT:     ASHR * T13.W, T3.W, literal.x,2643; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2644; EG-NEXT:     MOV T12.X, T0.X,2645; EG-NEXT:     ASHR T13.Y, T3.Z, literal.x,2646; EG-NEXT:     MOV T10.Z, T0.W,2647; EG-NEXT:     ASHR T14.W, T3.Y, literal.x,2648; EG-NEXT:     MOV * T13.X, T3.Z,2649; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2650; EG-NEXT:     ASHR T14.Y, T3.X, literal.x,2651; EG-NEXT:     MOV T12.Z, T0.Y,2652; EG-NEXT:     ASHR * T0.W, T2.W, literal.x,2653; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2654; EG-NEXT:     MOV T14.X, T3.X,2655; EG-NEXT:     ASHR T0.Y, T2.Z, literal.x,2656; EG-NEXT:     MOV T13.Z, T3.W,2657; EG-NEXT:     ASHR T15.W, T2.Y, literal.x,2658; EG-NEXT:     MOV * T0.X, T2.Z,2659; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2660; EG-NEXT:     ASHR T15.Y, T2.X, literal.x,2661; EG-NEXT:     MOV T14.Z, T3.Y,2662; EG-NEXT:     ASHR * T3.W, T1.W, literal.x,2663; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2664; EG-NEXT:     MOV T15.X, T2.X,2665; EG-NEXT:     ASHR T3.Y, T1.Z, literal.x,2666; EG-NEXT:     MOV T0.Z, T2.W,2667; EG-NEXT:     ASHR T16.W, T1.Y, literal.x,2668; EG-NEXT:     MOV * T3.X, T1.Z,2669; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2670; EG-NEXT:     ASHR T16.Y, T1.X, literal.x,2671; EG-NEXT:     MOV * T15.Z, T2.Y,2672; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)2673; EG-NEXT:     MOV T16.X, T1.X,2674; EG-NEXT:     MOV T3.Z, T1.W,2675; EG-NEXT:     ADD_INT * T1.W, KC0[2].Y, literal.x,2676; EG-NEXT:    96(1.345247e-43), 0(0.000000e+00)2677; EG-NEXT:     LSHR T1.X, PV.W, literal.x,2678; EG-NEXT:     MOV * T16.Z, T1.Y,2679; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)2680;2681; GCN-HSA-LABEL: global_sextload_v16i32_to_v16i64:2682; GCN-HSA:       ; %bb.0:2683; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x02684; GCN-HSA-NEXT:    v_mov_b32_e32 v36, 02685; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)2686; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v36, s[2:3] offset:322687; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v36, s[2:3] offset:482688; GCN-HSA-NEXT:    global_load_dwordx4 v[8:11], v36, s[2:3] offset:162689; GCN-HSA-NEXT:    global_load_dwordx4 v[12:15], v36, s[2:3]2690; GCN-HSA-NEXT:    s_waitcnt vmcnt(3)2691; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v19, 31, v32692; GCN-HSA-NEXT:    s_waitcnt vmcnt(2)2693; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v27, 31, v52694; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v25, 31, v42695; GCN-HSA-NEXT:    v_mov_b32_e32 v24, v42696; GCN-HSA-NEXT:    v_mov_b32_e32 v26, v52697; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v17, 31, v22698; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v23, 31, v72699; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v21, 31, v62700; GCN-HSA-NEXT:    v_mov_b32_e32 v20, v62701; GCN-HSA-NEXT:    v_mov_b32_e32 v22, v72702; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v7, 31, v12703; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v5, 31, v02704; GCN-HSA-NEXT:    v_mov_b32_e32 v4, v02705; GCN-HSA-NEXT:    v_mov_b32_e32 v6, v12706; GCN-HSA-NEXT:    v_mov_b32_e32 v16, v22707; GCN-HSA-NEXT:    v_mov_b32_e32 v18, v32708; GCN-HSA-NEXT:    s_waitcnt vmcnt(1)2709; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v112710; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v102711; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v31, 31, v92712; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v29, 31, v82713; GCN-HSA-NEXT:    v_mov_b32_e32 v28, v82714; GCN-HSA-NEXT:    v_mov_b32_e32 v30, v92715; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v102716; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v112717; GCN-HSA-NEXT:    s_waitcnt vmcnt(0)2718; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v152719; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v142720; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v35, 31, v132721; GCN-HSA-NEXT:    v_ashrrev_i32_e32 v33, 31, v122722; GCN-HSA-NEXT:    v_mov_b32_e32 v32, v122723; GCN-HSA-NEXT:    v_mov_b32_e32 v34, v132724; GCN-HSA-NEXT:    v_mov_b32_e32 v8, v142725; GCN-HSA-NEXT:    v_mov_b32_e32 v10, v152726; GCN-HSA-NEXT:    global_store_dwordx4 v36, v[24:27], s[0:1] offset:962727; GCN-HSA-NEXT:    global_store_dwordx4 v36, v[20:23], s[0:1] offset:1122728; GCN-HSA-NEXT:    global_store_dwordx4 v36, v[4:7], s[0:1] offset:642729; GCN-HSA-NEXT:    global_store_dwordx4 v36, v[16:19], s[0:1] offset:802730; GCN-HSA-NEXT:    global_store_dwordx4 v36, v[28:31], s[0:1] offset:322731; GCN-HSA-NEXT:    global_store_dwordx4 v36, v[0:3], s[0:1] offset:482732; GCN-HSA-NEXT:    global_store_dwordx4 v36, v[32:35], s[0:1]2733; GCN-HSA-NEXT:    global_store_dwordx4 v36, v[8:11], s[0:1] offset:162734; GCN-HSA-NEXT:    s_endpgm2735  %ld = load <16 x i32>, ptr addrspace(1) %in2736  %ext = sext <16 x i32> %ld to <16 x i64>2737  store <16 x i64> %ext, ptr addrspace(1) %out2738  ret void2739}2740 2741define amdgpu_kernel void @global_zextload_v16i32_to_v16i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2742; SI-NOHSA-LABEL: global_zextload_v16i32_to_v16i64:2743; SI-NOHSA:       ; %bb.0:2744; SI-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x92745; SI-NOHSA-NEXT:    s_mov_b32 s3, 0xf0002746; SI-NOHSA-NEXT:    s_mov_b32 s2, -12747; SI-NOHSA-NEXT:    s_mov_b32 s10, s22748; SI-NOHSA-NEXT:    s_mov_b32 s11, s32749; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)2750; SI-NOHSA-NEXT:    s_mov_b32 s8, s62751; SI-NOHSA-NEXT:    s_mov_b32 s9, s72752; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:482753; SI-NOHSA-NEXT:    v_mov_b32_e32 v5, 02754; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:322755; SI-NOHSA-NEXT:    v_mov_b32_e32 v7, v52756; SI-NOHSA-NEXT:    s_mov_b32 s0, s42757; SI-NOHSA-NEXT:    s_mov_b32 s1, s52758; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 02759; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[16:19], off, s[8:11], 0 offset:162760; SI-NOHSA-NEXT:    s_waitcnt vmcnt(3)2761; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v02762; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v12763; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:962764; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)2765; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v22766; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v32767; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1122768; SI-NOHSA-NEXT:    s_waitcnt vmcnt(4) expcnt(0)2769; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v82770; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v92771; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:642772; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)2773; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v102774; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v112775; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:802776; SI-NOHSA-NEXT:    s_waitcnt vmcnt(4) expcnt(0)2777; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v162778; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v172779; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:322780; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)2781; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v182782; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v192783; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:482784; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)2785; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v122786; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v132787; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 02788; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)2789; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v142790; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v152791; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:162792; SI-NOHSA-NEXT:    s_endpgm2793;2794; GCNX3-HSA-LABEL: global_zextload_v16i32_to_v16i64:2795; GCNX3-HSA:       ; %bb.0:2796; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x02797; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s172798; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 82799; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s132800; GCNX3-HSA-NEXT:    v_mov_b32_e32 v17, 02801; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)2802; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 162803; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 02804; GCNX3-HSA-NEXT:    s_add_u32 s6, s2, 322805; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s22806; GCNX3-HSA-NEXT:    s_addc_u32 s7, s3, 02807; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s32808; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 482809; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 02810; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]2811; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s32812; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s22813; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]2814; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s72815; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s62816; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[8:11], v[8:9]2817; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, s52818; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, s42819; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[12:15], v[12:13]2820; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 162821; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02822; GCNX3-HSA-NEXT:    v_mov_b32_e32 v23, s32823; GCNX3-HSA-NEXT:    v_mov_b32_e32 v22, s22824; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x602825; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02826; GCNX3-HSA-NEXT:    v_mov_b32_e32 v25, s32827; GCNX3-HSA-NEXT:    v_mov_b32_e32 v24, s22828; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x702829; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02830; GCNX3-HSA-NEXT:    v_mov_b32_e32 v27, s32831; GCNX3-HSA-NEXT:    v_mov_b32_e32 v21, s12832; GCNX3-HSA-NEXT:    v_mov_b32_e32 v26, s22833; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 642834; GCNX3-HSA-NEXT:    v_mov_b32_e32 v19, v172835; GCNX3-HSA-NEXT:    v_mov_b32_e32 v20, s02836; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02837; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(3)2838; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v02839; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v12840; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s22841; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[20:21], v[16:19]2842; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s32843; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x502844; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v22845; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v32846; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02847; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, s22848; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[22:23], v[16:19]2849; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, s32850; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(4)2851; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v42852; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v52853; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 322854; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[24:25], v[16:19]2855; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 02856; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v62857; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v72858; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[26:27], v[16:19]2859; GCNX3-HSA-NEXT:    v_mov_b32_e32 v21, s32860; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(5)2861; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v82862; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v92863; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 482864; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[0:1], v[16:19]2865; GCNX3-HSA-NEXT:    v_mov_b32_e32 v20, s22866; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v102867; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v112868; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 02869; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[2:3], v[16:19]2870; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s02871; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(6)2872; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v122873; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v132874; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[20:21], v[16:19]2875; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s12876; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, v142877; GCNX3-HSA-NEXT:    v_mov_b32_e32 v18, v152878; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[0:1], v[16:19]2879; GCNX3-HSA-NEXT:    s_endpgm2880;2881; GCNX3-NOHSA-LABEL: global_zextload_v16i32_to_v16i64:2882; GCNX3-NOHSA:       ; %bb.0:2883; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x242884; GCNX3-NOHSA-NEXT:    s_mov_b32 s3, 0xf0002885; GCNX3-NOHSA-NEXT:    s_mov_b32 s2, -12886; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s22887; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s32888; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)2889; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s62890; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s72891; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:482892; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:322893; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:162894; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 02895; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v17, 02896; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v19, v172897; GCNX3-NOHSA-NEXT:    s_mov_b32 s0, s42898; GCNX3-NOHSA-NEXT:    s_mov_b32 s1, s52899; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(3)2900; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v16, v02901; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v18, v12902; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:962903; GCNX3-NOHSA-NEXT:    s_nop 02904; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v16, v22905; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v18, v32906; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:1122907; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(4)2908; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v16, v42909; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v18, v52910; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:642911; GCNX3-NOHSA-NEXT:    s_nop 02912; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v16, v62913; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v18, v72914; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:802915; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(5)2916; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v16, v82917; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v18, v92918; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:322919; GCNX3-NOHSA-NEXT:    s_nop 02920; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v16, v102921; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v18, v112922; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:482923; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(6)2924; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v16, v122925; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v18, v132926; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 02927; GCNX3-NOHSA-NEXT:    s_nop 02928; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v16, v142929; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v18, v152930; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:162931; GCNX3-NOHSA-NEXT:    s_endpgm2932;2933; EG-LABEL: global_zextload_v16i32_to_v16i64:2934; EG:       ; %bb.0:2935; EG-NEXT:    ALU 0, @20, KC0[CB0:0-32], KC1[]2936; EG-NEXT:    TEX 3 @122937; EG-NEXT:    ALU 55, @21, KC0[CB0:0-32], KC1[]2938; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T15.X, 02939; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T14.X, 02940; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T13.X, 02941; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T12.X, 02942; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T3.X, 02943; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T2.X, 02944; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T1.X, 02945; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T0.X, 12946; EG-NEXT:    CF_END2947; EG-NEXT:    Fetch clause starting at 12:2948; EG-NEXT:     VTX_READ_128 T1.XYZW, T0.X, 48, #12949; EG-NEXT:     VTX_READ_128 T2.XYZW, T0.X, 0, #12950; EG-NEXT:     VTX_READ_128 T3.XYZW, T0.X, 16, #12951; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 32, #12952; EG-NEXT:    ALU clause starting at 20:2953; EG-NEXT:     MOV * T0.X, KC0[2].Z,2954; EG-NEXT:    ALU clause starting at 21:2955; EG-NEXT:     MOV T4.X, T1.X,2956; EG-NEXT:     MOV T4.Y, 0.0,2957; EG-NEXT:     MOV * T5.X, T1.Z,2958; EG-NEXT:     MOV * T5.Y, 0.0,2959; EG-NEXT:     MOV T6.X, T0.X,2960; EG-NEXT:     MOV T6.Y, 0.0,2961; EG-NEXT:     MOV * T7.X, T0.Z,2962; EG-NEXT:     MOV * T7.Y, 0.0,2963; EG-NEXT:     MOV T8.X, T3.X,2964; EG-NEXT:     MOV T8.Y, 0.0,2965; EG-NEXT:     MOV * T9.X, T3.Z,2966; EG-NEXT:     MOV * T9.Y, 0.0,2967; EG-NEXT:     MOV T10.X, T2.X,2968; EG-NEXT:     MOV T10.Y, 0.0,2969; EG-NEXT:     MOV * T11.X, T2.Z,2970; EG-NEXT:     MOV T11.Y, 0.0,2971; EG-NEXT:     MOV T4.Z, T1.Y,2972; EG-NEXT:     MOV T4.W, 0.0,2973; EG-NEXT:     MOV * T5.Z, T1.W,2974; EG-NEXT:     MOV * T5.W, 0.0,2975; EG-NEXT:     MOV T6.Z, T0.Y,2976; EG-NEXT:     MOV T6.W, 0.0,2977; EG-NEXT:     MOV * T7.Z, T0.W,2978; EG-NEXT:     MOV * T7.W, 0.0,2979; EG-NEXT:     MOV T8.Z, T3.Y,2980; EG-NEXT:     MOV T8.W, 0.0,2981; EG-NEXT:     MOV * T9.Z, T3.W,2982; EG-NEXT:     MOV * T9.W, 0.0,2983; EG-NEXT:     MOV T10.Z, T2.Y,2984; EG-NEXT:     MOV T10.W, 0.0,2985; EG-NEXT:     MOV * T11.Z, T2.W,2986; EG-NEXT:     MOV T11.W, 0.0,2987; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,2988; EG-NEXT:    16(2.242078e-44), 0(0.000000e+00)2989; EG-NEXT:     LSHR T0.X, PS, literal.x,2990; EG-NEXT:     LSHR * T1.X, KC0[2].Y, literal.x,2991; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)2992; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,2993; EG-NEXT:    48(6.726233e-44), 0(0.000000e+00)2994; EG-NEXT:     LSHR T2.X, PV.W, literal.x,2995; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,2996; EG-NEXT:    2(2.802597e-45), 32(4.484155e-44)2997; EG-NEXT:     LSHR T3.X, PV.W, literal.x,2998; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,2999; EG-NEXT:    2(2.802597e-45), 80(1.121039e-43)3000; EG-NEXT:     LSHR T12.X, PV.W, literal.x,3001; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3002; EG-NEXT:    2(2.802597e-45), 64(8.968310e-44)3003; EG-NEXT:     LSHR T13.X, PV.W, literal.x,3004; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3005; EG-NEXT:    2(2.802597e-45), 112(1.569454e-43)3006; EG-NEXT:     LSHR T14.X, PV.W, literal.x,3007; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3008; EG-NEXT:    2(2.802597e-45), 96(1.345247e-43)3009; EG-NEXT:     LSHR * T15.X, PV.W, literal.x,3010; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)3011;3012; GCN-HSA-LABEL: global_zextload_v16i32_to_v16i64:3013; GCN-HSA:       ; %bb.0:3014; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x03015; GCN-HSA-NEXT:    v_mov_b32_e32 v1, 03016; GCN-HSA-NEXT:    v_mov_b32_e32 v3, v13017; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)3018; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v1, s[2:3] offset:483019; GCN-HSA-NEXT:    global_load_dwordx4 v[8:11], v1, s[2:3] offset:323020; GCN-HSA-NEXT:    global_load_dwordx4 v[12:15], v1, s[2:3] offset:163021; GCN-HSA-NEXT:    global_load_dwordx4 v[16:19], v1, s[2:3]3022; GCN-HSA-NEXT:    s_waitcnt vmcnt(3)3023; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v43024; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v53025; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:963026; GCN-HSA-NEXT:    s_nop 03027; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v63028; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v73029; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:1123030; GCN-HSA-NEXT:    s_waitcnt vmcnt(4)3031; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v83032; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v93033; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:643034; GCN-HSA-NEXT:    s_nop 03035; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v103036; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v113037; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:803038; GCN-HSA-NEXT:    s_waitcnt vmcnt(5)3039; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v123040; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v133041; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:323042; GCN-HSA-NEXT:    s_nop 03043; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v143044; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v153045; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:483046; GCN-HSA-NEXT:    s_waitcnt vmcnt(6)3047; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v163048; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v173049; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1]3050; GCN-HSA-NEXT:    s_nop 03051; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v183052; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v193053; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:163054; GCN-HSA-NEXT:    s_endpgm3055  %ld = load <16 x i32>, ptr addrspace(1) %in3056  %ext = zext <16 x i32> %ld to <16 x i64>3057  store <16 x i64> %ext, ptr addrspace(1) %out3058  ret void3059}3060 3061define amdgpu_kernel void @global_sextload_v32i32_to_v32i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {3062; SI-NOHSA-LABEL: global_sextload_v32i32_to_v32i64:3063; SI-NOHSA:       ; %bb.0:3064; SI-NOHSA-NEXT:    s_mov_b32 s12, SCRATCH_RSRC_DWORD03065; SI-NOHSA-NEXT:    s_mov_b32 s13, SCRATCH_RSRC_DWORD13066; SI-NOHSA-NEXT:    s_mov_b32 s14, -13067; SI-NOHSA-NEXT:    s_mov_b32 s15, 0xe8f0003068; SI-NOHSA-NEXT:    s_add_u32 s12, s12, s113069; SI-NOHSA-NEXT:    s_addc_u32 s13, s13, 03070; SI-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x93071; SI-NOHSA-NEXT:    s_mov_b32 s3, 0xf0003072; SI-NOHSA-NEXT:    s_mov_b32 s2, -13073; SI-NOHSA-NEXT:    s_mov_b32 s10, s23074; SI-NOHSA-NEXT:    s_mov_b32 s11, s33075; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)3076; SI-NOHSA-NEXT:    s_mov_b32 s8, s63077; SI-NOHSA-NEXT:    s_mov_b32 s9, s73078; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[28:31], off, s[8:11], 0 offset:963079; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:1123080; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:803081; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:643082; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[16:19], off, s[8:11], 0 offset:483083; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[20:23], off, s[8:11], 0 offset:323084; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[24:27], off, s[8:11], 0 offset:163085; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 03086; SI-NOHSA-NEXT:    s_waitcnt vmcnt(7)3087; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v47, 31, v313088; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v45, 31, v303089; SI-NOHSA-NEXT:    s_waitcnt vmcnt(6)3090; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v39, 31, v153091; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v37, 31, v143092; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v43, 31, v133093; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v41, 31, v123094; SI-NOHSA-NEXT:    v_mov_b32_e32 v40, v123095; SI-NOHSA-NEXT:    v_mov_b32_e32 v42, v133096; SI-NOHSA-NEXT:    v_mov_b32_e32 v36, v143097; SI-NOHSA-NEXT:    v_mov_b32_e32 v38, v153098; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v35, 31, v293099; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v33, 31, v283100; SI-NOHSA-NEXT:    v_mov_b32_e32 v32, v283101; SI-NOHSA-NEXT:    v_mov_b32_e32 v34, v293102; SI-NOHSA-NEXT:    v_mov_b32_e32 v44, v303103; SI-NOHSA-NEXT:    v_mov_b32_e32 v46, v313104; SI-NOHSA-NEXT:    buffer_store_dword v44, off, s[12:15], 0 ; 4-byte Folded Spill3105; SI-NOHSA-NEXT:    buffer_store_dword v45, off, s[12:15], 0 offset:4 ; 4-byte Folded Spill3106; SI-NOHSA-NEXT:    buffer_store_dword v46, off, s[12:15], 0 offset:8 ; 4-byte Folded Spill3107; SI-NOHSA-NEXT:    buffer_store_dword v47, off, s[12:15], 0 offset:12 ; 4-byte Folded Spill3108; SI-NOHSA-NEXT:    s_waitcnt vmcnt(9)3109; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v15, 31, v73110; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v13, 31, v63111; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3112; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v47, 31, v53113; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v45, 31, v43114; SI-NOHSA-NEXT:    v_mov_b32_e32 v44, v43115; SI-NOHSA-NEXT:    v_mov_b32_e32 v46, v53116; SI-NOHSA-NEXT:    v_mov_b32_e32 v12, v63117; SI-NOHSA-NEXT:    v_mov_b32_e32 v14, v73118; SI-NOHSA-NEXT:    s_waitcnt vmcnt(8)3119; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v7, 31, v33120; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v5, 31, v23121; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v51, 31, v13122; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v49, 31, v03123; SI-NOHSA-NEXT:    v_mov_b32_e32 v48, v03124; SI-NOHSA-NEXT:    v_mov_b32_e32 v50, v13125; SI-NOHSA-NEXT:    v_mov_b32_e32 v4, v23126; SI-NOHSA-NEXT:    v_mov_b32_e32 v6, v33127; SI-NOHSA-NEXT:    s_waitcnt vmcnt(7)3128; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v193129; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v183130; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v55, 31, v173131; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v53, 31, v163132; SI-NOHSA-NEXT:    v_mov_b32_e32 v52, v163133; SI-NOHSA-NEXT:    v_mov_b32_e32 v54, v173134; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v183135; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v193136; SI-NOHSA-NEXT:    s_waitcnt vmcnt(6)3137; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v19, 31, v233138; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v17, 31, v223139; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v59, 31, v213140; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v57, 31, v203141; SI-NOHSA-NEXT:    v_mov_b32_e32 v56, v203142; SI-NOHSA-NEXT:    v_mov_b32_e32 v58, v213143; SI-NOHSA-NEXT:    v_mov_b32_e32 v16, v223144; SI-NOHSA-NEXT:    v_mov_b32_e32 v18, v233145; SI-NOHSA-NEXT:    s_waitcnt vmcnt(5)3146; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v23, 31, v273147; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v21, 31, v263148; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v63, 31, v253149; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v61, 31, v243150; SI-NOHSA-NEXT:    v_mov_b32_e32 v60, v243151; SI-NOHSA-NEXT:    v_mov_b32_e32 v62, v253152; SI-NOHSA-NEXT:    v_mov_b32_e32 v20, v263153; SI-NOHSA-NEXT:    v_mov_b32_e32 v22, v273154; SI-NOHSA-NEXT:    s_waitcnt vmcnt(4)3155; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v27, 31, v113156; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v25, 31, v103157; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v31, 31, v93158; SI-NOHSA-NEXT:    v_ashrrev_i32_e32 v29, 31, v83159; SI-NOHSA-NEXT:    v_mov_b32_e32 v28, v83160; SI-NOHSA-NEXT:    v_mov_b32_e32 v30, v93161; SI-NOHSA-NEXT:    v_mov_b32_e32 v24, v103162; SI-NOHSA-NEXT:    v_mov_b32_e32 v26, v113163; SI-NOHSA-NEXT:    s_mov_b32 s0, s43164; SI-NOHSA-NEXT:    s_mov_b32 s1, s53165; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[40:43], off, s[0:3], 0 offset:2243166; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[36:39], off, s[0:3], 0 offset:2403167; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:1923168; SI-NOHSA-NEXT:    buffer_load_dword v8, off, s[12:15], 0 ; 4-byte Folded Reload3169; SI-NOHSA-NEXT:    buffer_load_dword v9, off, s[12:15], 0 offset:4 ; 4-byte Folded Reload3170; SI-NOHSA-NEXT:    buffer_load_dword v10, off, s[12:15], 0 offset:8 ; 4-byte Folded Reload3171; SI-NOHSA-NEXT:    buffer_load_dword v11, off, s[12:15], 0 offset:12 ; 4-byte Folded Reload3172; SI-NOHSA-NEXT:    s_waitcnt vmcnt(0)3173; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:2083174; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[44:47], off, s[0:3], 0 offset:1603175; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:1763176; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[48:51], off, s[0:3], 0 offset:1283177; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1443178; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[52:55], off, s[0:3], 0 offset:963179; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1123180; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[56:59], off, s[0:3], 0 offset:643181; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:803182; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[60:63], off, s[0:3], 0 offset:323183; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:483184; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 03185; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:163186; SI-NOHSA-NEXT:    s_endpgm3187;3188; GCNX3-HSA-LABEL: global_sextload_v32i32_to_v32i64:3189; GCNX3-HSA:       ; %bb.0:3190; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x03191; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s173192; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s133193; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 83194; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)3195; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s23196; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s33197; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[28:31], v[0:1]3198; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 0x703199; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 03200; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s43201; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s53202; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[24:27], v[0:1]3203; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 0x603204; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 03205; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s43206; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s53207; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 0x503208; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[20:23], v[0:1]3209; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 03210; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s43211; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s53212; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 643213; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[12:15], v[0:1]3214; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 03215; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s43216; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s53217; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[0:1]3218; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 483219; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 03220; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s53221; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s43222; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[16:19], v[8:9]3223; GCNX3-HSA-NEXT:    s_add_u32 s6, s2, 323224; GCNX3-HSA-NEXT:    s_addc_u32 s7, s3, 03225; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 163226; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 03227; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s23228; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s73229; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s33230; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s63231; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]3232; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[8:11], v[8:9]3233; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 163234; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03235; GCNX3-HSA-NEXT:    v_mov_b32_e32 v37, s13236; GCNX3-HSA-NEXT:    v_mov_b32_e32 v36, s03237; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(7)3238; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v35, 31, v293239; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v33, 31, v283240; GCNX3-HSA-NEXT:    v_mov_b32_e32 v32, v283241; GCNX3-HSA-NEXT:    v_mov_b32_e32 v34, v293242; GCNX3-HSA-NEXT:    v_mov_b32_e32 v29, s33243; GCNX3-HSA-NEXT:    v_mov_b32_e32 v28, s23244; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xe03245; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03246; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[36:37], v[32:35]3247; GCNX3-HSA-NEXT:    v_mov_b32_e32 v37, s33248; GCNX3-HSA-NEXT:    v_mov_b32_e32 v36, s23249; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xf03250; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v35, 31, v313251; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v33, 31, v303252; GCNX3-HSA-NEXT:    v_mov_b32_e32 v32, v303253; GCNX3-HSA-NEXT:    v_mov_b32_e32 v34, v313254; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03255; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[28:29], v[32:35]3256; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(8)3257; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v31, 31, v253258; GCNX3-HSA-NEXT:    v_mov_b32_e32 v33, s33259; GCNX3-HSA-NEXT:    v_mov_b32_e32 v32, s23260; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xc03261; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03262; GCNX3-HSA-NEXT:    v_mov_b32_e32 v35, s33263; GCNX3-HSA-NEXT:    v_mov_b32_e32 v34, s23264; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xd03265; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v29, 31, v243266; GCNX3-HSA-NEXT:    v_mov_b32_e32 v28, v243267; GCNX3-HSA-NEXT:    v_mov_b32_e32 v30, v253268; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03269; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[36:37], v[28:31]3270; GCNX3-HSA-NEXT:    v_mov_b32_e32 v37, s33271; GCNX3-HSA-NEXT:    v_mov_b32_e32 v36, s23272; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xa03273; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v31, 31, v273274; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v29, 31, v263275; GCNX3-HSA-NEXT:    v_mov_b32_e32 v28, v263276; GCNX3-HSA-NEXT:    v_mov_b32_e32 v30, v273277; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03278; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[32:33], v[28:31]3279; GCNX3-HSA-NEXT:    v_mov_b32_e32 v33, s33280; GCNX3-HSA-NEXT:    v_mov_b32_e32 v32, s23281; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xb03282; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03283; GCNX3-HSA-NEXT:    v_mov_b32_e32 v39, s33284; GCNX3-HSA-NEXT:    v_mov_b32_e32 v38, s23285; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x803286; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(9)3287; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v27, 31, v213288; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v25, 31, v203289; GCNX3-HSA-NEXT:    v_mov_b32_e32 v24, v203290; GCNX3-HSA-NEXT:    v_mov_b32_e32 v26, v213291; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03292; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v31, 31, v233293; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v29, 31, v223294; GCNX3-HSA-NEXT:    v_mov_b32_e32 v28, v223295; GCNX3-HSA-NEXT:    v_mov_b32_e32 v30, v233296; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[34:35], v[24:27]3297; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[36:37], v[28:31]3298; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(10)3299; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v23, 31, v153300; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v21, 31, v143301; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v27, 31, v133302; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v25, 31, v123303; GCNX3-HSA-NEXT:    v_mov_b32_e32 v24, v123304; GCNX3-HSA-NEXT:    v_mov_b32_e32 v26, v133305; GCNX3-HSA-NEXT:    v_mov_b32_e32 v20, v143306; GCNX3-HSA-NEXT:    v_mov_b32_e32 v22, v153307; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(9)3308; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v15, 31, v53309; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v13, 31, v43310; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, v43311; GCNX3-HSA-NEXT:    v_mov_b32_e32 v14, v53312; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s33313; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s23314; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x903315; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03316; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[4:5], v[12:15]3317; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s33318; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s23319; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x603320; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[32:33], v[24:27]3321; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[38:39], v[20:23]3322; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v26, 31, v73323; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v24, 31, v63324; GCNX3-HSA-NEXT:    v_mov_b32_e32 v23, v63325; GCNX3-HSA-NEXT:    v_mov_b32_e32 v25, v73326; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03327; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[4:5], v[23:26]3328; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(12)3329; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v5, 31, v163330; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, v163331; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, s33332; GCNX3-HSA-NEXT:    v_mov_b32_e32 v15, s23333; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x703334; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v7, 31, v173335; GCNX3-HSA-NEXT:    v_mov_b32_e32 v6, v173336; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03337; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[15:16], v[4:7]3338; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, s33339; GCNX3-HSA-NEXT:    v_mov_b32_e32 v15, s23340; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 643341; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v26, 31, v193342; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v24, 31, v183343; GCNX3-HSA-NEXT:    v_mov_b32_e32 v23, v183344; GCNX3-HSA-NEXT:    v_mov_b32_e32 v25, v193345; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03346; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[15:16], v[23:26]3347; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(12)3348; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v18, 31, v93349; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v16, 31, v83350; GCNX3-HSA-NEXT:    v_mov_b32_e32 v15, v83351; GCNX3-HSA-NEXT:    v_mov_b32_e32 v17, v93352; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s33353; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s23354; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x503355; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03356; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[8:9], v[15:18]3357; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s33358; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s23359; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 323360; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v14, 31, v13361; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v12, 31, v03362; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v7, 31, v113363; GCNX3-HSA-NEXT:    v_mov_b32_e32 v6, v113364; GCNX3-HSA-NEXT:    v_mov_b32_e32 v11, v03365; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, v13366; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 03367; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s23368; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s33369; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 483370; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[0:1], v[11:14]3371; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 03372; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s03373; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v22, 31, v33374; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v20, 31, v23375; GCNX3-HSA-NEXT:    v_ashrrev_i32_e32 v5, 31, v103376; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, v103377; GCNX3-HSA-NEXT:    v_mov_b32_e32 v19, v23378; GCNX3-HSA-NEXT:    v_mov_b32_e32 v21, v33379; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s13380; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]3381; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[0:1], v[19:22]3382; GCNX3-HSA-NEXT:    s_endpgm3383;3384; GCNX3-NOHSA-LABEL: global_sextload_v32i32_to_v32i64:3385; GCNX3-NOHSA:       ; %bb.0:3386; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x243387; GCNX3-NOHSA-NEXT:    s_mov_b32 s3, 0xf0003388; GCNX3-NOHSA-NEXT:    s_mov_b32 s2, -13389; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s23390; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s33391; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)3392; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s63393; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s73394; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:963395; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:1123396; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:803397; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:643398; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[16:19], off, s[8:11], 0 offset:483399; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[20:23], off, s[8:11], 0 offset:323400; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[24:27], off, s[8:11], 03401; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[28:31], off, s[8:11], 0 offset:163402; GCNX3-NOHSA-NEXT:    s_mov_b32 s0, s43403; GCNX3-NOHSA-NEXT:    s_mov_b32 s1, s53404; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(7)3405; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v35, 31, v113406; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v33, 31, v103407; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(6)3408; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v39, 31, v153409; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v37, 31, v143410; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v43, 31, v133411; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v41, 31, v123412; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v40, v123413; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v42, v133414; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v36, v143415; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v38, v153416; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v15, 31, v93417; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v13, 31, v83418; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v12, v83419; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v14, v93420; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v32, v103421; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v34, v113422; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(5)3423; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v73424; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v63425; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v47, 31, v53426; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v45, 31, v43427; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v44, v43428; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v46, v53429; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v8, v63430; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v10, v73431; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(4)3432; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v7, 31, v33433; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v5, 31, v23434; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v4, v23435; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v6, v33436; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(3)3437; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v193438; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v2, v193439; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)3440; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v19, 31, v233441; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v51, 31, v13442; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v49, 31, v03443; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v48, v03444; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v50, v13445; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v183446; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v55, 31, v173447; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v53, 31, v163448; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v52, v163449; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v54, v173450; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v0, v183451; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v17, 31, v223452; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v59, 31, v213453; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v57, 31, v203454; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v56, v203455; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v58, v213456; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v16, v223457; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v18, v233458; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(1)3459; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v22, 31, v273460; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v20, 31, v263461; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[40:43], off, s[0:3], 0 offset:2243462; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[36:39], off, s[0:3], 0 offset:2403463; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v42, 31, v253464; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v40, 31, v243465; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(2)3466; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v38, 31, v313467; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v36, 31, v303468; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:1923469; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v37, v313470; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v15, 31, v293471; GCNX3-NOHSA-NEXT:    v_ashrrev_i32_e32 v13, 31, v283472; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v12, v283473; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v14, v293474; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:2083475; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[44:47], off, s[0:3], 0 offset:1603476; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1763477; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[48:51], off, s[0:3], 0 offset:1283478; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1443479; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[52:55], off, s[0:3], 0 offset:963480; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1123481; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[56:59], off, s[0:3], 0 offset:643482; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:803483; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:323484; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v35, v303485; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v39, v243486; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v41, v253487; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v19, v263488; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v21, v273489; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[35:38], off, s[0:3], 0 offset:483490; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[39:42], off, s[0:3], 03491; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[19:22], off, s[0:3], 0 offset:163492; GCNX3-NOHSA-NEXT:    s_endpgm3493;3494; EG-LABEL: global_sextload_v32i32_to_v32i64:3495; EG:       ; %bb.0:3496; EG-NEXT:    ALU 33, @36, KC0[CB0:0-32], KC1[]3497; EG-NEXT:    TEX 7 @203498; EG-NEXT:    ALU 96, @70, KC0[CB0:0-32], KC1[]3499; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T32.XYZW, T12.X, 03500; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T23.X, 03501; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T31.XYZW, T21.X, 03502; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T20.X, 03503; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T30.XYZW, T19.X, 03504; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T16.XYZW, T10.X, 03505; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T29.XYZW, T9.X, 03506; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T8.X, 03507; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T28.XYZW, T7.X, 03508; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T18.XYZW, T6.X, 03509; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T27.XYZW, T5.X, 03510; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T4.X, 03511; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T26.XYZW, T3.X, 03512; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T2.X, 03513; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T24.XYZW, T1.X, 03514; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T22.XYZW, T0.X, 13515; EG-NEXT:    CF_END3516; EG-NEXT:    Fetch clause starting at 20:3517; EG-NEXT:     VTX_READ_128 T12.XYZW, T11.X, 112, #13518; EG-NEXT:     VTX_READ_128 T13.XYZW, T11.X, 96, #13519; EG-NEXT:     VTX_READ_128 T14.XYZW, T11.X, 80, #13520; EG-NEXT:     VTX_READ_128 T15.XYZW, T11.X, 64, #13521; EG-NEXT:     VTX_READ_128 T16.XYZW, T11.X, 48, #13522; EG-NEXT:     VTX_READ_128 T17.XYZW, T11.X, 32, #13523; EG-NEXT:     VTX_READ_128 T18.XYZW, T11.X, 16, #13524; EG-NEXT:     VTX_READ_128 T11.XYZW, T11.X, 0, #13525; EG-NEXT:    ALU clause starting at 36:3526; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,3527; EG-NEXT:    16(2.242078e-44), 0(0.000000e+00)3528; EG-NEXT:     LSHR T0.X, PV.W, literal.x,3529; EG-NEXT:     LSHR * T1.X, KC0[2].Y, literal.x,3530; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)3531; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,3532; EG-NEXT:    48(6.726233e-44), 0(0.000000e+00)3533; EG-NEXT:     LSHR T2.X, PV.W, literal.x,3534; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3535; EG-NEXT:    2(2.802597e-45), 32(4.484155e-44)3536; EG-NEXT:     LSHR T3.X, PV.W, literal.x,3537; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3538; EG-NEXT:    2(2.802597e-45), 80(1.121039e-43)3539; EG-NEXT:     LSHR T4.X, PV.W, literal.x,3540; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3541; EG-NEXT:    2(2.802597e-45), 64(8.968310e-44)3542; EG-NEXT:     LSHR T5.X, PV.W, literal.x,3543; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3544; EG-NEXT:    2(2.802597e-45), 112(1.569454e-43)3545; EG-NEXT:     LSHR T6.X, PV.W, literal.x,3546; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3547; EG-NEXT:    2(2.802597e-45), 96(1.345247e-43)3548; EG-NEXT:     LSHR T7.X, PV.W, literal.x,3549; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3550; EG-NEXT:    2(2.802597e-45), 144(2.017870e-43)3551; EG-NEXT:     LSHR T8.X, PV.W, literal.x,3552; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3553; EG-NEXT:    2(2.802597e-45), 128(1.793662e-43)3554; EG-NEXT:     LSHR T9.X, PV.W, literal.x,3555; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3556; EG-NEXT:    2(2.802597e-45), 176(2.466285e-43)3557; EG-NEXT:     LSHR T10.X, PV.W, literal.x,3558; EG-NEXT:     MOV * T11.X, KC0[2].Z,3559; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)3560; EG-NEXT:    ALU clause starting at 70:3561; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,3562; EG-NEXT:    160(2.242078e-43), 0(0.000000e+00)3563; EG-NEXT:     LSHR T19.X, PV.W, literal.x,3564; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3565; EG-NEXT:    2(2.802597e-45), 208(2.914701e-43)3566; EG-NEXT:     LSHR T20.X, PV.W, literal.x,3567; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,3568; EG-NEXT:    2(2.802597e-45), 192(2.690493e-43)3569; EG-NEXT:     LSHR T21.X, PV.W, literal.x,3570; EG-NEXT:     ADD_INT T0.W, KC0[2].Y, literal.y,3571; EG-NEXT:     ASHR * T22.W, T11.W, literal.z,3572; EG-NEXT:    2(2.802597e-45), 240(3.363116e-43)3573; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3574; EG-NEXT:     LSHR T23.X, PV.W, literal.x,3575; EG-NEXT:     ASHR T22.Y, T11.Z, literal.y,3576; EG-NEXT:     ASHR T24.W, T11.Y, literal.y,3577; EG-NEXT:     MOV * T22.X, T11.Z,3578; EG-NEXT:    2(2.802597e-45), 31(4.344025e-44)3579; EG-NEXT:     ASHR T24.Y, T11.X, literal.x,3580; EG-NEXT:     ASHR * T25.W, T18.W, literal.x,3581; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3582; EG-NEXT:     MOV T24.X, T11.X,3583; EG-NEXT:     ASHR T25.Y, T18.Z, literal.x,3584; EG-NEXT:     MOV T22.Z, T11.W,3585; EG-NEXT:     ASHR T26.W, T18.Y, literal.x,3586; EG-NEXT:     MOV * T25.X, T18.Z,3587; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3588; EG-NEXT:     ASHR T26.Y, T18.X, literal.x,3589; EG-NEXT:     MOV T24.Z, T11.Y,3590; EG-NEXT:     ASHR * T11.W, T17.W, literal.x,3591; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3592; EG-NEXT:     MOV T26.X, T18.X,3593; EG-NEXT:     ASHR T11.Y, T17.Z, literal.x,3594; EG-NEXT:     MOV T25.Z, T18.W,3595; EG-NEXT:     ASHR T27.W, T17.Y, literal.x,3596; EG-NEXT:     MOV * T11.X, T17.Z,3597; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3598; EG-NEXT:     ASHR T27.Y, T17.X, literal.x,3599; EG-NEXT:     MOV T26.Z, T18.Y,3600; EG-NEXT:     ASHR * T18.W, T16.W, literal.x,3601; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3602; EG-NEXT:     MOV T27.X, T17.X,3603; EG-NEXT:     ASHR T18.Y, T16.Z, literal.x,3604; EG-NEXT:     MOV T11.Z, T17.W,3605; EG-NEXT:     ASHR T28.W, T16.Y, literal.x,3606; EG-NEXT:     MOV * T18.X, T16.Z,3607; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3608; EG-NEXT:     ASHR T28.Y, T16.X, literal.x,3609; EG-NEXT:     MOV T27.Z, T17.Y,3610; EG-NEXT:     ASHR * T17.W, T15.W, literal.x,3611; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3612; EG-NEXT:     MOV T28.X, T16.X,3613; EG-NEXT:     ASHR T17.Y, T15.Z, literal.x,3614; EG-NEXT:     MOV T18.Z, T16.W,3615; EG-NEXT:     ASHR T29.W, T15.Y, literal.x,3616; EG-NEXT:     MOV * T17.X, T15.Z,3617; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3618; EG-NEXT:     ASHR T29.Y, T15.X, literal.x,3619; EG-NEXT:     MOV T28.Z, T16.Y,3620; EG-NEXT:     ASHR * T16.W, T14.W, literal.x,3621; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3622; EG-NEXT:     MOV T29.X, T15.X,3623; EG-NEXT:     ASHR T16.Y, T14.Z, literal.x,3624; EG-NEXT:     MOV T17.Z, T15.W,3625; EG-NEXT:     ASHR T30.W, T14.Y, literal.x,3626; EG-NEXT:     MOV * T16.X, T14.Z,3627; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3628; EG-NEXT:     ASHR T30.Y, T14.X, literal.x,3629; EG-NEXT:     MOV T29.Z, T15.Y,3630; EG-NEXT:     ASHR * T15.W, T13.W, literal.x,3631; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3632; EG-NEXT:     MOV T30.X, T14.X,3633; EG-NEXT:     ASHR T15.Y, T13.Z, literal.x,3634; EG-NEXT:     MOV T16.Z, T14.W,3635; EG-NEXT:     ASHR T31.W, T13.Y, literal.x,3636; EG-NEXT:     MOV * T15.X, T13.Z,3637; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3638; EG-NEXT:     ASHR T31.Y, T13.X, literal.x,3639; EG-NEXT:     MOV T30.Z, T14.Y,3640; EG-NEXT:     ASHR * T14.W, T12.W, literal.x,3641; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3642; EG-NEXT:     MOV T31.X, T13.X,3643; EG-NEXT:     ASHR T14.Y, T12.Z, literal.x,3644; EG-NEXT:     MOV T15.Z, T13.W,3645; EG-NEXT:     ASHR T32.W, T12.Y, literal.x,3646; EG-NEXT:     MOV * T14.X, T12.Z,3647; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3648; EG-NEXT:     ASHR T32.Y, T12.X, literal.x,3649; EG-NEXT:     MOV * T31.Z, T13.Y,3650; EG-NEXT:    31(4.344025e-44), 0(0.000000e+00)3651; EG-NEXT:     MOV T32.X, T12.X,3652; EG-NEXT:     MOV T14.Z, T12.W,3653; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,3654; EG-NEXT:    224(3.138909e-43), 0(0.000000e+00)3655; EG-NEXT:     LSHR T12.X, PV.W, literal.x,3656; EG-NEXT:     MOV * T32.Z, T12.Y,3657; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)3658;3659; GCN-GFX900-HSA-LABEL: global_sextload_v32i32_to_v32i64:3660; GCN-GFX900-HSA:       ; %bb.0:3661; GCN-GFX900-HSA-NEXT:    s_mov_b64 s[22:23], s[2:3]3662; GCN-GFX900-HSA-NEXT:    s_mov_b64 s[20:21], s[0:1]3663; GCN-GFX900-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x03664; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v12, 03665; GCN-GFX900-HSA-NEXT:    s_add_u32 s20, s20, s173666; GCN-GFX900-HSA-NEXT:    s_addc_u32 s21, s21, 03667; GCN-GFX900-HSA-NEXT:    s_waitcnt lgkmcnt(0)3668; GCN-GFX900-HSA-NEXT:    global_load_dwordx4 v[4:7], v12, s[2:3] offset:963669; GCN-GFX900-HSA-NEXT:    global_load_dwordx4 v[8:11], v12, s[2:3] offset:1123670; GCN-GFX900-HSA-NEXT:    global_load_dwordx4 v[25:28], v12, s[2:3] offset:803671; GCN-GFX900-HSA-NEXT:    global_load_dwordx4 v[13:16], v12, s[2:3] offset:643672; GCN-GFX900-HSA-NEXT:    global_load_dwordx4 v[17:20], v12, s[2:3] offset:483673; GCN-GFX900-HSA-NEXT:    global_load_dwordx4 v[21:24], v12, s[2:3] offset:323674; GCN-GFX900-HSA-NEXT:    global_load_dwordx4 v[0:3], v12, s[2:3] offset:163675; GCN-GFX900-HSA-NEXT:    s_waitcnt vmcnt(6)3676; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v32, 31, v73677; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v30, 31, v63678; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v29, v63679; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v31, v73680; GCN-GFX900-HSA-NEXT:    s_waitcnt vmcnt(5)3681; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v36, 31, v113682; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v34, 31, v103683; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v40, 31, v93684; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v38, 31, v83685; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v37, v83686; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v39, v93687; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v33, v103688; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v35, v113689; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v53690; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v43691; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v8, v43692; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v10, v53693; GCN-GFX900-HSA-NEXT:    buffer_store_dword v29, off, s[20:23], 0 ; 4-byte Folded Spill3694; GCN-GFX900-HSA-NEXT:    s_nop 03695; GCN-GFX900-HSA-NEXT:    buffer_store_dword v30, off, s[20:23], 0 offset:4 ; 4-byte Folded Spill3696; GCN-GFX900-HSA-NEXT:    buffer_store_dword v31, off, s[20:23], 0 offset:8 ; 4-byte Folded Spill3697; GCN-GFX900-HSA-NEXT:    buffer_store_dword v32, off, s[20:23], 0 offset:12 ; 4-byte Folded Spill3698; GCN-GFX900-HSA-NEXT:    s_waitcnt vmcnt(7)3699; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v7, 31, v163700; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v5, 31, v153701; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v48, 31, v143702; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v46, 31, v133703; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v45, v133704; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v47, v143705; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v4, v153706; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v6, v163707; GCN-GFX900-HSA-NEXT:    s_waitcnt vmcnt(6)3708; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v16, 31, v203709; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v14, 31, v193710; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v52, 31, v183711; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v50, 31, v173712; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v49, v173713; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v51, v183714; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v13, v193715; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v15, v203716; GCN-GFX900-HSA-NEXT:    s_waitcnt vmcnt(5)3717; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v20, 31, v243718; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v18, 31, v233719; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v56, 31, v223720; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v54, 31, v213721; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v53, v213722; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v55, v223723; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v17, v233724; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v19, v243725; GCN-GFX900-HSA-NEXT:    global_load_dwordx4 v[21:24], v12, s[2:3]3726; GCN-GFX900-HSA-NEXT:    s_nop 03727; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[37:40], s[0:1] offset:2243728; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[33:36], s[0:1] offset:2403729; GCN-GFX900-HSA-NEXT:    buffer_load_dword v33, off, s[20:23], 0 ; 4-byte Folded Reload3730; GCN-GFX900-HSA-NEXT:    s_nop 03731; GCN-GFX900-HSA-NEXT:    buffer_load_dword v34, off, s[20:23], 0 offset:4 ; 4-byte Folded Reload3732; GCN-GFX900-HSA-NEXT:    buffer_load_dword v35, off, s[20:23], 0 offset:8 ; 4-byte Folded Reload3733; GCN-GFX900-HSA-NEXT:    buffer_load_dword v36, off, s[20:23], 0 offset:12 ; 4-byte Folded Reload3734; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v32, 31, v283735; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v30, 31, v273736; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v44, 31, v263737; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v42, 31, v253738; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v41, v253739; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v43, v263740; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v29, v273741; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v31, v283742; GCN-GFX900-HSA-NEXT:    s_waitcnt vmcnt(11)3743; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v60, 31, v33744; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v58, 31, v23745; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v28, 31, v13746; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v26, 31, v03747; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v25, v03748; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v27, v13749; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v57, v23750; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v59, v33751; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[8:11], s[0:1] offset:1923752; GCN-GFX900-HSA-NEXT:    s_waitcnt vmcnt(7)3753; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v243754; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v233755; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v0, v233756; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v2, v243757; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v223758; GCN-GFX900-HSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v213759; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v8, v213760; GCN-GFX900-HSA-NEXT:    v_mov_b32_e32 v10, v223761; GCN-GFX900-HSA-NEXT:    s_waitcnt vmcnt(1)3762; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[33:36], s[0:1] offset:2083763; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[41:44], s[0:1] offset:1603764; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[29:32], s[0:1] offset:1763765; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[45:48], s[0:1] offset:1283766; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[4:7], s[0:1] offset:1443767; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[49:52], s[0:1] offset:963768; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[13:16], s[0:1] offset:1123769; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[53:56], s[0:1] offset:643770; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[17:20], s[0:1] offset:803771; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[25:28], s[0:1] offset:323772; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[57:60], s[0:1] offset:483773; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[8:11], s[0:1]3774; GCN-GFX900-HSA-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1] offset:163775; GCN-GFX900-HSA-NEXT:    s_endpgm3776;3777; GCN-GFX908-HSA-LABEL: global_sextload_v32i32_to_v32i64:3778; GCN-GFX908-HSA:       ; %bb.0:3779; GCN-GFX908-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x03780; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v12, 03781; GCN-GFX908-HSA-NEXT:    s_waitcnt lgkmcnt(0)3782; GCN-GFX908-HSA-NEXT:    global_load_dwordx4 v[4:7], v12, s[2:3] offset:963783; GCN-GFX908-HSA-NEXT:    global_load_dwordx4 v[8:11], v12, s[2:3] offset:1123784; GCN-GFX908-HSA-NEXT:    global_load_dwordx4 v[25:28], v12, s[2:3] offset:803785; GCN-GFX908-HSA-NEXT:    global_load_dwordx4 v[13:16], v12, s[2:3] offset:643786; GCN-GFX908-HSA-NEXT:    global_load_dwordx4 v[17:20], v12, s[2:3] offset:483787; GCN-GFX908-HSA-NEXT:    global_load_dwordx4 v[21:24], v12, s[2:3] offset:323788; GCN-GFX908-HSA-NEXT:    global_load_dwordx4 v[0:3], v12, s[2:3] offset:163789; GCN-GFX908-HSA-NEXT:    s_waitcnt vmcnt(6)3790; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v32, 31, v73791; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v30, 31, v63792; GCN-GFX908-HSA-NEXT:    s_waitcnt vmcnt(5)3793; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v36, 31, v113794; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v34, 31, v103795; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v40, 31, v93796; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v38, 31, v83797; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v37, v83798; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v39, v93799; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v33, v103800; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v35, v113801; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v53802; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v43803; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v8, v43804; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v10, v53805; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v29, v63806; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v31, v73807; GCN-GFX908-HSA-NEXT:    s_waitcnt vmcnt(3)3808; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v7, 31, v163809; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v5, 31, v153810; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v48, 31, v143811; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v46, 31, v133812; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v45, v133813; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v47, v143814; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v4, v153815; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v6, v163816; GCN-GFX908-HSA-NEXT:    s_waitcnt vmcnt(2)3817; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v16, 31, v203818; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v14, 31, v193819; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v52, 31, v183820; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v50, 31, v173821; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v49, v173822; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v51, v183823; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v13, v193824; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v15, v203825; GCN-GFX908-HSA-NEXT:    s_waitcnt vmcnt(1)3826; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v20, 31, v243827; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v18, 31, v233828; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v56, 31, v223829; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v54, 31, v213830; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v53, v213831; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v55, v223832; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v17, v233833; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v19, v243834; GCN-GFX908-HSA-NEXT:    global_load_dwordx4 v[21:24], v12, s[2:3]3835; GCN-GFX908-HSA-NEXT:    v_accvgpr_write_b32 a0, v293836; GCN-GFX908-HSA-NEXT:    v_accvgpr_write_b32 a3, v323837; GCN-GFX908-HSA-NEXT:    v_accvgpr_write_b32 a1, v303838; GCN-GFX908-HSA-NEXT:    v_accvgpr_write_b32 a2, v313839; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[37:40], s[0:1] offset:2243840; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[33:36], s[0:1] offset:2403841; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v32, 31, v283842; GCN-GFX908-HSA-NEXT:    v_accvgpr_read_b32 v36, a33843; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v30, 31, v273844; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v44, 31, v263845; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v42, 31, v253846; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v41, v253847; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v43, v263848; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v29, v273849; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v31, v283850; GCN-GFX908-HSA-NEXT:    s_waitcnt vmcnt(3)3851; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v60, 31, v33852; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v58, 31, v23853; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v28, 31, v13854; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v26, 31, v03855; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v25, v03856; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v27, v13857; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v57, v23858; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v59, v33859; GCN-GFX908-HSA-NEXT:    v_accvgpr_read_b32 v35, a23860; GCN-GFX908-HSA-NEXT:    v_accvgpr_read_b32 v34, a13861; GCN-GFX908-HSA-NEXT:    v_accvgpr_read_b32 v33, a03862; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[8:11], s[0:1] offset:1923863; GCN-GFX908-HSA-NEXT:    s_waitcnt vmcnt(3)3864; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v3, 31, v243865; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v1, 31, v233866; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v0, v233867; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v2, v243868; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v11, 31, v223869; GCN-GFX908-HSA-NEXT:    v_ashrrev_i32_e32 v9, 31, v213870; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v8, v213871; GCN-GFX908-HSA-NEXT:    v_mov_b32_e32 v10, v223872; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[33:36], s[0:1] offset:2083873; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[41:44], s[0:1] offset:1603874; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[29:32], s[0:1] offset:1763875; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[45:48], s[0:1] offset:1283876; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[4:7], s[0:1] offset:1443877; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[49:52], s[0:1] offset:963878; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[13:16], s[0:1] offset:1123879; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[53:56], s[0:1] offset:643880; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[17:20], s[0:1] offset:803881; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[25:28], s[0:1] offset:323882; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[57:60], s[0:1] offset:483883; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[8:11], s[0:1]3884; GCN-GFX908-HSA-NEXT:    global_store_dwordx4 v12, v[0:3], s[0:1] offset:163885; GCN-GFX908-HSA-NEXT:    s_endpgm3886  %ld = load <32 x i32>, ptr addrspace(1) %in3887  %ext = sext <32 x i32> %ld to <32 x i64>3888  store <32 x i64> %ext, ptr addrspace(1) %out3889  ret void3890}3891 3892define amdgpu_kernel void @global_zextload_v32i32_to_v32i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {3893; SI-NOHSA-LABEL: global_zextload_v32i32_to_v32i64:3894; SI-NOHSA:       ; %bb.0:3895; SI-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x93896; SI-NOHSA-NEXT:    s_mov_b32 s3, 0xf0003897; SI-NOHSA-NEXT:    s_mov_b32 s2, -13898; SI-NOHSA-NEXT:    v_mov_b32_e32 v1, 03899; SI-NOHSA-NEXT:    s_mov_b32 s10, s23900; SI-NOHSA-NEXT:    s_mov_b32 s11, s33901; SI-NOHSA-NEXT:    v_mov_b32_e32 v3, v13902; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)3903; SI-NOHSA-NEXT:    s_mov_b32 s8, s63904; SI-NOHSA-NEXT:    s_mov_b32 s9, s73905; SI-NOHSA-NEXT:    s_mov_b32 s0, s43906; SI-NOHSA-NEXT:    s_mov_b32 s1, s53907; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:1123908; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:963909; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 03910; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[16:19], off, s[8:11], 0 offset:163911; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[20:23], off, s[8:11], 0 offset:323912; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[24:27], off, s[8:11], 0 offset:483913; SI-NOHSA-NEXT:    s_waitcnt vmcnt(5)3914; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v43915; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v53916; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[28:31], off, s[8:11], 0 offset:643917; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[32:35], off, s[8:11], 0 offset:803918; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2243919; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3920; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v63921; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v73922; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2403923; SI-NOHSA-NEXT:    s_waitcnt vmcnt(8) expcnt(0)3924; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v83925; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v93926; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1923927; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3928; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v103929; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v113930; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2083931; SI-NOHSA-NEXT:    s_waitcnt vmcnt(4) expcnt(0)3932; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v323933; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v333934; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1603935; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3936; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v343937; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v353938; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1763939; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3940; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v283941; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v293942; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1283943; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3944; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v303945; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v313946; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1443947; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3948; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v243949; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v253950; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:963951; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3952; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v263953; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v273954; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1123955; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3956; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v203957; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v213958; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:643959; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3960; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v223961; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v233962; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:803963; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3964; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v163965; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v173966; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:323967; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3968; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v183969; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v193970; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:483971; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3972; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v123973; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v133974; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 03975; SI-NOHSA-NEXT:    s_waitcnt expcnt(0)3976; SI-NOHSA-NEXT:    v_mov_b32_e32 v0, v143977; SI-NOHSA-NEXT:    v_mov_b32_e32 v2, v153978; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:163979; SI-NOHSA-NEXT:    s_endpgm3980;3981; GCNX3-HSA-LABEL: global_zextload_v32i32_to_v32i64:3982; GCNX3-HSA:       ; %bb.0:3983; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x03984; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s173985; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 83986; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s133987; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)3988; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 163989; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 03990; GCNX3-HSA-NEXT:    s_add_u32 s6, s2, 323991; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s23992; GCNX3-HSA-NEXT:    s_addc_u32 s7, s3, 03993; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s33994; GCNX3-HSA-NEXT:    s_add_u32 s8, s2, 483995; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[28:31], v[0:1]3996; GCNX3-HSA-NEXT:    s_addc_u32 s9, s3, 03997; GCNX3-HSA-NEXT:    s_add_u32 s10, s2, 643998; GCNX3-HSA-NEXT:    s_addc_u32 s11, s3, 03999; GCNX3-HSA-NEXT:    s_add_u32 s12, s2, 0x504000; GCNX3-HSA-NEXT:    s_addc_u32 s13, s3, 04001; GCNX3-HSA-NEXT:    s_add_u32 s14, s2, 0x604002; GCNX3-HSA-NEXT:    s_addc_u32 s15, s3, 04003; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 0x704004; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 04005; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s24006; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s34007; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[32:35], v[0:1]4008; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s144009; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s154010; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[24:27], v[0:1]4011; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s124012; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s134013; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[20:23], v[0:1]4014; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s104015; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s114016; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[16:19], v[0:1]4017; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s84018; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s94019; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[12:15], v[0:1]4020; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s44021; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s74022; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s54023; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s64024; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]4025; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[8:11], v[8:9]4026; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, 04027; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 164028; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, v14029; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04030; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(7)4031; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v284032; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v294033; GCNX3-HSA-NEXT:    v_mov_b32_e32 v29, s14034; GCNX3-HSA-NEXT:    v_mov_b32_e32 v28, s04035; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[28:29], v[0:3]4036; GCNX3-HSA-NEXT:    v_mov_b32_e32 v29, s34037; GCNX3-HSA-NEXT:    v_mov_b32_e32 v28, s24038; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xe04039; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04040; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v304041; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v314042; GCNX3-HSA-NEXT:    v_mov_b32_e32 v31, s34043; GCNX3-HSA-NEXT:    v_mov_b32_e32 v30, s24044; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xf04045; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04046; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[28:29], v[0:3]4047; GCNX3-HSA-NEXT:    v_mov_b32_e32 v29, s34048; GCNX3-HSA-NEXT:    v_mov_b32_e32 v28, s24049; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xc04050; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04051; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(8)4052; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v324053; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v334054; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[30:31], v[0:3]4055; GCNX3-HSA-NEXT:    v_mov_b32_e32 v31, s34056; GCNX3-HSA-NEXT:    v_mov_b32_e32 v30, s24057; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xd04058; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04059; GCNX3-HSA-NEXT:    v_mov_b32_e32 v33, s34060; GCNX3-HSA-NEXT:    v_mov_b32_e32 v32, s24061; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xa04062; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04063; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v344064; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v354065; GCNX3-HSA-NEXT:    v_mov_b32_e32 v35, s34066; GCNX3-HSA-NEXT:    v_mov_b32_e32 v34, s24067; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0xb04068; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04069; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[28:29], v[0:3]4070; GCNX3-HSA-NEXT:    v_mov_b32_e32 v29, s34071; GCNX3-HSA-NEXT:    v_mov_b32_e32 v28, s24072; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x804073; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04074; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(9)4075; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v244076; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v254077; GCNX3-HSA-NEXT:    v_mov_b32_e32 v25, s34078; GCNX3-HSA-NEXT:    v_mov_b32_e32 v24, s24079; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x904080; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04081; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[30:31], v[0:3]4082; GCNX3-HSA-NEXT:    s_nop 04083; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v264084; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v274085; GCNX3-HSA-NEXT:    v_mov_b32_e32 v27, s34086; GCNX3-HSA-NEXT:    v_mov_b32_e32 v26, s24087; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x604088; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04089; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[32:33], v[0:3]4090; GCNX3-HSA-NEXT:    v_mov_b32_e32 v31, s34091; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(10)4092; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v204093; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v214094; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[34:35], v[0:3]4095; GCNX3-HSA-NEXT:    v_mov_b32_e32 v30, s24096; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v224097; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v234098; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x704099; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[28:29], v[0:3]4100; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04101; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(11)4102; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v164103; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v174104; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[24:25], v[0:3]4105; GCNX3-HSA-NEXT:    s_nop 04106; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v184107; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v194108; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[26:27], v[0:3]4109; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(12)4110; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v124111; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v134112; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, s34113; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, s24114; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 644115; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[30:31], v[0:3]4116; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04117; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v144118; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v154119; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[12:13], v[0:3]4120; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(12)4121; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v84122; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v94123; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s34124; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s24125; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x504126; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04127; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[8:9], v[0:3]4128; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s34129; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s24130; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 324131; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v104132; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v114133; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04134; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[8:9], v[0:3]4135; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 484136; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v44137; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v54138; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s34139; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s24140; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 04141; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]4142; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s14143; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, v64144; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, v74145; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s04146; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]4147; GCNX3-HSA-NEXT:    s_endpgm4148;4149; GCNX3-NOHSA-LABEL: global_zextload_v32i32_to_v32i64:4150; GCNX3-NOHSA:       ; %bb.0:4151; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[4:7], s[4:5], 0x244152; GCNX3-NOHSA-NEXT:    s_mov_b32 s3, 0xf0004153; GCNX3-NOHSA-NEXT:    s_mov_b32 s2, -14154; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s24155; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s34156; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)4157; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s64158; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s74159; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:1124160; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:964161; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:804162; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:644163; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[16:19], off, s[8:11], 0 offset:484164; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[20:23], off, s[8:11], 0 offset:324165; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[24:27], off, s[8:11], 0 offset:164166; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[32:35], off, s[8:11], 04167; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v29, 04168; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v31, v294169; GCNX3-NOHSA-NEXT:    s_mov_b32 s0, s44170; GCNX3-NOHSA-NEXT:    s_mov_b32 s1, s54171; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(7)4172; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v04173; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v14174; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:2244175; GCNX3-NOHSA-NEXT:    s_nop 04176; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v24177; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v34178; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:2404179; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(8)4180; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v44181; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v54182; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1924183; GCNX3-NOHSA-NEXT:    s_nop 04184; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v64185; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v74186; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:2084187; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(9)4188; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v84189; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v94190; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1604191; GCNX3-NOHSA-NEXT:    s_nop 04192; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v104193; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v114194; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1764195; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(10)4196; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v124197; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v134198; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1284199; GCNX3-NOHSA-NEXT:    s_nop 04200; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v144201; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v154202; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1444203; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(11)4204; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v164205; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v174206; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:964207; GCNX3-NOHSA-NEXT:    s_nop 04208; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v184209; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v194210; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1124211; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(12)4212; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v204213; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v214214; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:644215; GCNX3-NOHSA-NEXT:    s_nop 04216; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v224217; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v234218; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:804219; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(13)4220; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v244221; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v254222; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:324223; GCNX3-NOHSA-NEXT:    s_nop 04224; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v264225; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v274226; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:484227; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(14)4228; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v324229; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v334230; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 04231; GCNX3-NOHSA-NEXT:    s_nop 04232; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v28, v344233; GCNX3-NOHSA-NEXT:    v_mov_b32_e32 v30, v354234; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:164235; GCNX3-NOHSA-NEXT:    s_endpgm4236;4237; EG-LABEL: global_zextload_v32i32_to_v32i64:4238; EG:       ; %bb.0:4239; EG-NEXT:    ALU 0, @38, KC0[CB0:0-32], KC1[]4240; EG-NEXT:    TEX 2 @224241; EG-NEXT:    ALU 10, @39, KC0[], KC1[]4242; EG-NEXT:    TEX 4 @284243; EG-NEXT:    ALU 100, @50, KC0[CB0:0-32], KC1[]4244; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T31.X, 04245; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T30.X, 04246; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T29.X, 04247; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T28.X, 04248; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T27.X, 04249; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T26.X, 04250; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T25.X, 04251; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T24.X, 04252; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T16.XYZW, T13.X, 04253; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T12.X, 04254; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T18.XYZW, T11.X, 04255; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T10.X, 04256; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T3.X, 04257; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T2.X, 04258; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T22.XYZW, T1.X, 04259; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T0.X, 14260; EG-NEXT:    CF_END4261; EG-NEXT:    Fetch clause starting at 22:4262; EG-NEXT:     VTX_READ_128 T1.XYZW, T0.X, 112, #14263; EG-NEXT:     VTX_READ_128 T2.XYZW, T0.X, 80, #14264; EG-NEXT:     VTX_READ_128 T3.XYZW, T0.X, 96, #14265; EG-NEXT:    Fetch clause starting at 28:4266; EG-NEXT:     VTX_READ_128 T10.XYZW, T0.X, 0, #14267; EG-NEXT:     VTX_READ_128 T11.XYZW, T0.X, 16, #14268; EG-NEXT:     VTX_READ_128 T12.XYZW, T0.X, 32, #14269; EG-NEXT:     VTX_READ_128 T13.XYZW, T0.X, 48, #14270; EG-NEXT:     VTX_READ_128 T0.XYZW, T0.X, 64, #14271; EG-NEXT:    ALU clause starting at 38:4272; EG-NEXT:     MOV * T0.X, KC0[2].Z,4273; EG-NEXT:    ALU clause starting at 39:4274; EG-NEXT:     MOV T4.X, T1.X,4275; EG-NEXT:     MOV T4.Y, 0.0,4276; EG-NEXT:     MOV * T5.X, T1.Z,4277; EG-NEXT:     MOV * T5.Y, 0.0,4278; EG-NEXT:     MOV T6.X, T3.X,4279; EG-NEXT:     MOV T6.Y, 0.0,4280; EG-NEXT:     MOV * T7.X, T3.Z,4281; EG-NEXT:     MOV * T7.Y, 0.0,4282; EG-NEXT:     MOV T8.X, T2.X,4283; EG-NEXT:     MOV T8.Y, 0.0,4284; EG-NEXT:     MOV * T9.X, T2.Z,4285; EG-NEXT:    ALU clause starting at 50:4286; EG-NEXT:     MOV * T9.Y, 0.0,4287; EG-NEXT:     MOV T14.X, T0.X,4288; EG-NEXT:     MOV T14.Y, 0.0,4289; EG-NEXT:     MOV * T15.X, T0.Z,4290; EG-NEXT:     MOV * T15.Y, 0.0,4291; EG-NEXT:     MOV T16.X, T13.X,4292; EG-NEXT:     MOV T16.Y, 0.0,4293; EG-NEXT:     MOV * T17.X, T13.Z,4294; EG-NEXT:     MOV * T17.Y, 0.0,4295; EG-NEXT:     MOV T18.X, T12.X,4296; EG-NEXT:     MOV T18.Y, 0.0,4297; EG-NEXT:     MOV * T19.X, T12.Z,4298; EG-NEXT:     MOV * T19.Y, 0.0,4299; EG-NEXT:     MOV T20.X, T11.X,4300; EG-NEXT:     MOV T20.Y, 0.0,4301; EG-NEXT:     MOV * T21.X, T11.Z,4302; EG-NEXT:     MOV * T21.Y, 0.0,4303; EG-NEXT:     MOV T22.X, T10.X,4304; EG-NEXT:     MOV T22.Y, 0.0,4305; EG-NEXT:     MOV * T23.X, T10.Z,4306; EG-NEXT:     MOV T23.Y, 0.0,4307; EG-NEXT:     MOV T4.Z, T1.Y,4308; EG-NEXT:     MOV T4.W, 0.0,4309; EG-NEXT:     MOV * T5.Z, T1.W,4310; EG-NEXT:     MOV * T5.W, 0.0,4311; EG-NEXT:     MOV T6.Z, T3.Y,4312; EG-NEXT:     MOV T6.W, 0.0,4313; EG-NEXT:     MOV * T7.Z, T3.W,4314; EG-NEXT:     MOV * T7.W, 0.0,4315; EG-NEXT:     MOV T8.Z, T2.Y,4316; EG-NEXT:     MOV T8.W, 0.0,4317; EG-NEXT:     MOV * T9.Z, T2.W,4318; EG-NEXT:     MOV * T9.W, 0.0,4319; EG-NEXT:     MOV T14.Z, T0.Y,4320; EG-NEXT:     MOV T14.W, 0.0,4321; EG-NEXT:     MOV * T15.Z, T0.W,4322; EG-NEXT:     MOV * T15.W, 0.0,4323; EG-NEXT:     MOV T16.Z, T13.Y,4324; EG-NEXT:     MOV T16.W, 0.0,4325; EG-NEXT:     MOV * T17.Z, T13.W,4326; EG-NEXT:     MOV * T17.W, 0.0,4327; EG-NEXT:     MOV T18.Z, T12.Y,4328; EG-NEXT:     MOV T18.W, 0.0,4329; EG-NEXT:     MOV * T19.Z, T12.W,4330; EG-NEXT:     MOV * T19.W, 0.0,4331; EG-NEXT:     MOV T20.Z, T11.Y,4332; EG-NEXT:     MOV T20.W, 0.0,4333; EG-NEXT:     MOV * T21.Z, T11.W,4334; EG-NEXT:     MOV * T21.W, 0.0,4335; EG-NEXT:     MOV T22.Z, T10.Y,4336; EG-NEXT:     MOV T22.W, 0.0,4337; EG-NEXT:     MOV * T23.Z, T10.W,4338; EG-NEXT:     MOV T23.W, 0.0,4339; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,4340; EG-NEXT:    16(2.242078e-44), 0(0.000000e+00)4341; EG-NEXT:     LSHR T0.X, PS, literal.x,4342; EG-NEXT:     LSHR * T1.X, KC0[2].Y, literal.x,4343; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)4344; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,4345; EG-NEXT:    48(6.726233e-44), 0(0.000000e+00)4346; EG-NEXT:     LSHR T2.X, PV.W, literal.x,4347; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4348; EG-NEXT:    2(2.802597e-45), 32(4.484155e-44)4349; EG-NEXT:     LSHR T3.X, PV.W, literal.x,4350; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4351; EG-NEXT:    2(2.802597e-45), 80(1.121039e-43)4352; EG-NEXT:     LSHR T10.X, PV.W, literal.x,4353; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4354; EG-NEXT:    2(2.802597e-45), 64(8.968310e-44)4355; EG-NEXT:     LSHR T11.X, PV.W, literal.x,4356; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4357; EG-NEXT:    2(2.802597e-45), 112(1.569454e-43)4358; EG-NEXT:     LSHR T12.X, PV.W, literal.x,4359; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4360; EG-NEXT:    2(2.802597e-45), 96(1.345247e-43)4361; EG-NEXT:     LSHR T13.X, PV.W, literal.x,4362; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4363; EG-NEXT:    2(2.802597e-45), 144(2.017870e-43)4364; EG-NEXT:     LSHR T24.X, PV.W, literal.x,4365; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4366; EG-NEXT:    2(2.802597e-45), 128(1.793662e-43)4367; EG-NEXT:     LSHR T25.X, PV.W, literal.x,4368; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4369; EG-NEXT:    2(2.802597e-45), 176(2.466285e-43)4370; EG-NEXT:     LSHR T26.X, PV.W, literal.x,4371; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4372; EG-NEXT:    2(2.802597e-45), 160(2.242078e-43)4373; EG-NEXT:     LSHR T27.X, PV.W, literal.x,4374; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4375; EG-NEXT:    2(2.802597e-45), 208(2.914701e-43)4376; EG-NEXT:     LSHR T28.X, PV.W, literal.x,4377; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4378; EG-NEXT:    2(2.802597e-45), 192(2.690493e-43)4379; EG-NEXT:     LSHR T29.X, PV.W, literal.x,4380; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4381; EG-NEXT:    2(2.802597e-45), 240(3.363116e-43)4382; EG-NEXT:     LSHR T30.X, PV.W, literal.x,4383; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4384; EG-NEXT:    2(2.802597e-45), 224(3.138909e-43)4385; EG-NEXT:     LSHR * T31.X, PV.W, literal.x,4386; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)4387;4388; GCN-HSA-LABEL: global_zextload_v32i32_to_v32i64:4389; GCN-HSA:       ; %bb.0:4390; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x04391; GCN-HSA-NEXT:    v_mov_b32_e32 v1, 04392; GCN-HSA-NEXT:    v_mov_b32_e32 v3, v14393; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)4394; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v1, s[2:3] offset:1124395; GCN-HSA-NEXT:    global_load_dwordx4 v[8:11], v1, s[2:3] offset:964396; GCN-HSA-NEXT:    global_load_dwordx4 v[12:15], v1, s[2:3] offset:804397; GCN-HSA-NEXT:    global_load_dwordx4 v[16:19], v1, s[2:3] offset:644398; GCN-HSA-NEXT:    global_load_dwordx4 v[20:23], v1, s[2:3] offset:484399; GCN-HSA-NEXT:    global_load_dwordx4 v[24:27], v1, s[2:3] offset:324400; GCN-HSA-NEXT:    global_load_dwordx4 v[28:31], v1, s[2:3] offset:164401; GCN-HSA-NEXT:    global_load_dwordx4 v[32:35], v1, s[2:3]4402; GCN-HSA-NEXT:    s_waitcnt vmcnt(7)4403; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v44404; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v54405; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:2244406; GCN-HSA-NEXT:    s_nop 04407; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v64408; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v74409; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:2404410; GCN-HSA-NEXT:    s_waitcnt vmcnt(8)4411; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v84412; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v94413; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:1924414; GCN-HSA-NEXT:    s_nop 04415; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v104416; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v114417; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:2084418; GCN-HSA-NEXT:    s_waitcnt vmcnt(9)4419; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v124420; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v134421; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:1604422; GCN-HSA-NEXT:    s_nop 04423; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v144424; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v154425; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:1764426; GCN-HSA-NEXT:    s_waitcnt vmcnt(10)4427; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v164428; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v174429; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:1284430; GCN-HSA-NEXT:    s_nop 04431; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v184432; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v194433; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:1444434; GCN-HSA-NEXT:    s_waitcnt vmcnt(11)4435; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v204436; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v214437; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:964438; GCN-HSA-NEXT:    s_nop 04439; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v224440; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v234441; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:1124442; GCN-HSA-NEXT:    s_waitcnt vmcnt(12)4443; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v244444; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v254445; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:644446; GCN-HSA-NEXT:    s_nop 04447; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v264448; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v274449; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:804450; GCN-HSA-NEXT:    s_waitcnt vmcnt(13)4451; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v284452; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v294453; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:324454; GCN-HSA-NEXT:    s_nop 04455; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v304456; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v314457; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:484458; GCN-HSA-NEXT:    s_waitcnt vmcnt(14)4459; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v324460; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v334461; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1]4462; GCN-HSA-NEXT:    s_nop 04463; GCN-HSA-NEXT:    v_mov_b32_e32 v0, v344464; GCN-HSA-NEXT:    v_mov_b32_e32 v2, v354465; GCN-HSA-NEXT:    global_store_dwordx4 v1, v[0:3], s[0:1] offset:164466; GCN-HSA-NEXT:    s_endpgm4467  %ld = load <32 x i32>, ptr addrspace(1) %in4468  %ext = zext <32 x i32> %ld to <32 x i64>4469  store <32 x i64> %ext, ptr addrspace(1) %out4470  ret void4471}4472 4473define amdgpu_kernel void @global_load_v32i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {4474; SI-NOHSA-LABEL: global_load_v32i32:4475; SI-NOHSA:       ; %bb.0:4476; SI-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x94477; SI-NOHSA-NEXT:    s_mov_b32 s7, 0xf0004478; SI-NOHSA-NEXT:    s_mov_b32 s6, -14479; SI-NOHSA-NEXT:    s_mov_b32 s10, s64480; SI-NOHSA-NEXT:    s_mov_b32 s11, s74481; SI-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)4482; SI-NOHSA-NEXT:    s_mov_b32 s4, s04483; SI-NOHSA-NEXT:    s_mov_b32 s5, s14484; SI-NOHSA-NEXT:    s_mov_b32 s8, s24485; SI-NOHSA-NEXT:    s_mov_b32 s9, s34486; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 04487; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:164488; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:1124489; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:964490; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[16:19], off, s[8:11], 0 offset:804491; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[20:23], off, s[8:11], 0 offset:644492; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[24:27], off, s[8:11], 0 offset:324493; SI-NOHSA-NEXT:    buffer_load_dwordx4 v[28:31], off, s[8:11], 0 offset:484494; SI-NOHSA-NEXT:    s_waitcnt vmcnt(4)4495; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[12:15], off, s[4:7], 0 offset:964496; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:1124497; SI-NOHSA-NEXT:    s_waitcnt vmcnt(4)4498; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[20:23], off, s[4:7], 0 offset:644499; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[4:7], 0 offset:804500; SI-NOHSA-NEXT:    s_waitcnt vmcnt(5)4501; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[24:27], off, s[4:7], 0 offset:324502; SI-NOHSA-NEXT:    s_waitcnt vmcnt(5)4503; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[4:7], 0 offset:484504; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 04505; SI-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:164506; SI-NOHSA-NEXT:    s_endpgm4507;4508; GCNX3-HSA-LABEL: global_load_v32i32:4509; GCNX3-HSA:       ; %bb.0:4510; GCNX3-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x04511; GCNX3-HSA-NEXT:    s_add_i32 s12, s12, s174512; GCNX3-HSA-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 84513; GCNX3-HSA-NEXT:    s_mov_b32 flat_scratch_lo, s134514; GCNX3-HSA-NEXT:    s_waitcnt lgkmcnt(0)4515; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 164516; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 04517; GCNX3-HSA-NEXT:    s_add_u32 s6, s2, 484518; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s24519; GCNX3-HSA-NEXT:    v_mov_b32_e32 v29, s54520; GCNX3-HSA-NEXT:    s_addc_u32 s7, s3, 04521; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s34522; GCNX3-HSA-NEXT:    v_mov_b32_e32 v28, s44523; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 324524; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[0:3], v[0:1]4525; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 04526; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s54527; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s44528; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 0x504529; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 04530; GCNX3-HSA-NEXT:    v_mov_b32_e32 v13, s54531; GCNX3-HSA-NEXT:    v_mov_b32_e32 v12, s44532; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 644533; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 04534; GCNX3-HSA-NEXT:    v_mov_b32_e32 v17, s54535; GCNX3-HSA-NEXT:    v_mov_b32_e32 v16, s44536; GCNX3-HSA-NEXT:    s_add_u32 s4, s2, 0x704537; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s64538; GCNX3-HSA-NEXT:    s_addc_u32 s5, s3, 04539; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s74540; GCNX3-HSA-NEXT:    s_add_u32 s2, s2, 0x604541; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[4:7], v[4:5]4542; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[8:11], v[8:9]4543; GCNX3-HSA-NEXT:    s_addc_u32 s3, s3, 04544; GCNX3-HSA-NEXT:    v_mov_b32_e32 v21, s54545; GCNX3-HSA-NEXT:    v_mov_b32_e32 v25, s34546; GCNX3-HSA-NEXT:    v_mov_b32_e32 v20, s44547; GCNX3-HSA-NEXT:    v_mov_b32_e32 v24, s24548; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[12:15], v[12:13]4549; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[16:19], v[16:17]4550; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[20:23], v[20:21]4551; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[24:27], v[24:25]4552; GCNX3-HSA-NEXT:    flat_load_dwordx4 v[28:31], v[28:29]4553; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 0x604554; GCNX3-HSA-NEXT:    v_mov_b32_e32 v33, s14555; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04556; GCNX3-HSA-NEXT:    v_mov_b32_e32 v32, s04557; GCNX3-HSA-NEXT:    s_add_u32 s4, s0, 0x704558; GCNX3-HSA-NEXT:    s_addc_u32 s5, s1, 04559; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(7)4560; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[32:33], v[0:3]4561; GCNX3-HSA-NEXT:    s_nop 04562; GCNX3-HSA-NEXT:    v_mov_b32_e32 v0, s24563; GCNX3-HSA-NEXT:    v_mov_b32_e32 v1, s34564; GCNX3-HSA-NEXT:    s_add_u32 s2, s0, 644565; GCNX3-HSA-NEXT:    s_addc_u32 s3, s1, 04566; GCNX3-HSA-NEXT:    s_add_u32 s6, s0, 0x504567; GCNX3-HSA-NEXT:    s_addc_u32 s7, s1, 04568; GCNX3-HSA-NEXT:    s_add_u32 s8, s0, 324569; GCNX3-HSA-NEXT:    s_addc_u32 s9, s1, 04570; GCNX3-HSA-NEXT:    s_add_u32 s10, s0, 484571; GCNX3-HSA-NEXT:    s_addc_u32 s11, s1, 04572; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, s104573; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, s114574; GCNX3-HSA-NEXT:    s_add_u32 s0, s0, 164575; GCNX3-HSA-NEXT:    s_addc_u32 s1, s1, 04576; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(7)4577; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[2:3], v[4:7]4578; GCNX3-HSA-NEXT:    s_nop 04579; GCNX3-HSA-NEXT:    v_mov_b32_e32 v6, s84580; GCNX3-HSA-NEXT:    v_mov_b32_e32 v7, s94581; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(7)4582; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[6:7], v[8:11]4583; GCNX3-HSA-NEXT:    v_mov_b32_e32 v6, s64584; GCNX3-HSA-NEXT:    v_mov_b32_e32 v2, s44585; GCNX3-HSA-NEXT:    v_mov_b32_e32 v5, s34586; GCNX3-HSA-NEXT:    v_mov_b32_e32 v7, s74587; GCNX3-HSA-NEXT:    v_mov_b32_e32 v9, s14588; GCNX3-HSA-NEXT:    v_mov_b32_e32 v3, s54589; GCNX3-HSA-NEXT:    v_mov_b32_e32 v4, s24590; GCNX3-HSA-NEXT:    v_mov_b32_e32 v8, s04591; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(7)4592; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[6:7], v[12:15]4593; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(7)4594; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[4:5], v[16:19]4595; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(7)4596; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[2:3], v[20:23]4597; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(7)4598; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[0:1], v[24:27]4599; GCNX3-HSA-NEXT:    s_waitcnt vmcnt(7)4600; GCNX3-HSA-NEXT:    flat_store_dwordx4 v[8:9], v[28:31]4601; GCNX3-HSA-NEXT:    s_endpgm4602;4603; GCNX3-NOHSA-LABEL: global_load_v32i32:4604; GCNX3-NOHSA:       ; %bb.0:4605; GCNX3-NOHSA-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x244606; GCNX3-NOHSA-NEXT:    s_mov_b32 s7, 0xf0004607; GCNX3-NOHSA-NEXT:    s_mov_b32 s6, -14608; GCNX3-NOHSA-NEXT:    s_mov_b32 s10, s64609; GCNX3-NOHSA-NEXT:    s_mov_b32 s11, s74610; GCNX3-NOHSA-NEXT:    s_waitcnt lgkmcnt(0)4611; GCNX3-NOHSA-NEXT:    s_mov_b32 s8, s24612; GCNX3-NOHSA-NEXT:    s_mov_b32 s9, s34613; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:1124614; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:964615; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:804616; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:644617; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[16:19], off, s[8:11], 0 offset:324618; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[20:23], off, s[8:11], 0 offset:484619; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[24:27], off, s[8:11], 04620; GCNX3-NOHSA-NEXT:    buffer_load_dwordx4 v[28:31], off, s[8:11], 0 offset:164621; GCNX3-NOHSA-NEXT:    s_mov_b32 s4, s04622; GCNX3-NOHSA-NEXT:    s_mov_b32 s5, s14623; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(6)4624; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:964625; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:1124626; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(6)4627; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[12:15], off, s[4:7], 0 offset:644628; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:804629; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(7)4630; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[16:19], off, s[4:7], 0 offset:324631; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(7)4632; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[20:23], off, s[4:7], 0 offset:484633; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(7)4634; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[24:27], off, s[4:7], 04635; GCNX3-NOHSA-NEXT:    s_waitcnt vmcnt(7)4636; GCNX3-NOHSA-NEXT:    buffer_store_dwordx4 v[28:31], off, s[4:7], 0 offset:164637; GCNX3-NOHSA-NEXT:    s_endpgm4638;4639; EG-LABEL: global_load_v32i32:4640; EG:       ; %bb.0:4641; EG-NEXT:    ALU 23, @28, KC0[CB0:0-32], KC1[]4642; EG-NEXT:    TEX 7 @124643; EG-NEXT:    ALU 1, @52, KC0[], KC1[]4644; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T15.X, 04645; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T6.X, 04646; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T5.X, 04647; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T4.X, 04648; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T3.X, 04649; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T2.X, 04650; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T1.X, 04651; EG-NEXT:    MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T0.X, 14652; EG-NEXT:    CF_END4653; EG-NEXT:    Fetch clause starting at 12:4654; EG-NEXT:     VTX_READ_128 T8.XYZW, T7.X, 96, #14655; EG-NEXT:     VTX_READ_128 T9.XYZW, T7.X, 112, #14656; EG-NEXT:     VTX_READ_128 T10.XYZW, T7.X, 64, #14657; EG-NEXT:     VTX_READ_128 T11.XYZW, T7.X, 80, #14658; EG-NEXT:     VTX_READ_128 T12.XYZW, T7.X, 32, #14659; EG-NEXT:     VTX_READ_128 T13.XYZW, T7.X, 48, #14660; EG-NEXT:     VTX_READ_128 T14.XYZW, T7.X, 0, #14661; EG-NEXT:     VTX_READ_128 T7.XYZW, T7.X, 16, #14662; EG-NEXT:    ALU clause starting at 28:4663; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,4664; EG-NEXT:    16(2.242078e-44), 0(0.000000e+00)4665; EG-NEXT:     LSHR T0.X, PV.W, literal.x,4666; EG-NEXT:     LSHR * T1.X, KC0[2].Y, literal.x,4667; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)4668; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,4669; EG-NEXT:    48(6.726233e-44), 0(0.000000e+00)4670; EG-NEXT:     LSHR T2.X, PV.W, literal.x,4671; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4672; EG-NEXT:    2(2.802597e-45), 32(4.484155e-44)4673; EG-NEXT:     LSHR T3.X, PV.W, literal.x,4674; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4675; EG-NEXT:    2(2.802597e-45), 80(1.121039e-43)4676; EG-NEXT:     LSHR T4.X, PV.W, literal.x,4677; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4678; EG-NEXT:    2(2.802597e-45), 64(8.968310e-44)4679; EG-NEXT:     LSHR T5.X, PV.W, literal.x,4680; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.y,4681; EG-NEXT:    2(2.802597e-45), 112(1.569454e-43)4682; EG-NEXT:     LSHR T6.X, PV.W, literal.x,4683; EG-NEXT:     MOV * T7.X, KC0[2].Z,4684; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)4685; EG-NEXT:     ADD_INT * T0.W, KC0[2].Y, literal.x,4686; EG-NEXT:    96(1.345247e-43), 0(0.000000e+00)4687; EG-NEXT:    ALU clause starting at 52:4688; EG-NEXT:     LSHR * T15.X, T0.W, literal.x,4689; EG-NEXT:    2(2.802597e-45), 0(0.000000e+00)4690;4691; GCN-HSA-LABEL: global_load_v32i32:4692; GCN-HSA:       ; %bb.0:4693; GCN-HSA-NEXT:    s_load_dwordx4 s[0:3], s[8:9], 0x04694; GCN-HSA-NEXT:    v_mov_b32_e32 v32, 04695; GCN-HSA-NEXT:    s_waitcnt lgkmcnt(0)4696; GCN-HSA-NEXT:    global_load_dwordx4 v[0:3], v32, s[2:3] offset:964697; GCN-HSA-NEXT:    global_load_dwordx4 v[4:7], v32, s[2:3] offset:1124698; GCN-HSA-NEXT:    global_load_dwordx4 v[8:11], v32, s[2:3] offset:644699; GCN-HSA-NEXT:    global_load_dwordx4 v[12:15], v32, s[2:3] offset:804700; GCN-HSA-NEXT:    global_load_dwordx4 v[16:19], v32, s[2:3] offset:324701; GCN-HSA-NEXT:    global_load_dwordx4 v[20:23], v32, s[2:3] offset:484702; GCN-HSA-NEXT:    global_load_dwordx4 v[24:27], v32, s[2:3]4703; GCN-HSA-NEXT:    global_load_dwordx4 v[28:31], v32, s[2:3] offset:164704; GCN-HSA-NEXT:    s_waitcnt vmcnt(7)4705; GCN-HSA-NEXT:    global_store_dwordx4 v32, v[0:3], s[0:1] offset:964706; GCN-HSA-NEXT:    s_waitcnt vmcnt(7)4707; GCN-HSA-NEXT:    global_store_dwordx4 v32, v[4:7], s[0:1] offset:1124708; GCN-HSA-NEXT:    s_waitcnt vmcnt(7)4709; GCN-HSA-NEXT:    global_store_dwordx4 v32, v[8:11], s[0:1] offset:644710; GCN-HSA-NEXT:    s_waitcnt vmcnt(7)4711; GCN-HSA-NEXT:    global_store_dwordx4 v32, v[12:15], s[0:1] offset:804712; GCN-HSA-NEXT:    s_waitcnt vmcnt(7)4713; GCN-HSA-NEXT:    global_store_dwordx4 v32, v[16:19], s[0:1] offset:324714; GCN-HSA-NEXT:    s_waitcnt vmcnt(7)4715; GCN-HSA-NEXT:    global_store_dwordx4 v32, v[20:23], s[0:1] offset:484716; GCN-HSA-NEXT:    s_waitcnt vmcnt(7)4717; GCN-HSA-NEXT:    global_store_dwordx4 v32, v[24:27], s[0:1]4718; GCN-HSA-NEXT:    s_waitcnt vmcnt(7)4719; GCN-HSA-NEXT:    global_store_dwordx4 v32, v[28:31], s[0:1] offset:164720; GCN-HSA-NEXT:    s_endpgm4721  %ld = load <32 x i32>, ptr addrspace(1) %in4722  store <32 x i32> %ld, ptr addrspace(1) %out4723  ret void4724}4725 4726attributes #0 = { nounwind "amdgpu-flat-work-group-size"="1024,1024" }4727