8858 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn < %s | FileCheck -allow-deprecated-dag-overlap --check-prefix=GCN-NOHSA-SI %s3; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn--amdhsa -mcpu=kaveri < %s | FileCheck -allow-deprecated-dag-overlap --check-prefix=GCN-HSA %s4; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global < %s | FileCheck -allow-deprecated-dag-overlap --check-prefix=GCN-NOHSA-VI %s5; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=r600 -mcpu=redwood < %s | FileCheck -allow-deprecated-dag-overlap --check-prefix=EG %s6; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=r600 -mcpu=cayman < %s | FileCheck -allow-deprecated-dag-overlap --check-prefix=CM %s7 8; FIXME: r600 is broken because the bigger testcases spill and it's not implemented9 10define amdgpu_kernel void @global_load_i16(ptr addrspace(1) %out, ptr addrspace(1) %in) {11; GCN-NOHSA-SI-LABEL: global_load_i16:12; GCN-NOHSA-SI: ; %bb.0: ; %entry13; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x914; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf00015; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -116; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s617; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s718; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)19; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s220; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s321; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 022; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s023; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s124; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)25; GCN-NOHSA-SI-NEXT: buffer_store_short v0, off, s[4:7], 026; GCN-NOHSA-SI-NEXT: s_endpgm27;28; GCN-HSA-LABEL: global_load_i16:29; GCN-HSA: ; %bb.0: ; %entry30; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x031; GCN-HSA-NEXT: s_add_i32 s12, s12, s1732; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s1333; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 834; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)35; GCN-HSA-NEXT: v_mov_b32_e32 v0, s236; GCN-HSA-NEXT: v_mov_b32_e32 v1, s337; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]38; GCN-HSA-NEXT: v_mov_b32_e32 v0, s039; GCN-HSA-NEXT: v_mov_b32_e32 v1, s140; GCN-HSA-NEXT: s_waitcnt vmcnt(0)41; GCN-HSA-NEXT: flat_store_short v[0:1], v242; GCN-HSA-NEXT: s_endpgm43;44; GCN-NOHSA-VI-LABEL: global_load_i16:45; GCN-NOHSA-VI: ; %bb.0: ; %entry46; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x2447; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf00048; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -149; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s650; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s751; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)52; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s253; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s354; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 055; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s056; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s157; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)58; GCN-NOHSA-VI-NEXT: buffer_store_short v0, off, s[4:7], 059; GCN-NOHSA-VI-NEXT: s_endpgm60;61; EG-LABEL: global_load_i16:62; EG: ; %bb.0: ; %entry63; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]64; EG-NEXT: TEX 0 @665; EG-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]66; EG-NEXT: MEM_RAT MSKOR T0.XW, T1.X67; EG-NEXT: CF_END68; EG-NEXT: PAD69; EG-NEXT: Fetch clause starting at 6:70; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #171; EG-NEXT: ALU clause starting at 8:72; EG-NEXT: MOV * T0.X, KC0[2].Z,73; EG-NEXT: ALU clause starting at 9:74; EG-NEXT: AND_INT T0.W, KC0[2].Y, literal.x,75; EG-NEXT: AND_INT * T1.W, T0.X, literal.y,76; EG-NEXT: 3(4.203895e-45), 65535(9.183409e-41)77; EG-NEXT: LSHL * T0.W, PV.W, literal.x,78; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)79; EG-NEXT: LSHL T0.X, T1.W, PV.W,80; EG-NEXT: LSHL * T0.W, literal.x, PV.W,81; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)82; EG-NEXT: MOV T0.Y, 0.0,83; EG-NEXT: MOV * T0.Z, 0.0,84; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,85; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)86;87; CM-LABEL: global_load_i16:88; CM: ; %bb.0: ; %entry89; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]90; CM-NEXT: TEX 0 @691; CM-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]92; CM-NEXT: MEM_RAT MSKOR T0.XW, T1.X93; CM-NEXT: CF_END94; CM-NEXT: PAD95; CM-NEXT: Fetch clause starting at 6:96; CM-NEXT: VTX_READ_16 T0.X, T0.X, 0, #197; CM-NEXT: ALU clause starting at 8:98; CM-NEXT: MOV * T0.X, KC0[2].Z,99; CM-NEXT: ALU clause starting at 9:100; CM-NEXT: AND_INT * T0.W, KC0[2].Y, literal.x,101; CM-NEXT: 3(4.203895e-45), 0(0.000000e+00)102; CM-NEXT: AND_INT T0.Z, T0.X, literal.x,103; CM-NEXT: LSHL * T0.W, PV.W, literal.y,104; CM-NEXT: 65535(9.183409e-41), 3(4.203895e-45)105; CM-NEXT: LSHL T0.X, PV.Z, PV.W,106; CM-NEXT: LSHL * T0.W, literal.x, PV.W,107; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)108; CM-NEXT: MOV T0.Y, 0.0,109; CM-NEXT: MOV * T0.Z, 0.0,110; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,111; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)112entry:113 %ld = load i16, ptr addrspace(1) %in114 store i16 %ld, ptr addrspace(1) %out115 ret void116}117 118define amdgpu_kernel void @global_load_v2i16(ptr addrspace(1) %out, ptr addrspace(1) %in) {119; GCN-NOHSA-SI-LABEL: global_load_v2i16:120; GCN-NOHSA-SI: ; %bb.0: ; %entry121; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9122; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000123; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1124; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6125; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7126; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)127; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2128; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3129; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 0130; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0131; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1132; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)133; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0134; GCN-NOHSA-SI-NEXT: s_endpgm135;136; GCN-HSA-LABEL: global_load_v2i16:137; GCN-HSA: ; %bb.0: ; %entry138; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0139; GCN-HSA-NEXT: s_add_i32 s12, s12, s17140; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13141; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8142; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)143; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2144; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3145; GCN-HSA-NEXT: flat_load_dword v2, v[0:1]146; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0147; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1148; GCN-HSA-NEXT: s_waitcnt vmcnt(0)149; GCN-HSA-NEXT: flat_store_dword v[0:1], v2150; GCN-HSA-NEXT: s_endpgm151;152; GCN-NOHSA-VI-LABEL: global_load_v2i16:153; GCN-NOHSA-VI: ; %bb.0: ; %entry154; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24155; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000156; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1157; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6158; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7159; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)160; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2161; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3162; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 0163; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0164; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1165; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)166; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 0167; GCN-NOHSA-VI-NEXT: s_endpgm168;169; EG-LABEL: global_load_v2i16:170; EG: ; %bb.0: ; %entry171; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]172; EG-NEXT: TEX 0 @6173; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]174; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1175; EG-NEXT: CF_END176; EG-NEXT: PAD177; EG-NEXT: Fetch clause starting at 6:178; EG-NEXT: VTX_READ_32 T0.X, T0.X, 0, #1179; EG-NEXT: ALU clause starting at 8:180; EG-NEXT: MOV * T0.X, KC0[2].Z,181; EG-NEXT: ALU clause starting at 9:182; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,183; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)184;185; CM-LABEL: global_load_v2i16:186; CM: ; %bb.0: ; %entry187; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]188; CM-NEXT: TEX 0 @6189; CM-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]190; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0.X, T1.X191; CM-NEXT: CF_END192; CM-NEXT: PAD193; CM-NEXT: Fetch clause starting at 6:194; CM-NEXT: VTX_READ_32 T0.X, T0.X, 0, #1195; CM-NEXT: ALU clause starting at 8:196; CM-NEXT: MOV * T0.X, KC0[2].Z,197; CM-NEXT: ALU clause starting at 9:198; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,199; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)200entry:201 %ld = load <2 x i16>, ptr addrspace(1) %in202 store <2 x i16> %ld, ptr addrspace(1) %out203 ret void204}205 206define amdgpu_kernel void @global_load_v3i16(ptr addrspace(1) %out, ptr addrspace(1) %in) {207; GCN-NOHSA-SI-LABEL: global_load_v3i16:208; GCN-NOHSA-SI: ; %bb.0: ; %entry209; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9210; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000211; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1212; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6213; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7214; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)215; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2216; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3217; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0218; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0219; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1220; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)221; GCN-NOHSA-SI-NEXT: buffer_store_short v1, off, s[4:7], 0 offset:4222; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0223; GCN-NOHSA-SI-NEXT: s_endpgm224;225; GCN-HSA-LABEL: global_load_v3i16:226; GCN-HSA: ; %bb.0: ; %entry227; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0228; GCN-HSA-NEXT: s_add_i32 s12, s12, s17229; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13230; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8231; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)232; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2233; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3234; GCN-HSA-NEXT: flat_load_dwordx2 v[0:1], v[0:1]235; GCN-HSA-NEXT: s_add_u32 s2, s0, 4236; GCN-HSA-NEXT: s_addc_u32 s3, s1, 0237; GCN-HSA-NEXT: v_mov_b32_e32 v5, s3238; GCN-HSA-NEXT: v_mov_b32_e32 v3, s1239; GCN-HSA-NEXT: v_mov_b32_e32 v4, s2240; GCN-HSA-NEXT: v_mov_b32_e32 v2, s0241; GCN-HSA-NEXT: s_waitcnt vmcnt(0)242; GCN-HSA-NEXT: flat_store_short v[4:5], v1243; GCN-HSA-NEXT: flat_store_dword v[2:3], v0244; GCN-HSA-NEXT: s_endpgm245;246; GCN-NOHSA-VI-LABEL: global_load_v3i16:247; GCN-NOHSA-VI: ; %bb.0: ; %entry248; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24249; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000250; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1251; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6252; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7253; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)254; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2255; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3256; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0257; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0258; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1259; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)260; GCN-NOHSA-VI-NEXT: buffer_store_short v1, off, s[4:7], 0 offset:4261; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 0262; GCN-NOHSA-VI-NEXT: s_endpgm263;264; EG-LABEL: global_load_v3i16:265; EG: ; %bb.0: ; %entry266; EG-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]267; EG-NEXT: TEX 2 @6268; EG-NEXT: ALU 19, @13, KC0[CB0:0-32], KC1[]269; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T6.X, T7.X, 0270; EG-NEXT: MEM_RAT MSKOR T5.XW, T8.X271; EG-NEXT: CF_END272; EG-NEXT: Fetch clause starting at 6:273; EG-NEXT: VTX_READ_16 T6.X, T5.X, 0, #1274; EG-NEXT: VTX_READ_16 T7.X, T5.X, 2, #1275; EG-NEXT: VTX_READ_16 T5.X, T5.X, 4, #1276; EG-NEXT: ALU clause starting at 12:277; EG-NEXT: MOV * T5.X, KC0[2].Z,278; EG-NEXT: ALU clause starting at 13:279; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,280; EG-NEXT: 4(5.605194e-45), 0(0.000000e+00)281; EG-NEXT: AND_INT T1.W, PV.W, literal.x,282; EG-NEXT: AND_INT * T2.W, T5.X, literal.y,283; EG-NEXT: 3(4.203895e-45), 65535(9.183409e-41)284; EG-NEXT: LSHL * T1.W, PV.W, literal.x,285; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)286; EG-NEXT: LSHL T5.X, T2.W, PV.W,287; EG-NEXT: LSHL * T5.W, literal.x, PV.W,288; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)289; EG-NEXT: MOV T5.Y, 0.0,290; EG-NEXT: MOV * T5.Z, 0.0,291; EG-NEXT: LSHR T8.X, T0.W, literal.x,292; EG-NEXT: LSHL T0.W, T7.X, literal.y,293; EG-NEXT: AND_INT * T1.W, T6.X, literal.z,294; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)295; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)296; EG-NEXT: OR_INT T6.X, PV.W, PS,297; EG-NEXT: LSHR * T7.X, KC0[2].Y, literal.x,298; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)299;300; CM-LABEL: global_load_v3i16:301; CM: ; %bb.0: ; %entry302; CM-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]303; CM-NEXT: TEX 2 @6304; CM-NEXT: ALU 19, @13, KC0[CB0:0-32], KC1[]305; CM-NEXT: MEM_RAT MSKOR T5.XW, T8.X306; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T6.X, T7.X307; CM-NEXT: CF_END308; CM-NEXT: Fetch clause starting at 6:309; CM-NEXT: VTX_READ_16 T6.X, T5.X, 0, #1310; CM-NEXT: VTX_READ_16 T7.X, T5.X, 2, #1311; CM-NEXT: VTX_READ_16 T5.X, T5.X, 4, #1312; CM-NEXT: ALU clause starting at 12:313; CM-NEXT: MOV * T5.X, KC0[2].Z,314; CM-NEXT: ALU clause starting at 13:315; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,316; CM-NEXT: 4(5.605194e-45), 0(0.000000e+00)317; CM-NEXT: AND_INT * T1.W, PV.W, literal.x,318; CM-NEXT: 3(4.203895e-45), 0(0.000000e+00)319; CM-NEXT: AND_INT T0.Z, T5.X, literal.x,320; CM-NEXT: LSHL * T1.W, PV.W, literal.y,321; CM-NEXT: 65535(9.183409e-41), 3(4.203895e-45)322; CM-NEXT: LSHL T5.X, PV.Z, PV.W,323; CM-NEXT: LSHL * T5.W, literal.x, PV.W,324; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)325; CM-NEXT: MOV T5.Y, 0.0,326; CM-NEXT: MOV * T5.Z, 0.0,327; CM-NEXT: LSHL T0.Z, T7.X, literal.x,328; CM-NEXT: AND_INT * T1.W, T6.X, literal.y, BS:VEC_120/SCL_212329; CM-NEXT: 16(2.242078e-44), 65535(9.183409e-41)330; CM-NEXT: OR_INT * T6.X, PV.Z, PV.W,331; CM-NEXT: LSHR * T7.X, KC0[2].Y, literal.x,332; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)333; CM-NEXT: LSHR * T8.X, T0.W, literal.x,334; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)335entry:336 %ld = load <3 x i16>, ptr addrspace(1) %in337 store <3 x i16> %ld, ptr addrspace(1) %out338 ret void339}340 341define amdgpu_kernel void @global_load_v4i16(ptr addrspace(1) %out, ptr addrspace(1) %in) {342; GCN-NOHSA-SI-LABEL: global_load_v4i16:343; GCN-NOHSA-SI: ; %bb.0: ; %entry344; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9345; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000346; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1347; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6348; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7349; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)350; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2351; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3352; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0353; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0354; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1355; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)356; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0357; GCN-NOHSA-SI-NEXT: s_endpgm358;359; GCN-HSA-LABEL: global_load_v4i16:360; GCN-HSA: ; %bb.0: ; %entry361; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0362; GCN-HSA-NEXT: s_add_i32 s12, s12, s17363; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13364; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8365; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)366; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2367; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3368; GCN-HSA-NEXT: flat_load_dwordx2 v[0:1], v[0:1]369; GCN-HSA-NEXT: v_mov_b32_e32 v2, s0370; GCN-HSA-NEXT: v_mov_b32_e32 v3, s1371; GCN-HSA-NEXT: s_waitcnt vmcnt(0)372; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]373; GCN-HSA-NEXT: s_endpgm374;375; GCN-NOHSA-VI-LABEL: global_load_v4i16:376; GCN-NOHSA-VI: ; %bb.0: ; %entry377; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24378; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000379; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1380; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6381; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7382; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)383; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2384; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3385; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0386; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0387; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1388; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)389; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0390; GCN-NOHSA-VI-NEXT: s_endpgm391;392; EG-LABEL: global_load_v4i16:393; EG: ; %bb.0: ; %entry394; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]395; EG-NEXT: TEX 0 @6396; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]397; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1398; EG-NEXT: CF_END399; EG-NEXT: PAD400; EG-NEXT: Fetch clause starting at 6:401; EG-NEXT: VTX_READ_64 T0.XY, T0.X, 0, #1402; EG-NEXT: ALU clause starting at 8:403; EG-NEXT: MOV * T0.X, KC0[2].Z,404; EG-NEXT: ALU clause starting at 9:405; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,406; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)407;408; CM-LABEL: global_load_v4i16:409; CM: ; %bb.0: ; %entry410; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]411; CM-NEXT: TEX 0 @6412; CM-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]413; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X414; CM-NEXT: CF_END415; CM-NEXT: PAD416; CM-NEXT: Fetch clause starting at 6:417; CM-NEXT: VTX_READ_64 T0.XY, T0.X, 0, #1418; CM-NEXT: ALU clause starting at 8:419; CM-NEXT: MOV * T0.X, KC0[2].Z,420; CM-NEXT: ALU clause starting at 9:421; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,422; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)423entry:424 %ld = load <4 x i16>, ptr addrspace(1) %in425 store <4 x i16> %ld, ptr addrspace(1) %out426 ret void427}428 429define amdgpu_kernel void @global_load_v8i16(ptr addrspace(1) %out, ptr addrspace(1) %in) {430; GCN-NOHSA-SI-LABEL: global_load_v8i16:431; GCN-NOHSA-SI: ; %bb.0: ; %entry432; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9433; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000434; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1435; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6436; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7437; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)438; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2439; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3440; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0441; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0442; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1443; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)444; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0445; GCN-NOHSA-SI-NEXT: s_endpgm446;447; GCN-HSA-LABEL: global_load_v8i16:448; GCN-HSA: ; %bb.0: ; %entry449; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0450; GCN-HSA-NEXT: s_add_i32 s12, s12, s17451; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13452; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8453; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)454; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2455; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3456; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]457; GCN-HSA-NEXT: v_mov_b32_e32 v4, s0458; GCN-HSA-NEXT: v_mov_b32_e32 v5, s1459; GCN-HSA-NEXT: s_waitcnt vmcnt(0)460; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]461; GCN-HSA-NEXT: s_endpgm462;463; GCN-NOHSA-VI-LABEL: global_load_v8i16:464; GCN-NOHSA-VI: ; %bb.0: ; %entry465; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24466; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000467; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1468; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6469; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7470; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)471; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2472; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3473; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0474; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0475; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1476; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)477; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0478; GCN-NOHSA-VI-NEXT: s_endpgm479;480; EG-LABEL: global_load_v8i16:481; EG: ; %bb.0: ; %entry482; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]483; EG-NEXT: TEX 0 @6484; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]485; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T1.X, 1486; EG-NEXT: CF_END487; EG-NEXT: PAD488; EG-NEXT: Fetch clause starting at 6:489; EG-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1490; EG-NEXT: ALU clause starting at 8:491; EG-NEXT: MOV * T0.X, KC0[2].Z,492; EG-NEXT: ALU clause starting at 9:493; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,494; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)495;496; CM-LABEL: global_load_v8i16:497; CM: ; %bb.0: ; %entry498; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]499; CM-NEXT: TEX 0 @6500; CM-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]501; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X502; CM-NEXT: CF_END503; CM-NEXT: PAD504; CM-NEXT: Fetch clause starting at 6:505; CM-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1506; CM-NEXT: ALU clause starting at 8:507; CM-NEXT: MOV * T0.X, KC0[2].Z,508; CM-NEXT: ALU clause starting at 9:509; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,510; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)511entry:512 %ld = load <8 x i16>, ptr addrspace(1) %in513 store <8 x i16> %ld, ptr addrspace(1) %out514 ret void515}516 517define amdgpu_kernel void @global_load_v16i16(ptr addrspace(1) %out, ptr addrspace(1) %in) {518; GCN-NOHSA-SI-LABEL: global_load_v16i16:519; GCN-NOHSA-SI: ; %bb.0: ; %entry520; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9521; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000522; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1523; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6524; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7525; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)526; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2527; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3528; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:16529; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0530; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0531; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1532; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)533; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:16534; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)535; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 0536; GCN-NOHSA-SI-NEXT: s_endpgm537;538; GCN-HSA-LABEL: global_load_v16i16:539; GCN-HSA: ; %bb.0: ; %entry540; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0541; GCN-HSA-NEXT: s_add_i32 s12, s12, s17542; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8543; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13544; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)545; GCN-HSA-NEXT: s_add_u32 s4, s0, 16546; GCN-HSA-NEXT: v_mov_b32_e32 v5, s3547; GCN-HSA-NEXT: s_addc_u32 s5, s1, 0548; GCN-HSA-NEXT: v_mov_b32_e32 v4, s2549; GCN-HSA-NEXT: s_add_u32 s2, s2, 16550; GCN-HSA-NEXT: s_addc_u32 s3, s3, 0551; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2552; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3553; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]554; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[4:5]555; GCN-HSA-NEXT: v_mov_b32_e32 v11, s5556; GCN-HSA-NEXT: v_mov_b32_e32 v9, s1557; GCN-HSA-NEXT: v_mov_b32_e32 v10, s4558; GCN-HSA-NEXT: v_mov_b32_e32 v8, s0559; GCN-HSA-NEXT: s_waitcnt vmcnt(1)560; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[0:3]561; GCN-HSA-NEXT: s_waitcnt vmcnt(1)562; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[4:7]563; GCN-HSA-NEXT: s_endpgm564;565; GCN-NOHSA-VI-LABEL: global_load_v16i16:566; GCN-NOHSA-VI: ; %bb.0: ; %entry567; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24568; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000569; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1570; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6571; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7572; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)573; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2574; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3575; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:16576; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0577; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0578; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1579; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)580; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:16581; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)582; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 0583; GCN-NOHSA-VI-NEXT: s_endpgm584;585; EG-LABEL: global_load_v16i16:586; EG: ; %bb.0: ; %entry587; EG-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]588; EG-NEXT: TEX 0 @8589; EG-NEXT: ALU 1, @13, KC0[CB0:0-32], KC1[]590; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T2.X, 0591; EG-NEXT: TEX 0 @10592; EG-NEXT: ALU 3, @15, KC0[CB0:0-32], KC1[]593; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T1.X, 1594; EG-NEXT: CF_END595; EG-NEXT: Fetch clause starting at 8:596; EG-NEXT: VTX_READ_128 T1.XYZW, T0.X, 0, #1597; EG-NEXT: Fetch clause starting at 10:598; EG-NEXT: VTX_READ_128 T0.XYZW, T0.X, 16, #1599; EG-NEXT: ALU clause starting at 12:600; EG-NEXT: MOV * T0.X, KC0[2].Z,601; EG-NEXT: ALU clause starting at 13:602; EG-NEXT: LSHR * T2.X, KC0[2].Y, literal.x,603; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)604; EG-NEXT: ALU clause starting at 15:605; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.x,606; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)607; EG-NEXT: LSHR * T1.X, PV.W, literal.x,608; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)609;610; CM-LABEL: global_load_v16i16:611; CM: ; %bb.0: ; %entry612; CM-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]613; CM-NEXT: TEX 0 @8614; CM-NEXT: ALU 1, @13, KC0[CB0:0-32], KC1[]615; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T1, T2.X616; CM-NEXT: TEX 0 @10617; CM-NEXT: ALU 3, @15, KC0[CB0:0-32], KC1[]618; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X619; CM-NEXT: CF_END620; CM-NEXT: Fetch clause starting at 8:621; CM-NEXT: VTX_READ_128 T1.XYZW, T0.X, 0, #1622; CM-NEXT: Fetch clause starting at 10:623; CM-NEXT: VTX_READ_128 T0.XYZW, T0.X, 16, #1624; CM-NEXT: ALU clause starting at 12:625; CM-NEXT: MOV * T0.X, KC0[2].Z,626; CM-NEXT: ALU clause starting at 13:627; CM-NEXT: LSHR * T2.X, KC0[2].Y, literal.x,628; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)629; CM-NEXT: ALU clause starting at 15:630; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.x,631; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)632; CM-NEXT: LSHR * T1.X, PV.W, literal.x,633; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)634entry:635 %ld = load <16 x i16>, ptr addrspace(1) %in636 store <16 x i16> %ld, ptr addrspace(1) %out637 ret void638}639 640define amdgpu_kernel void @global_load_v16i16_align2(ptr addrspace(1) %in, ptr addrspace(1) %out) #0 {641; GCN-NOHSA-SI-LABEL: global_load_v16i16_align2:642; GCN-NOHSA-SI: ; %bb.0: ; %entry643; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x9644; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, 0xf000645; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, -1646; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, s10647; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, s11648; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)649; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s4650; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s5651; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s6652; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s7653; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 0654; GCN-NOHSA-SI-NEXT: buffer_load_ushort v1, off, s[8:11], 0 offset:2655; GCN-NOHSA-SI-NEXT: buffer_load_ushort v4, off, s[8:11], 0 offset:4656; GCN-NOHSA-SI-NEXT: buffer_load_ushort v2, off, s[8:11], 0 offset:6657; GCN-NOHSA-SI-NEXT: buffer_load_ushort v5, off, s[8:11], 0 offset:8658; GCN-NOHSA-SI-NEXT: buffer_load_ushort v3, off, s[8:11], 0 offset:10659; GCN-NOHSA-SI-NEXT: buffer_load_ushort v6, off, s[8:11], 0 offset:12660; GCN-NOHSA-SI-NEXT: buffer_load_ushort v7, off, s[8:11], 0 offset:14661; GCN-NOHSA-SI-NEXT: buffer_load_ushort v8, off, s[8:11], 0 offset:16662; GCN-NOHSA-SI-NEXT: buffer_load_ushort v9, off, s[8:11], 0 offset:18663; GCN-NOHSA-SI-NEXT: buffer_load_ushort v10, off, s[8:11], 0 offset:20664; GCN-NOHSA-SI-NEXT: buffer_load_ushort v11, off, s[8:11], 0 offset:22665; GCN-NOHSA-SI-NEXT: buffer_load_ushort v12, off, s[8:11], 0 offset:24666; GCN-NOHSA-SI-NEXT: buffer_load_ushort v13, off, s[8:11], 0 offset:26667; GCN-NOHSA-SI-NEXT: buffer_load_ushort v14, off, s[8:11], 0 offset:28668; GCN-NOHSA-SI-NEXT: buffer_load_ushort v15, off, s[8:11], 0 offset:30669; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(8)670; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v7, 16, v7671; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v16, 16, v3672; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v17, 16, v2673; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v18, 16, v1674; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)675; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v15, 16, v15676; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v13, 16, v13677; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v11, 16, v11678; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v9, 16, v9679; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v3, v7, v6680; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v2, v16, v5681; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v1, v17, v4682; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v0, v18, v0683; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v7, v15, v14684; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v6, v13, v12685; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v5, v11, v10686; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v4, v9, v8687; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16688; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0689; GCN-NOHSA-SI-NEXT: s_endpgm690;691; GCN-HSA-LABEL: global_load_v16i16_align2:692; GCN-HSA: ; %bb.0: ; %entry693; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0694; GCN-HSA-NEXT: s_add_i32 s12, s12, s17695; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8696; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13697; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)698; GCN-HSA-NEXT: s_add_u32 s4, s2, 16699; GCN-HSA-NEXT: v_mov_b32_e32 v5, s1700; GCN-HSA-NEXT: s_addc_u32 s5, s3, 0701; GCN-HSA-NEXT: v_mov_b32_e32 v4, s0702; GCN-HSA-NEXT: s_add_u32 s0, s0, 16703; GCN-HSA-NEXT: s_addc_u32 s1, s1, 0704; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0705; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1706; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]707; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[4:5]708; GCN-HSA-NEXT: v_mov_b32_e32 v11, s5709; GCN-HSA-NEXT: v_mov_b32_e32 v9, s3710; GCN-HSA-NEXT: v_mov_b32_e32 v10, s4711; GCN-HSA-NEXT: v_mov_b32_e32 v8, s2712; GCN-HSA-NEXT: s_waitcnt vmcnt(1)713; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[0:3]714; GCN-HSA-NEXT: s_waitcnt vmcnt(1)715; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[4:7]716; GCN-HSA-NEXT: s_endpgm717;718; GCN-NOHSA-VI-LABEL: global_load_v16i16_align2:719; GCN-NOHSA-VI: ; %bb.0: ; %entry720; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24721; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000722; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1723; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)724; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0725; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1726; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[4:7], 0 offset:14727; GCN-NOHSA-VI-NEXT: buffer_load_ushort v1, off, s[4:7], 0 offset:10728; GCN-NOHSA-VI-NEXT: buffer_load_ushort v2, off, s[4:7], 0 offset:6729; GCN-NOHSA-VI-NEXT: buffer_load_ushort v3, off, s[4:7], 0 offset:2730; GCN-NOHSA-VI-NEXT: buffer_load_ushort v4, off, s[4:7], 0 offset:30731; GCN-NOHSA-VI-NEXT: buffer_load_ushort v5, off, s[4:7], 0 offset:26732; GCN-NOHSA-VI-NEXT: buffer_load_ushort v6, off, s[4:7], 0 offset:22733; GCN-NOHSA-VI-NEXT: buffer_load_ushort v7, off, s[4:7], 0 offset:18734; GCN-NOHSA-VI-NEXT: buffer_load_ushort v8, off, s[4:7], 0 offset:12735; GCN-NOHSA-VI-NEXT: buffer_load_ushort v9, off, s[4:7], 0 offset:8736; GCN-NOHSA-VI-NEXT: buffer_load_ushort v10, off, s[4:7], 0 offset:4737; GCN-NOHSA-VI-NEXT: buffer_load_ushort v11, off, s[4:7], 0738; GCN-NOHSA-VI-NEXT: buffer_load_ushort v12, off, s[4:7], 0 offset:28739; GCN-NOHSA-VI-NEXT: buffer_load_ushort v13, off, s[4:7], 0 offset:24740; GCN-NOHSA-VI-NEXT: buffer_load_ushort v14, off, s[4:7], 0 offset:20741; GCN-NOHSA-VI-NEXT: buffer_load_ushort v15, off, s[4:7], 0 offset:16742; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s2743; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s3744; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(14)745; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v0, 16, v0746; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v1, 16, v1747; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(13)748; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v16, 16, v2749; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(12)750; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v17, 16, v3751; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(11)752; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v4, 16, v4753; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(10)754; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v5, 16, v5755; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(9)756; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v18, 16, v6757; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(8)758; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v19, 16, v7759; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(7)760; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v3, v8, v0761; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(6)762; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v2, v9, v1763; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(5)764; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v1, v10, v16765; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(4)766; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v0, v11, v17767; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(3)768; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v7, v12, v4769; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(2)770; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v6, v13, v5771; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)772; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v5, v14, v18773; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)774; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v4, v15, v19775; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:16776; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0777; GCN-NOHSA-VI-NEXT: s_endpgm778;779; EG-LABEL: global_load_v16i16_align2:780; EG: ; %bb.0: ; %entry781; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]782; EG-NEXT: TEX 1 @6783; EG-NEXT: ALU 4, @11, KC0[CB0:0-32], KC1[]784; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T3.X, 0785; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T2.X, 1786; EG-NEXT: CF_END787; EG-NEXT: Fetch clause starting at 6:788; EG-NEXT: VTX_READ_128 T1.XYZW, T0.X, 16, #1789; EG-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1790; EG-NEXT: ALU clause starting at 10:791; EG-NEXT: MOV * T0.X, KC0[2].Y,792; EG-NEXT: ALU clause starting at 11:793; EG-NEXT: LSHR T2.X, KC0[2].Z, literal.x,794; EG-NEXT: ADD_INT * T2.W, KC0[2].Z, literal.y,795; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)796; EG-NEXT: LSHR * T3.X, PV.W, literal.x,797; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)798;799; CM-LABEL: global_load_v16i16_align2:800; CM: ; %bb.0: ; %entry801; CM-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]802; CM-NEXT: TEX 1 @6803; CM-NEXT: ALU 5, @11, KC0[CB0:0-32], KC1[]804; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T3.X805; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T1, T2.X806; CM-NEXT: CF_END807; CM-NEXT: Fetch clause starting at 6:808; CM-NEXT: VTX_READ_128 T1.XYZW, T0.X, 16, #1809; CM-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1810; CM-NEXT: ALU clause starting at 10:811; CM-NEXT: MOV * T0.X, KC0[2].Y,812; CM-NEXT: ALU clause starting at 11:813; CM-NEXT: ADD_INT * T2.W, KC0[2].Z, literal.x,814; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)815; CM-NEXT: LSHR * T2.X, PV.W, literal.x,816; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)817; CM-NEXT: LSHR * T3.X, KC0[2].Z, literal.x,818; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)819entry:820 %ld = load <16 x i16>, ptr addrspace(1) %in, align 2821 store <16 x i16> %ld, ptr addrspace(1) %out, align 32822 ret void823}824 825define amdgpu_kernel void @global_zextload_i16_to_i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {826; GCN-NOHSA-SI-LABEL: global_zextload_i16_to_i32:827; GCN-NOHSA-SI: ; %bb.0:828; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9829; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000830; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1831; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6832; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7833; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)834; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2835; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3836; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 0837; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0838; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1839; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)840; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0841; GCN-NOHSA-SI-NEXT: s_endpgm842;843; GCN-HSA-LABEL: global_zextload_i16_to_i32:844; GCN-HSA: ; %bb.0:845; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0846; GCN-HSA-NEXT: s_add_i32 s12, s12, s17847; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13848; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8849; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)850; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2851; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3852; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]853; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0854; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1855; GCN-HSA-NEXT: s_waitcnt vmcnt(0)856; GCN-HSA-NEXT: flat_store_dword v[0:1], v2857; GCN-HSA-NEXT: s_endpgm858;859; GCN-NOHSA-VI-LABEL: global_zextload_i16_to_i32:860; GCN-NOHSA-VI: ; %bb.0:861; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24862; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000863; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1864; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6865; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7866; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)867; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2868; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3869; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 0870; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0871; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1872; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)873; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 0874; GCN-NOHSA-VI-NEXT: s_endpgm875;876; EG-LABEL: global_zextload_i16_to_i32:877; EG: ; %bb.0:878; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]879; EG-NEXT: TEX 0 @6880; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]881; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1882; EG-NEXT: CF_END883; EG-NEXT: PAD884; EG-NEXT: Fetch clause starting at 6:885; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #1886; EG-NEXT: ALU clause starting at 8:887; EG-NEXT: MOV * T0.X, KC0[2].Z,888; EG-NEXT: ALU clause starting at 9:889; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,890; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)891;892; CM-LABEL: global_zextload_i16_to_i32:893; CM: ; %bb.0:894; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]895; CM-NEXT: TEX 0 @6896; CM-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]897; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0.X, T1.X898; CM-NEXT: CF_END899; CM-NEXT: PAD900; CM-NEXT: Fetch clause starting at 6:901; CM-NEXT: VTX_READ_16 T0.X, T0.X, 0, #1902; CM-NEXT: ALU clause starting at 8:903; CM-NEXT: MOV * T0.X, KC0[2].Z,904; CM-NEXT: ALU clause starting at 9:905; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,906; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)907 %a = load i16, ptr addrspace(1) %in908 %ext = zext i16 %a to i32909 store i32 %ext, ptr addrspace(1) %out910 ret void911}912 913define amdgpu_kernel void @global_sextload_i16_to_i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {914; GCN-NOHSA-SI-LABEL: global_sextload_i16_to_i32:915; GCN-NOHSA-SI: ; %bb.0:916; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9917; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000918; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1919; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6920; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7921; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)922; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2923; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3924; GCN-NOHSA-SI-NEXT: buffer_load_sshort v0, off, s[8:11], 0925; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0926; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1927; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)928; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0929; GCN-NOHSA-SI-NEXT: s_endpgm930;931; GCN-HSA-LABEL: global_sextload_i16_to_i32:932; GCN-HSA: ; %bb.0:933; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0934; GCN-HSA-NEXT: s_add_i32 s12, s12, s17935; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13936; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8937; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)938; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2939; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3940; GCN-HSA-NEXT: flat_load_sshort v2, v[0:1]941; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0942; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1943; GCN-HSA-NEXT: s_waitcnt vmcnt(0)944; GCN-HSA-NEXT: flat_store_dword v[0:1], v2945; GCN-HSA-NEXT: s_endpgm946;947; GCN-NOHSA-VI-LABEL: global_sextload_i16_to_i32:948; GCN-NOHSA-VI: ; %bb.0:949; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24950; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000951; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1952; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6953; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7954; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)955; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2956; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3957; GCN-NOHSA-VI-NEXT: buffer_load_sshort v0, off, s[8:11], 0958; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0959; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1960; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)961; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 0962; GCN-NOHSA-VI-NEXT: s_endpgm963;964; EG-LABEL: global_sextload_i16_to_i32:965; EG: ; %bb.0:966; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]967; EG-NEXT: TEX 0 @6968; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]969; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1970; EG-NEXT: CF_END971; EG-NEXT: PAD972; EG-NEXT: Fetch clause starting at 6:973; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #1974; EG-NEXT: ALU clause starting at 8:975; EG-NEXT: MOV * T0.X, KC0[2].Z,976; EG-NEXT: ALU clause starting at 9:977; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,978; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,979; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)980;981; CM-LABEL: global_sextload_i16_to_i32:982; CM: ; %bb.0:983; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]984; CM-NEXT: TEX 0 @6985; CM-NEXT: ALU 3, @9, KC0[CB0:0-32], KC1[]986; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0.X, T1.X987; CM-NEXT: CF_END988; CM-NEXT: PAD989; CM-NEXT: Fetch clause starting at 6:990; CM-NEXT: VTX_READ_16 T0.X, T0.X, 0, #1991; CM-NEXT: ALU clause starting at 8:992; CM-NEXT: MOV * T0.X, KC0[2].Z,993; CM-NEXT: ALU clause starting at 9:994; CM-NEXT: BFE_INT * T0.X, T0.X, 0.0, literal.x,995; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)996; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,997; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)998 %a = load i16, ptr addrspace(1) %in999 %ext = sext i16 %a to i321000 store i32 %ext, ptr addrspace(1) %out1001 ret void1002}1003 1004define amdgpu_kernel void @global_zextload_v1i16_to_v1i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1005; GCN-NOHSA-SI-LABEL: global_zextload_v1i16_to_v1i32:1006; GCN-NOHSA-SI: ; %bb.0:1007; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91008; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001009; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11010; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61011; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71012; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1013; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21014; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31015; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 01016; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01017; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11018; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1019; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 01020; GCN-NOHSA-SI-NEXT: s_endpgm1021;1022; GCN-HSA-LABEL: global_zextload_v1i16_to_v1i32:1023; GCN-HSA: ; %bb.0:1024; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01025; GCN-HSA-NEXT: s_add_i32 s12, s12, s171026; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131027; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81028; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1029; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21030; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31031; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]1032; GCN-HSA-NEXT: v_mov_b32_e32 v0, s01033; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11034; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1035; GCN-HSA-NEXT: flat_store_dword v[0:1], v21036; GCN-HSA-NEXT: s_endpgm1037;1038; GCN-NOHSA-VI-LABEL: global_zextload_v1i16_to_v1i32:1039; GCN-NOHSA-VI: ; %bb.0:1040; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241041; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001042; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11043; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61044; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71045; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1046; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21047; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31048; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 01049; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01050; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11051; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1052; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 01053; GCN-NOHSA-VI-NEXT: s_endpgm1054;1055; EG-LABEL: global_zextload_v1i16_to_v1i32:1056; EG: ; %bb.0:1057; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1058; EG-NEXT: TEX 0 @61059; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]1060; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 11061; EG-NEXT: CF_END1062; EG-NEXT: PAD1063; EG-NEXT: Fetch clause starting at 6:1064; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #11065; EG-NEXT: ALU clause starting at 8:1066; EG-NEXT: MOV * T0.X, KC0[2].Z,1067; EG-NEXT: ALU clause starting at 9:1068; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,1069; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1070;1071; CM-LABEL: global_zextload_v1i16_to_v1i32:1072; CM: ; %bb.0:1073; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1074; CM-NEXT: TEX 0 @61075; CM-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]1076; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0.X, T1.X1077; CM-NEXT: CF_END1078; CM-NEXT: PAD1079; CM-NEXT: Fetch clause starting at 6:1080; CM-NEXT: VTX_READ_16 T0.X, T0.X, 0, #11081; CM-NEXT: ALU clause starting at 8:1082; CM-NEXT: MOV * T0.X, KC0[2].Z,1083; CM-NEXT: ALU clause starting at 9:1084; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,1085; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1086 %load = load <1 x i16>, ptr addrspace(1) %in1087 %ext = zext <1 x i16> %load to <1 x i32>1088 store <1 x i32> %ext, ptr addrspace(1) %out1089 ret void1090}1091 1092define amdgpu_kernel void @global_sextload_v1i16_to_v1i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1093; GCN-NOHSA-SI-LABEL: global_sextload_v1i16_to_v1i32:1094; GCN-NOHSA-SI: ; %bb.0:1095; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91096; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001097; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11098; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61099; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71100; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1101; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21102; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31103; GCN-NOHSA-SI-NEXT: buffer_load_sshort v0, off, s[8:11], 01104; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01105; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11106; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1107; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 01108; GCN-NOHSA-SI-NEXT: s_endpgm1109;1110; GCN-HSA-LABEL: global_sextload_v1i16_to_v1i32:1111; GCN-HSA: ; %bb.0:1112; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01113; GCN-HSA-NEXT: s_add_i32 s12, s12, s171114; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131115; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81116; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1117; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21118; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31119; GCN-HSA-NEXT: flat_load_sshort v2, v[0:1]1120; GCN-HSA-NEXT: v_mov_b32_e32 v0, s01121; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11122; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1123; GCN-HSA-NEXT: flat_store_dword v[0:1], v21124; GCN-HSA-NEXT: s_endpgm1125;1126; GCN-NOHSA-VI-LABEL: global_sextload_v1i16_to_v1i32:1127; GCN-NOHSA-VI: ; %bb.0:1128; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241129; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001130; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11131; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61132; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71133; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1134; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21135; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31136; GCN-NOHSA-VI-NEXT: buffer_load_sshort v0, off, s[8:11], 01137; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01138; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11139; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1140; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 01141; GCN-NOHSA-VI-NEXT: s_endpgm1142;1143; EG-LABEL: global_sextload_v1i16_to_v1i32:1144; EG: ; %bb.0:1145; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1146; EG-NEXT: TEX 0 @61147; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]1148; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 11149; EG-NEXT: CF_END1150; EG-NEXT: PAD1151; EG-NEXT: Fetch clause starting at 6:1152; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #11153; EG-NEXT: ALU clause starting at 8:1154; EG-NEXT: MOV * T0.X, KC0[2].Z,1155; EG-NEXT: ALU clause starting at 9:1156; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,1157; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,1158; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)1159;1160; CM-LABEL: global_sextload_v1i16_to_v1i32:1161; CM: ; %bb.0:1162; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1163; CM-NEXT: TEX 0 @61164; CM-NEXT: ALU 3, @9, KC0[CB0:0-32], KC1[]1165; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0.X, T1.X1166; CM-NEXT: CF_END1167; CM-NEXT: PAD1168; CM-NEXT: Fetch clause starting at 6:1169; CM-NEXT: VTX_READ_16 T0.X, T0.X, 0, #11170; CM-NEXT: ALU clause starting at 8:1171; CM-NEXT: MOV * T0.X, KC0[2].Z,1172; CM-NEXT: ALU clause starting at 9:1173; CM-NEXT: BFE_INT * T0.X, T0.X, 0.0, literal.x,1174; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1175; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,1176; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1177 %load = load <1 x i16>, ptr addrspace(1) %in1178 %ext = sext <1 x i16> %load to <1 x i32>1179 store <1 x i32> %ext, ptr addrspace(1) %out1180 ret void1181}1182 1183define amdgpu_kernel void @global_zextload_v2i16_to_v2i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1184; GCN-NOHSA-SI-LABEL: global_zextload_v2i16_to_v2i32:1185; GCN-NOHSA-SI: ; %bb.0:1186; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91187; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001188; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11189; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61190; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71191; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1192; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21193; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31194; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 01195; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01196; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11197; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1198; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v1, 16, v01199; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v01200; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 01201; GCN-NOHSA-SI-NEXT: s_endpgm1202;1203; GCN-HSA-LABEL: global_zextload_v2i16_to_v2i32:1204; GCN-HSA: ; %bb.0:1205; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01206; GCN-HSA-NEXT: s_add_i32 s12, s12, s171207; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131208; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81209; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1210; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21211; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31212; GCN-HSA-NEXT: flat_load_dword v2, v[0:1]1213; GCN-HSA-NEXT: v_mov_b32_e32 v0, s01214; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11215; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1216; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 16, v21217; GCN-HSA-NEXT: v_and_b32_e32 v2, 0xffff, v21218; GCN-HSA-NEXT: flat_store_dwordx2 v[0:1], v[2:3]1219; GCN-HSA-NEXT: s_endpgm1220;1221; GCN-NOHSA-VI-LABEL: global_zextload_v2i16_to_v2i32:1222; GCN-NOHSA-VI: ; %bb.0:1223; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241224; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001225; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11226; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61227; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71228; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1229; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21230; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31231; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 01232; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01233; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11234; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1235; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v01236; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v01237; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 01238; GCN-NOHSA-VI-NEXT: s_endpgm1239;1240; EG-LABEL: global_zextload_v2i16_to_v2i32:1241; EG: ; %bb.0:1242; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1243; EG-NEXT: TEX 0 @61244; EG-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]1245; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XY, T5.X, 11246; EG-NEXT: CF_END1247; EG-NEXT: PAD1248; EG-NEXT: Fetch clause starting at 6:1249; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11250; EG-NEXT: ALU clause starting at 8:1251; EG-NEXT: MOV * T4.X, KC0[2].Z,1252; EG-NEXT: ALU clause starting at 9:1253; EG-NEXT: LSHR * T4.Y, T4.X, literal.x,1254; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1255; EG-NEXT: AND_INT T4.X, T4.X, literal.x,1256; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.y,1257; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)1258;1259; CM-LABEL: global_zextload_v2i16_to_v2i32:1260; CM: ; %bb.0:1261; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1262; CM-NEXT: TEX 0 @61263; CM-NEXT: ALU 5, @9, KC0[CB0:0-32], KC1[]1264; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T4, T5.X1265; CM-NEXT: CF_END1266; CM-NEXT: PAD1267; CM-NEXT: Fetch clause starting at 6:1268; CM-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11269; CM-NEXT: ALU clause starting at 8:1270; CM-NEXT: MOV * T4.X, KC0[2].Z,1271; CM-NEXT: ALU clause starting at 9:1272; CM-NEXT: LSHR * T4.Y, T4.X, literal.x,1273; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1274; CM-NEXT: AND_INT * T4.X, T4.X, literal.x,1275; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)1276; CM-NEXT: LSHR * T5.X, KC0[2].Y, literal.x,1277; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1278 %load = load <2 x i16>, ptr addrspace(1) %in1279 %ext = zext <2 x i16> %load to <2 x i32>1280 store <2 x i32> %ext, ptr addrspace(1) %out1281 ret void1282}1283 1284; TODO: This should use ASHR instead of LSHR + BFE1285define amdgpu_kernel void @global_sextload_v2i16_to_v2i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1286; GCN-NOHSA-SI-LABEL: global_sextload_v2i16_to_v2i32:1287; GCN-NOHSA-SI: ; %bb.0:1288; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91289; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001290; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11291; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61292; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71293; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1294; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21295; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31296; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 01297; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01298; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11299; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1300; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 16, v01301; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 161302; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 01303; GCN-NOHSA-SI-NEXT: s_endpgm1304;1305; GCN-HSA-LABEL: global_sextload_v2i16_to_v2i32:1306; GCN-HSA: ; %bb.0:1307; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01308; GCN-HSA-NEXT: s_add_i32 s12, s12, s171309; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131310; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81311; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1312; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21313; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31314; GCN-HSA-NEXT: flat_load_dword v2, v[0:1]1315; GCN-HSA-NEXT: v_mov_b32_e32 v0, s01316; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11317; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1318; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 16, v21319; GCN-HSA-NEXT: v_bfe_i32 v2, v2, 0, 161320; GCN-HSA-NEXT: flat_store_dwordx2 v[0:1], v[2:3]1321; GCN-HSA-NEXT: s_endpgm1322;1323; GCN-NOHSA-VI-LABEL: global_sextload_v2i16_to_v2i32:1324; GCN-NOHSA-VI: ; %bb.0:1325; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241326; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001327; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11328; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61329; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71330; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1331; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21332; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31333; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 01334; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01335; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11336; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1337; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 16, v01338; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 161339; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 01340; GCN-NOHSA-VI-NEXT: s_endpgm1341;1342; EG-LABEL: global_sextload_v2i16_to_v2i32:1343; EG: ; %bb.0:1344; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1345; EG-NEXT: TEX 0 @61346; EG-NEXT: ALU 5, @9, KC0[CB0:0-32], KC1[]1347; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XY, T4.X, 11348; EG-NEXT: CF_END1349; EG-NEXT: PAD1350; EG-NEXT: Fetch clause starting at 6:1351; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11352; EG-NEXT: ALU clause starting at 8:1353; EG-NEXT: MOV * T4.X, KC0[2].Z,1354; EG-NEXT: ALU clause starting at 9:1355; EG-NEXT: BFE_INT T5.X, T4.X, 0.0, literal.x,1356; EG-NEXT: LSHR T0.W, T4.X, literal.x,1357; EG-NEXT: LSHR * T4.X, KC0[2].Y, literal.y,1358; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)1359; EG-NEXT: BFE_INT * T5.Y, PV.W, 0.0, literal.x,1360; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1361;1362; CM-LABEL: global_sextload_v2i16_to_v2i32:1363; CM: ; %bb.0:1364; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1365; CM-NEXT: TEX 0 @61366; CM-NEXT: ALU 5, @9, KC0[CB0:0-32], KC1[]1367; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5, T4.X1368; CM-NEXT: CF_END1369; CM-NEXT: PAD1370; CM-NEXT: Fetch clause starting at 6:1371; CM-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11372; CM-NEXT: ALU clause starting at 8:1373; CM-NEXT: MOV * T4.X, KC0[2].Z,1374; CM-NEXT: ALU clause starting at 9:1375; CM-NEXT: BFE_INT T5.X, T4.X, 0.0, literal.x,1376; CM-NEXT: LSHR * T0.W, T4.X, literal.x,1377; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1378; CM-NEXT: LSHR T4.X, KC0[2].Y, literal.x,1379; CM-NEXT: BFE_INT * T5.Y, PV.W, 0.0, literal.y,1380; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)1381 %load = load <2 x i16>, ptr addrspace(1) %in1382 %ext = sext <2 x i16> %load to <2 x i32>1383 store <2 x i32> %ext, ptr addrspace(1) %out1384 ret void1385}1386 1387define amdgpu_kernel void @global_zextload_v3i16_to_v3i32(ptr addrspace(1) %out, ptr addrspace(1) %in) {1388; GCN-NOHSA-SI-LABEL: global_zextload_v3i16_to_v3i32:1389; GCN-NOHSA-SI: ; %bb.0: ; %entry1390; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91391; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001392; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11393; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61394; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71395; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1396; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21397; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31398; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 01399; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01400; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11401; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1402; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v3, 16, v01403; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v2, 0xffff, v01404; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v11405; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0 offset:81406; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[2:3], off, s[4:7], 01407; GCN-NOHSA-SI-NEXT: s_endpgm1408;1409; GCN-HSA-LABEL: global_zextload_v3i16_to_v3i32:1410; GCN-HSA: ; %bb.0: ; %entry1411; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01412; GCN-HSA-NEXT: s_add_i32 s12, s12, s171413; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131414; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81415; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1416; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21417; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31418; GCN-HSA-NEXT: flat_load_dwordx2 v[3:4], v[0:1]1419; GCN-HSA-NEXT: v_mov_b32_e32 v5, s01420; GCN-HSA-NEXT: v_mov_b32_e32 v6, s11421; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1422; GCN-HSA-NEXT: v_lshrrev_b32_e32 v1, 16, v31423; GCN-HSA-NEXT: v_and_b32_e32 v2, 0xffff, v41424; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xffff, v31425; GCN-HSA-NEXT: flat_store_dwordx3 v[5:6], v[0:2]1426; GCN-HSA-NEXT: s_endpgm1427;1428; GCN-NOHSA-VI-LABEL: global_zextload_v3i16_to_v3i32:1429; GCN-NOHSA-VI: ; %bb.0: ; %entry1430; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241431; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001432; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11433; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61434; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71435; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1436; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21437; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31438; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 01439; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01440; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11441; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1442; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v2, 0xffff, v11443; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v01444; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v01445; GCN-NOHSA-VI-NEXT: buffer_store_dwordx3 v[0:2], off, s[4:7], 01446; GCN-NOHSA-VI-NEXT: s_endpgm1447;1448; EG-LABEL: global_zextload_v3i16_to_v3i32:1449; EG: ; %bb.0: ; %entry1450; EG-NEXT: ALU 4, @12, KC0[CB0:0-32], KC1[]1451; EG-NEXT: TEX 2 @61452; EG-NEXT: ALU 2, @17, KC0[], KC1[]1453; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T2.X, T4.X, 01454; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T3.XY, T0.X, 11455; EG-NEXT: CF_END1456; EG-NEXT: Fetch clause starting at 6:1457; EG-NEXT: VTX_READ_16 T2.X, T1.X, 4, #11458; EG-NEXT: VTX_READ_16 T3.X, T1.X, 0, #11459; EG-NEXT: VTX_READ_16 T1.X, T1.X, 2, #11460; EG-NEXT: ALU clause starting at 12:1461; EG-NEXT: LSHR T0.X, KC0[2].Y, literal.x,1462; EG-NEXT: MOV * T1.X, KC0[2].Z,1463; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1464; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,1465; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1466; EG-NEXT: ALU clause starting at 17:1467; EG-NEXT: LSHR T4.X, T0.W, literal.x,1468; EG-NEXT: MOV * T3.Y, T1.X,1469; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1470;1471; CM-LABEL: global_zextload_v3i16_to_v3i32:1472; CM: ; %bb.0: ; %entry1473; CM-NEXT: ALU 4, @12, KC0[CB0:0-32], KC1[]1474; CM-NEXT: TEX 2 @61475; CM-NEXT: ALU 2, @17, KC0[CB0:0-32], KC1[]1476; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T3, T4.X1477; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T2.X, T0.X1478; CM-NEXT: CF_END1479; CM-NEXT: Fetch clause starting at 6:1480; CM-NEXT: VTX_READ_16 T2.X, T1.X, 4, #11481; CM-NEXT: VTX_READ_16 T3.X, T1.X, 0, #11482; CM-NEXT: VTX_READ_16 T1.X, T1.X, 2, #11483; CM-NEXT: ALU clause starting at 12:1484; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,1485; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)1486; CM-NEXT: LSHR * T0.X, PV.W, literal.x,1487; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1488; CM-NEXT: MOV * T1.X, KC0[2].Z,1489; CM-NEXT: ALU clause starting at 17:1490; CM-NEXT: LSHR T4.X, KC0[2].Y, literal.x,1491; CM-NEXT: MOV * T3.Y, T1.X,1492; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1493entry:1494 %ld = load <3 x i16>, ptr addrspace(1) %in1495 %ext = zext <3 x i16> %ld to <3 x i32>1496 store <3 x i32> %ext, ptr addrspace(1) %out1497 ret void1498}1499 1500define amdgpu_kernel void @global_sextload_v3i16_to_v3i32(ptr addrspace(1) %out, ptr addrspace(1) %in) {1501; GCN-NOHSA-SI-LABEL: global_sextload_v3i16_to_v3i32:1502; GCN-NOHSA-SI: ; %bb.0: ; %entry1503; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91504; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001505; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11506; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61507; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71508; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1509; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21510; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31511; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 01512; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01513; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11514; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1515; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 16, v01516; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v0, 0, 161517; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v1, 0, 161518; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0 offset:81519; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[2:3], off, s[4:7], 01520; GCN-NOHSA-SI-NEXT: s_endpgm1521;1522; GCN-HSA-LABEL: global_sextload_v3i16_to_v3i32:1523; GCN-HSA: ; %bb.0: ; %entry1524; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01525; GCN-HSA-NEXT: s_add_i32 s12, s12, s171526; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131527; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81528; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1529; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21530; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31531; GCN-HSA-NEXT: flat_load_dwordx2 v[3:4], v[0:1]1532; GCN-HSA-NEXT: v_mov_b32_e32 v5, s01533; GCN-HSA-NEXT: v_mov_b32_e32 v6, s11534; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1535; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 16, v31536; GCN-HSA-NEXT: v_bfe_i32 v2, v4, 0, 161537; GCN-HSA-NEXT: v_bfe_i32 v0, v3, 0, 161538; GCN-HSA-NEXT: flat_store_dwordx3 v[5:6], v[0:2]1539; GCN-HSA-NEXT: s_endpgm1540;1541; GCN-NOHSA-VI-LABEL: global_sextload_v3i16_to_v3i32:1542; GCN-NOHSA-VI: ; %bb.0: ; %entry1543; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241544; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001545; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11546; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61547; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71548; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1549; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21550; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31551; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[3:4], off, s[8:11], 01552; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01553; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11554; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1555; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 16, v31556; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v4, 0, 161557; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v3, 0, 161558; GCN-NOHSA-VI-NEXT: buffer_store_dwordx3 v[0:2], off, s[4:7], 01559; GCN-NOHSA-VI-NEXT: s_endpgm1560;1561; EG-LABEL: global_sextload_v3i16_to_v3i32:1562; EG: ; %bb.0: ; %entry1563; EG-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]1564; EG-NEXT: TEX 2 @61565; EG-NEXT: ALU 9, @13, KC0[CB0:0-32], KC1[]1566; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T2.X, T3.X, 01567; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 11568; EG-NEXT: CF_END1569; EG-NEXT: Fetch clause starting at 6:1570; EG-NEXT: VTX_READ_16 T1.X, T0.X, 2, #11571; EG-NEXT: VTX_READ_16 T2.X, T0.X, 4, #11572; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #11573; EG-NEXT: ALU clause starting at 12:1574; EG-NEXT: MOV * T0.X, KC0[2].Z,1575; EG-NEXT: ALU clause starting at 13:1576; EG-NEXT: BFE_INT * T0.Y, T1.X, 0.0, literal.x,1577; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1578; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,1579; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,1580; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)1581; EG-NEXT: BFE_INT T2.X, T2.X, 0.0, literal.x,1582; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,1583; EG-NEXT: 16(2.242078e-44), 8(1.121039e-44)1584; EG-NEXT: LSHR * T3.X, PV.W, literal.x,1585; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1586;1587; CM-LABEL: global_sextload_v3i16_to_v3i32:1588; CM: ; %bb.0: ; %entry1589; CM-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]1590; CM-NEXT: TEX 2 @61591; CM-NEXT: ALU 9, @13, KC0[CB0:0-32], KC1[]1592; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T2.X1593; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T1.X, T3.X1594; CM-NEXT: CF_END1595; CM-NEXT: Fetch clause starting at 6:1596; CM-NEXT: VTX_READ_16 T1.X, T0.X, 4, #11597; CM-NEXT: VTX_READ_16 T2.X, T0.X, 0, #11598; CM-NEXT: VTX_READ_16 T0.X, T0.X, 2, #11599; CM-NEXT: ALU clause starting at 12:1600; CM-NEXT: MOV * T0.X, KC0[2].Z,1601; CM-NEXT: ALU clause starting at 13:1602; CM-NEXT: BFE_INT T1.X, T1.X, 0.0, literal.x,1603; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,1604; CM-NEXT: 16(2.242078e-44), 8(1.121039e-44)1605; CM-NEXT: LSHR T3.X, PV.W, literal.x,1606; CM-NEXT: BFE_INT * T0.Y, T0.X, 0.0, literal.y,1607; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)1608; CM-NEXT: BFE_INT * T0.X, T2.X, 0.0, literal.x,1609; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1610; CM-NEXT: LSHR * T2.X, KC0[2].Y, literal.x,1611; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1612entry:1613 %ld = load <3 x i16>, ptr addrspace(1) %in1614 %ext = sext <3 x i16> %ld to <3 x i32>1615 store <3 x i32> %ext, ptr addrspace(1) %out1616 ret void1617}1618 1619; TODO: This should use DST, but for some there are redundant MOVs1620define amdgpu_kernel void @global_zextload_v4i16_to_v4i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1621; GCN-NOHSA-SI-LABEL: global_zextload_v4i16_to_v4i32:1622; GCN-NOHSA-SI: ; %bb.0:1623; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91624; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001625; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11626; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61627; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71628; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1629; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21630; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31631; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[4:5], off, s[8:11], 01632; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01633; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11634; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1635; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v3, 16, v51636; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v1, 16, v41637; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v2, 0xffff, v51638; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v41639; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01640; GCN-NOHSA-SI-NEXT: s_endpgm1641;1642; GCN-HSA-LABEL: global_zextload_v4i16_to_v4i32:1643; GCN-HSA: ; %bb.0:1644; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01645; GCN-HSA-NEXT: s_add_i32 s12, s12, s171646; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131647; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81648; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1649; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21650; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31651; GCN-HSA-NEXT: flat_load_dwordx2 v[4:5], v[0:1]1652; GCN-HSA-NEXT: v_mov_b32_e32 v6, s01653; GCN-HSA-NEXT: v_mov_b32_e32 v7, s11654; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1655; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 16, v51656; GCN-HSA-NEXT: v_lshrrev_b32_e32 v1, 16, v41657; GCN-HSA-NEXT: v_and_b32_e32 v2, 0xffff, v51658; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xffff, v41659; GCN-HSA-NEXT: flat_store_dwordx4 v[6:7], v[0:3]1660; GCN-HSA-NEXT: s_endpgm1661;1662; GCN-NOHSA-VI-LABEL: global_zextload_v4i16_to_v4i32:1663; GCN-NOHSA-VI: ; %bb.0:1664; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241665; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001666; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11667; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61668; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71669; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1670; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21671; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31672; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 01673; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01674; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11675; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1676; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 16, v11677; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v2, 0xffff, v11678; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v01679; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v01680; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01681; GCN-NOHSA-VI-NEXT: s_endpgm1682;1683; EG-LABEL: global_zextload_v4i16_to_v4i32:1684; EG: ; %bb.0:1685; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1686; EG-NEXT: TEX 0 @61687; EG-NEXT: ALU 8, @9, KC0[CB0:0-32], KC1[]1688; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T6.X, 11689; EG-NEXT: CF_END1690; EG-NEXT: PAD1691; EG-NEXT: Fetch clause starting at 6:1692; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #11693; EG-NEXT: ALU clause starting at 8:1694; EG-NEXT: MOV * T5.X, KC0[2].Z,1695; EG-NEXT: ALU clause starting at 9:1696; EG-NEXT: LSHR * T5.W, T5.Y, literal.x,1697; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1698; EG-NEXT: AND_INT * T5.Z, T5.Y, literal.x,1699; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)1700; EG-NEXT: LSHR * T5.Y, T5.X, literal.x,1701; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1702; EG-NEXT: AND_INT T5.X, T5.X, literal.x,1703; EG-NEXT: LSHR * T6.X, KC0[2].Y, literal.y,1704; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)1705;1706; CM-LABEL: global_zextload_v4i16_to_v4i32:1707; CM: ; %bb.0:1708; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1709; CM-NEXT: TEX 0 @61710; CM-NEXT: ALU 9, @9, KC0[CB0:0-32], KC1[]1711; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5, T6.X1712; CM-NEXT: CF_END1713; CM-NEXT: PAD1714; CM-NEXT: Fetch clause starting at 6:1715; CM-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #11716; CM-NEXT: ALU clause starting at 8:1717; CM-NEXT: MOV * T5.X, KC0[2].Z,1718; CM-NEXT: ALU clause starting at 9:1719; CM-NEXT: LSHR * T5.W, T5.Y, literal.x,1720; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1721; CM-NEXT: AND_INT * T5.Z, T5.Y, literal.x,1722; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)1723; CM-NEXT: LSHR * T5.Y, T5.X, literal.x,1724; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1725; CM-NEXT: AND_INT * T5.X, T5.X, literal.x,1726; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)1727; CM-NEXT: LSHR * T6.X, KC0[2].Y, literal.x,1728; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1729 %load = load <4 x i16>, ptr addrspace(1) %in1730 %ext = zext <4 x i16> %load to <4 x i32>1731 store <4 x i32> %ext, ptr addrspace(1) %out1732 ret void1733}1734 1735; TODO: We should use ASHR instead of LSHR + BFE1736; TODO: This should use DST, but for some there are redundant MOVs1737define amdgpu_kernel void @global_sextload_v4i16_to_v4i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1738; GCN-NOHSA-SI-LABEL: global_sextload_v4i16_to_v4i32:1739; GCN-NOHSA-SI: ; %bb.0:1740; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91741; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001742; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11743; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61744; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71745; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1746; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21747; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31748; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[4:5], off, s[8:11], 01749; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01750; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11751; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1752; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 16, v51753; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 16, v41754; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v5, 0, 161755; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v4, 0, 161756; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01757; GCN-NOHSA-SI-NEXT: s_endpgm1758;1759; GCN-HSA-LABEL: global_sextload_v4i16_to_v4i32:1760; GCN-HSA: ; %bb.0:1761; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01762; GCN-HSA-NEXT: s_add_i32 s12, s12, s171763; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131764; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81765; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1766; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21767; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31768; GCN-HSA-NEXT: flat_load_dwordx2 v[4:5], v[0:1]1769; GCN-HSA-NEXT: v_mov_b32_e32 v6, s01770; GCN-HSA-NEXT: v_mov_b32_e32 v7, s11771; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1772; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 16, v51773; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 16, v41774; GCN-HSA-NEXT: v_bfe_i32 v2, v5, 0, 161775; GCN-HSA-NEXT: v_bfe_i32 v0, v4, 0, 161776; GCN-HSA-NEXT: flat_store_dwordx4 v[6:7], v[0:3]1777; GCN-HSA-NEXT: s_endpgm1778;1779; GCN-NOHSA-VI-LABEL: global_sextload_v4i16_to_v4i32:1780; GCN-NOHSA-VI: ; %bb.0:1781; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241782; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001783; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11784; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61785; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71786; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1787; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21788; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31789; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[4:5], off, s[8:11], 01790; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01791; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11792; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1793; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 16, v51794; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 16, v41795; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v5, 0, 161796; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v4, 0, 161797; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01798; GCN-NOHSA-VI-NEXT: s_endpgm1799;1800; EG-LABEL: global_sextload_v4i16_to_v4i32:1801; EG: ; %bb.0:1802; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1803; EG-NEXT: TEX 0 @61804; EG-NEXT: ALU 10, @9, KC0[CB0:0-32], KC1[]1805; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T5.X, 11806; EG-NEXT: CF_END1807; EG-NEXT: PAD1808; EG-NEXT: Fetch clause starting at 6:1809; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #11810; EG-NEXT: ALU clause starting at 8:1811; EG-NEXT: MOV * T5.X, KC0[2].Z,1812; EG-NEXT: ALU clause starting at 9:1813; EG-NEXT: BFE_INT * T6.Z, T5.Y, 0.0, literal.x,1814; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1815; EG-NEXT: BFE_INT T6.X, T5.X, 0.0, literal.x,1816; EG-NEXT: LSHR * T0.W, T5.Y, literal.x,1817; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1818; EG-NEXT: BFE_INT T6.W, PV.W, 0.0, literal.x,1819; EG-NEXT: LSHR * T0.W, T5.X, literal.x,1820; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1821; EG-NEXT: LSHR T5.X, KC0[2].Y, literal.x,1822; EG-NEXT: BFE_INT * T6.Y, PS, 0.0, literal.y,1823; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)1824;1825; CM-LABEL: global_sextload_v4i16_to_v4i32:1826; CM: ; %bb.0:1827; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1828; CM-NEXT: TEX 0 @61829; CM-NEXT: ALU 10, @9, KC0[CB0:0-32], KC1[]1830; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T6, T5.X1831; CM-NEXT: CF_END1832; CM-NEXT: PAD1833; CM-NEXT: Fetch clause starting at 6:1834; CM-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #11835; CM-NEXT: ALU clause starting at 8:1836; CM-NEXT: MOV * T5.X, KC0[2].Z,1837; CM-NEXT: ALU clause starting at 9:1838; CM-NEXT: BFE_INT * T6.Z, T5.Y, 0.0, literal.x,1839; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1840; CM-NEXT: BFE_INT T6.X, T5.X, 0.0, literal.x,1841; CM-NEXT: LSHR * T0.W, T5.Y, literal.x,1842; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1843; CM-NEXT: LSHR T0.Z, T5.X, literal.x,1844; CM-NEXT: BFE_INT * T6.W, PV.W, 0.0, literal.x,1845; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1846; CM-NEXT: LSHR T5.X, KC0[2].Y, literal.x,1847; CM-NEXT: BFE_INT * T6.Y, PV.Z, 0.0, literal.y,1848; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)1849 %load = load <4 x i16>, ptr addrspace(1) %in1850 %ext = sext <4 x i16> %load to <4 x i32>1851 store <4 x i32> %ext, ptr addrspace(1) %out1852 ret void1853}1854 1855; TODO: These should use LSHR instead of BFE_UINT1856define amdgpu_kernel void @global_zextload_v8i16_to_v8i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1857; GCN-NOHSA-SI-LABEL: global_zextload_v8i16_to_v8i32:1858; GCN-NOHSA-SI: ; %bb.0:1859; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91860; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001861; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11862; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61863; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71864; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1865; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21866; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31867; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 01868; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01869; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11870; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1871; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v7, 16, v11872; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v5, 16, v01873; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v11, 16, v31874; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v9, 16, v21875; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v6, 0xffff, v11876; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xffff, v01877; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v10, 0xffff, v31878; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v8, 0xffff, v21879; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:161880; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 01881; GCN-NOHSA-SI-NEXT: s_endpgm1882;1883; GCN-HSA-LABEL: global_zextload_v8i16_to_v8i32:1884; GCN-HSA: ; %bb.0:1885; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01886; GCN-HSA-NEXT: s_add_i32 s12, s12, s171887; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131888; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81889; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1890; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21891; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31892; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]1893; GCN-HSA-NEXT: s_add_u32 s2, s0, 161894; GCN-HSA-NEXT: s_addc_u32 s3, s1, 01895; GCN-HSA-NEXT: v_mov_b32_e32 v15, s31896; GCN-HSA-NEXT: v_mov_b32_e32 v13, s11897; GCN-HSA-NEXT: v_mov_b32_e32 v14, s21898; GCN-HSA-NEXT: v_mov_b32_e32 v12, s01899; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1900; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 16, v31901; GCN-HSA-NEXT: v_lshrrev_b32_e32 v9, 16, v21902; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xffff, v31903; GCN-HSA-NEXT: v_and_b32_e32 v8, 0xffff, v21904; GCN-HSA-NEXT: v_lshrrev_b32_e32 v7, 16, v11905; GCN-HSA-NEXT: v_lshrrev_b32_e32 v5, 16, v01906; GCN-HSA-NEXT: v_and_b32_e32 v6, 0xffff, v11907; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xffff, v01908; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[8:11]1909; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[4:7]1910; GCN-HSA-NEXT: s_endpgm1911;1912; GCN-NOHSA-VI-LABEL: global_zextload_v8i16_to_v8i32:1913; GCN-NOHSA-VI: ; %bb.0:1914; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241915; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001916; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11917; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61918; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71919; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1920; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21921; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31922; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 01923; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01924; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11925; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1926; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v11, 16, v31927; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v10, 0xffff, v31928; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v9, 16, v21929; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v8, 0xffff, v21930; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v7, 16, v11931; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v6, 0xffff, v11932; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v5, 16, v01933; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xffff, v01934; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:161935; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 01936; GCN-NOHSA-VI-NEXT: s_endpgm1937;1938; EG-LABEL: global_zextload_v8i16_to_v8i32:1939; EG: ; %bb.0:1940; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1941; EG-NEXT: TEX 0 @61942; EG-NEXT: ALU 17, @9, KC0[CB0:0-32], KC1[]1943; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T10.X, 01944; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T7.X, 11945; EG-NEXT: CF_END1946; EG-NEXT: Fetch clause starting at 6:1947; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #11948; EG-NEXT: ALU clause starting at 8:1949; EG-NEXT: MOV * T7.X, KC0[2].Z,1950; EG-NEXT: ALU clause starting at 9:1951; EG-NEXT: LSHR * T8.W, T7.Y, literal.x,1952; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1953; EG-NEXT: AND_INT * T8.Z, T7.Y, literal.x,1954; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)1955; EG-NEXT: LSHR T8.Y, T7.X, literal.x,1956; EG-NEXT: LSHR * T9.W, T7.W, literal.x,1957; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1958; EG-NEXT: AND_INT T8.X, T7.X, literal.x,1959; EG-NEXT: AND_INT T9.Z, T7.W, literal.x,1960; EG-NEXT: LSHR * T7.X, KC0[2].Y, literal.y,1961; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)1962; EG-NEXT: LSHR * T9.Y, T7.Z, literal.x,1963; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1964; EG-NEXT: AND_INT T9.X, T7.Z, literal.x,1965; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,1966; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)1967; EG-NEXT: LSHR * T10.X, PV.W, literal.x,1968; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1969;1970; CM-LABEL: global_zextload_v8i16_to_v8i32:1971; CM: ; %bb.0:1972; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1973; CM-NEXT: TEX 0 @61974; CM-NEXT: ALU 17, @9, KC0[CB0:0-32], KC1[]1975; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T7, T10.X1976; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T8, T9.X1977; CM-NEXT: CF_END1978; CM-NEXT: Fetch clause starting at 6:1979; CM-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #11980; CM-NEXT: ALU clause starting at 8:1981; CM-NEXT: MOV * T7.X, KC0[2].Z,1982; CM-NEXT: ALU clause starting at 9:1983; CM-NEXT: LSHR * T8.W, T7.W, literal.x,1984; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1985; CM-NEXT: AND_INT * T8.Z, T7.W, literal.x,1986; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)1987; CM-NEXT: LSHR T8.Y, T7.Z, literal.x,1988; CM-NEXT: LSHR * T7.W, T7.Y, literal.x,1989; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1990; CM-NEXT: AND_INT T8.X, T7.Z, literal.x,1991; CM-NEXT: AND_INT T7.Z, T7.Y, literal.x,1992; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,1993; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)1994; CM-NEXT: LSHR T9.X, PV.W, literal.x,1995; CM-NEXT: LSHR * T7.Y, T7.X, literal.y,1996; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)1997; CM-NEXT: AND_INT * T7.X, T7.X, literal.x,1998; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)1999; CM-NEXT: LSHR * T10.X, KC0[2].Y, literal.x,2000; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)2001 %load = load <8 x i16>, ptr addrspace(1) %in2002 %ext = zext <8 x i16> %load to <8 x i32>2003 store <8 x i32> %ext, ptr addrspace(1) %out2004 ret void2005}2006 2007; TODO: These should use ASHR instead of LSHR + BFE_INT2008define amdgpu_kernel void @global_sextload_v8i16_to_v8i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2009; GCN-NOHSA-SI-LABEL: global_sextload_v8i16_to_v8i32:2010; GCN-NOHSA-SI: ; %bb.0:2011; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x92012; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0002013; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -12014; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s62015; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s72016; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2017; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s22018; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s32019; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02020; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s02021; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s12022; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)2023; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 16, v12024; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v5, 16, v02025; GCN-NOHSA-SI-NEXT: v_bfe_i32 v6, v1, 0, 162026; GCN-NOHSA-SI-NEXT: v_bfe_i32 v4, v0, 0, 162027; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v11, 16, v32028; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v9, 16, v22029; GCN-NOHSA-SI-NEXT: v_bfe_i32 v10, v3, 0, 162030; GCN-NOHSA-SI-NEXT: v_bfe_i32 v8, v2, 0, 162031; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:162032; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 02033; GCN-NOHSA-SI-NEXT: s_endpgm2034;2035; GCN-HSA-LABEL: global_sextload_v8i16_to_v8i32:2036; GCN-HSA: ; %bb.0:2037; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x02038; GCN-HSA-NEXT: s_add_i32 s12, s12, s172039; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s132040; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 82041; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2042; GCN-HSA-NEXT: v_mov_b32_e32 v0, s22043; GCN-HSA-NEXT: v_mov_b32_e32 v1, s32044; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]2045; GCN-HSA-NEXT: s_add_u32 s2, s0, 162046; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02047; GCN-HSA-NEXT: v_mov_b32_e32 v15, s32048; GCN-HSA-NEXT: v_mov_b32_e32 v13, s12049; GCN-HSA-NEXT: v_mov_b32_e32 v14, s22050; GCN-HSA-NEXT: v_mov_b32_e32 v12, s02051; GCN-HSA-NEXT: s_waitcnt vmcnt(0)2052; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 16, v32053; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 16, v22054; GCN-HSA-NEXT: v_bfe_i32 v10, v3, 0, 162055; GCN-HSA-NEXT: v_bfe_i32 v8, v2, 0, 162056; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 16, v12057; GCN-HSA-NEXT: v_ashrrev_i32_e32 v5, 16, v02058; GCN-HSA-NEXT: v_bfe_i32 v6, v1, 0, 162059; GCN-HSA-NEXT: v_bfe_i32 v4, v0, 0, 162060; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[8:11]2061; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[4:7]2062; GCN-HSA-NEXT: s_endpgm2063;2064; GCN-NOHSA-VI-LABEL: global_sextload_v8i16_to_v8i32:2065; GCN-NOHSA-VI: ; %bb.0:2066; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x242067; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0002068; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -12069; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s62070; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s72071; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2072; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s22073; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s32074; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02075; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s02076; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s12077; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)2078; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v11, 16, v32079; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v9, 16, v22080; GCN-NOHSA-VI-NEXT: v_bfe_i32 v10, v3, 0, 162081; GCN-NOHSA-VI-NEXT: v_bfe_i32 v8, v2, 0, 162082; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 16, v12083; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v5, 16, v02084; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v1, 0, 162085; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v0, 0, 162086; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:162087; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 02088; GCN-NOHSA-VI-NEXT: s_endpgm2089;2090; EG-LABEL: global_sextload_v8i16_to_v8i32:2091; EG: ; %bb.0:2092; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]2093; EG-NEXT: TEX 0 @62094; EG-NEXT: ALU 19, @9, KC0[CB0:0-32], KC1[]2095; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T10.X, 02096; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T7.X, 12097; EG-NEXT: CF_END2098; EG-NEXT: Fetch clause starting at 6:2099; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #12100; EG-NEXT: ALU clause starting at 8:2101; EG-NEXT: MOV * T7.X, KC0[2].Z,2102; EG-NEXT: ALU clause starting at 9:2103; EG-NEXT: BFE_INT * T8.Z, T7.Y, 0.0, literal.x,2104; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2105; EG-NEXT: BFE_INT T8.X, T7.X, 0.0, literal.x,2106; EG-NEXT: BFE_INT T9.Z, T7.W, 0.0, literal.x,2107; EG-NEXT: LSHR * T0.W, T7.Y, literal.x,2108; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2109; EG-NEXT: BFE_INT T9.X, T7.Z, 0.0, literal.x,2110; EG-NEXT: LSHR T0.Z, T7.W, literal.x,2111; EG-NEXT: BFE_INT T8.W, PV.W, 0.0, literal.x,2112; EG-NEXT: LSHR * T0.W, T7.X, literal.x,2113; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2114; EG-NEXT: LSHR T7.X, KC0[2].Y, literal.x,2115; EG-NEXT: BFE_INT T8.Y, PS, 0.0, literal.y,2116; EG-NEXT: LSHR T1.Z, T7.Z, literal.y,2117; EG-NEXT: BFE_INT T9.W, PV.Z, 0.0, literal.y,2118; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2119; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2120; EG-NEXT: LSHR T10.X, PS, literal.x,2121; EG-NEXT: BFE_INT * T9.Y, PV.Z, 0.0, literal.y,2122; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2123;2124; CM-LABEL: global_sextload_v8i16_to_v8i32:2125; CM: ; %bb.0:2126; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]2127; CM-NEXT: TEX 0 @62128; CM-NEXT: ALU 19, @9, KC0[CB0:0-32], KC1[]2129; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T9, T7.X2130; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T8, T10.X2131; CM-NEXT: CF_END2132; CM-NEXT: Fetch clause starting at 6:2133; CM-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #12134; CM-NEXT: ALU clause starting at 8:2135; CM-NEXT: MOV * T7.X, KC0[2].Z,2136; CM-NEXT: ALU clause starting at 9:2137; CM-NEXT: BFE_INT * T8.Z, T7.W, 0.0, literal.x,2138; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2139; CM-NEXT: BFE_INT T8.X, T7.Z, 0.0, literal.x,2140; CM-NEXT: LSHR T0.Y, T7.Y, literal.x,2141; CM-NEXT: BFE_INT T9.Z, T7.Y, 0.0, literal.x,2142; CM-NEXT: LSHR * T0.W, T7.W, literal.x,2143; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2144; CM-NEXT: BFE_INT T9.X, T7.X, 0.0, literal.x,2145; CM-NEXT: LSHR T1.Y, T7.Z, literal.x,2146; CM-NEXT: ADD_INT T0.Z, KC0[2].Y, literal.x,2147; CM-NEXT: BFE_INT * T8.W, PV.W, 0.0, literal.x,2148; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2149; CM-NEXT: LSHR T10.X, PV.Z, literal.x,2150; CM-NEXT: BFE_INT T8.Y, PV.Y, 0.0, literal.y,2151; CM-NEXT: LSHR T0.Z, T7.X, literal.y,2152; CM-NEXT: BFE_INT * T9.W, T0.Y, 0.0, literal.y,2153; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2154; CM-NEXT: LSHR T7.X, KC0[2].Y, literal.x,2155; CM-NEXT: BFE_INT * T9.Y, PV.Z, 0.0, literal.y,2156; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2157 %load = load <8 x i16>, ptr addrspace(1) %in2158 %ext = sext <8 x i16> %load to <8 x i32>2159 store <8 x i32> %ext, ptr addrspace(1) %out2160 ret void2161}2162 2163define amdgpu_kernel void @global_zextload_v16i16_to_v16i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2164; GCN-NOHSA-SI-LABEL: global_zextload_v16i16_to_v16i32:2165; GCN-NOHSA-SI: ; %bb.0:2166; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x92167; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0002168; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -12169; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s22170; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s32171; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2172; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s62173; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s72174; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02175; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s42176; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s52177; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162178; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)2179; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v11, 16, v12180; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v9, 16, v02181; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v15, 16, v32182; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v13, 16, v22183; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)2184; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v19, 16, v52185; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v17, 16, v42186; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v23, 16, v72187; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v21, 16, v62188; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v10, 0xffff, v12189; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v8, 0xffff, v02190; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v14, 0xffff, v32191; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v12, 0xffff, v22192; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v18, 0xffff, v52193; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v16, 0xffff, v42194; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v22, 0xffff, v72195; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v20, 0xffff, v62196; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:482197; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:322198; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:162199; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 02200; GCN-NOHSA-SI-NEXT: s_endpgm2201;2202; GCN-HSA-LABEL: global_zextload_v16i16_to_v16i32:2203; GCN-HSA: ; %bb.0:2204; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x02205; GCN-HSA-NEXT: s_add_i32 s12, s12, s172206; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 82207; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s132208; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2209; GCN-HSA-NEXT: s_add_u32 s4, s2, 162210; GCN-HSA-NEXT: s_addc_u32 s5, s3, 02211; GCN-HSA-NEXT: v_mov_b32_e32 v0, s42212; GCN-HSA-NEXT: v_mov_b32_e32 v5, s32213; GCN-HSA-NEXT: v_mov_b32_e32 v1, s52214; GCN-HSA-NEXT: v_mov_b32_e32 v4, s22215; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]2216; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[4:5]2217; GCN-HSA-NEXT: s_add_u32 s2, s0, 162218; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02219; GCN-HSA-NEXT: v_mov_b32_e32 v23, s32220; GCN-HSA-NEXT: v_mov_b32_e32 v22, s22221; GCN-HSA-NEXT: s_add_u32 s2, s0, 482222; GCN-HSA-NEXT: v_mov_b32_e32 v21, s12223; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02224; GCN-HSA-NEXT: v_mov_b32_e32 v20, s02225; GCN-HSA-NEXT: s_add_u32 s0, s0, 322226; GCN-HSA-NEXT: s_addc_u32 s1, s1, 02227; GCN-HSA-NEXT: v_mov_b32_e32 v25, s32228; GCN-HSA-NEXT: v_mov_b32_e32 v27, s12229; GCN-HSA-NEXT: v_mov_b32_e32 v24, s22230; GCN-HSA-NEXT: v_mov_b32_e32 v26, s02231; GCN-HSA-NEXT: s_waitcnt vmcnt(1)2232; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 16, v12233; GCN-HSA-NEXT: v_lshrrev_b32_e32 v9, 16, v02234; GCN-HSA-NEXT: v_lshrrev_b32_e32 v15, 16, v32235; GCN-HSA-NEXT: v_lshrrev_b32_e32 v13, 16, v22236; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xffff, v12237; GCN-HSA-NEXT: v_and_b32_e32 v8, 0xffff, v02238; GCN-HSA-NEXT: v_and_b32_e32 v14, 0xffff, v32239; GCN-HSA-NEXT: v_and_b32_e32 v12, 0xffff, v22240; GCN-HSA-NEXT: s_waitcnt vmcnt(0)2241; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 16, v72242; GCN-HSA-NEXT: v_lshrrev_b32_e32 v1, 16, v62243; GCN-HSA-NEXT: v_and_b32_e32 v2, 0xffff, v72244; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xffff, v62245; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v52246; GCN-HSA-NEXT: v_lshrrev_b32_e32 v17, 16, v42247; GCN-HSA-NEXT: v_and_b32_e32 v18, 0xffff, v52248; GCN-HSA-NEXT: v_and_b32_e32 v16, 0xffff, v42249; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[0:3]2250; GCN-HSA-NEXT: flat_store_dwordx4 v[20:21], v[16:19]2251; GCN-HSA-NEXT: flat_store_dwordx4 v[24:25], v[12:15]2252; GCN-HSA-NEXT: flat_store_dwordx4 v[26:27], v[8:11]2253; GCN-HSA-NEXT: s_endpgm2254;2255; GCN-NOHSA-VI-LABEL: global_zextload_v16i16_to_v16i32:2256; GCN-NOHSA-VI: ; %bb.0:2257; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x242258; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0002259; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -12260; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s22261; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s32262; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2263; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s62264; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s72265; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02266; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162267; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s42268; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s52269; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)2270; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v11, 16, v12271; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)2272; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v19, 16, v72273; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v18, 0xffff, v72274; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v17, 16, v62275; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v16, 0xffff, v62276; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v10, 0xffff, v12277; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v9, 16, v02278; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v8, 0xffff, v02279; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v15, 16, v32280; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v14, 0xffff, v32281; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v13, 16, v22282; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v12, 0xffff, v22283; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 16, v52284; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v2, 0xffff, v52285; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v42286; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v42287; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:482288; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:322289; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:162290; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 02291; GCN-NOHSA-VI-NEXT: s_endpgm2292;2293; EG-LABEL: global_zextload_v16i16_to_v16i32:2294; EG: ; %bb.0:2295; EG-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]2296; EG-NEXT: TEX 1 @82297; EG-NEXT: ALU 35, @13, KC0[CB0:0-32], KC1[]2298; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T18.X, 02299; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T11.X, 02300; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T16.X, 02301; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T12.X, 12302; EG-NEXT: CF_END2303; EG-NEXT: Fetch clause starting at 8:2304; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 0, #12305; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 16, #12306; EG-NEXT: ALU clause starting at 12:2307; EG-NEXT: MOV * T11.X, KC0[2].Z,2308; EG-NEXT: ALU clause starting at 13:2309; EG-NEXT: LSHR * T13.W, T12.Y, literal.x,2310; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2311; EG-NEXT: AND_INT * T13.Z, T12.Y, literal.x,2312; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2313; EG-NEXT: LSHR T13.Y, T12.X, literal.x,2314; EG-NEXT: LSHR * T14.W, T12.W, literal.x,2315; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2316; EG-NEXT: AND_INT T13.X, T12.X, literal.x,2317; EG-NEXT: AND_INT T14.Z, T12.W, literal.x,2318; EG-NEXT: LSHR * T12.X, KC0[2].Y, literal.y,2319; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)2320; EG-NEXT: LSHR T14.Y, T12.Z, literal.x,2321; EG-NEXT: LSHR * T15.W, T11.Y, literal.x,2322; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2323; EG-NEXT: AND_INT T14.X, T12.Z, literal.x,2324; EG-NEXT: AND_INT T15.Z, T11.Y, literal.x,2325; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2326; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)2327; EG-NEXT: LSHR T16.X, PV.W, literal.x,2328; EG-NEXT: LSHR T15.Y, T11.X, literal.y,2329; EG-NEXT: LSHR T17.W, T11.W, literal.y,2330; EG-NEXT: AND_INT * T15.X, T11.X, literal.z,2331; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2332; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2333; EG-NEXT: AND_INT T17.Z, T11.W, literal.x,2334; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2335; EG-NEXT: 65535(9.183409e-41), 32(4.484155e-44)2336; EG-NEXT: LSHR T11.X, PV.W, literal.x,2337; EG-NEXT: LSHR T17.Y, T11.Z, literal.y,2338; EG-NEXT: AND_INT * T17.X, T11.Z, literal.z,2339; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2340; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2341; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,2342; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)2343; EG-NEXT: LSHR * T18.X, PV.W, literal.x,2344; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)2345;2346; CM-LABEL: global_zextload_v16i16_to_v16i32:2347; CM: ; %bb.0:2348; CM-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]2349; CM-NEXT: TEX 1 @82350; CM-NEXT: ALU 33, @13, KC0[CB0:0-32], KC1[]2351; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T18.X2352; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T15, T17.X2353; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T16.X2354; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T13, T14.X2355; CM-NEXT: CF_END2356; CM-NEXT: Fetch clause starting at 8:2357; CM-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #12358; CM-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #12359; CM-NEXT: ALU clause starting at 12:2360; CM-NEXT: MOV * T11.X, KC0[2].Z,2361; CM-NEXT: ALU clause starting at 13:2362; CM-NEXT: LSHR * T13.W, T12.W, literal.x,2363; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2364; CM-NEXT: AND_INT * T13.Z, T12.W, literal.x,2365; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2366; CM-NEXT: LSHR T13.Y, T12.Z, literal.x,2367; CM-NEXT: LSHR * T12.W, T12.Y, literal.x,2368; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2369; CM-NEXT: AND_INT T13.X, T12.Z, literal.x,2370; CM-NEXT: AND_INT T12.Z, T12.Y, literal.x,2371; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2372; CM-NEXT: 65535(9.183409e-41), 48(6.726233e-44)2373; CM-NEXT: LSHR T14.X, PV.W, literal.x,2374; CM-NEXT: LSHR T12.Y, T12.X, literal.y,2375; CM-NEXT: LSHR * T15.W, T11.W, literal.y,2376; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2377; CM-NEXT: AND_INT T12.X, T12.X, literal.x,2378; CM-NEXT: AND_INT T15.Z, T11.W, literal.x,2379; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2380; CM-NEXT: 65535(9.183409e-41), 32(4.484155e-44)2381; CM-NEXT: LSHR T16.X, PV.W, literal.x,2382; CM-NEXT: LSHR T15.Y, T11.Z, literal.y,2383; CM-NEXT: LSHR * T11.W, T11.Y, literal.y,2384; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2385; CM-NEXT: AND_INT T15.X, T11.Z, literal.x,2386; CM-NEXT: AND_INT T11.Z, T11.Y, literal.x,2387; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2388; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)2389; CM-NEXT: LSHR T17.X, PV.W, literal.x,2390; CM-NEXT: LSHR * T11.Y, T11.X, literal.y,2391; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2392; CM-NEXT: AND_INT * T11.X, T11.X, literal.x,2393; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2394; CM-NEXT: LSHR * T18.X, KC0[2].Y, literal.x,2395; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)2396 %load = load <16 x i16>, ptr addrspace(1) %in2397 %ext = zext <16 x i16> %load to <16 x i32>2398 store <16 x i32> %ext, ptr addrspace(1) %out2399 ret void2400}2401 2402define amdgpu_kernel void @global_sextload_v16i16_to_v16i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2403; GCN-NOHSA-SI-LABEL: global_sextload_v16i16_to_v16i32:2404; GCN-NOHSA-SI: ; %bb.0:2405; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x92406; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0002407; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -12408; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s22409; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s32410; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2411; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s62412; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s72413; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02414; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s42415; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s52416; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162417; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)2418; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v11, 16, v12419; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v9, 16, v02420; GCN-NOHSA-SI-NEXT: v_bfe_i32 v10, v1, 0, 162421; GCN-NOHSA-SI-NEXT: v_bfe_i32 v8, v0, 0, 162422; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v15, 16, v32423; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v13, 16, v22424; GCN-NOHSA-SI-NEXT: v_bfe_i32 v14, v3, 0, 162425; GCN-NOHSA-SI-NEXT: v_bfe_i32 v12, v2, 0, 162426; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)2427; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 16, v52428; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 16, v42429; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v5, 0, 162430; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v4, 0, 162431; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v19, 16, v72432; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v17, 16, v62433; GCN-NOHSA-SI-NEXT: v_bfe_i32 v18, v7, 0, 162434; GCN-NOHSA-SI-NEXT: v_bfe_i32 v16, v6, 0, 162435; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:482436; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:322437; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:162438; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 02439; GCN-NOHSA-SI-NEXT: s_endpgm2440;2441; GCN-HSA-LABEL: global_sextload_v16i16_to_v16i32:2442; GCN-HSA: ; %bb.0:2443; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x02444; GCN-HSA-NEXT: s_add_i32 s12, s12, s172445; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 82446; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s132447; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2448; GCN-HSA-NEXT: v_mov_b32_e32 v0, s22449; GCN-HSA-NEXT: v_mov_b32_e32 v1, s32450; GCN-HSA-NEXT: s_add_u32 s2, s2, 162451; GCN-HSA-NEXT: s_addc_u32 s3, s3, 02452; GCN-HSA-NEXT: v_mov_b32_e32 v5, s32453; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]2454; GCN-HSA-NEXT: v_mov_b32_e32 v4, s22455; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[4:5]2456; GCN-HSA-NEXT: s_add_u32 s2, s0, 162457; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02458; GCN-HSA-NEXT: v_mov_b32_e32 v19, s32459; GCN-HSA-NEXT: v_mov_b32_e32 v18, s22460; GCN-HSA-NEXT: s_add_u32 s2, s0, 482461; GCN-HSA-NEXT: v_mov_b32_e32 v17, s12462; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02463; GCN-HSA-NEXT: v_mov_b32_e32 v16, s02464; GCN-HSA-NEXT: s_add_u32 s0, s0, 322465; GCN-HSA-NEXT: v_mov_b32_e32 v21, s32466; GCN-HSA-NEXT: s_addc_u32 s1, s1, 02467; GCN-HSA-NEXT: v_mov_b32_e32 v20, s22468; GCN-HSA-NEXT: v_mov_b32_e32 v23, s12469; GCN-HSA-NEXT: v_mov_b32_e32 v22, s02470; GCN-HSA-NEXT: s_waitcnt vmcnt(1)2471; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 16, v02472; GCN-HSA-NEXT: v_bfe_i32 v10, v1, 0, 162473; GCN-HSA-NEXT: v_bfe_i32 v8, v0, 0, 162474; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 16, v32475; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 16, v22476; GCN-HSA-NEXT: v_bfe_i32 v14, v3, 0, 162477; GCN-HSA-NEXT: v_bfe_i32 v12, v2, 0, 162478; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 16, v12479; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[12:15]2480; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[8:11]2481; GCN-HSA-NEXT: s_waitcnt vmcnt(2)2482; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 16, v52483; GCN-HSA-NEXT: v_ashrrev_i32_e32 v10, 16, v72484; GCN-HSA-NEXT: v_ashrrev_i32_e32 v8, 16, v62485; GCN-HSA-NEXT: v_bfe_i32 v9, v7, 0, 162486; GCN-HSA-NEXT: v_bfe_i32 v7, v6, 0, 162487; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 16, v42488; GCN-HSA-NEXT: v_bfe_i32 v2, v5, 0, 162489; GCN-HSA-NEXT: v_bfe_i32 v0, v4, 0, 162490; GCN-HSA-NEXT: flat_store_dwordx4 v[20:21], v[7:10]2491; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[0:3]2492; GCN-HSA-NEXT: s_endpgm2493;2494; GCN-NOHSA-VI-LABEL: global_sextload_v16i16_to_v16i32:2495; GCN-NOHSA-VI: ; %bb.0:2496; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x242497; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0002498; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -12499; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s22500; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s32501; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2502; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s62503; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s72504; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02505; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162506; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s42507; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s52508; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)2509; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v11, 16, v12510; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)2511; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v19, 16, v72512; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v17, 16, v62513; GCN-NOHSA-VI-NEXT: v_bfe_i32 v18, v7, 0, 162514; GCN-NOHSA-VI-NEXT: v_bfe_i32 v16, v6, 0, 162515; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v9, 16, v02516; GCN-NOHSA-VI-NEXT: v_bfe_i32 v10, v1, 0, 162517; GCN-NOHSA-VI-NEXT: v_bfe_i32 v8, v0, 0, 162518; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v15, 16, v32519; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v13, 16, v22520; GCN-NOHSA-VI-NEXT: v_bfe_i32 v14, v3, 0, 162521; GCN-NOHSA-VI-NEXT: v_bfe_i32 v12, v2, 0, 162522; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 16, v52523; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 16, v42524; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v5, 0, 162525; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v4, 0, 162526; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:482527; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:322528; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:162529; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 02530; GCN-NOHSA-VI-NEXT: s_endpgm2531;2532; EG-LABEL: global_sextload_v16i16_to_v16i32:2533; EG: ; %bb.0:2534; EG-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]2535; EG-NEXT: TEX 1 @82536; EG-NEXT: ALU 39, @13, KC0[CB0:0-32], KC1[]2537; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T18.XYZW, T12.X, 02538; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T11.X, 02539; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T16.XYZW, T14.X, 02540; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T13.X, 12541; EG-NEXT: CF_END2542; EG-NEXT: Fetch clause starting at 8:2543; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #12544; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #12545; EG-NEXT: ALU clause starting at 12:2546; EG-NEXT: MOV * T11.X, KC0[2].Z,2547; EG-NEXT: ALU clause starting at 13:2548; EG-NEXT: LSHR T13.X, KC0[2].Y, literal.x,2549; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2550; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2551; EG-NEXT: LSHR T14.X, PV.W, literal.x,2552; EG-NEXT: BFE_INT * T15.Z, T11.Y, 0.0, literal.y,2553; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2554; EG-NEXT: BFE_INT T15.X, T11.X, 0.0, literal.x,2555; EG-NEXT: LSHR T0.Y, T12.W, literal.x,2556; EG-NEXT: BFE_INT T16.Z, T11.W, 0.0, literal.x, BS:VEC_120/SCL_2122557; EG-NEXT: LSHR T0.W, T12.Y, literal.x,2558; EG-NEXT: LSHR * T1.W, T11.Y, literal.x,2559; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2560; EG-NEXT: BFE_INT T16.X, T11.Z, 0.0, literal.x,2561; EG-NEXT: LSHR T1.Y, T11.W, literal.x,2562; EG-NEXT: BFE_INT T17.Z, T12.Y, 0.0, literal.x,2563; EG-NEXT: BFE_INT T15.W, PS, 0.0, literal.x,2564; EG-NEXT: LSHR * T1.W, T11.X, literal.x,2565; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2566; EG-NEXT: BFE_INT T17.X, T12.X, 0.0, literal.x,2567; EG-NEXT: BFE_INT T15.Y, PS, 0.0, literal.x,2568; EG-NEXT: BFE_INT T18.Z, T12.W, 0.0, literal.x,2569; EG-NEXT: BFE_INT T16.W, PV.Y, 0.0, literal.x,2570; EG-NEXT: LSHR * T1.W, T11.Z, literal.x,2571; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2572; EG-NEXT: BFE_INT T18.X, T12.Z, 0.0, literal.x,2573; EG-NEXT: BFE_INT T16.Y, PS, 0.0, literal.x,2574; EG-NEXT: LSHR T0.Z, T12.X, literal.x,2575; EG-NEXT: BFE_INT T17.W, T0.W, 0.0, literal.x,2576; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2577; EG-NEXT: 16(2.242078e-44), 32(4.484155e-44)2578; EG-NEXT: LSHR T11.X, PS, literal.x,2579; EG-NEXT: BFE_INT T17.Y, PV.Z, 0.0, literal.y,2580; EG-NEXT: LSHR T0.Z, T12.Z, literal.y,2581; EG-NEXT: BFE_INT T18.W, T0.Y, 0.0, literal.y,2582; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,2583; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2584; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)2585; EG-NEXT: LSHR T12.X, PS, literal.x,2586; EG-NEXT: BFE_INT * T18.Y, PV.Z, 0.0, literal.y,2587; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2588;2589; CM-LABEL: global_sextload_v16i16_to_v16i32:2590; CM: ; %bb.0:2591; CM-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]2592; CM-NEXT: TEX 1 @82593; CM-NEXT: ALU 40, @13, KC0[CB0:0-32], KC1[]2594; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T17, T11.X2595; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T18.X2596; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T16, T14.X2597; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T15, T13.X2598; CM-NEXT: CF_END2599; CM-NEXT: Fetch clause starting at 8:2600; CM-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #12601; CM-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #12602; CM-NEXT: ALU clause starting at 12:2603; CM-NEXT: MOV * T11.X, KC0[2].Z,2604; CM-NEXT: ALU clause starting at 13:2605; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,2606; CM-NEXT: 48(6.726233e-44), 0(0.000000e+00)2607; CM-NEXT: LSHR T13.X, PV.W, literal.x,2608; CM-NEXT: LSHR T0.Y, T11.Y, literal.y,2609; CM-NEXT: LSHR T0.Z, T11.Z, literal.y,2610; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,2611; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2612; CM-NEXT: 32(4.484155e-44), 0(0.000000e+00)2613; CM-NEXT: LSHR T14.X, PV.W, literal.x,2614; CM-NEXT: LSHR T1.Y, T11.W, literal.y,2615; CM-NEXT: BFE_INT T15.Z, T12.W, 0.0, literal.y, BS:VEC_120/SCL_2122616; CM-NEXT: LSHR * T0.W, T12.X, literal.y,2617; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2618; CM-NEXT: BFE_INT T15.X, T12.Z, 0.0, literal.x,2619; CM-NEXT: LSHR T2.Y, T12.Y, literal.x,2620; CM-NEXT: BFE_INT T16.Z, T12.Y, 0.0, literal.x,2621; CM-NEXT: LSHR * T1.W, T12.W, literal.x,2622; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2623; CM-NEXT: BFE_INT T16.X, T12.X, 0.0, literal.x,2624; CM-NEXT: LSHR T3.Y, T12.Z, literal.x,2625; CM-NEXT: BFE_INT T12.Z, T11.W, 0.0, literal.x,2626; CM-NEXT: BFE_INT * T15.W, PV.W, 0.0, literal.x,2627; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2628; CM-NEXT: BFE_INT T12.X, T11.Z, 0.0, literal.x,2629; CM-NEXT: BFE_INT T15.Y, PV.Y, 0.0, literal.x,2630; CM-NEXT: BFE_INT T17.Z, T11.Y, 0.0, literal.x,2631; CM-NEXT: BFE_INT * T16.W, T2.Y, 0.0, literal.x, BS:VEC_120/SCL_2122632; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2633; CM-NEXT: BFE_INT T17.X, T11.X, 0.0, literal.x,2634; CM-NEXT: BFE_INT T16.Y, T0.W, 0.0, literal.x,2635; CM-NEXT: ADD_INT T1.Z, KC0[2].Y, literal.x,2636; CM-NEXT: BFE_INT * T12.W, T1.Y, 0.0, literal.x,2637; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2638; CM-NEXT: LSHR T18.X, PV.Z, literal.x,2639; CM-NEXT: BFE_INT T12.Y, T0.Z, 0.0, literal.y,2640; CM-NEXT: LSHR T0.Z, T11.X, literal.y,2641; CM-NEXT: BFE_INT * T17.W, T0.Y, 0.0, literal.y,2642; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2643; CM-NEXT: LSHR T11.X, KC0[2].Y, literal.x,2644; CM-NEXT: BFE_INT * T17.Y, PV.Z, 0.0, literal.y,2645; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2646 %load = load <16 x i16>, ptr addrspace(1) %in2647 %ext = sext <16 x i16> %load to <16 x i32>2648 store <16 x i32> %ext, ptr addrspace(1) %out2649 ret void2650}2651 2652define amdgpu_kernel void @global_zextload_v32i16_to_v32i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2653; GCN-NOHSA-SI-LABEL: global_zextload_v32i16_to_v32i32:2654; GCN-NOHSA-SI: ; %bb.0:2655; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x92656; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0002657; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -12658; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s22659; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s32660; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2661; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s62662; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s72663; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02664; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162665; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:322666; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:482667; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(3)2668; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v19, 16, v32669; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v17, 16, v22670; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v23, 16, v12671; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v21, 16, v02672; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(2)2673; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v27, 16, v72674; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v25, 16, v62675; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v18, 0xffff, v32676; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v16, 0xffff, v22677; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v22, 0xffff, v12678; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v20, 0xffff, v02679; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v3, 16, v52680; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v1, 16, v42681; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v26, 0xffff, v72682; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v24, 0xffff, v62683; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v2, 0xffff, v52684; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v42685; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)2686; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v7, 16, v112687; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v5, 16, v102688; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v31, 16, v92689; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v29, 16, v82690; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v6, 0xffff, v112691; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xffff, v102692; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v30, 0xffff, v92693; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v28, 0xffff, v82694; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)2695; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v11, 16, v152696; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v9, 16, v142697; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v35, 16, v132698; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v33, 16, v122699; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v10, 0xffff, v152700; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v8, 0xffff, v142701; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v34, 0xffff, v132702; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v32, 0xffff, v122703; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s42704; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s52705; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:962706; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1122707; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:642708; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:802709; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:322710; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:482711; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 02712; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:162713; GCN-NOHSA-SI-NEXT: s_endpgm2714;2715; GCN-HSA-LABEL: global_zextload_v32i16_to_v32i32:2716; GCN-HSA: ; %bb.0:2717; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x02718; GCN-HSA-NEXT: s_add_i32 s12, s12, s172719; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 82720; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s132721; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2722; GCN-HSA-NEXT: s_add_u32 s4, s2, 162723; GCN-HSA-NEXT: s_addc_u32 s5, s3, 02724; GCN-HSA-NEXT: v_mov_b32_e32 v0, s42725; GCN-HSA-NEXT: v_mov_b32_e32 v1, s52726; GCN-HSA-NEXT: s_add_u32 s4, s2, 322727; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[0:1]2728; GCN-HSA-NEXT: s_addc_u32 s5, s3, 02729; GCN-HSA-NEXT: v_mov_b32_e32 v0, s42730; GCN-HSA-NEXT: v_mov_b32_e32 v1, s52731; GCN-HSA-NEXT: flat_load_dwordx4 v[12:15], v[0:1]2732; GCN-HSA-NEXT: v_mov_b32_e32 v0, s22733; GCN-HSA-NEXT: v_mov_b32_e32 v1, s32734; GCN-HSA-NEXT: s_add_u32 s2, s2, 482735; GCN-HSA-NEXT: s_addc_u32 s3, s3, 02736; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]2737; GCN-HSA-NEXT: v_mov_b32_e32 v9, s32738; GCN-HSA-NEXT: v_mov_b32_e32 v8, s22739; GCN-HSA-NEXT: flat_load_dwordx4 v[8:11], v[8:9]2740; GCN-HSA-NEXT: s_add_u32 s2, s0, 162741; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02742; GCN-HSA-NEXT: v_mov_b32_e32 v25, s32743; GCN-HSA-NEXT: v_mov_b32_e32 v24, s22744; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x602745; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02746; GCN-HSA-NEXT: v_mov_b32_e32 v27, s32747; GCN-HSA-NEXT: v_mov_b32_e32 v26, s22748; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x702749; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02750; GCN-HSA-NEXT: s_add_u32 s4, s0, 642751; GCN-HSA-NEXT: s_addc_u32 s5, s1, 02752; GCN-HSA-NEXT: s_add_u32 s6, s0, 0x502753; GCN-HSA-NEXT: s_addc_u32 s7, s1, 02754; GCN-HSA-NEXT: s_add_u32 s8, s0, 322755; GCN-HSA-NEXT: s_addc_u32 s9, s1, 02756; GCN-HSA-NEXT: v_mov_b32_e32 v23, s92757; GCN-HSA-NEXT: v_mov_b32_e32 v22, s82758; GCN-HSA-NEXT: v_mov_b32_e32 v21, s12759; GCN-HSA-NEXT: v_mov_b32_e32 v20, s02760; GCN-HSA-NEXT: s_add_u32 s0, s0, 482761; GCN-HSA-NEXT: s_addc_u32 s1, s1, 02762; GCN-HSA-NEXT: v_mov_b32_e32 v29, s32763; GCN-HSA-NEXT: v_mov_b32_e32 v31, s12764; GCN-HSA-NEXT: v_mov_b32_e32 v28, s22765; GCN-HSA-NEXT: v_mov_b32_e32 v30, s02766; GCN-HSA-NEXT: s_waitcnt vmcnt(3)2767; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v52768; GCN-HSA-NEXT: v_lshrrev_b32_e32 v17, 16, v42769; GCN-HSA-NEXT: v_and_b32_e32 v18, 0xffff, v52770; GCN-HSA-NEXT: v_and_b32_e32 v16, 0xffff, v42771; GCN-HSA-NEXT: v_mov_b32_e32 v4, s42772; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[16:19]2773; GCN-HSA-NEXT: v_mov_b32_e32 v5, s52774; GCN-HSA-NEXT: s_waitcnt vmcnt(3)2775; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v132776; GCN-HSA-NEXT: v_lshrrev_b32_e32 v17, 16, v122777; GCN-HSA-NEXT: v_and_b32_e32 v18, 0xffff, v132778; GCN-HSA-NEXT: v_and_b32_e32 v16, 0xffff, v122779; GCN-HSA-NEXT: v_mov_b32_e32 v13, s72780; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[16:19]2781; GCN-HSA-NEXT: v_lshrrev_b32_e32 v5, 16, v142782; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v72783; GCN-HSA-NEXT: v_lshrrev_b32_e32 v17, 16, v62784; GCN-HSA-NEXT: v_and_b32_e32 v18, 0xffff, v72785; GCN-HSA-NEXT: v_and_b32_e32 v16, 0xffff, v62786; GCN-HSA-NEXT: v_lshrrev_b32_e32 v7, 16, v152787; GCN-HSA-NEXT: v_and_b32_e32 v6, 0xffff, v152788; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xffff, v142789; GCN-HSA-NEXT: v_mov_b32_e32 v12, s62790; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[4:7]2791; GCN-HSA-NEXT: s_waitcnt vmcnt(4)2792; GCN-HSA-NEXT: v_lshrrev_b32_e32 v23, 16, v32793; GCN-HSA-NEXT: v_lshrrev_b32_e32 v7, 16, v12794; GCN-HSA-NEXT: v_lshrrev_b32_e32 v5, 16, v02795; GCN-HSA-NEXT: v_and_b32_e32 v6, 0xffff, v12796; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xffff, v02797; GCN-HSA-NEXT: flat_store_dwordx4 v[20:21], v[4:7]2798; GCN-HSA-NEXT: v_lshrrev_b32_e32 v21, 16, v22799; GCN-HSA-NEXT: v_and_b32_e32 v22, 0xffff, v32800; GCN-HSA-NEXT: v_and_b32_e32 v20, 0xffff, v22801; GCN-HSA-NEXT: s_waitcnt vmcnt(4)2802; GCN-HSA-NEXT: v_lshrrev_b32_e32 v7, 16, v112803; GCN-HSA-NEXT: v_lshrrev_b32_e32 v5, 16, v102804; GCN-HSA-NEXT: v_lshrrev_b32_e32 v14, 16, v92805; GCN-HSA-NEXT: v_lshrrev_b32_e32 v12, 16, v82806; GCN-HSA-NEXT: v_and_b32_e32 v6, 0xffff, v112807; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xffff, v102808; GCN-HSA-NEXT: v_and_b32_e32 v13, 0xffff, v92809; GCN-HSA-NEXT: v_and_b32_e32 v11, 0xffff, v82810; GCN-HSA-NEXT: flat_store_dwordx4 v[24:25], v[20:23]2811; GCN-HSA-NEXT: flat_store_dwordx4 v[26:27], v[11:14]2812; GCN-HSA-NEXT: flat_store_dwordx4 v[28:29], v[4:7]2813; GCN-HSA-NEXT: flat_store_dwordx4 v[30:31], v[16:19]2814; GCN-HSA-NEXT: s_endpgm2815;2816; GCN-NOHSA-VI-LABEL: global_zextload_v32i16_to_v32i32:2817; GCN-NOHSA-VI: ; %bb.0:2818; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x242819; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0002820; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -12821; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s22822; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s32823; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2824; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s62825; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s72826; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02827; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162828; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:322829; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:482830; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s42831; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s52832; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(3)2833; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v19, 16, v32834; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v18, 0xffff, v32835; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v17, 16, v22836; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)2837; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v31, 16, v152838; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v30, 0xffff, v152839; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v29, 16, v142840; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v28, 0xffff, v142841; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v15, 16, v132842; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v14, 0xffff, v132843; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v13, 16, v122844; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v12, 0xffff, v122845; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v16, 0xffff, v22846; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 16, v12847; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v2, 0xffff, v12848; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v02849; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v02850; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v23, 16, v72851; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v22, 0xffff, v72852; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v21, 16, v62853; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v20, 0xffff, v62854; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v7, 16, v52855; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v6, 0xffff, v52856; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v5, 16, v42857; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xffff, v42858; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v27, 16, v112859; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v26, 0xffff, v112860; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v25, 16, v102861; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v24, 0xffff, v102862; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v11, 16, v92863; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v10, 0xffff, v92864; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v9, 16, v82865; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v8, 0xffff, v82866; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:962867; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1122868; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:642869; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:802870; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:322871; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:482872; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 02873; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:162874; GCN-NOHSA-VI-NEXT: s_endpgm2875;2876; EG-LABEL: global_zextload_v32i16_to_v32i32:2877; EG: ; %bb.0:2878; EG-NEXT: ALU 0, @20, KC0[CB0:0-32], KC1[]2879; EG-NEXT: TEX 3 @122880; EG-NEXT: ALU 72, @21, KC0[CB0:0-32], KC1[]2881; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T34.X, 02882; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T31.XYZW, T33.X, 02883; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T22.XYZW, T32.X, 02884; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T28.XYZW, T30.X, 02885; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T29.X, 02886; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T27.X, 02887; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T26.X, 02888; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T24.X, 12889; EG-NEXT: CF_END2890; EG-NEXT: Fetch clause starting at 12:2891; EG-NEXT: VTX_READ_128 T20.XYZW, T19.X, 0, #12892; EG-NEXT: VTX_READ_128 T21.XYZW, T19.X, 48, #12893; EG-NEXT: VTX_READ_128 T22.XYZW, T19.X, 32, #12894; EG-NEXT: VTX_READ_128 T19.XYZW, T19.X, 16, #12895; EG-NEXT: ALU clause starting at 20:2896; EG-NEXT: MOV * T19.X, KC0[2].Z,2897; EG-NEXT: ALU clause starting at 21:2898; EG-NEXT: LSHR * T23.W, T20.W, literal.x,2899; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2900; EG-NEXT: AND_INT * T23.Z, T20.W, literal.x,2901; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2902; EG-NEXT: LSHR T23.Y, T20.Z, literal.x,2903; EG-NEXT: LSHR * T20.W, T20.Y, literal.x,2904; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2905; EG-NEXT: AND_INT T23.X, T20.Z, literal.x,2906; EG-NEXT: AND_INT T20.Z, T20.Y, literal.x,2907; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2908; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)2909; EG-NEXT: LSHR T24.X, PV.W, literal.x,2910; EG-NEXT: LSHR T20.Y, T20.X, literal.y,2911; EG-NEXT: LSHR T25.W, T19.W, literal.y,2912; EG-NEXT: AND_INT * T20.X, T20.X, literal.z,2913; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2914; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2915; EG-NEXT: AND_INT * T25.Z, T19.W, literal.x,2916; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2917; EG-NEXT: LSHR T26.X, KC0[2].Y, literal.x,2918; EG-NEXT: LSHR T25.Y, T19.Z, literal.y,2919; EG-NEXT: LSHR T19.W, T19.Y, literal.y,2920; EG-NEXT: AND_INT * T25.X, T19.Z, literal.z,2921; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2922; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2923; EG-NEXT: AND_INT T19.Z, T19.Y, literal.x,2924; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2925; EG-NEXT: 65535(9.183409e-41), 48(6.726233e-44)2926; EG-NEXT: LSHR T27.X, PV.W, literal.x,2927; EG-NEXT: LSHR T19.Y, T19.X, literal.y,2928; EG-NEXT: LSHR T28.W, T22.W, literal.y,2929; EG-NEXT: AND_INT * T19.X, T19.X, literal.z,2930; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2931; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2932; EG-NEXT: AND_INT T28.Z, T22.W, literal.x,2933; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2934; EG-NEXT: 65535(9.183409e-41), 32(4.484155e-44)2935; EG-NEXT: LSHR T29.X, PV.W, literal.x,2936; EG-NEXT: LSHR T28.Y, T22.Z, literal.y,2937; EG-NEXT: LSHR T22.W, T22.Y, literal.y,2938; EG-NEXT: AND_INT * T28.X, T22.Z, literal.z,2939; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2940; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2941; EG-NEXT: AND_INT T22.Z, T22.Y, literal.x,2942; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2943; EG-NEXT: 65535(9.183409e-41), 80(1.121039e-43)2944; EG-NEXT: LSHR T30.X, PV.W, literal.x,2945; EG-NEXT: LSHR T22.Y, T22.X, literal.y,2946; EG-NEXT: LSHR T31.W, T21.W, literal.y,2947; EG-NEXT: AND_INT * T22.X, T22.X, literal.z,2948; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2949; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2950; EG-NEXT: AND_INT T31.Z, T21.W, literal.x,2951; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2952; EG-NEXT: 65535(9.183409e-41), 64(8.968310e-44)2953; EG-NEXT: LSHR T32.X, PV.W, literal.x,2954; EG-NEXT: LSHR T31.Y, T21.Z, literal.y,2955; EG-NEXT: LSHR T21.W, T21.Y, literal.y,2956; EG-NEXT: AND_INT * T31.X, T21.Z, literal.z,2957; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2958; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2959; EG-NEXT: AND_INT T21.Z, T21.Y, literal.x,2960; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2961; EG-NEXT: 65535(9.183409e-41), 112(1.569454e-43)2962; EG-NEXT: LSHR T33.X, PV.W, literal.x,2963; EG-NEXT: LSHR T21.Y, T21.X, literal.y,2964; EG-NEXT: AND_INT * T21.X, T21.X, literal.z,2965; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2966; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2967; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,2968; EG-NEXT: 96(1.345247e-43), 0(0.000000e+00)2969; EG-NEXT: LSHR * T34.X, PV.W, literal.x,2970; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)2971;2972; CM-LABEL: global_zextload_v32i16_to_v32i32:2973; CM: ; %bb.0:2974; CM-NEXT: ALU 0, @20, KC0[CB0:0-32], KC1[]2975; CM-NEXT: TEX 3 @122976; CM-NEXT: ALU 65, @21, KC0[CB0:0-32], KC1[]2977; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T33, T34.X2978; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T31, T21.X2979; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T30, T32.X2980; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T28, T22.X2981; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T27, T29.X2982; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T25, T19.X2983; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T24, T26.X2984; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T23, T20.X2985; CM-NEXT: CF_END2986; CM-NEXT: Fetch clause starting at 12:2987; CM-NEXT: VTX_READ_128 T20.XYZW, T19.X, 48, #12988; CM-NEXT: VTX_READ_128 T21.XYZW, T19.X, 0, #12989; CM-NEXT: VTX_READ_128 T22.XYZW, T19.X, 16, #12990; CM-NEXT: VTX_READ_128 T19.XYZW, T19.X, 32, #12991; CM-NEXT: ALU clause starting at 20:2992; CM-NEXT: MOV * T19.X, KC0[2].Z,2993; CM-NEXT: ALU clause starting at 21:2994; CM-NEXT: LSHR * T23.W, T20.Y, literal.x,2995; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2996; CM-NEXT: AND_INT * T23.Z, T20.Y, literal.x,2997; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2998; CM-NEXT: LSHR T23.Y, T20.X, literal.x,2999; CM-NEXT: LSHR * T24.W, T20.W, literal.x,3000; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3001; CM-NEXT: AND_INT T23.X, T20.X, literal.x,3002; CM-NEXT: AND_INT T24.Z, T20.W, literal.x,3003; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3004; CM-NEXT: 65535(9.183409e-41), 96(1.345247e-43)3005; CM-NEXT: LSHR T20.X, PV.W, literal.x,3006; CM-NEXT: LSHR T24.Y, T20.Z, literal.y,3007; CM-NEXT: LSHR * T25.W, T19.Y, literal.y,3008; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3009; CM-NEXT: AND_INT T24.X, T20.Z, literal.x,3010; CM-NEXT: AND_INT T25.Z, T19.Y, literal.x,3011; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3012; CM-NEXT: 65535(9.183409e-41), 112(1.569454e-43)3013; CM-NEXT: LSHR T26.X, PV.W, literal.x,3014; CM-NEXT: LSHR T25.Y, T19.X, literal.y,3015; CM-NEXT: LSHR * T27.W, T19.W, literal.y,3016; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3017; CM-NEXT: AND_INT T25.X, T19.X, literal.x,3018; CM-NEXT: AND_INT T27.Z, T19.W, literal.x,3019; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3020; CM-NEXT: 65535(9.183409e-41), 64(8.968310e-44)3021; CM-NEXT: LSHR T19.X, PV.W, literal.x,3022; CM-NEXT: LSHR T27.Y, T19.Z, literal.y,3023; CM-NEXT: LSHR * T28.W, T22.Y, literal.y,3024; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3025; CM-NEXT: AND_INT T27.X, T19.Z, literal.x,3026; CM-NEXT: AND_INT T28.Z, T22.Y, literal.x,3027; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3028; CM-NEXT: 65535(9.183409e-41), 80(1.121039e-43)3029; CM-NEXT: LSHR T29.X, PV.W, literal.x,3030; CM-NEXT: LSHR T28.Y, T22.X, literal.y,3031; CM-NEXT: LSHR * T30.W, T22.W, literal.y,3032; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3033; CM-NEXT: AND_INT T28.X, T22.X, literal.x,3034; CM-NEXT: AND_INT T30.Z, T22.W, literal.x,3035; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3036; CM-NEXT: 65535(9.183409e-41), 32(4.484155e-44)3037; CM-NEXT: LSHR T22.X, PV.W, literal.x,3038; CM-NEXT: LSHR T30.Y, T22.Z, literal.y,3039; CM-NEXT: LSHR * T31.W, T21.Y, literal.y,3040; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3041; CM-NEXT: AND_INT T30.X, T22.Z, literal.x,3042; CM-NEXT: AND_INT T31.Z, T21.Y, literal.x,3043; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3044; CM-NEXT: 65535(9.183409e-41), 48(6.726233e-44)3045; CM-NEXT: LSHR T32.X, PV.W, literal.x,3046; CM-NEXT: LSHR T31.Y, T21.X, literal.y,3047; CM-NEXT: LSHR * T33.W, T21.W, literal.y,3048; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3049; CM-NEXT: AND_INT T31.X, T21.X, literal.x,3050; CM-NEXT: AND_INT * T33.Z, T21.W, literal.x,3051; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)3052; CM-NEXT: LSHR T21.X, KC0[2].Y, literal.x,3053; CM-NEXT: LSHR * T33.Y, T21.Z, literal.y,3054; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3055; CM-NEXT: AND_INT T33.X, T21.Z, literal.x,3056; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3057; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)3058; CM-NEXT: LSHR * T34.X, PV.W, literal.x,3059; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)3060 %load = load <32 x i16>, ptr addrspace(1) %in3061 %ext = zext <32 x i16> %load to <32 x i32>3062 store <32 x i32> %ext, ptr addrspace(1) %out3063 ret void3064}3065 3066define amdgpu_kernel void @global_sextload_v32i16_to_v32i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {3067; GCN-NOHSA-SI-LABEL: global_sextload_v32i16_to_v32i32:3068; GCN-NOHSA-SI: ; %bb.0:3069; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x93070; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0003071; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -13072; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s23073; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s33074; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)3075; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s63076; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s73077; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 03078; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:163079; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:323080; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:483081; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(3)3082; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v19, 16, v33083; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v17, 16, v23084; GCN-NOHSA-SI-NEXT: v_bfe_i32 v18, v3, 0, 163085; GCN-NOHSA-SI-NEXT: v_bfe_i32 v16, v2, 0, 163086; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v23, 16, v13087; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v21, 16, v03088; GCN-NOHSA-SI-NEXT: v_bfe_i32 v22, v1, 0, 163089; GCN-NOHSA-SI-NEXT: v_bfe_i32 v20, v0, 0, 163090; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(2)3091; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 16, v73092; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 16, v63093; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v7, 0, 163094; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v6, 0, 163095; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v27, 16, v53096; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 16, v43097; GCN-NOHSA-SI-NEXT: v_bfe_i32 v26, v5, 0, 163098; GCN-NOHSA-SI-NEXT: v_bfe_i32 v24, v4, 0, 163099; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)3100; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 16, v113101; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v5, 16, v103102; GCN-NOHSA-SI-NEXT: v_bfe_i32 v6, v11, 0, 163103; GCN-NOHSA-SI-NEXT: v_bfe_i32 v4, v10, 0, 163104; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v31, 16, v93105; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v29, 16, v83106; GCN-NOHSA-SI-NEXT: v_bfe_i32 v30, v9, 0, 163107; GCN-NOHSA-SI-NEXT: v_bfe_i32 v28, v8, 0, 163108; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)3109; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v11, 16, v153110; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v9, 16, v143111; GCN-NOHSA-SI-NEXT: v_bfe_i32 v10, v15, 0, 163112; GCN-NOHSA-SI-NEXT: v_bfe_i32 v8, v14, 0, 163113; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v35, 16, v133114; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v33, 16, v123115; GCN-NOHSA-SI-NEXT: v_bfe_i32 v34, v13, 0, 163116; GCN-NOHSA-SI-NEXT: v_bfe_i32 v32, v12, 0, 163117; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s43118; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s53119; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:963120; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1123121; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:643122; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:803123; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:323124; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:483125; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 03126; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:163127; GCN-NOHSA-SI-NEXT: s_endpgm3128;3129; GCN-HSA-LABEL: global_sextload_v32i16_to_v32i32:3130; GCN-HSA: ; %bb.0:3131; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x03132; GCN-HSA-NEXT: s_add_i32 s12, s12, s173133; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s133134; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 83135; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)3136; GCN-HSA-NEXT: v_mov_b32_e32 v0, s23137; GCN-HSA-NEXT: v_mov_b32_e32 v1, s33138; GCN-HSA-NEXT: flat_load_dwordx4 v[12:15], v[0:1]3139; GCN-HSA-NEXT: s_add_u32 s4, s2, 483140; GCN-HSA-NEXT: s_addc_u32 s5, s3, 03141; GCN-HSA-NEXT: v_mov_b32_e32 v0, s43142; GCN-HSA-NEXT: v_mov_b32_e32 v1, s53143; GCN-HSA-NEXT: s_add_u32 s4, s2, 323144; GCN-HSA-NEXT: flat_load_dwordx4 v[8:11], v[0:1]3145; GCN-HSA-NEXT: s_addc_u32 s5, s3, 03146; GCN-HSA-NEXT: v_mov_b32_e32 v0, s43147; GCN-HSA-NEXT: v_mov_b32_e32 v1, s53148; GCN-HSA-NEXT: s_add_u32 s2, s2, 163149; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[0:1]3150; GCN-HSA-NEXT: s_addc_u32 s3, s3, 03151; GCN-HSA-NEXT: v_mov_b32_e32 v0, s23152; GCN-HSA-NEXT: v_mov_b32_e32 v1, s33153; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]3154; GCN-HSA-NEXT: s_add_u32 s2, s0, 163155; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03156; GCN-HSA-NEXT: v_mov_b32_e32 v23, s33157; GCN-HSA-NEXT: v_mov_b32_e32 v22, s23158; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x603159; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03160; GCN-HSA-NEXT: v_mov_b32_e32 v25, s33161; GCN-HSA-NEXT: v_mov_b32_e32 v24, s23162; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x703163; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03164; GCN-HSA-NEXT: v_mov_b32_e32 v27, s33165; GCN-HSA-NEXT: v_mov_b32_e32 v21, s13166; GCN-HSA-NEXT: v_mov_b32_e32 v26, s23167; GCN-HSA-NEXT: s_add_u32 s2, s0, 643168; GCN-HSA-NEXT: v_mov_b32_e32 v20, s03169; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03170; GCN-HSA-NEXT: s_waitcnt vmcnt(3)3171; GCN-HSA-NEXT: v_ashrrev_i32_e32 v19, 16, v133172; GCN-HSA-NEXT: v_ashrrev_i32_e32 v17, 16, v123173; GCN-HSA-NEXT: v_bfe_i32 v18, v13, 0, 163174; GCN-HSA-NEXT: v_bfe_i32 v16, v12, 0, 163175; GCN-HSA-NEXT: flat_store_dwordx4 v[20:21], v[16:19]3176; GCN-HSA-NEXT: v_mov_b32_e32 v20, s33177; GCN-HSA-NEXT: v_mov_b32_e32 v19, s23178; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x503179; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03180; GCN-HSA-NEXT: v_mov_b32_e32 v29, s33181; GCN-HSA-NEXT: v_mov_b32_e32 v28, s23182; GCN-HSA-NEXT: s_add_u32 s2, s0, 323183; GCN-HSA-NEXT: v_ashrrev_i32_e32 v18, 16, v153184; GCN-HSA-NEXT: v_ashrrev_i32_e32 v16, 16, v143185; GCN-HSA-NEXT: v_bfe_i32 v17, v15, 0, 163186; GCN-HSA-NEXT: v_bfe_i32 v15, v14, 0, 163187; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03188; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[15:18]3189; GCN-HSA-NEXT: s_waitcnt vmcnt(4)3190; GCN-HSA-NEXT: v_ashrrev_i32_e32 v14, 16, v113191; GCN-HSA-NEXT: v_ashrrev_i32_e32 v12, 16, v103192; GCN-HSA-NEXT: v_bfe_i32 v13, v11, 0, 163193; GCN-HSA-NEXT: v_bfe_i32 v11, v10, 0, 163194; GCN-HSA-NEXT: v_ashrrev_i32_e32 v18, 16, v93195; GCN-HSA-NEXT: v_ashrrev_i32_e32 v16, 16, v83196; GCN-HSA-NEXT: v_bfe_i32 v17, v9, 0, 163197; GCN-HSA-NEXT: v_bfe_i32 v15, v8, 0, 163198; GCN-HSA-NEXT: s_add_u32 s0, s0, 483199; GCN-HSA-NEXT: v_mov_b32_e32 v22, s33200; GCN-HSA-NEXT: s_addc_u32 s1, s1, 03201; GCN-HSA-NEXT: flat_store_dwordx4 v[24:25], v[15:18]3202; GCN-HSA-NEXT: flat_store_dwordx4 v[26:27], v[11:14]3203; GCN-HSA-NEXT: s_waitcnt vmcnt(5)3204; GCN-HSA-NEXT: v_ashrrev_i32_e32 v10, 16, v73205; GCN-HSA-NEXT: v_ashrrev_i32_e32 v8, 16, v63206; GCN-HSA-NEXT: v_bfe_i32 v9, v7, 0, 163207; GCN-HSA-NEXT: v_bfe_i32 v7, v6, 0, 163208; GCN-HSA-NEXT: v_ashrrev_i32_e32 v14, 16, v53209; GCN-HSA-NEXT: v_ashrrev_i32_e32 v12, 16, v43210; GCN-HSA-NEXT: v_bfe_i32 v13, v5, 0, 163211; GCN-HSA-NEXT: v_bfe_i32 v11, v4, 0, 163212; GCN-HSA-NEXT: v_mov_b32_e32 v21, s23213; GCN-HSA-NEXT: v_mov_b32_e32 v31, s13214; GCN-HSA-NEXT: flat_store_dwordx4 v[19:20], v[11:14]3215; GCN-HSA-NEXT: flat_store_dwordx4 v[28:29], v[7:10]3216; GCN-HSA-NEXT: v_mov_b32_e32 v30, s03217; GCN-HSA-NEXT: s_waitcnt vmcnt(6)3218; GCN-HSA-NEXT: v_ashrrev_i32_e32 v10, 16, v13219; GCN-HSA-NEXT: v_ashrrev_i32_e32 v8, 16, v03220; GCN-HSA-NEXT: v_bfe_i32 v9, v1, 0, 163221; GCN-HSA-NEXT: v_bfe_i32 v7, v0, 0, 163222; GCN-HSA-NEXT: v_ashrrev_i32_e32 v6, 16, v33223; GCN-HSA-NEXT: v_ashrrev_i32_e32 v4, 16, v23224; GCN-HSA-NEXT: v_bfe_i32 v5, v3, 0, 163225; GCN-HSA-NEXT: v_bfe_i32 v3, v2, 0, 163226; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[7:10]3227; GCN-HSA-NEXT: flat_store_dwordx4 v[30:31], v[3:6]3228; GCN-HSA-NEXT: s_endpgm3229;3230; GCN-NOHSA-VI-LABEL: global_sextload_v32i16_to_v32i32:3231; GCN-NOHSA-VI: ; %bb.0:3232; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x243233; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0003234; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -13235; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s23236; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s33237; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)3238; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s63239; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s73240; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 03241; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:163242; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:323243; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:483244; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s43245; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s53246; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(3)3247; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v19, 16, v33248; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v17, 16, v23249; GCN-NOHSA-VI-NEXT: v_bfe_i32 v18, v3, 0, 163250; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)3251; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v35, 16, v133252; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v33, 16, v123253; GCN-NOHSA-VI-NEXT: v_bfe_i32 v34, v13, 0, 163254; GCN-NOHSA-VI-NEXT: v_bfe_i32 v32, v12, 0, 163255; GCN-NOHSA-VI-NEXT: v_bfe_i32 v16, v2, 0, 163256; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v23, 16, v13257; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v21, 16, v03258; GCN-NOHSA-VI-NEXT: v_bfe_i32 v22, v1, 0, 163259; GCN-NOHSA-VI-NEXT: v_bfe_i32 v20, v0, 0, 163260; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 16, v73261; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 16, v63262; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v7, 0, 163263; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v6, 0, 163264; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v27, 16, v53265; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v25, 16, v43266; GCN-NOHSA-VI-NEXT: v_bfe_i32 v26, v5, 0, 163267; GCN-NOHSA-VI-NEXT: v_bfe_i32 v24, v4, 0, 163268; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 16, v113269; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v5, 16, v103270; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v11, 0, 163271; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v10, 0, 163272; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v31, 16, v93273; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v29, 16, v83274; GCN-NOHSA-VI-NEXT: v_bfe_i32 v30, v9, 0, 163275; GCN-NOHSA-VI-NEXT: v_bfe_i32 v28, v8, 0, 163276; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v11, 16, v153277; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v9, 16, v143278; GCN-NOHSA-VI-NEXT: v_bfe_i32 v10, v15, 0, 163279; GCN-NOHSA-VI-NEXT: v_bfe_i32 v8, v14, 0, 163280; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:963281; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1123282; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:643283; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:803284; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:323285; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:483286; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 03287; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:163288; GCN-NOHSA-VI-NEXT: s_endpgm3289;3290; EG-LABEL: global_sextload_v32i16_to_v32i32:3291; EG: ; %bb.0:3292; EG-NEXT: ALU 9, @20, KC0[CB0:0-32], KC1[]3293; EG-NEXT: TEX 3 @123294; EG-NEXT: ALU 73, @30, KC0[CB0:0-32], KC1[]3295; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T24.XYZW, T22.X, 03296; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T33.XYZW, T34.X, 03297; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T28.X, 03298; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T32.XYZW, T27.X, 03299; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T26.X, 03300; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T31.XYZW, T21.X, 03301; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T30.XYZW, T20.X, 03302; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T29.XYZW, T19.X, 13303; EG-NEXT: CF_END3304; EG-NEXT: Fetch clause starting at 12:3305; EG-NEXT: VTX_READ_128 T23.XYZW, T22.X, 16, #13306; EG-NEXT: VTX_READ_128 T24.XYZW, T22.X, 32, #13307; EG-NEXT: VTX_READ_128 T25.XYZW, T22.X, 0, #13308; EG-NEXT: VTX_READ_128 T22.XYZW, T22.X, 48, #13309; EG-NEXT: ALU clause starting at 20:3310; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,3311; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3312; EG-NEXT: LSHR T19.X, PV.W, literal.x,3313; EG-NEXT: LSHR * T20.X, KC0[2].Y, literal.x,3314; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)3315; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,3316; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)3317; EG-NEXT: LSHR T21.X, PV.W, literal.x,3318; EG-NEXT: MOV * T22.X, KC0[2].Z,3319; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)3320; EG-NEXT: ALU clause starting at 30:3321; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,3322; EG-NEXT: 32(4.484155e-44), 0(0.000000e+00)3323; EG-NEXT: LSHR T26.X, PV.W, literal.x,3324; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3325; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)3326; EG-NEXT: LSHR T27.X, PV.W, literal.x,3327; EG-NEXT: LSHR T0.W, T22.Y, literal.y,3328; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,3329; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3330; EG-NEXT: 64(8.968310e-44), 0(0.000000e+00)3331; EG-NEXT: LSHR T28.X, PS, literal.x,3332; EG-NEXT: LSHR T0.Y, T22.W, literal.y,3333; EG-NEXT: BFE_INT T29.Z, T25.W, 0.0, literal.y, BS:VEC_120/SCL_2123334; EG-NEXT: LSHR T1.W, T24.Y, literal.y,3335; EG-NEXT: LSHR * T2.W, T24.W, literal.y,3336; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3337; EG-NEXT: BFE_INT T29.X, T25.Z, 0.0, literal.x,3338; EG-NEXT: LSHR T1.Y, T23.Y, literal.x,3339; EG-NEXT: BFE_INT T30.Z, T25.Y, 0.0, literal.x, BS:VEC_120/SCL_2123340; EG-NEXT: LSHR T3.W, T23.W, literal.x,3341; EG-NEXT: LSHR * T4.W, T25.W, literal.x,3342; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3343; EG-NEXT: BFE_INT T30.X, T25.X, 0.0, literal.x,3344; EG-NEXT: LSHR T2.Y, T25.Y, literal.x,3345; EG-NEXT: BFE_INT T31.Z, T23.W, 0.0, literal.x,3346; EG-NEXT: BFE_INT T29.W, PS, 0.0, literal.x,3347; EG-NEXT: LSHR * T4.W, T25.Z, literal.x,3348; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3349; EG-NEXT: BFE_INT T31.X, T23.Z, 0.0, literal.x,3350; EG-NEXT: BFE_INT T29.Y, PS, 0.0, literal.x,3351; EG-NEXT: BFE_INT T25.Z, T23.Y, 0.0, literal.x,3352; EG-NEXT: BFE_INT T30.W, PV.Y, 0.0, literal.x,3353; EG-NEXT: LSHR * T4.W, T25.X, literal.x,3354; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3355; EG-NEXT: BFE_INT T25.X, T23.X, 0.0, literal.x,3356; EG-NEXT: BFE_INT T30.Y, PS, 0.0, literal.x,3357; EG-NEXT: BFE_INT T32.Z, T24.W, 0.0, literal.x,3358; EG-NEXT: BFE_INT T31.W, T3.W, 0.0, literal.x, BS:VEC_120/SCL_2123359; EG-NEXT: LSHR * T3.W, T23.Z, literal.x,3360; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3361; EG-NEXT: BFE_INT T32.X, T24.Z, 0.0, literal.x,3362; EG-NEXT: BFE_INT T31.Y, PS, 0.0, literal.x,3363; EG-NEXT: BFE_INT T23.Z, T24.Y, 0.0, literal.x,3364; EG-NEXT: BFE_INT T25.W, T1.Y, 0.0, literal.x, BS:VEC_120/SCL_2123365; EG-NEXT: LSHR * T3.W, T23.X, literal.x,3366; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3367; EG-NEXT: BFE_INT T23.X, T24.X, 0.0, literal.x,3368; EG-NEXT: BFE_INT T25.Y, PS, 0.0, literal.x,3369; EG-NEXT: BFE_INT T33.Z, T22.W, 0.0, literal.x,3370; EG-NEXT: BFE_INT T32.W, T2.W, 0.0, literal.x, BS:VEC_120/SCL_2123371; EG-NEXT: LSHR * T2.W, T24.Z, literal.x,3372; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3373; EG-NEXT: BFE_INT T33.X, T22.Z, 0.0, literal.x,3374; EG-NEXT: BFE_INT T32.Y, PS, 0.0, literal.x,3375; EG-NEXT: BFE_INT T24.Z, T22.Y, 0.0, literal.x,3376; EG-NEXT: BFE_INT T23.W, T1.W, 0.0, literal.x,3377; EG-NEXT: LSHR * T1.W, T24.X, literal.x,3378; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3379; EG-NEXT: BFE_INT T24.X, T22.X, 0.0, literal.x,3380; EG-NEXT: BFE_INT T23.Y, PS, 0.0, literal.x,3381; EG-NEXT: LSHR T0.Z, T22.Z, literal.x,3382; EG-NEXT: BFE_INT T33.W, T0.Y, 0.0, literal.x,3383; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3384; EG-NEXT: 16(2.242078e-44), 112(1.569454e-43)3385; EG-NEXT: LSHR T34.X, PS, literal.x,3386; EG-NEXT: BFE_INT T33.Y, PV.Z, 0.0, literal.y,3387; EG-NEXT: LSHR T0.Z, T22.X, literal.y,3388; EG-NEXT: BFE_INT T24.W, T0.W, 0.0, literal.y,3389; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,3390; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3391; EG-NEXT: 96(1.345247e-43), 0(0.000000e+00)3392; EG-NEXT: LSHR T22.X, PS, literal.x,3393; EG-NEXT: BFE_INT * T24.Y, PV.Z, 0.0, literal.y,3394; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3395;3396; CM-LABEL: global_sextload_v32i16_to_v32i32:3397; CM: ; %bb.0:3398; CM-NEXT: ALU 0, @22, KC0[CB0:0-32], KC1[]3399; CM-NEXT: TEX 0 @143400; CM-NEXT: ALU 7, @23, KC0[CB0:0-32], KC1[]3401; CM-NEXT: TEX 2 @163402; CM-NEXT: ALU 76, @31, KC0[CB0:0-32], KC1[]3403; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T33, T34.X3404; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T20.X3405; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T32, T28.X3406; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T23, T27.X3407; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T31, T26.X3408; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T22, T25.X3409; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T30, T24.X3410; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T29, T21.X3411; CM-NEXT: CF_END3412; CM-NEXT: Fetch clause starting at 14:3413; CM-NEXT: VTX_READ_128 T20.XYZW, T19.X, 0, #13414; CM-NEXT: Fetch clause starting at 16:3415; CM-NEXT: VTX_READ_128 T22.XYZW, T19.X, 48, #13416; CM-NEXT: VTX_READ_128 T23.XYZW, T19.X, 32, #13417; CM-NEXT: VTX_READ_128 T19.XYZW, T19.X, 16, #13418; CM-NEXT: ALU clause starting at 22:3419; CM-NEXT: MOV * T19.X, KC0[2].Z,3420; CM-NEXT: ALU clause starting at 23:3421; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,3422; CM-NEXT: 96(1.345247e-43), 0(0.000000e+00)3423; CM-NEXT: LSHR T21.X, PV.W, literal.x,3424; CM-NEXT: LSHR T0.Y, T20.Z, literal.y,3425; CM-NEXT: LSHR T0.Z, T20.W, literal.y,3426; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,3427; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3428; CM-NEXT: 112(1.569454e-43), 0(0.000000e+00)3429; CM-NEXT: ALU clause starting at 31:3430; CM-NEXT: LSHR T24.X, T0.W, literal.x,3431; CM-NEXT: LSHR T1.Y, T20.Y, literal.y,3432; CM-NEXT: LSHR T1.Z, T19.Z, literal.y,3433; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,3434; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3435; CM-NEXT: 64(8.968310e-44), 0(0.000000e+00)3436; CM-NEXT: LSHR T25.X, PV.W, literal.x,3437; CM-NEXT: LSHR T2.Y, T19.W, literal.y,3438; CM-NEXT: LSHR T2.Z, T19.X, literal.y,3439; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,3440; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3441; CM-NEXT: 80(1.121039e-43), 0(0.000000e+00)3442; CM-NEXT: LSHR T26.X, PV.W, literal.x,3443; CM-NEXT: LSHR T3.Y, T19.Y, literal.y,3444; CM-NEXT: LSHR T3.Z, T23.Z, literal.y,3445; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,3446; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3447; CM-NEXT: 32(4.484155e-44), 0(0.000000e+00)3448; CM-NEXT: LSHR T27.X, PV.W, literal.x,3449; CM-NEXT: LSHR T4.Y, T23.W, literal.y,3450; CM-NEXT: LSHR T4.Z, T23.X, literal.y,3451; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,3452; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3453; CM-NEXT: 48(6.726233e-44), 0(0.000000e+00)3454; CM-NEXT: LSHR T28.X, PV.W, literal.x,3455; CM-NEXT: LSHR T5.Y, T23.Y, literal.y,3456; CM-NEXT: BFE_INT T29.Z, T22.Y, 0.0, literal.y, BS:VEC_120/SCL_2123457; CM-NEXT: LSHR * T0.W, T22.Z, literal.y,3458; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3459; CM-NEXT: BFE_INT T29.X, T22.X, 0.0, literal.x,3460; CM-NEXT: LSHR T6.Y, T22.W, literal.x,3461; CM-NEXT: BFE_INT T30.Z, T22.W, 0.0, literal.x,3462; CM-NEXT: LSHR * T1.W, T22.Y, literal.x,3463; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3464; CM-NEXT: BFE_INT T30.X, T22.Z, 0.0, literal.x,3465; CM-NEXT: LSHR T7.Y, T22.X, literal.x,3466; CM-NEXT: BFE_INT T22.Z, T23.Y, 0.0, literal.x,3467; CM-NEXT: BFE_INT * T29.W, PV.W, 0.0, literal.x,3468; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3469; CM-NEXT: BFE_INT T22.X, T23.X, 0.0, literal.x,3470; CM-NEXT: BFE_INT T29.Y, PV.Y, 0.0, literal.x,3471; CM-NEXT: BFE_INT T31.Z, T23.W, 0.0, literal.x,3472; CM-NEXT: BFE_INT * T30.W, T6.Y, 0.0, literal.x,3473; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3474; CM-NEXT: BFE_INT T31.X, T23.Z, 0.0, literal.x,3475; CM-NEXT: BFE_INT T30.Y, T0.W, 0.0, literal.x,3476; CM-NEXT: BFE_INT T23.Z, T19.Y, 0.0, literal.x,3477; CM-NEXT: BFE_INT * T22.W, T5.Y, 0.0, literal.x, BS:VEC_120/SCL_2123478; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3479; CM-NEXT: BFE_INT T23.X, T19.X, 0.0, literal.x,3480; CM-NEXT: BFE_INT T22.Y, T4.Z, 0.0, literal.x,3481; CM-NEXT: BFE_INT T32.Z, T19.W, 0.0, literal.x,3482; CM-NEXT: BFE_INT * T31.W, T4.Y, 0.0, literal.x,3483; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3484; CM-NEXT: BFE_INT T32.X, T19.Z, 0.0, literal.x,3485; CM-NEXT: BFE_INT T31.Y, T3.Z, 0.0, literal.x, BS:VEC_120/SCL_2123486; CM-NEXT: BFE_INT T19.Z, T20.Y, 0.0, literal.x,3487; CM-NEXT: BFE_INT * T23.W, T3.Y, 0.0, literal.x, BS:VEC_120/SCL_2123488; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3489; CM-NEXT: BFE_INT T19.X, T20.X, 0.0, literal.x,3490; CM-NEXT: BFE_INT T23.Y, T2.Z, 0.0, literal.x,3491; CM-NEXT: BFE_INT T33.Z, T20.W, 0.0, literal.x,3492; CM-NEXT: BFE_INT * T32.W, T2.Y, 0.0, literal.x,3493; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3494; CM-NEXT: BFE_INT T33.X, T20.Z, 0.0, literal.x,3495; CM-NEXT: BFE_INT T32.Y, T1.Z, 0.0, literal.x, BS:VEC_120/SCL_2123496; CM-NEXT: LSHR T1.Z, T20.X, literal.x,3497; CM-NEXT: BFE_INT * T19.W, T1.Y, 0.0, literal.x,3498; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3499; CM-NEXT: LSHR T20.X, KC0[2].Y, literal.x,3500; CM-NEXT: BFE_INT T19.Y, PV.Z, 0.0, literal.y,3501; CM-NEXT: ADD_INT T1.Z, KC0[2].Y, literal.y,3502; CM-NEXT: BFE_INT * T33.W, T0.Z, 0.0, literal.y,3503; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3504; CM-NEXT: LSHR T34.X, PV.Z, literal.x,3505; CM-NEXT: BFE_INT * T33.Y, T0.Y, 0.0, literal.y,3506; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3507 %load = load <32 x i16>, ptr addrspace(1) %in3508 %ext = sext <32 x i16> %load to <32 x i32>3509 store <32 x i32> %ext, ptr addrspace(1) %out3510 ret void3511}3512 3513define amdgpu_kernel void @global_zextload_v64i16_to_v64i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {3514; GCN-NOHSA-SI-LABEL: global_zextload_v64i16_to_v64i32:3515; GCN-NOHSA-SI: ; %bb.0:3516; GCN-NOHSA-SI-NEXT: s_mov_b32 s12, SCRATCH_RSRC_DWORD03517; GCN-NOHSA-SI-NEXT: s_mov_b32 s13, SCRATCH_RSRC_DWORD13518; GCN-NOHSA-SI-NEXT: s_mov_b32 s14, -13519; GCN-NOHSA-SI-NEXT: s_mov_b32 s15, 0xe8f0003520; GCN-NOHSA-SI-NEXT: s_add_u32 s12, s12, s113521; GCN-NOHSA-SI-NEXT: s_addc_u32 s13, s13, 03522; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x93523; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0003524; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -13525; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s23526; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s33527; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)3528; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s63529; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s73530; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[12:15], off, s[8:11], 03531; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:163532; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:323533; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:483534; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[27:30], off, s[8:11], 0 offset:643535; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[31:34], off, s[8:11], 0 offset:803536; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[35:38], off, s[8:11], 0 offset:963537; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[39:42], off, s[8:11], 0 offset:1123538; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(7)3539; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v18, 16, v153540; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v16, 16, v143541; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v21, 16, v133542; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v19, 16, v123543; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(6)3544; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v26, 16, v113545; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v24, 16, v103546; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v17, 0xffff, v153547; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v15, 0xffff, v143548; GCN-NOHSA-SI-NEXT: buffer_store_dword v15, off, s[12:15], 0 ; 4-byte Folded Spill3549; GCN-NOHSA-SI-NEXT: buffer_store_dword v16, off, s[12:15], 0 offset:4 ; 4-byte Folded Spill3550; GCN-NOHSA-SI-NEXT: buffer_store_dword v17, off, s[12:15], 0 offset:8 ; 4-byte Folded Spill3551; GCN-NOHSA-SI-NEXT: buffer_store_dword v18, off, s[12:15], 0 offset:12 ; 4-byte Folded Spill3552; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v20, 0xffff, v133553; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3554; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v18, 0xffff, v123555; GCN-NOHSA-SI-NEXT: buffer_store_dword v18, off, s[12:15], 0 offset:16 ; 4-byte Folded Spill3556; GCN-NOHSA-SI-NEXT: buffer_store_dword v19, off, s[12:15], 0 offset:20 ; 4-byte Folded Spill3557; GCN-NOHSA-SI-NEXT: buffer_store_dword v20, off, s[12:15], 0 offset:24 ; 4-byte Folded Spill3558; GCN-NOHSA-SI-NEXT: buffer_store_dword v21, off, s[12:15], 0 offset:28 ; 4-byte Folded Spill3559; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(2)3560; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v19, 16, v93561; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v17, 16, v83562; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v25, 0xffff, v113563; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v23, 0xffff, v103564; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v18, 0xffff, v93565; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v16, 0xffff, v83566; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(13)3567; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v15, 16, v73568; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v13, 16, v63569; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v46, 16, v53570; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v44, 16, v43571; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v14, 0xffff, v73572; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v12, 0xffff, v63573; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v45, 0xffff, v53574; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v43, 0xffff, v43575; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(12)3576; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v11, 16, v33577; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v9, 16, v23578; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v50, 16, v13579; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v48, 16, v03580; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v10, 0xffff, v33581; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v8, 0xffff, v23582; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v49, 0xffff, v13583; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v47, 0xffff, v03584; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(11)3585; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v54, 16, v303586; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v52, 16, v293587; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v58, 16, v283588; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v56, 16, v273589; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v53, 0xffff, v303590; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v51, 0xffff, v293591; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v57, 0xffff, v283592; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v55, 0xffff, v273593; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(10)3594; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v30, 16, v343595; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v28, 16, v333596; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v62, 16, v323597; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v60, 16, v313598; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v29, 0xffff, v343599; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v27, 0xffff, v333600; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v61, 0xffff, v323601; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v59, 0xffff, v313602; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(9)3603; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v34, 16, v383604; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v32, 16, v373605; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v7, 16, v363606; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v5, 16, v353607; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v33, 0xffff, v383608; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v31, 0xffff, v373609; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v6, 0xffff, v363610; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xffff, v353611; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(8)3612; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v38, 16, v423613; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v36, 16, v413614; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v3, 16, v403615; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v1, 16, v393616; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v37, 0xffff, v423617; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v35, 0xffff, v413618; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v2, 0xffff, v403619; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v393620; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s43621; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s53622; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2243623; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[35:38], off, s[0:3], 0 offset:2403624; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1923625; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[31:34], off, s[0:3], 0 offset:2083626; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[59:62], off, s[0:3], 0 offset:1603627; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[27:30], off, s[0:3], 0 offset:1763628; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[55:58], off, s[0:3], 0 offset:1283629; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[51:54], off, s[0:3], 0 offset:1443630; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[47:50], off, s[0:3], 0 offset:963631; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1123632; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[43:46], off, s[0:3], 0 offset:643633; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:803634; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:323635; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:483636; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[12:15], 0 offset:16 ; 4-byte Folded Reload3637; GCN-NOHSA-SI-NEXT: buffer_load_dword v1, off, s[12:15], 0 offset:20 ; 4-byte Folded Reload3638; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[12:15], 0 offset:24 ; 4-byte Folded Reload3639; GCN-NOHSA-SI-NEXT: buffer_load_dword v3, off, s[12:15], 0 offset:28 ; 4-byte Folded Reload3640; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)3641; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 03642; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3643; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[12:15], 0 ; 4-byte Folded Reload3644; GCN-NOHSA-SI-NEXT: buffer_load_dword v1, off, s[12:15], 0 offset:4 ; 4-byte Folded Reload3645; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[12:15], 0 offset:8 ; 4-byte Folded Reload3646; GCN-NOHSA-SI-NEXT: buffer_load_dword v3, off, s[12:15], 0 offset:12 ; 4-byte Folded Reload3647; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)3648; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:163649; GCN-NOHSA-SI-NEXT: s_endpgm3650;3651; GCN-HSA-LABEL: global_zextload_v64i16_to_v64i32:3652; GCN-HSA: ; %bb.0:3653; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x03654; GCN-HSA-NEXT: s_add_i32 s12, s12, s173655; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s133656; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 83657; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)3658; GCN-HSA-NEXT: v_mov_b32_e32 v0, s23659; GCN-HSA-NEXT: v_mov_b32_e32 v1, s33660; GCN-HSA-NEXT: flat_load_dwordx4 v[24:27], v[0:1]3661; GCN-HSA-NEXT: s_add_u32 s4, s2, 163662; GCN-HSA-NEXT: s_addc_u32 s5, s3, 03663; GCN-HSA-NEXT: s_add_u32 s6, s2, 323664; GCN-HSA-NEXT: s_addc_u32 s7, s3, 03665; GCN-HSA-NEXT: s_add_u32 s8, s2, 483666; GCN-HSA-NEXT: s_addc_u32 s9, s3, 03667; GCN-HSA-NEXT: v_mov_b32_e32 v17, s93668; GCN-HSA-NEXT: s_add_u32 s10, s2, 643669; GCN-HSA-NEXT: v_mov_b32_e32 v16, s83670; GCN-HSA-NEXT: s_addc_u32 s11, s3, 03671; GCN-HSA-NEXT: flat_load_dwordx4 v[20:23], v[16:17]3672; GCN-HSA-NEXT: v_mov_b32_e32 v0, s103673; GCN-HSA-NEXT: v_mov_b32_e32 v1, s113674; GCN-HSA-NEXT: s_add_u32 s10, s2, 0x503675; GCN-HSA-NEXT: s_addc_u32 s11, s3, 03676; GCN-HSA-NEXT: v_mov_b32_e32 v4, s103677; GCN-HSA-NEXT: v_mov_b32_e32 v5, s113678; GCN-HSA-NEXT: s_add_u32 s10, s2, 0x603679; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]3680; GCN-HSA-NEXT: flat_load_dwordx4 v[8:11], v[4:5]3681; GCN-HSA-NEXT: s_addc_u32 s11, s3, 03682; GCN-HSA-NEXT: v_mov_b32_e32 v4, s103683; GCN-HSA-NEXT: s_add_u32 s2, s2, 0x703684; GCN-HSA-NEXT: v_mov_b32_e32 v5, s113685; GCN-HSA-NEXT: s_addc_u32 s3, s3, 03686; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[4:5]3687; GCN-HSA-NEXT: v_mov_b32_e32 v13, s33688; GCN-HSA-NEXT: v_mov_b32_e32 v12, s23689; GCN-HSA-NEXT: flat_load_dwordx4 v[28:31], v[12:13]3690; GCN-HSA-NEXT: v_mov_b32_e32 v13, s53691; GCN-HSA-NEXT: v_mov_b32_e32 v15, s73692; GCN-HSA-NEXT: v_mov_b32_e32 v12, s43693; GCN-HSA-NEXT: v_mov_b32_e32 v14, s63694; GCN-HSA-NEXT: flat_load_dwordx4 v[16:19], v[12:13]3695; GCN-HSA-NEXT: flat_load_dwordx4 v[12:15], v[14:15]3696; GCN-HSA-NEXT: s_add_u32 s2, s0, 163697; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03698; GCN-HSA-NEXT: v_mov_b32_e32 v37, s13699; GCN-HSA-NEXT: v_mov_b32_e32 v36, s03700; GCN-HSA-NEXT: s_waitcnt vmcnt(7)3701; GCN-HSA-NEXT: v_lshrrev_b32_e32 v35, 16, v253702; GCN-HSA-NEXT: v_lshrrev_b32_e32 v33, 16, v243703; GCN-HSA-NEXT: v_and_b32_e32 v34, 0xffff, v253704; GCN-HSA-NEXT: v_and_b32_e32 v32, 0xffff, v243705; GCN-HSA-NEXT: v_mov_b32_e32 v25, s33706; GCN-HSA-NEXT: v_mov_b32_e32 v24, s23707; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xe03708; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03709; GCN-HSA-NEXT: s_add_u32 s4, s0, 0xf03710; GCN-HSA-NEXT: flat_store_dwordx4 v[36:37], v[32:35]3711; GCN-HSA-NEXT: v_mov_b32_e32 v37, s33712; GCN-HSA-NEXT: s_addc_u32 s5, s1, 03713; GCN-HSA-NEXT: v_mov_b32_e32 v36, s23714; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xc03715; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03716; GCN-HSA-NEXT: s_add_u32 s6, s0, 0xd03717; GCN-HSA-NEXT: s_addc_u32 s7, s1, 03718; GCN-HSA-NEXT: s_add_u32 s8, s0, 0xa03719; GCN-HSA-NEXT: s_addc_u32 s9, s1, 03720; GCN-HSA-NEXT: s_add_u32 s10, s0, 0xb03721; GCN-HSA-NEXT: s_addc_u32 s11, s1, 03722; GCN-HSA-NEXT: s_add_u32 s12, s0, 0x803723; GCN-HSA-NEXT: v_lshrrev_b32_e32 v35, 16, v273724; GCN-HSA-NEXT: v_lshrrev_b32_e32 v33, 16, v263725; GCN-HSA-NEXT: v_and_b32_e32 v34, 0xffff, v273726; GCN-HSA-NEXT: v_and_b32_e32 v32, 0xffff, v263727; GCN-HSA-NEXT: s_addc_u32 s13, s1, 03728; GCN-HSA-NEXT: flat_store_dwordx4 v[24:25], v[32:35]3729; GCN-HSA-NEXT: s_waitcnt vmcnt(7)3730; GCN-HSA-NEXT: v_lshrrev_b32_e32 v27, 16, v13731; GCN-HSA-NEXT: v_mov_b32_e32 v33, s133732; GCN-HSA-NEXT: v_mov_b32_e32 v32, s123733; GCN-HSA-NEXT: v_lshrrev_b32_e32 v25, 16, v03734; GCN-HSA-NEXT: v_and_b32_e32 v26, 0xffff, v13735; GCN-HSA-NEXT: v_and_b32_e32 v24, 0xffff, v03736; GCN-HSA-NEXT: v_mov_b32_e32 v0, s83737; GCN-HSA-NEXT: flat_store_dwordx4 v[32:33], v[24:27]3738; GCN-HSA-NEXT: v_mov_b32_e32 v1, s93739; GCN-HSA-NEXT: s_waitcnt vmcnt(7)3740; GCN-HSA-NEXT: v_lshrrev_b32_e32 v27, 16, v93741; GCN-HSA-NEXT: v_lshrrev_b32_e32 v25, 16, v83742; GCN-HSA-NEXT: v_and_b32_e32 v26, 0xffff, v93743; GCN-HSA-NEXT: v_and_b32_e32 v24, 0xffff, v83744; GCN-HSA-NEXT: v_mov_b32_e32 v8, s103745; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[24:27]3746; GCN-HSA-NEXT: v_mov_b32_e32 v9, s113747; GCN-HSA-NEXT: v_lshrrev_b32_e32 v27, 16, v113748; GCN-HSA-NEXT: v_lshrrev_b32_e32 v25, 16, v103749; GCN-HSA-NEXT: v_and_b32_e32 v26, 0xffff, v113750; GCN-HSA-NEXT: v_and_b32_e32 v24, 0xffff, v103751; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[24:27]3752; GCN-HSA-NEXT: s_waitcnt vmcnt(8)3753; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 16, v53754; GCN-HSA-NEXT: v_lshrrev_b32_e32 v9, 16, v43755; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xffff, v53756; GCN-HSA-NEXT: v_and_b32_e32 v8, 0xffff, v43757; GCN-HSA-NEXT: v_mov_b32_e32 v5, s33758; GCN-HSA-NEXT: v_mov_b32_e32 v0, s43759; GCN-HSA-NEXT: v_mov_b32_e32 v4, s23760; GCN-HSA-NEXT: v_mov_b32_e32 v33, s73761; GCN-HSA-NEXT: v_mov_b32_e32 v1, s53762; GCN-HSA-NEXT: v_lshrrev_b32_e32 v27, 16, v73763; GCN-HSA-NEXT: v_lshrrev_b32_e32 v25, 16, v63764; GCN-HSA-NEXT: v_and_b32_e32 v26, 0xffff, v73765; GCN-HSA-NEXT: v_and_b32_e32 v24, 0xffff, v63766; GCN-HSA-NEXT: v_mov_b32_e32 v32, s63767; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[8:11]3768; GCN-HSA-NEXT: s_waitcnt vmcnt(8)3769; GCN-HSA-NEXT: v_and_b32_e32 v7, 0xffff, v283770; GCN-HSA-NEXT: v_lshrrev_b32_e32 v10, 16, v293771; GCN-HSA-NEXT: v_lshrrev_b32_e32 v8, 16, v283772; GCN-HSA-NEXT: v_and_b32_e32 v9, 0xffff, v293773; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x903774; GCN-HSA-NEXT: flat_store_dwordx4 v[32:33], v[24:27]3775; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03776; GCN-HSA-NEXT: v_lshrrev_b32_e32 v27, 16, v313777; GCN-HSA-NEXT: v_lshrrev_b32_e32 v25, 16, v303778; GCN-HSA-NEXT: v_and_b32_e32 v26, 0xffff, v313779; GCN-HSA-NEXT: v_and_b32_e32 v24, 0xffff, v303780; GCN-HSA-NEXT: flat_store_dwordx4 v[36:37], v[7:10]3781; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[24:27]3782; GCN-HSA-NEXT: v_mov_b32_e32 v0, s23783; GCN-HSA-NEXT: v_mov_b32_e32 v1, s33784; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x603785; GCN-HSA-NEXT: v_lshrrev_b32_e32 v6, 16, v33786; GCN-HSA-NEXT: v_lshrrev_b32_e32 v4, 16, v23787; GCN-HSA-NEXT: v_and_b32_e32 v5, 0xffff, v33788; GCN-HSA-NEXT: v_and_b32_e32 v3, 0xffff, v23789; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03790; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[3:6]3791; GCN-HSA-NEXT: v_lshrrev_b32_e32 v1, 16, v203792; GCN-HSA-NEXT: v_mov_b32_e32 v5, s33793; GCN-HSA-NEXT: v_mov_b32_e32 v4, s23794; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x703795; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03796; GCN-HSA-NEXT: v_mov_b32_e32 v9, s33797; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 16, v213798; GCN-HSA-NEXT: v_and_b32_e32 v2, 0xffff, v213799; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xffff, v203800; GCN-HSA-NEXT: v_mov_b32_e32 v8, s23801; GCN-HSA-NEXT: s_add_u32 s2, s0, 643802; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3803; GCN-HSA-NEXT: v_lshrrev_b32_e32 v7, 16, v233804; GCN-HSA-NEXT: v_lshrrev_b32_e32 v5, 16, v223805; GCN-HSA-NEXT: v_and_b32_e32 v6, 0xffff, v233806; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xffff, v223807; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03808; GCN-HSA-NEXT: s_waitcnt vmcnt(12)3809; GCN-HSA-NEXT: v_lshrrev_b32_e32 v1, 16, v183810; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[4:7]3811; GCN-HSA-NEXT: s_waitcnt vmcnt(12)3812; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 16, v153813; GCN-HSA-NEXT: v_lshrrev_b32_e32 v7, 16, v173814; GCN-HSA-NEXT: v_lshrrev_b32_e32 v5, 16, v163815; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xffff, v183816; GCN-HSA-NEXT: v_and_b32_e32 v6, 0xffff, v173817; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xffff, v163818; GCN-HSA-NEXT: v_lshrrev_b32_e32 v18, 16, v133819; GCN-HSA-NEXT: v_lshrrev_b32_e32 v16, 16, v123820; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xffff, v153821; GCN-HSA-NEXT: v_and_b32_e32 v17, 0xffff, v133822; GCN-HSA-NEXT: v_and_b32_e32 v15, 0xffff, v123823; GCN-HSA-NEXT: v_mov_b32_e32 v13, s33824; GCN-HSA-NEXT: v_mov_b32_e32 v12, s23825; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x503826; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03827; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[15:18]3828; GCN-HSA-NEXT: v_mov_b32_e32 v13, s33829; GCN-HSA-NEXT: v_mov_b32_e32 v12, s23830; GCN-HSA-NEXT: s_add_u32 s2, s0, 323831; GCN-HSA-NEXT: v_lshrrev_b32_e32 v9, 16, v143832; GCN-HSA-NEXT: v_and_b32_e32 v8, 0xffff, v143833; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03834; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[8:11]3835; GCN-HSA-NEXT: s_add_u32 s0, s0, 483836; GCN-HSA-NEXT: v_mov_b32_e32 v9, s33837; GCN-HSA-NEXT: v_mov_b32_e32 v8, s23838; GCN-HSA-NEXT: s_addc_u32 s1, s1, 03839; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[4:7]3840; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 16, v193841; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13842; GCN-HSA-NEXT: v_and_b32_e32 v2, 0xffff, v193843; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03844; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3845; GCN-HSA-NEXT: s_endpgm3846;3847; GCN-NOHSA-VI-LABEL: global_zextload_v64i16_to_v64i32:3848; GCN-NOHSA-VI: ; %bb.0:3849; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x243850; GCN-NOHSA-VI-NEXT: s_mov_b32 s88, SCRATCH_RSRC_DWORD03851; GCN-NOHSA-VI-NEXT: s_mov_b32 s89, SCRATCH_RSRC_DWORD13852; GCN-NOHSA-VI-NEXT: s_mov_b32 s90, -13853; GCN-NOHSA-VI-NEXT: s_mov_b32 s91, 0xe800003854; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0003855; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -13856; GCN-NOHSA-VI-NEXT: s_add_u32 s88, s88, s113857; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s23858; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)3859; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s63860; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s73861; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s33862; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[12:15], off, s[8:11], 03863; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:163864; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:323865; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:483866; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[27:30], off, s[8:11], 0 offset:643867; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[31:34], off, s[8:11], 0 offset:803868; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[35:38], off, s[8:11], 0 offset:963869; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[39:42], off, s[8:11], 0 offset:1123870; GCN-NOHSA-VI-NEXT: s_addc_u32 s89, s89, 03871; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s43872; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s53873; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(7)3874; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v18, 16, v153875; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v16, 16, v143876; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v17, 0xffff, v153877; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v15, 0xffff, v143878; GCN-NOHSA-VI-NEXT: buffer_store_dword v15, off, s[88:91], 0 ; 4-byte Folded Spill3879; GCN-NOHSA-VI-NEXT: buffer_store_dword v16, off, s[88:91], 0 offset:4 ; 4-byte Folded Spill3880; GCN-NOHSA-VI-NEXT: buffer_store_dword v17, off, s[88:91], 0 offset:8 ; 4-byte Folded Spill3881; GCN-NOHSA-VI-NEXT: buffer_store_dword v18, off, s[88:91], 0 offset:12 ; 4-byte Folded Spill3882; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v21, 16, v133883; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v19, 16, v123884; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v20, 0xffff, v133885; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v18, 0xffff, v123886; GCN-NOHSA-VI-NEXT: buffer_store_dword v18, off, s[88:91], 0 offset:16 ; 4-byte Folded Spill3887; GCN-NOHSA-VI-NEXT: buffer_store_dword v19, off, s[88:91], 0 offset:20 ; 4-byte Folded Spill3888; GCN-NOHSA-VI-NEXT: buffer_store_dword v20, off, s[88:91], 0 offset:24 ; 4-byte Folded Spill3889; GCN-NOHSA-VI-NEXT: buffer_store_dword v21, off, s[88:91], 0 offset:28 ; 4-byte Folded Spill3890; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(14)3891; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v26, 16, v113892; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v24, 16, v103893; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v19, 16, v93894; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v17, 16, v83895; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v25, 0xffff, v113896; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v23, 0xffff, v103897; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v18, 0xffff, v93898; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v16, 0xffff, v83899; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(12)3900; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v11, 16, v33901; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v9, 16, v23902; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v50, 16, v13903; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v48, 16, v03904; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v10, 0xffff, v33905; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v8, 0xffff, v23906; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v49, 0xffff, v13907; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v47, 0xffff, v03908; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(8)3909; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 16, v403910; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v393911; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v2, 0xffff, v403912; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v393913; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v15, 16, v73914; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v13, 16, v63915; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v46, 16, v53916; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v44, 16, v43917; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v14, 0xffff, v73918; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v12, 0xffff, v63919; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v45, 0xffff, v53920; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v43, 0xffff, v43921; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v54, 16, v303922; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v52, 16, v293923; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v58, 16, v283924; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v56, 16, v273925; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v53, 0xffff, v303926; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v51, 0xffff, v293927; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v57, 0xffff, v283928; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v55, 0xffff, v273929; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v30, 16, v343930; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v28, 16, v333931; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v62, 16, v323932; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v60, 16, v313933; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v29, 0xffff, v343934; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v27, 0xffff, v333935; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v61, 0xffff, v323936; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v59, 0xffff, v313937; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v34, 16, v383938; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v32, 16, v373939; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v7, 16, v363940; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v5, 16, v353941; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v33, 0xffff, v383942; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v31, 0xffff, v373943; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v6, 0xffff, v363944; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xffff, v353945; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v38, 16, v423946; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v36, 16, v413947; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v37, 0xffff, v423948; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v35, 0xffff, v413949; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2243950; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[35:38], off, s[0:3], 0 offset:2403951; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1923952; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[31:34], off, s[0:3], 0 offset:2083953; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[59:62], off, s[0:3], 0 offset:1603954; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[27:30], off, s[0:3], 0 offset:1763955; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[55:58], off, s[0:3], 0 offset:1283956; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[51:54], off, s[0:3], 0 offset:1443957; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[47:50], off, s[0:3], 0 offset:963958; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1123959; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[43:46], off, s[0:3], 0 offset:643960; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:803961; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:323962; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:483963; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[88:91], 0 offset:16 ; 4-byte Folded Reload3964; GCN-NOHSA-VI-NEXT: buffer_load_dword v1, off, s[88:91], 0 offset:20 ; 4-byte Folded Reload3965; GCN-NOHSA-VI-NEXT: buffer_load_dword v2, off, s[88:91], 0 offset:24 ; 4-byte Folded Reload3966; GCN-NOHSA-VI-NEXT: buffer_load_dword v3, off, s[88:91], 0 offset:28 ; 4-byte Folded Reload3967; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)3968; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 03969; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[88:91], 0 ; 4-byte Folded Reload3970; GCN-NOHSA-VI-NEXT: buffer_load_dword v1, off, s[88:91], 0 offset:4 ; 4-byte Folded Reload3971; GCN-NOHSA-VI-NEXT: buffer_load_dword v2, off, s[88:91], 0 offset:8 ; 4-byte Folded Reload3972; GCN-NOHSA-VI-NEXT: buffer_load_dword v3, off, s[88:91], 0 offset:12 ; 4-byte Folded Reload3973; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)3974; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:163975; GCN-NOHSA-VI-NEXT: s_endpgm3976;3977; EG-LABEL: global_zextload_v64i16_to_v64i32:3978; EG: ; %bb.0:3979; EG-NEXT: ALU 0, @38, KC0[CB0:0-32], KC1[]3980; EG-NEXT: TEX 3 @223981; EG-NEXT: ALU 56, @39, KC0[CB0:0-32], KC1[]3982; EG-NEXT: TEX 3 @303983; EG-NEXT: ALU 87, @96, KC0[CB0:0-32], KC1[]3984; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T49.XYZW, T66.X, 03985; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T63.XYZW, T65.X, 03986; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T50.XYZW, T64.X, 03987; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T60.XYZW, T62.X, 03988; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T51.XYZW, T61.X, 03989; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T57.XYZW, T59.X, 03990; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T52.XYZW, T58.X, 03991; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T54.XYZW, T56.X, 03992; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T38.XYZW, T55.X, 03993; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T37.XYZW, T53.X, 03994; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T39.XYZW, T48.X, 03995; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T45.XYZW, T47.X, 03996; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T40.XYZW, T46.X, 03997; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T42.XYZW, T44.X, 03998; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T36.XYZW, T43.X, 03999; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T35.XYZW, T41.X, 14000; EG-NEXT: CF_END4001; EG-NEXT: Fetch clause starting at 22:4002; EG-NEXT: VTX_READ_128 T36.XYZW, T37.X, 0, #14003; EG-NEXT: VTX_READ_128 T38.XYZW, T37.X, 48, #14004; EG-NEXT: VTX_READ_128 T39.XYZW, T37.X, 32, #14005; EG-NEXT: VTX_READ_128 T40.XYZW, T37.X, 16, #14006; EG-NEXT: Fetch clause starting at 30:4007; EG-NEXT: VTX_READ_128 T49.XYZW, T37.X, 112, #14008; EG-NEXT: VTX_READ_128 T50.XYZW, T37.X, 96, #14009; EG-NEXT: VTX_READ_128 T51.XYZW, T37.X, 80, #14010; EG-NEXT: VTX_READ_128 T52.XYZW, T37.X, 64, #14011; EG-NEXT: ALU clause starting at 38:4012; EG-NEXT: MOV * T37.X, KC0[2].Z,4013; EG-NEXT: ALU clause starting at 39:4014; EG-NEXT: LSHR * T35.W, T36.W, literal.x,4015; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4016; EG-NEXT: AND_INT * T35.Z, T36.W, literal.x,4017; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4018; EG-NEXT: LSHR T35.Y, T36.Z, literal.x,4019; EG-NEXT: LSHR * T36.W, T36.Y, literal.x,4020; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4021; EG-NEXT: AND_INT T35.X, T36.Z, literal.x,4022; EG-NEXT: AND_INT T36.Z, T36.Y, literal.x,4023; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4024; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)4025; EG-NEXT: LSHR T41.X, PV.W, literal.x,4026; EG-NEXT: LSHR T36.Y, T36.X, literal.y,4027; EG-NEXT: LSHR T42.W, T40.W, literal.y,4028; EG-NEXT: AND_INT * T36.X, T36.X, literal.z,4029; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4030; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4031; EG-NEXT: AND_INT * T42.Z, T40.W, literal.x,4032; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4033; EG-NEXT: LSHR T43.X, KC0[2].Y, literal.x,4034; EG-NEXT: LSHR T42.Y, T40.Z, literal.y,4035; EG-NEXT: LSHR T40.W, T40.Y, literal.y,4036; EG-NEXT: AND_INT * T42.X, T40.Z, literal.z,4037; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4038; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4039; EG-NEXT: AND_INT T40.Z, T40.Y, literal.x,4040; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4041; EG-NEXT: 65535(9.183409e-41), 48(6.726233e-44)4042; EG-NEXT: LSHR T44.X, PV.W, literal.x,4043; EG-NEXT: LSHR T40.Y, T40.X, literal.y,4044; EG-NEXT: LSHR T45.W, T39.W, literal.y,4045; EG-NEXT: AND_INT * T40.X, T40.X, literal.z,4046; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4047; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4048; EG-NEXT: AND_INT T45.Z, T39.W, literal.x,4049; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4050; EG-NEXT: 65535(9.183409e-41), 32(4.484155e-44)4051; EG-NEXT: LSHR T46.X, PV.W, literal.x,4052; EG-NEXT: LSHR T45.Y, T39.Z, literal.y,4053; EG-NEXT: LSHR T39.W, T39.Y, literal.y,4054; EG-NEXT: AND_INT * T45.X, T39.Z, literal.z,4055; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4056; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4057; EG-NEXT: AND_INT T39.Z, T39.Y, literal.x,4058; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4059; EG-NEXT: 65535(9.183409e-41), 80(1.121039e-43)4060; EG-NEXT: LSHR T47.X, PV.W, literal.x,4061; EG-NEXT: LSHR T39.Y, T39.X, literal.y,4062; EG-NEXT: AND_INT * T39.X, T39.X, literal.z,4063; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4064; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4065; EG-NEXT: ADD_INT T0.W, KC0[2].Y, literal.x,4066; EG-NEXT: LSHR * T37.W, T38.W, literal.y,4067; EG-NEXT: 64(8.968310e-44), 16(2.242078e-44)4068; EG-NEXT: LSHR T48.X, PV.W, literal.x,4069; EG-NEXT: AND_INT * T37.Z, T38.W, literal.y,4070; EG-NEXT: 2(2.802597e-45), 65535(9.183409e-41)4071; EG-NEXT: ALU clause starting at 96:4072; EG-NEXT: LSHR T37.Y, T38.Z, literal.x,4073; EG-NEXT: LSHR * T38.W, T38.Y, literal.x,4074; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4075; EG-NEXT: AND_INT T37.X, T38.Z, literal.x,4076; EG-NEXT: AND_INT T38.Z, T38.Y, literal.x,4077; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4078; EG-NEXT: 65535(9.183409e-41), 112(1.569454e-43)4079; EG-NEXT: LSHR T53.X, PV.W, literal.x,4080; EG-NEXT: LSHR T38.Y, T38.X, literal.y,4081; EG-NEXT: LSHR T54.W, T52.W, literal.y,4082; EG-NEXT: AND_INT * T38.X, T38.X, literal.z,4083; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4084; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4085; EG-NEXT: AND_INT T54.Z, T52.W, literal.x,4086; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4087; EG-NEXT: 65535(9.183409e-41), 96(1.345247e-43)4088; EG-NEXT: LSHR T55.X, PV.W, literal.x,4089; EG-NEXT: LSHR T54.Y, T52.Z, literal.y,4090; EG-NEXT: LSHR T52.W, T52.Y, literal.y,4091; EG-NEXT: AND_INT * T54.X, T52.Z, literal.z,4092; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4093; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4094; EG-NEXT: AND_INT T52.Z, T52.Y, literal.x,4095; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4096; EG-NEXT: 65535(9.183409e-41), 144(2.017870e-43)4097; EG-NEXT: LSHR T56.X, PV.W, literal.x,4098; EG-NEXT: LSHR T52.Y, T52.X, literal.y,4099; EG-NEXT: LSHR T57.W, T51.W, literal.y,4100; EG-NEXT: AND_INT * T52.X, T52.X, literal.z,4101; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4102; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4103; EG-NEXT: AND_INT T57.Z, T51.W, literal.x,4104; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4105; EG-NEXT: 65535(9.183409e-41), 128(1.793662e-43)4106; EG-NEXT: LSHR T58.X, PV.W, literal.x,4107; EG-NEXT: LSHR T57.Y, T51.Z, literal.y,4108; EG-NEXT: LSHR T51.W, T51.Y, literal.y,4109; EG-NEXT: AND_INT * T57.X, T51.Z, literal.z,4110; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4111; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4112; EG-NEXT: AND_INT T51.Z, T51.Y, literal.x,4113; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4114; EG-NEXT: 65535(9.183409e-41), 176(2.466285e-43)4115; EG-NEXT: LSHR T59.X, PV.W, literal.x,4116; EG-NEXT: LSHR T51.Y, T51.X, literal.y,4117; EG-NEXT: LSHR T60.W, T50.W, literal.y,4118; EG-NEXT: AND_INT * T51.X, T51.X, literal.z,4119; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4120; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4121; EG-NEXT: AND_INT T60.Z, T50.W, literal.x,4122; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4123; EG-NEXT: 65535(9.183409e-41), 160(2.242078e-43)4124; EG-NEXT: LSHR T61.X, PV.W, literal.x,4125; EG-NEXT: LSHR T60.Y, T50.Z, literal.y,4126; EG-NEXT: LSHR T50.W, T50.Y, literal.y,4127; EG-NEXT: AND_INT * T60.X, T50.Z, literal.z,4128; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4129; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4130; EG-NEXT: AND_INT T50.Z, T50.Y, literal.x,4131; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4132; EG-NEXT: 65535(9.183409e-41), 208(2.914701e-43)4133; EG-NEXT: LSHR T62.X, PV.W, literal.x,4134; EG-NEXT: LSHR T50.Y, T50.X, literal.y,4135; EG-NEXT: LSHR T63.W, T49.W, literal.y,4136; EG-NEXT: AND_INT * T50.X, T50.X, literal.z,4137; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4138; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4139; EG-NEXT: AND_INT T63.Z, T49.W, literal.x,4140; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4141; EG-NEXT: 65535(9.183409e-41), 192(2.690493e-43)4142; EG-NEXT: LSHR T64.X, PV.W, literal.x,4143; EG-NEXT: LSHR T63.Y, T49.Z, literal.y,4144; EG-NEXT: LSHR T49.W, T49.Y, literal.y,4145; EG-NEXT: AND_INT * T63.X, T49.Z, literal.z,4146; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4147; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4148; EG-NEXT: AND_INT T49.Z, T49.Y, literal.x,4149; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4150; EG-NEXT: 65535(9.183409e-41), 240(3.363116e-43)4151; EG-NEXT: LSHR T65.X, PV.W, literal.x,4152; EG-NEXT: LSHR T49.Y, T49.X, literal.y,4153; EG-NEXT: AND_INT * T49.X, T49.X, literal.z,4154; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4155; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4156; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,4157; EG-NEXT: 224(3.138909e-43), 0(0.000000e+00)4158; EG-NEXT: LSHR * T66.X, PV.W, literal.x,4159; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)4160;4161; CM-LABEL: global_zextload_v64i16_to_v64i32:4162; CM: ; %bb.0:4163; CM-NEXT: ALU 0, @38, KC0[CB0:0-32], KC1[]4164; CM-NEXT: TEX 3 @224165; CM-NEXT: ALU 50, @39, KC0[CB0:0-32], KC1[]4166; CM-NEXT: TEX 3 @304167; CM-NEXT: ALU 78, @90, KC0[CB0:0-32], KC1[]4168; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T65, T66.X4169; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T63, T48.X4170; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T62, T64.X4171; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T60, T49.X4172; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T59, T61.X4173; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T57, T50.X4174; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T56, T58.X4175; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T54, T51.X4176; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T53, T55.X4177; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T35, T37.X4178; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T47, T52.X4179; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T45, T38.X4180; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T44, T46.X4181; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T42, T39.X4182; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T41, T43.X4183; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T40, T36.X4184; CM-NEXT: CF_END4185; CM-NEXT: Fetch clause starting at 22:4186; CM-NEXT: VTX_READ_128 T36.XYZW, T35.X, 112, #14187; CM-NEXT: VTX_READ_128 T37.XYZW, T35.X, 64, #14188; CM-NEXT: VTX_READ_128 T38.XYZW, T35.X, 80, #14189; CM-NEXT: VTX_READ_128 T39.XYZW, T35.X, 96, #14190; CM-NEXT: Fetch clause starting at 30:4191; CM-NEXT: VTX_READ_128 T48.XYZW, T35.X, 0, #14192; CM-NEXT: VTX_READ_128 T49.XYZW, T35.X, 16, #14193; CM-NEXT: VTX_READ_128 T50.XYZW, T35.X, 32, #14194; CM-NEXT: VTX_READ_128 T51.XYZW, T35.X, 48, #14195; CM-NEXT: ALU clause starting at 38:4196; CM-NEXT: MOV * T35.X, KC0[2].Z,4197; CM-NEXT: ALU clause starting at 39:4198; CM-NEXT: LSHR * T40.W, T36.Y, literal.x,4199; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)4200; CM-NEXT: AND_INT * T40.Z, T36.Y, literal.x,4201; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4202; CM-NEXT: LSHR T40.Y, T36.X, literal.x,4203; CM-NEXT: LSHR * T41.W, T36.W, literal.x,4204; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)4205; CM-NEXT: AND_INT T40.X, T36.X, literal.x,4206; CM-NEXT: AND_INT T41.Z, T36.W, literal.x,4207; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4208; CM-NEXT: 65535(9.183409e-41), 224(3.138909e-43)4209; CM-NEXT: LSHR T36.X, PV.W, literal.x,4210; CM-NEXT: LSHR T41.Y, T36.Z, literal.y,4211; CM-NEXT: LSHR * T42.W, T39.Y, literal.y,4212; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4213; CM-NEXT: AND_INT T41.X, T36.Z, literal.x,4214; CM-NEXT: AND_INT T42.Z, T39.Y, literal.x,4215; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4216; CM-NEXT: 65535(9.183409e-41), 240(3.363116e-43)4217; CM-NEXT: LSHR T43.X, PV.W, literal.x,4218; CM-NEXT: LSHR T42.Y, T39.X, literal.y,4219; CM-NEXT: LSHR * T44.W, T39.W, literal.y,4220; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4221; CM-NEXT: AND_INT T42.X, T39.X, literal.x,4222; CM-NEXT: AND_INT T44.Z, T39.W, literal.x,4223; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4224; CM-NEXT: 65535(9.183409e-41), 192(2.690493e-43)4225; CM-NEXT: LSHR T39.X, PV.W, literal.x,4226; CM-NEXT: LSHR T44.Y, T39.Z, literal.y,4227; CM-NEXT: LSHR * T45.W, T38.Y, literal.y,4228; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4229; CM-NEXT: AND_INT T44.X, T39.Z, literal.x,4230; CM-NEXT: AND_INT T45.Z, T38.Y, literal.x,4231; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4232; CM-NEXT: 65535(9.183409e-41), 208(2.914701e-43)4233; CM-NEXT: LSHR T46.X, PV.W, literal.x,4234; CM-NEXT: LSHR T45.Y, T38.X, literal.y,4235; CM-NEXT: LSHR * T47.W, T38.W, literal.y,4236; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4237; CM-NEXT: AND_INT T45.X, T38.X, literal.x,4238; CM-NEXT: AND_INT T47.Z, T38.W, literal.x,4239; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4240; CM-NEXT: 65535(9.183409e-41), 160(2.242078e-43)4241; CM-NEXT: LSHR T38.X, PV.W, literal.x,4242; CM-NEXT: LSHR T47.Y, T38.Z, literal.y,4243; CM-NEXT: LSHR * T35.W, T37.Y, literal.y,4244; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4245; CM-NEXT: AND_INT T47.X, T38.Z, literal.x,4246; CM-NEXT: AND_INT T35.Z, T37.Y, literal.x,4247; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4248; CM-NEXT: 65535(9.183409e-41), 176(2.466285e-43)4249; CM-NEXT: ALU clause starting at 90:4250; CM-NEXT: LSHR T52.X, T0.W, literal.x,4251; CM-NEXT: LSHR T35.Y, T37.X, literal.y,4252; CM-NEXT: LSHR * T53.W, T37.W, literal.y, BS:VEC_120/SCL_2124253; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4254; CM-NEXT: AND_INT T35.X, T37.X, literal.x,4255; CM-NEXT: AND_INT T53.Z, T37.W, literal.x,4256; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4257; CM-NEXT: 65535(9.183409e-41), 128(1.793662e-43)4258; CM-NEXT: LSHR T37.X, PV.W, literal.x,4259; CM-NEXT: LSHR T53.Y, T37.Z, literal.y,4260; CM-NEXT: LSHR * T54.W, T51.Y, literal.y,4261; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4262; CM-NEXT: AND_INT T53.X, T37.Z, literal.x,4263; CM-NEXT: AND_INT T54.Z, T51.Y, literal.x,4264; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4265; CM-NEXT: 65535(9.183409e-41), 144(2.017870e-43)4266; CM-NEXT: LSHR T55.X, PV.W, literal.x,4267; CM-NEXT: LSHR T54.Y, T51.X, literal.y,4268; CM-NEXT: LSHR * T56.W, T51.W, literal.y,4269; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4270; CM-NEXT: AND_INT T54.X, T51.X, literal.x,4271; CM-NEXT: AND_INT T56.Z, T51.W, literal.x,4272; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4273; CM-NEXT: 65535(9.183409e-41), 96(1.345247e-43)4274; CM-NEXT: LSHR T51.X, PV.W, literal.x,4275; CM-NEXT: LSHR T56.Y, T51.Z, literal.y,4276; CM-NEXT: LSHR * T57.W, T50.Y, literal.y,4277; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4278; CM-NEXT: AND_INT T56.X, T51.Z, literal.x,4279; CM-NEXT: AND_INT T57.Z, T50.Y, literal.x,4280; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4281; CM-NEXT: 65535(9.183409e-41), 112(1.569454e-43)4282; CM-NEXT: LSHR T58.X, PV.W, literal.x,4283; CM-NEXT: LSHR T57.Y, T50.X, literal.y,4284; CM-NEXT: LSHR * T59.W, T50.W, literal.y,4285; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4286; CM-NEXT: AND_INT T57.X, T50.X, literal.x,4287; CM-NEXT: AND_INT T59.Z, T50.W, literal.x,4288; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4289; CM-NEXT: 65535(9.183409e-41), 64(8.968310e-44)4290; CM-NEXT: LSHR T50.X, PV.W, literal.x,4291; CM-NEXT: LSHR T59.Y, T50.Z, literal.y,4292; CM-NEXT: LSHR * T60.W, T49.Y, literal.y,4293; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4294; CM-NEXT: AND_INT T59.X, T50.Z, literal.x,4295; CM-NEXT: AND_INT T60.Z, T49.Y, literal.x,4296; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4297; CM-NEXT: 65535(9.183409e-41), 80(1.121039e-43)4298; CM-NEXT: LSHR T61.X, PV.W, literal.x,4299; CM-NEXT: LSHR T60.Y, T49.X, literal.y,4300; CM-NEXT: LSHR * T62.W, T49.W, literal.y,4301; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4302; CM-NEXT: AND_INT T60.X, T49.X, literal.x,4303; CM-NEXT: AND_INT T62.Z, T49.W, literal.x,4304; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4305; CM-NEXT: 65535(9.183409e-41), 32(4.484155e-44)4306; CM-NEXT: LSHR T49.X, PV.W, literal.x,4307; CM-NEXT: LSHR T62.Y, T49.Z, literal.y,4308; CM-NEXT: LSHR * T63.W, T48.Y, literal.y,4309; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4310; CM-NEXT: AND_INT T62.X, T49.Z, literal.x,4311; CM-NEXT: AND_INT T63.Z, T48.Y, literal.x,4312; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4313; CM-NEXT: 65535(9.183409e-41), 48(6.726233e-44)4314; CM-NEXT: LSHR T64.X, PV.W, literal.x,4315; CM-NEXT: LSHR T63.Y, T48.X, literal.y,4316; CM-NEXT: LSHR * T65.W, T48.W, literal.y,4317; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4318; CM-NEXT: AND_INT T63.X, T48.X, literal.x,4319; CM-NEXT: AND_INT * T65.Z, T48.W, literal.x,4320; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4321; CM-NEXT: LSHR T48.X, KC0[2].Y, literal.x,4322; CM-NEXT: LSHR * T65.Y, T48.Z, literal.y,4323; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4324; CM-NEXT: AND_INT T65.X, T48.Z, literal.x,4325; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4326; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)4327; CM-NEXT: LSHR * T66.X, PV.W, literal.x,4328; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)4329 %load = load <64 x i16>, ptr addrspace(1) %in4330 %ext = zext <64 x i16> %load to <64 x i32>4331 store <64 x i32> %ext, ptr addrspace(1) %out4332 ret void4333}4334 4335define amdgpu_kernel void @global_sextload_v64i16_to_v64i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {4336; GCN-NOHSA-SI-LABEL: global_sextload_v64i16_to_v64i32:4337; GCN-NOHSA-SI: ; %bb.0:4338; GCN-NOHSA-SI-NEXT: s_mov_b32 s12, SCRATCH_RSRC_DWORD04339; GCN-NOHSA-SI-NEXT: s_mov_b32 s13, SCRATCH_RSRC_DWORD14340; GCN-NOHSA-SI-NEXT: s_mov_b32 s14, -14341; GCN-NOHSA-SI-NEXT: s_mov_b32 s15, 0xe8f0004342; GCN-NOHSA-SI-NEXT: s_add_u32 s12, s12, s114343; GCN-NOHSA-SI-NEXT: s_addc_u32 s13, s13, 04344; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x94345; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0004346; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -14347; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)4348; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s44349; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s54350; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s64351; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s74352; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, s24353; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, s34354; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[16:19], off, s[4:7], 0 offset:1124355; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[20:23], off, s[4:7], 0 offset:964356; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[24:27], off, s[4:7], 0 offset:804357; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[28:31], off, s[4:7], 0 offset:644358; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[8:11], off, s[4:7], 04359; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[32:35], off, s[4:7], 0 offset:164360; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[36:39], off, s[4:7], 0 offset:324361; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[40:43], off, s[4:7], 0 offset:484362; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(3)4363; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 16, v114364; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 16, v104365; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v11, 0, 164366; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v10, 0, 164367; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[12:15], 0 ; 4-byte Folded Spill4368; GCN-NOHSA-SI-NEXT: buffer_store_dword v1, off, s[12:15], 0 offset:4 ; 4-byte Folded Spill4369; GCN-NOHSA-SI-NEXT: buffer_store_dword v2, off, s[12:15], 0 offset:8 ; 4-byte Folded Spill4370; GCN-NOHSA-SI-NEXT: buffer_store_dword v3, off, s[12:15], 0 offset:12 ; 4-byte Folded Spill4371; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 16, v94372; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v5, 16, v84373; GCN-NOHSA-SI-NEXT: v_bfe_i32 v6, v9, 0, 164374; GCN-NOHSA-SI-NEXT: v_bfe_i32 v4, v8, 0, 164375; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(6)4376; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v11, 16, v354377; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v9, 16, v344378; GCN-NOHSA-SI-NEXT: v_bfe_i32 v10, v35, 0, 164379; GCN-NOHSA-SI-NEXT: v_bfe_i32 v8, v34, 0, 164380; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v15, 16, v334381; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v13, 16, v324382; GCN-NOHSA-SI-NEXT: v_bfe_i32 v14, v33, 0, 164383; GCN-NOHSA-SI-NEXT: v_bfe_i32 v12, v32, 0, 164384; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(5)4385; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v35, 16, v394386; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v33, 16, v384387; GCN-NOHSA-SI-NEXT: v_bfe_i32 v34, v39, 0, 164388; GCN-NOHSA-SI-NEXT: v_bfe_i32 v32, v38, 0, 164389; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v47, 16, v374390; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v45, 16, v364391; GCN-NOHSA-SI-NEXT: v_bfe_i32 v46, v37, 0, 164392; GCN-NOHSA-SI-NEXT: v_bfe_i32 v44, v36, 0, 164393; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(4)4394; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v39, 16, v434395; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v37, 16, v424396; GCN-NOHSA-SI-NEXT: v_bfe_i32 v38, v43, 0, 164397; GCN-NOHSA-SI-NEXT: v_bfe_i32 v36, v42, 0, 164398; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v51, 16, v414399; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v49, 16, v404400; GCN-NOHSA-SI-NEXT: v_bfe_i32 v50, v41, 0, 164401; GCN-NOHSA-SI-NEXT: v_bfe_i32 v48, v40, 0, 164402; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v43, 16, v314403; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v41, 16, v304404; GCN-NOHSA-SI-NEXT: v_bfe_i32 v42, v31, 0, 164405; GCN-NOHSA-SI-NEXT: v_bfe_i32 v40, v30, 0, 164406; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v55, 16, v294407; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v53, 16, v284408; GCN-NOHSA-SI-NEXT: v_bfe_i32 v54, v29, 0, 164409; GCN-NOHSA-SI-NEXT: v_bfe_i32 v52, v28, 0, 164410; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v30, 16, v274411; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v28, 16, v264412; GCN-NOHSA-SI-NEXT: v_bfe_i32 v29, v27, 0, 164413; GCN-NOHSA-SI-NEXT: v_bfe_i32 v27, v26, 0, 164414; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v59, 16, v254415; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v57, 16, v244416; GCN-NOHSA-SI-NEXT: v_bfe_i32 v58, v25, 0, 164417; GCN-NOHSA-SI-NEXT: v_bfe_i32 v56, v24, 0, 164418; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 16, v234419; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v24, 16, v224420; GCN-NOHSA-SI-NEXT: v_bfe_i32 v25, v23, 0, 164421; GCN-NOHSA-SI-NEXT: v_bfe_i32 v23, v22, 0, 164422; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v63, 16, v214423; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v61, 16, v204424; GCN-NOHSA-SI-NEXT: v_bfe_i32 v62, v21, 0, 164425; GCN-NOHSA-SI-NEXT: v_bfe_i32 v60, v20, 0, 164426; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v22, 16, v194427; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v20, 16, v184428; GCN-NOHSA-SI-NEXT: v_bfe_i32 v21, v19, 0, 164429; GCN-NOHSA-SI-NEXT: v_bfe_i32 v19, v18, 0, 164430; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4431; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 16, v174432; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 16, v164433; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v17, 0, 164434; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v16, 0, 164435; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2244436; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[19:22], off, s[0:3], 0 offset:2404437; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[60:63], off, s[0:3], 0 offset:1924438; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:2084439; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[56:59], off, s[0:3], 0 offset:1604440; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[27:30], off, s[0:3], 0 offset:1764441; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[52:55], off, s[0:3], 0 offset:1284442; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[40:43], off, s[0:3], 0 offset:1444443; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[48:51], off, s[0:3], 0 offset:964444; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[36:39], off, s[0:3], 0 offset:1124445; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[44:47], off, s[0:3], 0 offset:644446; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:804447; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:324448; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:484449; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 04450; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[12:15], 0 ; 4-byte Folded Reload4451; GCN-NOHSA-SI-NEXT: buffer_load_dword v1, off, s[12:15], 0 offset:4 ; 4-byte Folded Reload4452; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[12:15], 0 offset:8 ; 4-byte Folded Reload4453; GCN-NOHSA-SI-NEXT: buffer_load_dword v3, off, s[12:15], 0 offset:12 ; 4-byte Folded Reload4454; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)4455; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:164456; GCN-NOHSA-SI-NEXT: s_endpgm4457;4458; GCN-HSA-LABEL: global_sextload_v64i16_to_v64i32:4459; GCN-HSA: ; %bb.0:4460; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x04461; GCN-HSA-NEXT: s_add_i32 s12, s12, s174462; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s134463; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 84464; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)4465; GCN-HSA-NEXT: v_mov_b32_e32 v0, s24466; GCN-HSA-NEXT: v_mov_b32_e32 v1, s34467; GCN-HSA-NEXT: flat_load_dwordx4 v[28:31], v[0:1]4468; GCN-HSA-NEXT: s_add_u32 s4, s2, 0x704469; GCN-HSA-NEXT: s_addc_u32 s5, s3, 04470; GCN-HSA-NEXT: v_mov_b32_e32 v0, s44471; GCN-HSA-NEXT: v_mov_b32_e32 v1, s54472; GCN-HSA-NEXT: flat_load_dwordx4 v[20:23], v[0:1]4473; GCN-HSA-NEXT: s_add_u32 s4, s2, 0x604474; GCN-HSA-NEXT: s_addc_u32 s5, s3, 04475; GCN-HSA-NEXT: v_mov_b32_e32 v0, s44476; GCN-HSA-NEXT: v_mov_b32_e32 v1, s54477; GCN-HSA-NEXT: s_add_u32 s4, s2, 0x504478; GCN-HSA-NEXT: flat_load_dwordx4 v[12:15], v[0:1]4479; GCN-HSA-NEXT: s_addc_u32 s5, s3, 04480; GCN-HSA-NEXT: v_mov_b32_e32 v0, s44481; GCN-HSA-NEXT: v_mov_b32_e32 v1, s54482; GCN-HSA-NEXT: s_add_u32 s4, s2, 644483; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[0:1]4484; GCN-HSA-NEXT: s_addc_u32 s5, s3, 04485; GCN-HSA-NEXT: v_mov_b32_e32 v0, s44486; GCN-HSA-NEXT: v_mov_b32_e32 v1, s54487; GCN-HSA-NEXT: s_add_u32 s4, s2, 484488; GCN-HSA-NEXT: s_addc_u32 s5, s3, 04489; GCN-HSA-NEXT: s_add_u32 s6, s2, 324490; GCN-HSA-NEXT: s_addc_u32 s7, s3, 04491; GCN-HSA-NEXT: s_add_u32 s2, s2, 164492; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]4493; GCN-HSA-NEXT: s_addc_u32 s3, s3, 04494; GCN-HSA-NEXT: v_mov_b32_e32 v9, s34495; GCN-HSA-NEXT: v_mov_b32_e32 v8, s24496; GCN-HSA-NEXT: flat_load_dwordx4 v[24:27], v[8:9]4497; GCN-HSA-NEXT: v_mov_b32_e32 v9, s54498; GCN-HSA-NEXT: v_mov_b32_e32 v8, s44499; GCN-HSA-NEXT: flat_load_dwordx4 v[8:11], v[8:9]4500; GCN-HSA-NEXT: v_mov_b32_e32 v17, s74501; GCN-HSA-NEXT: v_mov_b32_e32 v16, s64502; GCN-HSA-NEXT: flat_load_dwordx4 v[16:19], v[16:17]4503; GCN-HSA-NEXT: s_add_u32 s2, s0, 164504; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04505; GCN-HSA-NEXT: v_mov_b32_e32 v37, s14506; GCN-HSA-NEXT: v_mov_b32_e32 v36, s04507; GCN-HSA-NEXT: s_waitcnt vmcnt(7)4508; GCN-HSA-NEXT: v_ashrrev_i32_e32 v35, 16, v294509; GCN-HSA-NEXT: v_ashrrev_i32_e32 v33, 16, v284510; GCN-HSA-NEXT: v_bfe_i32 v34, v29, 0, 164511; GCN-HSA-NEXT: v_bfe_i32 v32, v28, 0, 164512; GCN-HSA-NEXT: v_mov_b32_e32 v29, s34513; GCN-HSA-NEXT: v_mov_b32_e32 v28, s24514; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xe04515; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04516; GCN-HSA-NEXT: flat_store_dwordx4 v[36:37], v[32:35]4517; GCN-HSA-NEXT: v_mov_b32_e32 v36, s34518; GCN-HSA-NEXT: v_mov_b32_e32 v35, s24519; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xf04520; GCN-HSA-NEXT: v_ashrrev_i32_e32 v34, 16, v314521; GCN-HSA-NEXT: v_ashrrev_i32_e32 v32, 16, v304522; GCN-HSA-NEXT: v_bfe_i32 v33, v31, 0, 164523; GCN-HSA-NEXT: v_bfe_i32 v31, v30, 0, 164524; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04525; GCN-HSA-NEXT: flat_store_dwordx4 v[28:29], v[31:34]4526; GCN-HSA-NEXT: s_waitcnt vmcnt(8)4527; GCN-HSA-NEXT: v_ashrrev_i32_e32 v29, 16, v204528; GCN-HSA-NEXT: v_mov_b32_e32 v33, s34529; GCN-HSA-NEXT: v_mov_b32_e32 v32, s24530; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xc04531; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04532; GCN-HSA-NEXT: v_ashrrev_i32_e32 v31, 16, v214533; GCN-HSA-NEXT: v_bfe_i32 v30, v21, 0, 164534; GCN-HSA-NEXT: v_bfe_i32 v28, v20, 0, 164535; GCN-HSA-NEXT: flat_store_dwordx4 v[35:36], v[28:31]4536; GCN-HSA-NEXT: v_mov_b32_e32 v35, s34537; GCN-HSA-NEXT: v_mov_b32_e32 v34, s24538; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xd04539; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04540; GCN-HSA-NEXT: v_mov_b32_e32 v37, s34541; GCN-HSA-NEXT: v_mov_b32_e32 v36, s24542; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xa04543; GCN-HSA-NEXT: v_ashrrev_i32_e32 v31, 16, v234544; GCN-HSA-NEXT: v_ashrrev_i32_e32 v29, 16, v224545; GCN-HSA-NEXT: v_bfe_i32 v30, v23, 0, 164546; GCN-HSA-NEXT: v_bfe_i32 v28, v22, 0, 164547; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04548; GCN-HSA-NEXT: flat_store_dwordx4 v[32:33], v[28:31]4549; GCN-HSA-NEXT: v_mov_b32_e32 v33, s34550; GCN-HSA-NEXT: v_mov_b32_e32 v32, s24551; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xb04552; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04553; GCN-HSA-NEXT: v_mov_b32_e32 v39, s34554; GCN-HSA-NEXT: s_waitcnt vmcnt(9)4555; GCN-HSA-NEXT: v_ashrrev_i32_e32 v23, 16, v134556; GCN-HSA-NEXT: v_ashrrev_i32_e32 v21, 16, v124557; GCN-HSA-NEXT: v_bfe_i32 v22, v13, 0, 164558; GCN-HSA-NEXT: v_bfe_i32 v20, v12, 0, 164559; GCN-HSA-NEXT: v_mov_b32_e32 v38, s24560; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x804561; GCN-HSA-NEXT: v_ashrrev_i32_e32 v31, 16, v154562; GCN-HSA-NEXT: v_ashrrev_i32_e32 v29, 16, v144563; GCN-HSA-NEXT: v_bfe_i32 v30, v15, 0, 164564; GCN-HSA-NEXT: v_bfe_i32 v28, v14, 0, 164565; GCN-HSA-NEXT: flat_store_dwordx4 v[34:35], v[20:23]4566; GCN-HSA-NEXT: flat_store_dwordx4 v[36:37], v[28:31]4567; GCN-HSA-NEXT: s_waitcnt vmcnt(10)4568; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 16, v54569; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 16, v44570; GCN-HSA-NEXT: v_bfe_i32 v14, v5, 0, 164571; GCN-HSA-NEXT: v_bfe_i32 v12, v4, 0, 164572; GCN-HSA-NEXT: v_ashrrev_i32_e32 v23, 16, v74573; GCN-HSA-NEXT: v_ashrrev_i32_e32 v21, 16, v64574; GCN-HSA-NEXT: v_bfe_i32 v22, v7, 0, 164575; GCN-HSA-NEXT: v_bfe_i32 v20, v6, 0, 164576; GCN-HSA-NEXT: s_waitcnt vmcnt(9)4577; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 16, v14578; GCN-HSA-NEXT: v_ashrrev_i32_e32 v5, 16, v04579; GCN-HSA-NEXT: v_bfe_i32 v6, v1, 0, 164580; GCN-HSA-NEXT: v_bfe_i32 v4, v0, 0, 164581; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04582; GCN-HSA-NEXT: v_mov_b32_e32 v0, s24583; GCN-HSA-NEXT: v_mov_b32_e32 v1, s34584; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x904585; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[4:7]4586; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04587; GCN-HSA-NEXT: v_mov_b32_e32 v0, s24588; GCN-HSA-NEXT: v_mov_b32_e32 v1, s34589; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x604590; GCN-HSA-NEXT: flat_store_dwordx4 v[32:33], v[12:15]4591; GCN-HSA-NEXT: flat_store_dwordx4 v[38:39], v[20:23]4592; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04593; GCN-HSA-NEXT: v_ashrrev_i32_e32 v23, 16, v34594; GCN-HSA-NEXT: v_ashrrev_i32_e32 v21, 16, v24595; GCN-HSA-NEXT: v_bfe_i32 v22, v3, 0, 164596; GCN-HSA-NEXT: v_bfe_i32 v20, v2, 0, 164597; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[20:23]4598; GCN-HSA-NEXT: s_waitcnt vmcnt(11)4599; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 16, v94600; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 16, v84601; GCN-HSA-NEXT: v_bfe_i32 v2, v9, 0, 164602; GCN-HSA-NEXT: v_bfe_i32 v0, v8, 0, 164603; GCN-HSA-NEXT: v_mov_b32_e32 v9, s34604; GCN-HSA-NEXT: v_mov_b32_e32 v8, s24605; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x704606; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04607; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[0:3]4608; GCN-HSA-NEXT: v_mov_b32_e32 v9, s34609; GCN-HSA-NEXT: v_mov_b32_e32 v8, s24610; GCN-HSA-NEXT: s_add_u32 s2, s0, 644611; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 16, v244612; GCN-HSA-NEXT: v_bfe_i32 v12, v24, 0, 164613; GCN-HSA-NEXT: v_ashrrev_i32_e32 v24, 16, v114614; GCN-HSA-NEXT: v_ashrrev_i32_e32 v22, 16, v104615; GCN-HSA-NEXT: v_bfe_i32 v23, v11, 0, 164616; GCN-HSA-NEXT: v_bfe_i32 v21, v10, 0, 164617; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04618; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[21:24]4619; GCN-HSA-NEXT: v_mov_b32_e32 v9, s34620; GCN-HSA-NEXT: v_mov_b32_e32 v8, s24621; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x504622; GCN-HSA-NEXT: s_waitcnt vmcnt(12)4623; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 16, v194624; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 16, v184625; GCN-HSA-NEXT: v_bfe_i32 v2, v19, 0, 164626; GCN-HSA-NEXT: v_bfe_i32 v0, v18, 0, 164627; GCN-HSA-NEXT: v_ashrrev_i32_e32 v20, 16, v174628; GCN-HSA-NEXT: v_ashrrev_i32_e32 v18, 16, v164629; GCN-HSA-NEXT: v_bfe_i32 v19, v17, 0, 164630; GCN-HSA-NEXT: v_bfe_i32 v17, v16, 0, 164631; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04632; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[17:20]4633; GCN-HSA-NEXT: v_mov_b32_e32 v9, s34634; GCN-HSA-NEXT: v_mov_b32_e32 v8, s24635; GCN-HSA-NEXT: s_add_u32 s2, s0, 324636; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[0:3]4637; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04638; GCN-HSA-NEXT: v_mov_b32_e32 v0, s24639; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 16, v254640; GCN-HSA-NEXT: v_bfe_i32 v14, v25, 0, 164641; GCN-HSA-NEXT: v_mov_b32_e32 v1, s34642; GCN-HSA-NEXT: s_add_u32 s0, s0, 484643; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[12:15]4644; GCN-HSA-NEXT: s_addc_u32 s1, s1, 04645; GCN-HSA-NEXT: v_mov_b32_e32 v0, s04646; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 16, v274647; GCN-HSA-NEXT: v_ashrrev_i32_e32 v5, 16, v264648; GCN-HSA-NEXT: v_bfe_i32 v6, v27, 0, 164649; GCN-HSA-NEXT: v_bfe_i32 v4, v26, 0, 164650; GCN-HSA-NEXT: v_mov_b32_e32 v1, s14651; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[4:7]4652; GCN-HSA-NEXT: s_endpgm4653;4654; GCN-NOHSA-VI-LABEL: global_sextload_v64i16_to_v64i32:4655; GCN-NOHSA-VI: ; %bb.0:4656; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x244657; GCN-NOHSA-VI-NEXT: s_mov_b32 s88, SCRATCH_RSRC_DWORD04658; GCN-NOHSA-VI-NEXT: s_mov_b32 s89, SCRATCH_RSRC_DWORD14659; GCN-NOHSA-VI-NEXT: s_mov_b32 s90, -14660; GCN-NOHSA-VI-NEXT: s_mov_b32 s91, 0xe800004661; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0004662; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -14663; GCN-NOHSA-VI-NEXT: s_add_u32 s88, s88, s114664; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s24665; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)4666; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s64667; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s74668; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s34669; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[12:15], off, s[8:11], 04670; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:164671; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:324672; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:484673; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[23:26], off, s[8:11], 0 offset:644674; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[27:30], off, s[8:11], 0 offset:804675; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[31:34], off, s[8:11], 0 offset:964676; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[35:38], off, s[8:11], 0 offset:1124677; GCN-NOHSA-VI-NEXT: s_addc_u32 s89, s89, 04678; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s44679; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s54680; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(7)4681; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v18, 16, v154682; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v16, 16, v144683; GCN-NOHSA-VI-NEXT: v_bfe_i32 v17, v15, 0, 164684; GCN-NOHSA-VI-NEXT: v_bfe_i32 v15, v14, 0, 164685; GCN-NOHSA-VI-NEXT: buffer_store_dword v15, off, s[88:91], 0 ; 4-byte Folded Spill4686; GCN-NOHSA-VI-NEXT: buffer_store_dword v16, off, s[88:91], 0 offset:4 ; 4-byte Folded Spill4687; GCN-NOHSA-VI-NEXT: buffer_store_dword v17, off, s[88:91], 0 offset:8 ; 4-byte Folded Spill4688; GCN-NOHSA-VI-NEXT: buffer_store_dword v18, off, s[88:91], 0 offset:12 ; 4-byte Folded Spill4689; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v16, 16, v134690; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v14, 16, v124691; GCN-NOHSA-VI-NEXT: v_bfe_i32 v15, v13, 0, 164692; GCN-NOHSA-VI-NEXT: v_bfe_i32 v13, v12, 0, 164693; GCN-NOHSA-VI-NEXT: buffer_store_dword v13, off, s[88:91], 0 offset:16 ; 4-byte Folded Spill4694; GCN-NOHSA-VI-NEXT: buffer_store_dword v14, off, s[88:91], 0 offset:20 ; 4-byte Folded Spill4695; GCN-NOHSA-VI-NEXT: buffer_store_dword v15, off, s[88:91], 0 offset:24 ; 4-byte Folded Spill4696; GCN-NOHSA-VI-NEXT: buffer_store_dword v16, off, s[88:91], 0 offset:28 ; 4-byte Folded Spill4697; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(14)4698; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v19, 16, v114699; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v17, 16, v104700; GCN-NOHSA-VI-NEXT: v_bfe_i32 v18, v11, 0, 164701; GCN-NOHSA-VI-NEXT: v_bfe_i32 v16, v10, 0, 164702; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v42, 16, v94703; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v40, 16, v84704; GCN-NOHSA-VI-NEXT: v_bfe_i32 v41, v9, 0, 164705; GCN-NOHSA-VI-NEXT: v_bfe_i32 v39, v8, 0, 164706; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(12)4707; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v11, 16, v34708; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v9, 16, v24709; GCN-NOHSA-VI-NEXT: v_bfe_i32 v10, v3, 0, 164710; GCN-NOHSA-VI-NEXT: v_bfe_i32 v8, v2, 0, 164711; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v50, 16, v14712; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v48, 16, v04713; GCN-NOHSA-VI-NEXT: v_bfe_i32 v49, v1, 0, 164714; GCN-NOHSA-VI-NEXT: v_bfe_i32 v47, v0, 0, 164715; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(8)4716; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 16, v364717; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 16, v354718; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v36, 0, 164719; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v35, 0, 164720; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v15, 16, v74721; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v13, 16, v64722; GCN-NOHSA-VI-NEXT: v_bfe_i32 v14, v7, 0, 164723; GCN-NOHSA-VI-NEXT: v_bfe_i32 v12, v6, 0, 164724; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v46, 16, v54725; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v44, 16, v44726; GCN-NOHSA-VI-NEXT: v_bfe_i32 v45, v5, 0, 164727; GCN-NOHSA-VI-NEXT: v_bfe_i32 v43, v4, 0, 164728; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v54, 16, v264729; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v52, 16, v254730; GCN-NOHSA-VI-NEXT: v_bfe_i32 v53, v26, 0, 164731; GCN-NOHSA-VI-NEXT: v_bfe_i32 v51, v25, 0, 164732; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v58, 16, v244733; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v56, 16, v234734; GCN-NOHSA-VI-NEXT: v_bfe_i32 v57, v24, 0, 164735; GCN-NOHSA-VI-NEXT: v_bfe_i32 v55, v23, 0, 164736; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v26, 16, v304737; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v24, 16, v294738; GCN-NOHSA-VI-NEXT: v_bfe_i32 v25, v30, 0, 164739; GCN-NOHSA-VI-NEXT: v_bfe_i32 v23, v29, 0, 164740; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v62, 16, v284741; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v60, 16, v274742; GCN-NOHSA-VI-NEXT: v_bfe_i32 v61, v28, 0, 164743; GCN-NOHSA-VI-NEXT: v_bfe_i32 v59, v27, 0, 164744; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v30, 16, v344745; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v28, 16, v334746; GCN-NOHSA-VI-NEXT: v_bfe_i32 v29, v34, 0, 164747; GCN-NOHSA-VI-NEXT: v_bfe_i32 v27, v33, 0, 164748; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 16, v324749; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v5, 16, v314750; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v32, 0, 164751; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v31, 0, 164752; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v34, 16, v384753; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v32, 16, v374754; GCN-NOHSA-VI-NEXT: v_bfe_i32 v33, v38, 0, 164755; GCN-NOHSA-VI-NEXT: v_bfe_i32 v31, v37, 0, 164756; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2244757; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[31:34], off, s[0:3], 0 offset:2404758; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1924759; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[27:30], off, s[0:3], 0 offset:2084760; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[59:62], off, s[0:3], 0 offset:1604761; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:1764762; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[55:58], off, s[0:3], 0 offset:1284763; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[51:54], off, s[0:3], 0 offset:1444764; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[47:50], off, s[0:3], 0 offset:964765; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1124766; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[43:46], off, s[0:3], 0 offset:644767; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:804768; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[39:42], off, s[0:3], 0 offset:324769; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:484770; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[88:91], 0 offset:16 ; 4-byte Folded Reload4771; GCN-NOHSA-VI-NEXT: buffer_load_dword v1, off, s[88:91], 0 offset:20 ; 4-byte Folded Reload4772; GCN-NOHSA-VI-NEXT: buffer_load_dword v2, off, s[88:91], 0 offset:24 ; 4-byte Folded Reload4773; GCN-NOHSA-VI-NEXT: buffer_load_dword v3, off, s[88:91], 0 offset:28 ; 4-byte Folded Reload4774; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)4775; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 04776; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[88:91], 0 ; 4-byte Folded Reload4777; GCN-NOHSA-VI-NEXT: buffer_load_dword v1, off, s[88:91], 0 offset:4 ; 4-byte Folded Reload4778; GCN-NOHSA-VI-NEXT: buffer_load_dword v2, off, s[88:91], 0 offset:8 ; 4-byte Folded Reload4779; GCN-NOHSA-VI-NEXT: buffer_load_dword v3, off, s[88:91], 0 offset:12 ; 4-byte Folded Reload4780; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)4781; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:164782; GCN-NOHSA-VI-NEXT: s_endpgm4783;4784; EG-LABEL: global_sextload_v64i16_to_v64i32:4785; EG: ; %bb.0:4786; EG-NEXT: ALU 18, @38, KC0[CB0:0-32], KC1[]4787; EG-NEXT: TEX 7 @224788; EG-NEXT: ALU 75, @57, KC0[CB0:0-32], KC1[]4789; EG-NEXT: ALU 71, @133, KC0[CB0:0-32], KC1[]4790; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T48.XYZW, T41.X, 04791; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T65.XYZW, T66.X, 04792; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T47.XYZW, T56.X, 04793; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T64.XYZW, T55.X, 04794; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T46.XYZW, T54.X, 04795; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T63.XYZW, T53.X, 04796; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T45.XYZW, T52.X, 04797; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T62.XYZW, T51.X, 04798; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T43.XYZW, T50.X, 04799; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T61.XYZW, T49.X, 04800; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T42.XYZW, T40.X, 04801; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T60.XYZW, T39.X, 04802; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T44.XYZW, T38.X, 04803; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T59.XYZW, T37.X, 04804; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T58.XYZW, T36.X, 04805; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T57.XYZW, T35.X, 14806; EG-NEXT: CF_END4807; EG-NEXT: PAD4808; EG-NEXT: Fetch clause starting at 22:4809; EG-NEXT: VTX_READ_128 T42.XYZW, T41.X, 16, #14810; EG-NEXT: VTX_READ_128 T43.XYZW, T41.X, 32, #14811; EG-NEXT: VTX_READ_128 T44.XYZW, T41.X, 0, #14812; EG-NEXT: VTX_READ_128 T45.XYZW, T41.X, 48, #14813; EG-NEXT: VTX_READ_128 T46.XYZW, T41.X, 64, #14814; EG-NEXT: VTX_READ_128 T47.XYZW, T41.X, 80, #14815; EG-NEXT: VTX_READ_128 T48.XYZW, T41.X, 96, #14816; EG-NEXT: VTX_READ_128 T41.XYZW, T41.X, 112, #14817; EG-NEXT: ALU clause starting at 38:4818; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,4819; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4820; EG-NEXT: LSHR T35.X, PV.W, literal.x,4821; EG-NEXT: LSHR * T36.X, KC0[2].Y, literal.x,4822; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)4823; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,4824; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)4825; EG-NEXT: LSHR T37.X, PV.W, literal.x,4826; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4827; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)4828; EG-NEXT: LSHR T38.X, PV.W, literal.x,4829; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4830; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)4831; EG-NEXT: LSHR T39.X, PV.W, literal.x,4832; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4833; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)4834; EG-NEXT: LSHR T40.X, PV.W, literal.x,4835; EG-NEXT: MOV * T41.X, KC0[2].Z,4836; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)4837; EG-NEXT: ALU clause starting at 57:4838; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,4839; EG-NEXT: 112(1.569454e-43), 0(0.000000e+00)4840; EG-NEXT: LSHR T49.X, PV.W, literal.x,4841; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4842; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)4843; EG-NEXT: LSHR T50.X, PV.W, literal.x,4844; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4845; EG-NEXT: 2(2.802597e-45), 144(2.017870e-43)4846; EG-NEXT: LSHR T51.X, PV.W, literal.x,4847; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4848; EG-NEXT: 2(2.802597e-45), 128(1.793662e-43)4849; EG-NEXT: LSHR T52.X, PV.W, literal.x,4850; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4851; EG-NEXT: 2(2.802597e-45), 176(2.466285e-43)4852; EG-NEXT: LSHR T53.X, PV.W, literal.x,4853; EG-NEXT: LSHR T0.Y, T41.Y, literal.y,4854; EG-NEXT: LSHR T0.Z, T41.W, literal.y,4855; EG-NEXT: LSHR T0.W, T48.Y, literal.y, BS:VEC_120/SCL_2124856; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4857; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4858; EG-NEXT: 160(2.242078e-43), 0(0.000000e+00)4859; EG-NEXT: LSHR T54.X, PS, literal.x,4860; EG-NEXT: LSHR T1.Y, T48.W, literal.y,4861; EG-NEXT: LSHR T1.Z, T47.Y, literal.y,4862; EG-NEXT: LSHR T1.W, T47.W, literal.y, BS:VEC_120/SCL_2124863; EG-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.z,4864; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4865; EG-NEXT: 208(2.914701e-43), 0(0.000000e+00)4866; EG-NEXT: LSHR T55.X, PS, literal.x,4867; EG-NEXT: LSHR T2.Y, T46.Y, literal.y,4868; EG-NEXT: LSHR T2.Z, T46.W, literal.y,4869; EG-NEXT: LSHR T2.W, T45.Y, literal.y, BS:VEC_120/SCL_2124870; EG-NEXT: ADD_INT * T3.W, KC0[2].Y, literal.z,4871; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4872; EG-NEXT: 192(2.690493e-43), 0(0.000000e+00)4873; EG-NEXT: LSHR T56.X, PS, literal.x,4874; EG-NEXT: LSHR T3.Y, T45.W, literal.y,4875; EG-NEXT: BFE_INT T57.Z, T44.W, 0.0, literal.y, BS:VEC_120/SCL_2124876; EG-NEXT: LSHR T3.W, T43.Y, literal.y,4877; EG-NEXT: LSHR * T4.W, T43.W, literal.y,4878; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4879; EG-NEXT: BFE_INT T57.X, T44.Z, 0.0, literal.x,4880; EG-NEXT: LSHR T4.Y, T42.Y, literal.x,4881; EG-NEXT: BFE_INT T58.Z, T44.Y, 0.0, literal.x, BS:VEC_120/SCL_2124882; EG-NEXT: LSHR T5.W, T42.W, literal.x,4883; EG-NEXT: LSHR * T6.W, T44.W, literal.x,4884; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4885; EG-NEXT: BFE_INT T58.X, T44.X, 0.0, literal.x,4886; EG-NEXT: LSHR T5.Y, T44.Y, literal.x,4887; EG-NEXT: BFE_INT T59.Z, T42.W, 0.0, literal.x,4888; EG-NEXT: BFE_INT T57.W, PS, 0.0, literal.x,4889; EG-NEXT: LSHR * T6.W, T44.Z, literal.x,4890; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4891; EG-NEXT: BFE_INT T59.X, T42.Z, 0.0, literal.x,4892; EG-NEXT: BFE_INT T57.Y, PS, 0.0, literal.x,4893; EG-NEXT: BFE_INT T44.Z, T42.Y, 0.0, literal.x,4894; EG-NEXT: BFE_INT T58.W, PV.Y, 0.0, literal.x,4895; EG-NEXT: LSHR * T6.W, T44.X, literal.x,4896; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4897; EG-NEXT: BFE_INT T44.X, T42.X, 0.0, literal.x,4898; EG-NEXT: BFE_INT T58.Y, PS, 0.0, literal.x,4899; EG-NEXT: BFE_INT T60.Z, T43.W, 0.0, literal.x,4900; EG-NEXT: BFE_INT T59.W, T5.W, 0.0, literal.x, BS:VEC_120/SCL_2124901; EG-NEXT: LSHR * T5.W, T42.Z, literal.x,4902; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4903; EG-NEXT: BFE_INT T60.X, T43.Z, 0.0, literal.x,4904; EG-NEXT: BFE_INT T59.Y, PS, 0.0, literal.x,4905; EG-NEXT: BFE_INT T42.Z, T43.Y, 0.0, literal.x,4906; EG-NEXT: BFE_INT T44.W, T4.Y, 0.0, literal.x, BS:VEC_120/SCL_2124907; EG-NEXT: LSHR * T5.W, T42.X, literal.x,4908; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4909; EG-NEXT: BFE_INT T42.X, T43.X, 0.0, literal.x,4910; EG-NEXT: BFE_INT T44.Y, PS, 0.0, literal.x,4911; EG-NEXT: BFE_INT T61.Z, T45.W, 0.0, literal.x,4912; EG-NEXT: BFE_INT * T60.W, T4.W, 0.0, literal.x, BS:VEC_120/SCL_2124913; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4914; EG-NEXT: ALU clause starting at 133:4915; EG-NEXT: LSHR * T4.W, T43.Z, literal.x,4916; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4917; EG-NEXT: BFE_INT T61.X, T45.Z, 0.0, literal.x,4918; EG-NEXT: BFE_INT T60.Y, PV.W, 0.0, literal.x,4919; EG-NEXT: BFE_INT T43.Z, T45.Y, 0.0, literal.x,4920; EG-NEXT: BFE_INT T42.W, T3.W, 0.0, literal.x,4921; EG-NEXT: LSHR * T3.W, T43.X, literal.x,4922; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4923; EG-NEXT: BFE_INT T43.X, T45.X, 0.0, literal.x,4924; EG-NEXT: BFE_INT T42.Y, PS, 0.0, literal.x,4925; EG-NEXT: BFE_INT T62.Z, T46.W, 0.0, literal.x,4926; EG-NEXT: BFE_INT T61.W, T3.Y, 0.0, literal.x,4927; EG-NEXT: LSHR * T3.W, T45.Z, literal.x,4928; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4929; EG-NEXT: BFE_INT T62.X, T46.Z, 0.0, literal.x,4930; EG-NEXT: BFE_INT T61.Y, PS, 0.0, literal.x,4931; EG-NEXT: BFE_INT T45.Z, T46.Y, 0.0, literal.x,4932; EG-NEXT: BFE_INT T43.W, T2.W, 0.0, literal.x,4933; EG-NEXT: LSHR * T2.W, T45.X, literal.x,4934; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4935; EG-NEXT: BFE_INT T45.X, T46.X, 0.0, literal.x,4936; EG-NEXT: BFE_INT T43.Y, PS, 0.0, literal.x,4937; EG-NEXT: BFE_INT T63.Z, T47.W, 0.0, literal.x,4938; EG-NEXT: BFE_INT T62.W, T2.Z, 0.0, literal.x,4939; EG-NEXT: LSHR * T2.W, T46.Z, literal.x,4940; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4941; EG-NEXT: BFE_INT T63.X, T47.Z, 0.0, literal.x,4942; EG-NEXT: BFE_INT T62.Y, PS, 0.0, literal.x,4943; EG-NEXT: BFE_INT T46.Z, T47.Y, 0.0, literal.x,4944; EG-NEXT: BFE_INT T45.W, T2.Y, 0.0, literal.x, BS:VEC_120/SCL_2124945; EG-NEXT: LSHR * T2.W, T46.X, literal.x,4946; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4947; EG-NEXT: BFE_INT T46.X, T47.X, 0.0, literal.x,4948; EG-NEXT: BFE_INT T45.Y, PS, 0.0, literal.x,4949; EG-NEXT: BFE_INT T64.Z, T48.W, 0.0, literal.x,4950; EG-NEXT: BFE_INT T63.W, T1.W, 0.0, literal.x, BS:VEC_120/SCL_2124951; EG-NEXT: LSHR * T1.W, T47.Z, literal.x,4952; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4953; EG-NEXT: BFE_INT T64.X, T48.Z, 0.0, literal.x,4954; EG-NEXT: BFE_INT T63.Y, PS, 0.0, literal.x,4955; EG-NEXT: BFE_INT T47.Z, T48.Y, 0.0, literal.x,4956; EG-NEXT: BFE_INT T46.W, T1.Z, 0.0, literal.x, BS:VEC_120/SCL_2124957; EG-NEXT: LSHR * T1.W, T47.X, literal.x,4958; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4959; EG-NEXT: BFE_INT T47.X, T48.X, 0.0, literal.x,4960; EG-NEXT: BFE_INT T46.Y, PS, 0.0, literal.x,4961; EG-NEXT: BFE_INT T65.Z, T41.W, 0.0, literal.x,4962; EG-NEXT: BFE_INT T64.W, T1.Y, 0.0, literal.x,4963; EG-NEXT: LSHR * T1.W, T48.Z, literal.x,4964; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4965; EG-NEXT: BFE_INT T65.X, T41.Z, 0.0, literal.x,4966; EG-NEXT: BFE_INT T64.Y, PS, 0.0, literal.x,4967; EG-NEXT: BFE_INT T48.Z, T41.Y, 0.0, literal.x,4968; EG-NEXT: BFE_INT T47.W, T0.W, 0.0, literal.x,4969; EG-NEXT: LSHR * T0.W, T48.X, literal.x,4970; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4971; EG-NEXT: BFE_INT T48.X, T41.X, 0.0, literal.x,4972; EG-NEXT: BFE_INT T47.Y, PS, 0.0, literal.x,4973; EG-NEXT: LSHR T1.Z, T41.Z, literal.x,4974; EG-NEXT: BFE_INT T65.W, T0.Z, 0.0, literal.x, BS:VEC_120/SCL_2124975; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4976; EG-NEXT: 16(2.242078e-44), 240(3.363116e-43)4977; EG-NEXT: LSHR T66.X, PS, literal.x,4978; EG-NEXT: BFE_INT T65.Y, PV.Z, 0.0, literal.y,4979; EG-NEXT: LSHR T0.Z, T41.X, literal.y,4980; EG-NEXT: BFE_INT T48.W, T0.Y, 0.0, literal.y,4981; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,4982; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4983; EG-NEXT: 224(3.138909e-43), 0(0.000000e+00)4984; EG-NEXT: LSHR T41.X, PS, literal.x,4985; EG-NEXT: BFE_INT * T48.Y, PV.Z, 0.0, literal.y,4986; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4987;4988; CM-LABEL: global_sextload_v64i16_to_v64i32:4989; CM: ; %bb.0:4990; CM-NEXT: ALU 0, @40, KC0[CB0:0-32], KC1[]4991; CM-NEXT: TEX 1 @244992; CM-NEXT: ALU 15, @41, KC0[CB0:0-32], KC1[]4993; CM-NEXT: TEX 5 @284994; CM-NEXT: ALU 82, @57, KC0[CB0:0-32], KC1[]4995; CM-NEXT: ALU 72, @140, KC0[CB0:0-32], KC1[]4996; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T65, T66.X4997; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T36, T35.X4998; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T64, T56.X4999; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T37, T55.X5000; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T63, T54.X5001; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T45, T53.X5002; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T62, T52.X5003; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T44, T51.X5004; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T61, T50.X5005; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T43, T49.X5006; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T60, T48.X5007; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T42, T47.X5008; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T59, T46.X5009; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T41, T40.X5010; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T58, T39.X5011; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T57, T38.X5012; CM-NEXT: CF_END5013; CM-NEXT: PAD5014; CM-NEXT: Fetch clause starting at 24:5015; CM-NEXT: VTX_READ_128 T36.XYZW, T37.X, 16, #15016; CM-NEXT: VTX_READ_128 T35.XYZW, T37.X, 0, #15017; CM-NEXT: Fetch clause starting at 28:5018; CM-NEXT: VTX_READ_128 T41.XYZW, T37.X, 112, #15019; CM-NEXT: VTX_READ_128 T42.XYZW, T37.X, 96, #15020; CM-NEXT: VTX_READ_128 T43.XYZW, T37.X, 80, #15021; CM-NEXT: VTX_READ_128 T44.XYZW, T37.X, 64, #15022; CM-NEXT: VTX_READ_128 T45.XYZW, T37.X, 48, #15023; CM-NEXT: VTX_READ_128 T37.XYZW, T37.X, 32, #15024; CM-NEXT: ALU clause starting at 40:5025; CM-NEXT: MOV * T37.X, KC0[2].Z,5026; CM-NEXT: ALU clause starting at 41:5027; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,5028; CM-NEXT: 224(3.138909e-43), 0(0.000000e+00)5029; CM-NEXT: LSHR T38.X, PV.W, literal.x,5030; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5031; CM-NEXT: 2(2.802597e-45), 240(3.363116e-43)5032; CM-NEXT: LSHR T39.X, PV.W, literal.x,5033; CM-NEXT: LSHR T0.Y, T35.Z, literal.y,5034; CM-NEXT: LSHR T0.Z, T35.W, literal.y,5035; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,5036; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5037; CM-NEXT: 192(2.690493e-43), 0(0.000000e+00)5038; CM-NEXT: LSHR T40.X, PV.W, literal.x,5039; CM-NEXT: LSHR T1.Y, T35.Y, literal.y,5040; CM-NEXT: LSHR T1.Z, T36.Z, literal.y,5041; CM-NEXT: LSHR * T0.W, T36.W, literal.y,5042; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5043; CM-NEXT: ALU clause starting at 57:5044; CM-NEXT: LSHR T2.Z, T36.X, literal.x,5045; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,5046; CM-NEXT: 16(2.242078e-44), 208(2.914701e-43)5047; CM-NEXT: LSHR T46.X, PV.W, literal.x,5048; CM-NEXT: LSHR T2.Y, T36.Y, literal.y,5049; CM-NEXT: LSHR T3.Z, T37.Z, literal.y,5050; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5051; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5052; CM-NEXT: 160(2.242078e-43), 0(0.000000e+00)5053; CM-NEXT: LSHR T47.X, PV.W, literal.x,5054; CM-NEXT: LSHR T3.Y, T37.W, literal.y,5055; CM-NEXT: LSHR T4.Z, T37.X, literal.y,5056; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5057; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5058; CM-NEXT: 176(2.466285e-43), 0(0.000000e+00)5059; CM-NEXT: LSHR T48.X, PV.W, literal.x,5060; CM-NEXT: LSHR T4.Y, T37.Y, literal.y,5061; CM-NEXT: LSHR T5.Z, T45.Z, literal.y,5062; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5063; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5064; CM-NEXT: 128(1.793662e-43), 0(0.000000e+00)5065; CM-NEXT: LSHR T49.X, PV.W, literal.x,5066; CM-NEXT: LSHR T5.Y, T45.W, literal.y,5067; CM-NEXT: LSHR T6.Z, T45.X, literal.y,5068; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5069; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5070; CM-NEXT: 144(2.017870e-43), 0(0.000000e+00)5071; CM-NEXT: LSHR T50.X, PV.W, literal.x,5072; CM-NEXT: LSHR T6.Y, T45.Y, literal.y,5073; CM-NEXT: LSHR T7.Z, T44.Z, literal.y,5074; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5075; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5076; CM-NEXT: 96(1.345247e-43), 0(0.000000e+00)5077; CM-NEXT: LSHR T51.X, PV.W, literal.x,5078; CM-NEXT: LSHR T7.Y, T44.W, literal.y,5079; CM-NEXT: LSHR T8.Z, T44.X, literal.y,5080; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5081; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5082; CM-NEXT: 112(1.569454e-43), 0(0.000000e+00)5083; CM-NEXT: LSHR T52.X, PV.W, literal.x,5084; CM-NEXT: LSHR T8.Y, T44.Y, literal.y,5085; CM-NEXT: LSHR T9.Z, T43.Z, literal.y,5086; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5087; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5088; CM-NEXT: 64(8.968310e-44), 0(0.000000e+00)5089; CM-NEXT: LSHR T53.X, PV.W, literal.x,5090; CM-NEXT: LSHR T9.Y, T43.W, literal.y,5091; CM-NEXT: LSHR T10.Z, T43.X, literal.y,5092; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5093; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5094; CM-NEXT: 80(1.121039e-43), 0(0.000000e+00)5095; CM-NEXT: LSHR T54.X, PV.W, literal.x,5096; CM-NEXT: LSHR T10.Y, T43.Y, literal.y,5097; CM-NEXT: LSHR T11.Z, T42.Z, literal.y,5098; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5099; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5100; CM-NEXT: 32(4.484155e-44), 0(0.000000e+00)5101; CM-NEXT: LSHR T55.X, PV.W, literal.x,5102; CM-NEXT: LSHR T11.Y, T42.W, literal.y,5103; CM-NEXT: LSHR T12.Z, T42.X, literal.y,5104; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5105; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5106; CM-NEXT: 48(6.726233e-44), 0(0.000000e+00)5107; CM-NEXT: LSHR T56.X, PV.W, literal.x,5108; CM-NEXT: LSHR T12.Y, T42.Y, literal.y,5109; CM-NEXT: BFE_INT T57.Z, T41.Y, 0.0, literal.y, BS:VEC_120/SCL_2125110; CM-NEXT: LSHR * T1.W, T41.Z, literal.y,5111; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5112; CM-NEXT: BFE_INT T57.X, T41.X, 0.0, literal.x,5113; CM-NEXT: LSHR T13.Y, T41.W, literal.x,5114; CM-NEXT: BFE_INT T58.Z, T41.W, 0.0, literal.x,5115; CM-NEXT: LSHR * T2.W, T41.Y, literal.x,5116; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5117; CM-NEXT: BFE_INT T58.X, T41.Z, 0.0, literal.x,5118; CM-NEXT: LSHR T14.Y, T41.X, literal.x,5119; CM-NEXT: BFE_INT T41.Z, T42.Y, 0.0, literal.x,5120; CM-NEXT: BFE_INT * T57.W, PV.W, 0.0, literal.x,5121; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5122; CM-NEXT: BFE_INT T41.X, T42.X, 0.0, literal.x,5123; CM-NEXT: BFE_INT T57.Y, PV.Y, 0.0, literal.x,5124; CM-NEXT: BFE_INT T59.Z, T42.W, 0.0, literal.x,5125; CM-NEXT: BFE_INT * T58.W, T13.Y, 0.0, literal.x,5126; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5127; CM-NEXT: ALU clause starting at 140:5128; CM-NEXT: BFE_INT T59.X, T42.Z, 0.0, literal.x,5129; CM-NEXT: BFE_INT T58.Y, T1.W, 0.0, literal.x,5130; CM-NEXT: BFE_INT T42.Z, T43.Y, 0.0, literal.x,5131; CM-NEXT: BFE_INT * T41.W, T12.Y, 0.0, literal.x, BS:VEC_120/SCL_2125132; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5133; CM-NEXT: BFE_INT T42.X, T43.X, 0.0, literal.x,5134; CM-NEXT: BFE_INT T41.Y, T12.Z, 0.0, literal.x,5135; CM-NEXT: BFE_INT T60.Z, T43.W, 0.0, literal.x,5136; CM-NEXT: BFE_INT * T59.W, T11.Y, 0.0, literal.x,5137; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5138; CM-NEXT: BFE_INT T60.X, T43.Z, 0.0, literal.x,5139; CM-NEXT: BFE_INT T59.Y, T11.Z, 0.0, literal.x, BS:VEC_120/SCL_2125140; CM-NEXT: BFE_INT T43.Z, T44.Y, 0.0, literal.x,5141; CM-NEXT: BFE_INT * T42.W, T10.Y, 0.0, literal.x, BS:VEC_120/SCL_2125142; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5143; CM-NEXT: BFE_INT T43.X, T44.X, 0.0, literal.x,5144; CM-NEXT: BFE_INT T42.Y, T10.Z, 0.0, literal.x,5145; CM-NEXT: BFE_INT T61.Z, T44.W, 0.0, literal.x,5146; CM-NEXT: BFE_INT * T60.W, T9.Y, 0.0, literal.x,5147; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5148; CM-NEXT: BFE_INT T61.X, T44.Z, 0.0, literal.x,5149; CM-NEXT: BFE_INT T60.Y, T9.Z, 0.0, literal.x, BS:VEC_120/SCL_2125150; CM-NEXT: BFE_INT T44.Z, T45.Y, 0.0, literal.x,5151; CM-NEXT: BFE_INT * T43.W, T8.Y, 0.0, literal.x, BS:VEC_120/SCL_2125152; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5153; CM-NEXT: BFE_INT T44.X, T45.X, 0.0, literal.x,5154; CM-NEXT: BFE_INT T43.Y, T8.Z, 0.0, literal.x,5155; CM-NEXT: BFE_INT T62.Z, T45.W, 0.0, literal.x,5156; CM-NEXT: BFE_INT * T61.W, T7.Y, 0.0, literal.x,5157; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5158; CM-NEXT: BFE_INT T62.X, T45.Z, 0.0, literal.x,5159; CM-NEXT: BFE_INT T61.Y, T7.Z, 0.0, literal.x, BS:VEC_120/SCL_2125160; CM-NEXT: BFE_INT T45.Z, T37.Y, 0.0, literal.x,5161; CM-NEXT: BFE_INT * T44.W, T6.Y, 0.0, literal.x, BS:VEC_120/SCL_2125162; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5163; CM-NEXT: BFE_INT T45.X, T37.X, 0.0, literal.x,5164; CM-NEXT: BFE_INT T44.Y, T6.Z, 0.0, literal.x,5165; CM-NEXT: BFE_INT T63.Z, T37.W, 0.0, literal.x,5166; CM-NEXT: BFE_INT * T62.W, T5.Y, 0.0, literal.x,5167; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5168; CM-NEXT: BFE_INT T63.X, T37.Z, 0.0, literal.x,5169; CM-NEXT: BFE_INT T62.Y, T5.Z, 0.0, literal.x, BS:VEC_120/SCL_2125170; CM-NEXT: BFE_INT T37.Z, T36.Y, 0.0, literal.x,5171; CM-NEXT: BFE_INT * T45.W, T4.Y, 0.0, literal.x, BS:VEC_120/SCL_2125172; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5173; CM-NEXT: BFE_INT T37.X, T36.X, 0.0, literal.x,5174; CM-NEXT: BFE_INT T45.Y, T4.Z, 0.0, literal.x,5175; CM-NEXT: BFE_INT T64.Z, T36.W, 0.0, literal.x,5176; CM-NEXT: BFE_INT * T63.W, T3.Y, 0.0, literal.x,5177; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5178; CM-NEXT: BFE_INT T64.X, T36.Z, 0.0, literal.x,5179; CM-NEXT: BFE_INT T63.Y, T3.Z, 0.0, literal.x, BS:VEC_120/SCL_2125180; CM-NEXT: BFE_INT T36.Z, T35.Y, 0.0, literal.x,5181; CM-NEXT: BFE_INT * T37.W, T2.Y, 0.0, literal.x, BS:VEC_120/SCL_2125182; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5183; CM-NEXT: BFE_INT T36.X, T35.X, 0.0, literal.x,5184; CM-NEXT: BFE_INT T37.Y, T2.Z, 0.0, literal.x,5185; CM-NEXT: BFE_INT T65.Z, T35.W, 0.0, literal.x,5186; CM-NEXT: BFE_INT * T64.W, T0.W, 0.0, literal.x, BS:VEC_120/SCL_2125187; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5188; CM-NEXT: BFE_INT T65.X, T35.Z, 0.0, literal.x,5189; CM-NEXT: BFE_INT T64.Y, T1.Z, 0.0, literal.x, BS:VEC_120/SCL_2125190; CM-NEXT: LSHR T1.Z, T35.X, literal.x,5191; CM-NEXT: BFE_INT * T36.W, T1.Y, 0.0, literal.x,5192; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5193; CM-NEXT: LSHR T35.X, KC0[2].Y, literal.x,5194; CM-NEXT: BFE_INT T36.Y, PV.Z, 0.0, literal.y,5195; CM-NEXT: ADD_INT T1.Z, KC0[2].Y, literal.y,5196; CM-NEXT: BFE_INT * T65.W, T0.Z, 0.0, literal.y,5197; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5198; CM-NEXT: LSHR T66.X, PV.Z, literal.x,5199; CM-NEXT: BFE_INT * T65.Y, T0.Y, 0.0, literal.y,5200; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)5201 %load = load <64 x i16>, ptr addrspace(1) %in5202 %ext = sext <64 x i16> %load to <64 x i32>5203 store <64 x i32> %ext, ptr addrspace(1) %out5204 ret void5205}5206 5207define amdgpu_kernel void @global_zextload_i16_to_i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5208; GCN-NOHSA-SI-LABEL: global_zextload_i16_to_i64:5209; GCN-NOHSA-SI: ; %bb.0:5210; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95211; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005212; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15213; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65214; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75215; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5216; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25217; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35218; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 05219; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05220; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15221; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05222; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5223; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05224; GCN-NOHSA-SI-NEXT: s_endpgm5225;5226; GCN-HSA-LABEL: global_zextload_i16_to_i64:5227; GCN-HSA: ; %bb.0:5228; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05229; GCN-HSA-NEXT: s_add_i32 s12, s12, s175230; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135231; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85232; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5233; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25234; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35235; GCN-HSA-NEXT: flat_load_ushort v0, v[0:1]5236; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05237; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15238; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05239; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5240; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5241; GCN-HSA-NEXT: s_endpgm5242;5243; GCN-NOHSA-VI-LABEL: global_zextload_i16_to_i64:5244; GCN-NOHSA-VI: ; %bb.0:5245; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245246; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005247; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15248; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65249; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75250; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5251; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25252; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35253; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 05254; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05255; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15256; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 05257; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5258; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v05259; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05260; GCN-NOHSA-VI-NEXT: s_endpgm5261;5262; EG-LABEL: global_zextload_i16_to_i64:5263; EG: ; %bb.0:5264; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5265; EG-NEXT: TEX 0 @65266; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]5267; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15268; EG-NEXT: CF_END5269; EG-NEXT: PAD5270; EG-NEXT: Fetch clause starting at 6:5271; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15272; EG-NEXT: ALU clause starting at 8:5273; EG-NEXT: MOV * T0.X, KC0[2].Z,5274; EG-NEXT: ALU clause starting at 9:5275; EG-NEXT: MOV * T0.Y, 0.0,5276; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,5277; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)5278;5279; CM-LABEL: global_zextload_i16_to_i64:5280; CM: ; %bb.0:5281; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5282; CM-NEXT: TEX 0 @65283; CM-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]5284; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X5285; CM-NEXT: CF_END5286; CM-NEXT: PAD5287; CM-NEXT: Fetch clause starting at 6:5288; CM-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15289; CM-NEXT: ALU clause starting at 8:5290; CM-NEXT: MOV * T0.X, KC0[2].Z,5291; CM-NEXT: ALU clause starting at 9:5292; CM-NEXT: MOV * T0.Y, 0.0,5293; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,5294; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)5295 %a = load i16, ptr addrspace(1) %in5296 %ext = zext i16 %a to i645297 store i64 %ext, ptr addrspace(1) %out5298 ret void5299}5300 5301; FIXME: Need to optimize this sequence to avoid extra bfe:5302; t28: i32,ch = load<LD2[%in(addrspace=1)], anyext from i16> t12, t27, undef:i645303; t31: i64 = any_extend t285304; t33: i64 = sign_extend_inreg t31, ValueType:ch:i165305 5306; TODO: These could be expanded earlier using ASHR 155307define amdgpu_kernel void @global_sextload_i16_to_i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5308; GCN-NOHSA-SI-LABEL: global_sextload_i16_to_i64:5309; GCN-NOHSA-SI: ; %bb.0:5310; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95311; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005312; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15313; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65314; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75315; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5316; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25317; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35318; GCN-NOHSA-SI-NEXT: buffer_load_sshort v0, off, s[8:11], 05319; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05320; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15321; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5322; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v05323; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05324; GCN-NOHSA-SI-NEXT: s_endpgm5325;5326; GCN-HSA-LABEL: global_sextload_i16_to_i64:5327; GCN-HSA: ; %bb.0:5328; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05329; GCN-HSA-NEXT: s_add_i32 s12, s12, s175330; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135331; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85332; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5333; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25334; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35335; GCN-HSA-NEXT: flat_load_sshort v0, v[0:1]5336; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05337; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15338; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5339; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v05340; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5341; GCN-HSA-NEXT: s_endpgm5342;5343; GCN-NOHSA-VI-LABEL: global_sextload_i16_to_i64:5344; GCN-NOHSA-VI: ; %bb.0:5345; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245346; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005347; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15348; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65349; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75350; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5351; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25352; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35353; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 05354; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05355; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15356; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5357; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 165358; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v05359; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05360; GCN-NOHSA-VI-NEXT: s_endpgm5361;5362; EG-LABEL: global_sextload_i16_to_i64:5363; EG: ; %bb.0:5364; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5365; EG-NEXT: TEX 0 @65366; EG-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]5367; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15368; EG-NEXT: CF_END5369; EG-NEXT: PAD5370; EG-NEXT: Fetch clause starting at 6:5371; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15372; EG-NEXT: ALU clause starting at 8:5373; EG-NEXT: MOV * T0.X, KC0[2].Z,5374; EG-NEXT: ALU clause starting at 9:5375; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,5376; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,5377; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)5378; EG-NEXT: ASHR * T0.Y, PV.X, literal.x,5379; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)5380;5381; CM-LABEL: global_sextload_i16_to_i64:5382; CM: ; %bb.0:5383; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5384; CM-NEXT: TEX 0 @65385; CM-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]5386; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X5387; CM-NEXT: CF_END5388; CM-NEXT: PAD5389; CM-NEXT: Fetch clause starting at 6:5390; CM-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15391; CM-NEXT: ALU clause starting at 8:5392; CM-NEXT: MOV * T0.X, KC0[2].Z,5393; CM-NEXT: ALU clause starting at 9:5394; CM-NEXT: BFE_INT * T0.X, T0.X, 0.0, literal.x,5395; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5396; CM-NEXT: LSHR T1.X, KC0[2].Y, literal.x,5397; CM-NEXT: ASHR * T0.Y, PV.X, literal.y,5398; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)5399 %a = load i16, ptr addrspace(1) %in5400 %ext = sext i16 %a to i645401 store i64 %ext, ptr addrspace(1) %out5402 ret void5403}5404 5405define amdgpu_kernel void @global_zextload_v1i16_to_v1i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5406; GCN-NOHSA-SI-LABEL: global_zextload_v1i16_to_v1i64:5407; GCN-NOHSA-SI: ; %bb.0:5408; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95409; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005410; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15411; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65412; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75413; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5414; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25415; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35416; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 05417; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05418; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15419; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05420; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5421; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05422; GCN-NOHSA-SI-NEXT: s_endpgm5423;5424; GCN-HSA-LABEL: global_zextload_v1i16_to_v1i64:5425; GCN-HSA: ; %bb.0:5426; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05427; GCN-HSA-NEXT: s_add_i32 s12, s12, s175428; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135429; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85430; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5431; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25432; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35433; GCN-HSA-NEXT: flat_load_ushort v0, v[0:1]5434; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05435; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15436; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05437; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5438; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5439; GCN-HSA-NEXT: s_endpgm5440;5441; GCN-NOHSA-VI-LABEL: global_zextload_v1i16_to_v1i64:5442; GCN-NOHSA-VI: ; %bb.0:5443; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245444; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005445; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15446; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65447; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75448; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5449; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25450; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35451; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 05452; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05453; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15454; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 05455; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5456; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v05457; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05458; GCN-NOHSA-VI-NEXT: s_endpgm5459;5460; EG-LABEL: global_zextload_v1i16_to_v1i64:5461; EG: ; %bb.0:5462; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5463; EG-NEXT: TEX 0 @65464; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]5465; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15466; EG-NEXT: CF_END5467; EG-NEXT: PAD5468; EG-NEXT: Fetch clause starting at 6:5469; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15470; EG-NEXT: ALU clause starting at 8:5471; EG-NEXT: MOV * T0.X, KC0[2].Z,5472; EG-NEXT: ALU clause starting at 9:5473; EG-NEXT: MOV * T0.Y, 0.0,5474; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,5475; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)5476;5477; CM-LABEL: global_zextload_v1i16_to_v1i64:5478; CM: ; %bb.0:5479; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5480; CM-NEXT: TEX 0 @65481; CM-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]5482; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X5483; CM-NEXT: CF_END5484; CM-NEXT: PAD5485; CM-NEXT: Fetch clause starting at 6:5486; CM-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15487; CM-NEXT: ALU clause starting at 8:5488; CM-NEXT: MOV * T0.X, KC0[2].Z,5489; CM-NEXT: ALU clause starting at 9:5490; CM-NEXT: MOV * T0.Y, 0.0,5491; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,5492; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)5493 %load = load <1 x i16>, ptr addrspace(1) %in5494 %ext = zext <1 x i16> %load to <1 x i64>5495 store <1 x i64> %ext, ptr addrspace(1) %out5496 ret void5497}5498 5499; TODO: These could be expanded earlier using ASHR 155500define amdgpu_kernel void @global_sextload_v1i16_to_v1i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5501; GCN-NOHSA-SI-LABEL: global_sextload_v1i16_to_v1i64:5502; GCN-NOHSA-SI: ; %bb.0:5503; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95504; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005505; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15506; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65507; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75508; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5509; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25510; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35511; GCN-NOHSA-SI-NEXT: buffer_load_sshort v0, off, s[8:11], 05512; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05513; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15514; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5515; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v05516; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05517; GCN-NOHSA-SI-NEXT: s_endpgm5518;5519; GCN-HSA-LABEL: global_sextload_v1i16_to_v1i64:5520; GCN-HSA: ; %bb.0:5521; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05522; GCN-HSA-NEXT: s_add_i32 s12, s12, s175523; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135524; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85525; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5526; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25527; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35528; GCN-HSA-NEXT: flat_load_sshort v0, v[0:1]5529; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05530; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15531; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5532; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v05533; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5534; GCN-HSA-NEXT: s_endpgm5535;5536; GCN-NOHSA-VI-LABEL: global_sextload_v1i16_to_v1i64:5537; GCN-NOHSA-VI: ; %bb.0:5538; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245539; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005540; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15541; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65542; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75543; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5544; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25545; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35546; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 05547; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05548; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15549; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5550; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 165551; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v05552; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05553; GCN-NOHSA-VI-NEXT: s_endpgm5554;5555; EG-LABEL: global_sextload_v1i16_to_v1i64:5556; EG: ; %bb.0:5557; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5558; EG-NEXT: TEX 0 @65559; EG-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]5560; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15561; EG-NEXT: CF_END5562; EG-NEXT: PAD5563; EG-NEXT: Fetch clause starting at 6:5564; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15565; EG-NEXT: ALU clause starting at 8:5566; EG-NEXT: MOV * T0.X, KC0[2].Z,5567; EG-NEXT: ALU clause starting at 9:5568; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,5569; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,5570; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)5571; EG-NEXT: ASHR * T0.Y, PV.X, literal.x,5572; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)5573;5574; CM-LABEL: global_sextload_v1i16_to_v1i64:5575; CM: ; %bb.0:5576; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5577; CM-NEXT: TEX 0 @65578; CM-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]5579; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X5580; CM-NEXT: CF_END5581; CM-NEXT: PAD5582; CM-NEXT: Fetch clause starting at 6:5583; CM-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15584; CM-NEXT: ALU clause starting at 8:5585; CM-NEXT: MOV * T0.X, KC0[2].Z,5586; CM-NEXT: ALU clause starting at 9:5587; CM-NEXT: BFE_INT * T0.X, T0.X, 0.0, literal.x,5588; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5589; CM-NEXT: LSHR T1.X, KC0[2].Y, literal.x,5590; CM-NEXT: ASHR * T0.Y, PV.X, literal.y,5591; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)5592 %load = load <1 x i16>, ptr addrspace(1) %in5593 %ext = sext <1 x i16> %load to <1 x i64>5594 store <1 x i64> %ext, ptr addrspace(1) %out5595 ret void5596}5597 5598define amdgpu_kernel void @global_zextload_v2i16_to_v2i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5599; GCN-NOHSA-SI-LABEL: global_zextload_v2i16_to_v2i64:5600; GCN-NOHSA-SI: ; %bb.0:5601; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95602; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005603; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15604; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65605; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75606; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5607; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25608; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35609; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 05610; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05611; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05612; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15613; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5614; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 16, v05615; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v05616; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v15617; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 05618; GCN-NOHSA-SI-NEXT: s_endpgm5619;5620; GCN-HSA-LABEL: global_zextload_v2i16_to_v2i64:5621; GCN-HSA: ; %bb.0:5622; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05623; GCN-HSA-NEXT: s_add_i32 s12, s12, s175624; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135625; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85626; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5627; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25628; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35629; GCN-HSA-NEXT: flat_load_dword v0, v[0:1]5630; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05631; GCN-HSA-NEXT: v_mov_b32_e32 v4, s05632; GCN-HSA-NEXT: v_mov_b32_e32 v5, s15633; GCN-HSA-NEXT: v_mov_b32_e32 v3, v15634; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5635; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 16, v05636; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xffff, v05637; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5638; GCN-HSA-NEXT: s_endpgm5639;5640; GCN-NOHSA-VI-LABEL: global_zextload_v2i16_to_v2i64:5641; GCN-NOHSA-VI: ; %bb.0:5642; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245643; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005644; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15645; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65646; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75647; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5648; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25649; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35650; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 05651; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 05652; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05653; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15654; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v15655; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5656; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v05657; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v05658; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 05659; GCN-NOHSA-VI-NEXT: s_endpgm5660;5661; EG-LABEL: global_zextload_v2i16_to_v2i64:5662; EG: ; %bb.0:5663; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5664; EG-NEXT: TEX 0 @65665; EG-NEXT: ALU 6, @9, KC0[CB0:0-32], KC1[]5666; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T5.X, 15667; EG-NEXT: CF_END5668; EG-NEXT: PAD5669; EG-NEXT: Fetch clause starting at 6:5670; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #15671; EG-NEXT: ALU clause starting at 8:5672; EG-NEXT: MOV * T4.X, KC0[2].Z,5673; EG-NEXT: ALU clause starting at 9:5674; EG-NEXT: LSHR * T4.Z, T4.X, literal.x,5675; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5676; EG-NEXT: AND_INT T4.X, T4.X, literal.x,5677; EG-NEXT: MOV T4.Y, 0.0,5678; EG-NEXT: MOV T4.W, 0.0,5679; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.y,5680; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)5681;5682; CM-LABEL: global_zextload_v2i16_to_v2i64:5683; CM: ; %bb.0:5684; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5685; CM-NEXT: TEX 0 @65686; CM-NEXT: ALU 7, @9, KC0[CB0:0-32], KC1[]5687; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T4, T5.X5688; CM-NEXT: CF_END5689; CM-NEXT: PAD5690; CM-NEXT: Fetch clause starting at 6:5691; CM-NEXT: VTX_READ_32 T4.X, T4.X, 0, #15692; CM-NEXT: ALU clause starting at 8:5693; CM-NEXT: MOV * T4.X, KC0[2].Z,5694; CM-NEXT: ALU clause starting at 9:5695; CM-NEXT: LSHR * T4.Z, T4.X, literal.x,5696; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5697; CM-NEXT: AND_INT T4.X, T4.X, literal.x,5698; CM-NEXT: MOV T4.Y, 0.0,5699; CM-NEXT: MOV * T4.W, 0.0,5700; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)5701; CM-NEXT: LSHR * T5.X, KC0[2].Y, literal.x,5702; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)5703 %load = load <2 x i16>, ptr addrspace(1) %in5704 %ext = zext <2 x i16> %load to <2 x i64>5705 store <2 x i64> %ext, ptr addrspace(1) %out5706 ret void5707}5708 5709define amdgpu_kernel void @global_sextload_v2i16_to_v2i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5710; GCN-NOHSA-SI-LABEL: global_sextload_v2i16_to_v2i64:5711; GCN-NOHSA-SI: ; %bb.0:5712; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95713; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005714; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15715; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65716; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75717; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5718; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25719; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35720; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 05721; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05722; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15723; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5724; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 16, v05725; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 165726; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v05727; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v2, 0, 165728; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 31, v25729; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 05730; GCN-NOHSA-SI-NEXT: s_endpgm5731;5732; GCN-HSA-LABEL: global_sextload_v2i16_to_v2i64:5733; GCN-HSA: ; %bb.0:5734; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05735; GCN-HSA-NEXT: s_add_i32 s12, s12, s175736; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135737; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85738; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5739; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25740; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35741; GCN-HSA-NEXT: flat_load_dword v0, v[0:1]5742; GCN-HSA-NEXT: v_mov_b32_e32 v4, s05743; GCN-HSA-NEXT: v_mov_b32_e32 v5, s15744; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5745; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 16, v05746; GCN-HSA-NEXT: v_bfe_i32 v0, v0, 0, 165747; GCN-HSA-NEXT: v_bfe_i32 v2, v2, 0, 165748; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v05749; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 31, v25750; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5751; GCN-HSA-NEXT: s_endpgm5752;5753; GCN-NOHSA-VI-LABEL: global_sextload_v2i16_to_v2i64:5754; GCN-NOHSA-VI: ; %bb.0:5755; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245756; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005757; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15758; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65759; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75760; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5761; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25762; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35763; GCN-NOHSA-VI-NEXT: buffer_load_dword v1, off, s[8:11], 05764; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05765; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15766; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5767; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v15768; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v1, 0, 165769; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v2, 0, 165770; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v05771; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 31, v25772; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 05773; GCN-NOHSA-VI-NEXT: s_endpgm5774;5775; EG-LABEL: global_sextload_v2i16_to_v2i64:5776; EG: ; %bb.0:5777; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5778; EG-NEXT: TEX 0 @65779; EG-NEXT: ALU 8, @9, KC0[CB0:0-32], KC1[]5780; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T5.X, 15781; EG-NEXT: CF_END5782; EG-NEXT: PAD5783; EG-NEXT: Fetch clause starting at 6:5784; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #15785; EG-NEXT: ALU clause starting at 8:5786; EG-NEXT: MOV * T4.X, KC0[2].Z,5787; EG-NEXT: ALU clause starting at 9:5788; EG-NEXT: ASHR * T4.W, T4.X, literal.x,5789; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)5790; EG-NEXT: ASHR * T4.Z, T4.X, literal.x,5791; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5792; EG-NEXT: BFE_INT T4.X, T4.X, 0.0, literal.x,5793; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.y,5794; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)5795; EG-NEXT: ASHR * T4.Y, PV.X, literal.x,5796; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)5797;5798; CM-LABEL: global_sextload_v2i16_to_v2i64:5799; CM: ; %bb.0:5800; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5801; CM-NEXT: TEX 0 @65802; CM-NEXT: ALU 8, @9, KC0[CB0:0-32], KC1[]5803; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T4, T5.X5804; CM-NEXT: CF_END5805; CM-NEXT: PAD5806; CM-NEXT: Fetch clause starting at 6:5807; CM-NEXT: VTX_READ_32 T4.X, T4.X, 0, #15808; CM-NEXT: ALU clause starting at 8:5809; CM-NEXT: MOV * T4.X, KC0[2].Z,5810; CM-NEXT: ALU clause starting at 9:5811; CM-NEXT: ASHR * T4.W, T4.X, literal.x,5812; CM-NEXT: 31(4.344025e-44), 0(0.000000e+00)5813; CM-NEXT: ASHR * T4.Z, T4.X, literal.x,5814; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5815; CM-NEXT: BFE_INT * T4.X, T4.X, 0.0, literal.x,5816; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5817; CM-NEXT: LSHR T5.X, KC0[2].Y, literal.x,5818; CM-NEXT: ASHR * T4.Y, PV.X, literal.y,5819; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)5820 %load = load <2 x i16>, ptr addrspace(1) %in5821 %ext = sext <2 x i16> %load to <2 x i64>5822 store <2 x i64> %ext, ptr addrspace(1) %out5823 ret void5824}5825 5826define amdgpu_kernel void @global_zextload_v4i16_to_v4i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5827; GCN-NOHSA-SI-LABEL: global_zextload_v4i16_to_v4i64:5828; GCN-NOHSA-SI: ; %bb.0:5829; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95830; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005831; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15832; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65833; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75834; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5835; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25836; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35837; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[8:9], off, s[8:11], 05838; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05839; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v15840; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, v15841; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, v15842; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05843; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15844; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5845; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 16, v95846; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v6, 16, v85847; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xffff, v85848; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v95849; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:165850; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 05851; GCN-NOHSA-SI-NEXT: s_endpgm5852;5853; GCN-HSA-LABEL: global_zextload_v4i16_to_v4i64:5854; GCN-HSA: ; %bb.0:5855; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05856; GCN-HSA-NEXT: s_add_i32 s12, s12, s175857; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135858; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85859; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5860; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25861; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35862; GCN-HSA-NEXT: flat_load_dwordx2 v[8:9], v[0:1]5863; GCN-HSA-NEXT: s_add_u32 s2, s0, 165864; GCN-HSA-NEXT: s_addc_u32 s3, s1, 05865; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05866; GCN-HSA-NEXT: v_mov_b32_e32 v13, s35867; GCN-HSA-NEXT: v_mov_b32_e32 v3, v15868; GCN-HSA-NEXT: v_mov_b32_e32 v11, s15869; GCN-HSA-NEXT: v_mov_b32_e32 v12, s25870; GCN-HSA-NEXT: v_mov_b32_e32 v5, v15871; GCN-HSA-NEXT: v_mov_b32_e32 v7, v15872; GCN-HSA-NEXT: v_mov_b32_e32 v10, s05873; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5874; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 16, v95875; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xffff, v95876; GCN-HSA-NEXT: v_lshrrev_b32_e32 v6, 16, v85877; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xffff, v85878; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[0:3]5879; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[4:7]5880; GCN-HSA-NEXT: s_endpgm5881;5882; GCN-NOHSA-VI-LABEL: global_zextload_v4i16_to_v4i64:5883; GCN-NOHSA-VI: ; %bb.0:5884; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245885; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005886; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15887; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65888; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75889; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5890; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25891; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35892; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[8:9], off, s[8:11], 05893; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 05894; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v15895; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05896; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15897; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, v15898; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, v15899; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5900; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v95901; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v95902; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v6, 16, v85903; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xffff, v85904; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:165905; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 05906; GCN-NOHSA-VI-NEXT: s_endpgm5907;5908; EG-LABEL: global_zextload_v4i16_to_v4i64:5909; EG: ; %bb.0:5910; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5911; EG-NEXT: TEX 0 @65912; EG-NEXT: ALU 14, @9, KC0[CB0:0-32], KC1[]5913; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T8.X, 05914; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T7.X, 15915; EG-NEXT: CF_END5916; EG-NEXT: Fetch clause starting at 6:5917; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #15918; EG-NEXT: ALU clause starting at 8:5919; EG-NEXT: MOV * T5.X, KC0[2].Z,5920; EG-NEXT: ALU clause starting at 9:5921; EG-NEXT: LSHR * T6.Z, T5.Y, literal.x,5922; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5923; EG-NEXT: AND_INT T6.X, T5.Y, literal.x,5924; EG-NEXT: MOV T6.Y, 0.0,5925; EG-NEXT: LSHR T5.Z, T5.X, literal.y,5926; EG-NEXT: AND_INT * T5.X, T5.X, literal.x,5927; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)5928; EG-NEXT: MOV T5.Y, 0.0,5929; EG-NEXT: MOV T6.W, 0.0,5930; EG-NEXT: MOV * T5.W, 0.0,5931; EG-NEXT: LSHR T7.X, KC0[2].Y, literal.x,5932; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5933; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)5934; EG-NEXT: LSHR * T8.X, PV.W, literal.x,5935; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)5936;5937; CM-LABEL: global_zextload_v4i16_to_v4i64:5938; CM: ; %bb.0:5939; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5940; CM-NEXT: TEX 0 @65941; CM-NEXT: ALU 16, @9, KC0[CB0:0-32], KC1[]5942; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T6, T8.X5943; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5, T7.X5944; CM-NEXT: CF_END5945; CM-NEXT: Fetch clause starting at 6:5946; CM-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #15947; CM-NEXT: ALU clause starting at 8:5948; CM-NEXT: MOV * T5.X, KC0[2].Z,5949; CM-NEXT: ALU clause starting at 9:5950; CM-NEXT: LSHR * T6.Z, T5.X, literal.x,5951; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5952; CM-NEXT: AND_INT T6.X, T5.X, literal.x,5953; CM-NEXT: MOV T6.Y, 0.0,5954; CM-NEXT: LSHR * T5.Z, T5.Y, literal.y,5955; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)5956; CM-NEXT: AND_INT T5.X, T5.Y, literal.x,5957; CM-NEXT: MOV T5.Y, 0.0,5958; CM-NEXT: MOV * T6.W, 0.0,5959; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)5960; CM-NEXT: MOV * T5.W, 0.0,5961; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,5962; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5963; CM-NEXT: LSHR * T7.X, PV.W, literal.x,5964; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)5965; CM-NEXT: LSHR * T8.X, KC0[2].Y, literal.x,5966; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)5967 %load = load <4 x i16>, ptr addrspace(1) %in5968 %ext = zext <4 x i16> %load to <4 x i64>5969 store <4 x i64> %ext, ptr addrspace(1) %out5970 ret void5971}5972 5973define amdgpu_kernel void @global_sextload_v4i16_to_v4i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5974; GCN-NOHSA-SI-LABEL: global_sextload_v4i16_to_v4i64:5975; GCN-NOHSA-SI: ; %bb.0:5976; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95977; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005978; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15979; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65980; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75981; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5982; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25983; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35984; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 05985; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05986; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15987; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5988; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 16, v05989; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 165990; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 31, v15991; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v6, 16, v15992; GCN-NOHSA-SI-NEXT: v_bfe_i32 v4, v1, 0, 165993; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v05994; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v2, 0, 165995; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v5, 31, v45996; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 31, v25997; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:165998; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 05999; GCN-NOHSA-SI-NEXT: s_endpgm6000;6001; GCN-HSA-LABEL: global_sextload_v4i16_to_v4i64:6002; GCN-HSA: ; %bb.0:6003; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06004; GCN-HSA-NEXT: s_add_i32 s12, s12, s176005; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136006; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86007; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6008; GCN-HSA-NEXT: v_mov_b32_e32 v0, s26009; GCN-HSA-NEXT: v_mov_b32_e32 v1, s36010; GCN-HSA-NEXT: flat_load_dwordx2 v[0:1], v[0:1]6011; GCN-HSA-NEXT: s_add_u32 s2, s0, 166012; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06013; GCN-HSA-NEXT: v_mov_b32_e32 v9, s36014; GCN-HSA-NEXT: v_mov_b32_e32 v8, s26015; GCN-HSA-NEXT: s_waitcnt vmcnt(0)6016; GCN-HSA-NEXT: v_bfe_i32 v4, v1, 0, 166017; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 16, v06018; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 31, v16019; GCN-HSA-NEXT: v_ashrrev_i32_e32 v6, 16, v16020; GCN-HSA-NEXT: v_ashrrev_i32_e32 v5, 31, v46021; GCN-HSA-NEXT: v_bfe_i32 v0, v0, 0, 166022; GCN-HSA-NEXT: v_bfe_i32 v2, v2, 0, 166023; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[4:7]6024; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v06025; GCN-HSA-NEXT: v_mov_b32_e32 v5, s16026; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 31, v26027; GCN-HSA-NEXT: v_mov_b32_e32 v4, s06028; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6029; GCN-HSA-NEXT: s_endpgm6030;6031; GCN-NOHSA-VI-LABEL: global_sextload_v4i16_to_v4i64:6032; GCN-NOHSA-VI: ; %bb.0:6033; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x246034; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0006035; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -16036; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s26037; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s36038; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6039; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s66040; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s76041; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[1:2], off, s[8:11], 06042; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s46043; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s56044; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)6045; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v6, 16, v26046; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 16, v16047; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v2, 0, 166048; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v6, 0, 166049; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v1, 0, 166050; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v3, 0, 166051; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v5, 31, v46052; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 31, v66053; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v06054; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 31, v26055; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:166056; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 06057; GCN-NOHSA-VI-NEXT: s_endpgm6058;6059; EG-LABEL: global_sextload_v4i16_to_v4i64:6060; EG: ; %bb.0:6061; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]6062; EG-NEXT: TEX 0 @66063; EG-NEXT: ALU 16, @9, KC0[CB0:0-32], KC1[]6064; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T8.X, 06065; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T6.X, 16066; EG-NEXT: CF_END6067; EG-NEXT: Fetch clause starting at 6:6068; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #16069; EG-NEXT: ALU clause starting at 8:6070; EG-NEXT: MOV * T5.X, KC0[2].Z,6071; EG-NEXT: ALU clause starting at 9:6072; EG-NEXT: ASHR * T5.W, T5.X, literal.x,6073; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6074; EG-NEXT: LSHR T6.X, KC0[2].Y, literal.x,6075; EG-NEXT: ASHR T5.Z, T5.X, literal.y,6076; EG-NEXT: ASHR * T7.W, T5.Y, literal.z,6077; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6078; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6079; EG-NEXT: BFE_INT T5.X, T5.X, 0.0, literal.x,6080; EG-NEXT: ASHR * T7.Z, T5.Y, literal.x,6081; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6082; EG-NEXT: BFE_INT T7.X, T5.Y, 0.0, literal.x,6083; EG-NEXT: ASHR T5.Y, PV.X, literal.y,6084; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,6085; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6086; EG-NEXT: LSHR T8.X, PV.W, literal.x,6087; EG-NEXT: ASHR * T7.Y, PV.X, literal.y,6088; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)6089;6090; CM-LABEL: global_sextload_v4i16_to_v4i64:6091; CM: ; %bb.0:6092; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]6093; CM-NEXT: TEX 0 @66094; CM-NEXT: ALU 16, @9, KC0[CB0:0-32], KC1[]6095; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5, T8.X6096; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T6, T7.X6097; CM-NEXT: CF_END6098; CM-NEXT: Fetch clause starting at 6:6099; CM-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #16100; CM-NEXT: ALU clause starting at 8:6101; CM-NEXT: MOV * T5.X, KC0[2].Z,6102; CM-NEXT: ALU clause starting at 9:6103; CM-NEXT: ADD_INT T0.Z, KC0[2].Y, literal.x,6104; CM-NEXT: ASHR * T6.W, T5.Y, literal.y,6105; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)6106; CM-NEXT: LSHR T7.X, PV.Z, literal.x,6107; CM-NEXT: ASHR T6.Z, T5.Y, literal.y,6108; CM-NEXT: ASHR * T5.W, T5.X, literal.z,6109; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)6110; CM-NEXT: 31(4.344025e-44), 0(0.000000e+00)6111; CM-NEXT: BFE_INT T6.X, T5.Y, 0.0, literal.x,6112; CM-NEXT: ASHR * T5.Z, T5.X, literal.x,6113; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)6114; CM-NEXT: BFE_INT T5.X, T5.X, 0.0, literal.x,6115; CM-NEXT: ASHR * T6.Y, PV.X, literal.y,6116; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)6117; CM-NEXT: LSHR T8.X, KC0[2].Y, literal.x,6118; CM-NEXT: ASHR * T5.Y, PV.X, literal.y,6119; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)6120 %load = load <4 x i16>, ptr addrspace(1) %in6121 %ext = sext <4 x i16> %load to <4 x i64>6122 store <4 x i64> %ext, ptr addrspace(1) %out6123 ret void6124}6125 6126define amdgpu_kernel void @global_zextload_v8i16_to_v8i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {6127; GCN-NOHSA-SI-LABEL: global_zextload_v8i16_to_v8i64:6128; GCN-NOHSA-SI: ; %bb.0:6129; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x96130; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006131; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16132; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s26133; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s36134; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6135; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s66136; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s76137; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 06138; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, 06139; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, v46140; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, v46141; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, v46142; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, v46143; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, v46144; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, v46145; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v18, v46146; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s46147; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s56148; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)6149; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v9, 16, v16150; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v5, 16, v36151; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v13, 16, v26152; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v17, 16, v06153; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v15, 0xffff, v06154; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v11, 0xffff, v26155; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v7, 0xffff, v16156; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v3, 0xffff, v36157; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[3:6], off, s[0:3], 0 offset:486158; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[7:10], off, s[0:3], 0 offset:166159; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[11:14], off, s[0:3], 0 offset:326160; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[15:18], off, s[0:3], 06161; GCN-NOHSA-SI-NEXT: s_endpgm6162;6163; GCN-HSA-LABEL: global_zextload_v8i16_to_v8i64:6164; GCN-HSA: ; %bb.0:6165; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06166; GCN-HSA-NEXT: s_add_i32 s12, s12, s176167; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136168; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86169; GCN-HSA-NEXT: v_mov_b32_e32 v4, 06170; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6171; GCN-HSA-NEXT: v_mov_b32_e32 v0, s26172; GCN-HSA-NEXT: v_mov_b32_e32 v1, s36173; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]6174; GCN-HSA-NEXT: s_add_u32 s2, s0, 486175; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06176; GCN-HSA-NEXT: v_mov_b32_e32 v22, s36177; GCN-HSA-NEXT: v_mov_b32_e32 v21, s26178; GCN-HSA-NEXT: s_add_u32 s2, s0, 166179; GCN-HSA-NEXT: v_mov_b32_e32 v20, s16180; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06181; GCN-HSA-NEXT: v_mov_b32_e32 v19, s06182; GCN-HSA-NEXT: s_add_u32 s0, s0, 326183; GCN-HSA-NEXT: s_addc_u32 s1, s1, 06184; GCN-HSA-NEXT: v_mov_b32_e32 v6, v46185; GCN-HSA-NEXT: v_mov_b32_e32 v24, s36186; GCN-HSA-NEXT: v_mov_b32_e32 v26, s16187; GCN-HSA-NEXT: v_mov_b32_e32 v8, v46188; GCN-HSA-NEXT: v_mov_b32_e32 v10, v46189; GCN-HSA-NEXT: v_mov_b32_e32 v12, v46190; GCN-HSA-NEXT: v_mov_b32_e32 v14, v46191; GCN-HSA-NEXT: v_mov_b32_e32 v16, v46192; GCN-HSA-NEXT: v_mov_b32_e32 v18, v46193; GCN-HSA-NEXT: v_mov_b32_e32 v23, s26194; GCN-HSA-NEXT: v_mov_b32_e32 v25, s06195; GCN-HSA-NEXT: s_waitcnt vmcnt(0)6196; GCN-HSA-NEXT: v_lshrrev_b32_e32 v5, 16, v36197; GCN-HSA-NEXT: v_and_b32_e32 v3, 0xffff, v36198; GCN-HSA-NEXT: v_lshrrev_b32_e32 v9, 16, v16199; GCN-HSA-NEXT: v_lshrrev_b32_e32 v13, 16, v26200; GCN-HSA-NEXT: v_lshrrev_b32_e32 v17, 16, v06201; GCN-HSA-NEXT: v_and_b32_e32 v15, 0xffff, v06202; GCN-HSA-NEXT: v_and_b32_e32 v11, 0xffff, v26203; GCN-HSA-NEXT: v_and_b32_e32 v7, 0xffff, v16204; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[3:6]6205; GCN-HSA-NEXT: flat_store_dwordx4 v[23:24], v[7:10]6206; GCN-HSA-NEXT: flat_store_dwordx4 v[25:26], v[11:14]6207; GCN-HSA-NEXT: flat_store_dwordx4 v[19:20], v[15:18]6208; GCN-HSA-NEXT: s_endpgm6209;6210; GCN-NOHSA-VI-LABEL: global_zextload_v8i16_to_v8i64:6211; GCN-NOHSA-VI: ; %bb.0:6212; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x246213; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0006214; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -16215; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s26216; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s36217; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6218; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s66219; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s76220; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 06221; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, 06222; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, v46223; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s46224; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s56225; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v8, v46226; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v10, v46227; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v12, v46228; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v14, v46229; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v16, v46230; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v18, v46231; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)6232; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v5, 16, v36233; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v3, 0xffff, v36234; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v17, 16, v06235; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v15, 0xffff, v06236; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v13, 16, v16237; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v11, 0xffff, v16238; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v9, 16, v26239; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v7, 0xffff, v26240; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[3:6], off, s[0:3], 0 offset:486241; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[7:10], off, s[0:3], 0 offset:326242; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[11:14], off, s[0:3], 0 offset:166243; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[15:18], off, s[0:3], 06244; GCN-NOHSA-VI-NEXT: s_endpgm6245;6246; EG-LABEL: global_zextload_v8i16_to_v8i64:6247; EG: ; %bb.0:6248; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]6249; EG-NEXT: TEX 0 @86250; EG-NEXT: ALU 30, @11, KC0[CB0:0-32], KC1[]6251; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T14.X, 06252; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T13.X, 06253; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T12.X, 06254; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T11.X, 16255; EG-NEXT: CF_END6256; EG-NEXT: Fetch clause starting at 8:6257; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #16258; EG-NEXT: ALU clause starting at 10:6259; EG-NEXT: MOV * T7.X, KC0[2].Z,6260; EG-NEXT: ALU clause starting at 11:6261; EG-NEXT: LSHR * T8.Z, T7.W, literal.x,6262; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6263; EG-NEXT: AND_INT T8.X, T7.W, literal.x,6264; EG-NEXT: MOV T8.Y, 0.0,6265; EG-NEXT: LSHR T9.Z, T7.Z, literal.y,6266; EG-NEXT: AND_INT * T9.X, T7.Z, literal.x,6267; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6268; EG-NEXT: MOV T9.Y, 0.0,6269; EG-NEXT: LSHR * T10.Z, T7.Y, literal.x,6270; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6271; EG-NEXT: AND_INT T10.X, T7.Y, literal.x,6272; EG-NEXT: MOV T10.Y, 0.0,6273; EG-NEXT: LSHR T7.Z, T7.X, literal.y,6274; EG-NEXT: AND_INT * T7.X, T7.X, literal.x,6275; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6276; EG-NEXT: MOV T7.Y, 0.0,6277; EG-NEXT: MOV T8.W, 0.0,6278; EG-NEXT: MOV * T9.W, 0.0,6279; EG-NEXT: MOV T10.W, 0.0,6280; EG-NEXT: MOV * T7.W, 0.0,6281; EG-NEXT: LSHR T11.X, KC0[2].Y, literal.x,6282; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6283; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6284; EG-NEXT: LSHR T12.X, PV.W, literal.x,6285; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6286; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)6287; EG-NEXT: LSHR T13.X, PV.W, literal.x,6288; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6289; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)6290; EG-NEXT: LSHR * T14.X, PV.W, literal.x,6291; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)6292;6293; CM-LABEL: global_zextload_v8i16_to_v8i64:6294; CM: ; %bb.0:6295; CM-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]6296; CM-NEXT: TEX 0 @86297; CM-NEXT: ALU 32, @11, KC0[CB0:0-32], KC1[]6298; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T8, T14.X6299; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T9, T13.X6300; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T10, T12.X6301; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T7, T11.X6302; CM-NEXT: CF_END6303; CM-NEXT: Fetch clause starting at 8:6304; CM-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #16305; CM-NEXT: ALU clause starting at 10:6306; CM-NEXT: MOV * T7.X, KC0[2].Z,6307; CM-NEXT: ALU clause starting at 11:6308; CM-NEXT: LSHR * T8.Z, T7.X, literal.x,6309; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)6310; CM-NEXT: AND_INT T8.X, T7.X, literal.x,6311; CM-NEXT: MOV T8.Y, 0.0,6312; CM-NEXT: LSHR * T9.Z, T7.Y, literal.y,6313; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6314; CM-NEXT: AND_INT T9.X, T7.Y, literal.x,6315; CM-NEXT: MOV T9.Y, 0.0,6316; CM-NEXT: LSHR * T10.Z, T7.Z, literal.y,6317; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6318; CM-NEXT: AND_INT T10.X, T7.Z, literal.x,6319; CM-NEXT: MOV T10.Y, 0.0,6320; CM-NEXT: LSHR * T7.Z, T7.W, literal.y,6321; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6322; CM-NEXT: AND_INT T7.X, T7.W, literal.x,6323; CM-NEXT: MOV T7.Y, 0.0,6324; CM-NEXT: MOV * T8.W, 0.0,6325; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)6326; CM-NEXT: MOV * T9.W, 0.0,6327; CM-NEXT: MOV * T10.W, 0.0,6328; CM-NEXT: MOV * T7.W, 0.0,6329; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,6330; CM-NEXT: 48(6.726233e-44), 0(0.000000e+00)6331; CM-NEXT: LSHR T11.X, PV.W, literal.x,6332; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6333; CM-NEXT: 2(2.802597e-45), 32(4.484155e-44)6334; CM-NEXT: LSHR T12.X, PV.W, literal.x,6335; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6336; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)6337; CM-NEXT: LSHR * T13.X, PV.W, literal.x,6338; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)6339; CM-NEXT: LSHR * T14.X, KC0[2].Y, literal.x,6340; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)6341 %load = load <8 x i16>, ptr addrspace(1) %in6342 %ext = zext <8 x i16> %load to <8 x i64>6343 store <8 x i64> %ext, ptr addrspace(1) %out6344 ret void6345}6346 6347define amdgpu_kernel void @global_sextload_v8i16_to_v8i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {6348; GCN-NOHSA-SI-LABEL: global_sextload_v8i16_to_v8i64:6349; GCN-NOHSA-SI: ; %bb.0:6350; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x96351; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006352; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16353; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s26354; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s36355; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6356; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s66357; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s76358; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 06359; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s46360; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s56361; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)6362; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v6, 16, v26363; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v7, 16, v06364; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 166365; GCN-NOHSA-SI-NEXT: v_bfe_i32 v4, v2, 0, 166366; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v11, 31, v16367; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v10, 16, v16368; GCN-NOHSA-SI-NEXT: v_bfe_i32 v8, v1, 0, 166369; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v15, 31, v36370; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v14, 16, v36371; GCN-NOHSA-SI-NEXT: v_bfe_i32 v12, v3, 0, 166372; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v06373; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v5, 31, v46374; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v7, 0, 166375; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v9, 31, v86376; GCN-NOHSA-SI-NEXT: v_bfe_i32 v6, v6, 0, 166377; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v13, 31, v126378; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 31, v26379; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 31, v66380; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:486381; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:166382; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:326383; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 06384; GCN-NOHSA-SI-NEXT: s_endpgm6385;6386; GCN-HSA-LABEL: global_sextload_v8i16_to_v8i64:6387; GCN-HSA: ; %bb.0:6388; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06389; GCN-HSA-NEXT: s_add_i32 s12, s12, s176390; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136391; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86392; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6393; GCN-HSA-NEXT: v_mov_b32_e32 v0, s26394; GCN-HSA-NEXT: v_mov_b32_e32 v1, s36395; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]6396; GCN-HSA-NEXT: s_add_u32 s2, s0, 486397; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06398; GCN-HSA-NEXT: v_mov_b32_e32 v19, s36399; GCN-HSA-NEXT: v_mov_b32_e32 v18, s26400; GCN-HSA-NEXT: s_add_u32 s2, s0, 326401; GCN-HSA-NEXT: v_mov_b32_e32 v17, s16402; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06403; GCN-HSA-NEXT: v_mov_b32_e32 v16, s06404; GCN-HSA-NEXT: s_add_u32 s0, s0, 166405; GCN-HSA-NEXT: s_addc_u32 s1, s1, 06406; GCN-HSA-NEXT: v_mov_b32_e32 v21, s36407; GCN-HSA-NEXT: v_mov_b32_e32 v23, s16408; GCN-HSA-NEXT: v_mov_b32_e32 v20, s26409; GCN-HSA-NEXT: v_mov_b32_e32 v22, s06410; GCN-HSA-NEXT: s_waitcnt vmcnt(0)6411; GCN-HSA-NEXT: v_lshrrev_b32_e32 v9, 16, v26412; GCN-HSA-NEXT: v_lshrrev_b32_e32 v5, 16, v06413; GCN-HSA-NEXT: v_bfe_i32 v8, v3, 0, 166414; GCN-HSA-NEXT: v_bfe_i32 v0, v0, 0, 166415; GCN-HSA-NEXT: v_bfe_i32 v4, v1, 0, 166416; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 31, v36417; GCN-HSA-NEXT: v_ashrrev_i32_e32 v10, 16, v36418; GCN-HSA-NEXT: v_bfe_i32 v12, v2, 0, 166419; GCN-HSA-NEXT: v_bfe_i32 v2, v5, 0, 166420; GCN-HSA-NEXT: v_bfe_i32 v14, v9, 0, 166421; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 31, v86422; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 31, v16423; GCN-HSA-NEXT: v_ashrrev_i32_e32 v6, 16, v16424; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v06425; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 31, v126426; GCN-HSA-NEXT: v_ashrrev_i32_e32 v5, 31, v46427; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 31, v26428; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 31, v146429; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[8:11]6430; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[4:7]6431; GCN-HSA-NEXT: flat_store_dwordx4 v[20:21], v[12:15]6432; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[0:3]6433; GCN-HSA-NEXT: s_endpgm6434;6435; GCN-NOHSA-VI-LABEL: global_sextload_v8i16_to_v8i64:6436; GCN-NOHSA-VI: ; %bb.0:6437; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x246438; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0006439; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -16440; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s26441; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s36442; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6443; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s66444; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s76445; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 06446; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s46447; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s56448; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)6449; GCN-NOHSA-VI-NEXT: v_bfe_i32 v12, v3, 0, 166450; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 16, v36451; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v6, 16, v06452; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v7, 16, v16453; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v10, 16, v26454; GCN-NOHSA-VI-NEXT: v_bfe_i32 v14, v3, 0, 166455; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v0, 0, 166456; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v1, 0, 166457; GCN-NOHSA-VI-NEXT: v_bfe_i32 v8, v2, 0, 166458; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v6, 0, 166459; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v7, 0, 166460; GCN-NOHSA-VI-NEXT: v_bfe_i32 v10, v10, 0, 166461; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v13, 31, v126462; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v15, 31, v146463; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v5, 31, v46464; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v06465; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v9, 31, v86466; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 31, v66467; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 31, v26468; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v11, 31, v106469; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:486470; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:326471; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:166472; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 06473; GCN-NOHSA-VI-NEXT: s_endpgm6474;6475; EG-LABEL: global_sextload_v8i16_to_v8i64:6476; EG: ; %bb.0:6477; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]6478; EG-NEXT: TEX 0 @86479; EG-NEXT: ALU 33, @11, KC0[CB0:0-32], KC1[]6480; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T7.X, 06481; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T11.X, 06482; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T9.X, 06483; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T8.X, 16484; EG-NEXT: CF_END6485; EG-NEXT: Fetch clause starting at 8:6486; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #16487; EG-NEXT: ALU clause starting at 10:6488; EG-NEXT: MOV * T7.X, KC0[2].Z,6489; EG-NEXT: ALU clause starting at 11:6490; EG-NEXT: LSHR T8.X, KC0[2].Y, literal.x,6491; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6492; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6493; EG-NEXT: LSHR T9.X, PV.W, literal.x,6494; EG-NEXT: ADD_INT T0.W, KC0[2].Y, literal.y,6495; EG-NEXT: ASHR * T10.W, T7.X, literal.z,6496; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)6497; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6498; EG-NEXT: LSHR T11.X, PV.W, literal.x,6499; EG-NEXT: ASHR T10.Z, T7.X, literal.y,6500; EG-NEXT: ASHR * T12.W, T7.Y, literal.z,6501; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6502; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6503; EG-NEXT: BFE_INT T10.X, T7.X, 0.0, literal.x,6504; EG-NEXT: ASHR T12.Z, T7.Y, literal.x,6505; EG-NEXT: ASHR * T13.W, T7.Z, literal.y,6506; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6507; EG-NEXT: BFE_INT T12.X, T7.Y, 0.0, literal.x,6508; EG-NEXT: ASHR T10.Y, PV.X, literal.y,6509; EG-NEXT: ASHR T13.Z, T7.Z, literal.x,6510; EG-NEXT: ASHR * T14.W, T7.W, literal.y,6511; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6512; EG-NEXT: BFE_INT T13.X, T7.Z, 0.0, literal.x,6513; EG-NEXT: ASHR T12.Y, PV.X, literal.y,6514; EG-NEXT: ASHR * T14.Z, T7.W, literal.x,6515; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6516; EG-NEXT: BFE_INT T14.X, T7.W, 0.0, literal.x,6517; EG-NEXT: ASHR T13.Y, PV.X, literal.y,6518; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,6519; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6520; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)6521; EG-NEXT: LSHR T7.X, PV.W, literal.x,6522; EG-NEXT: ASHR * T14.Y, PV.X, literal.y,6523; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)6524;6525; CM-LABEL: global_sextload_v8i16_to_v8i64:6526; CM: ; %bb.0:6527; CM-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]6528; CM-NEXT: TEX 0 @86529; CM-NEXT: ALU 33, @11, KC0[CB0:0-32], KC1[]6530; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T7, T14.X6531; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T13, T11.X6532; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T9.X6533; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T10, T8.X6534; CM-NEXT: CF_END6535; CM-NEXT: Fetch clause starting at 8:6536; CM-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #16537; CM-NEXT: ALU clause starting at 10:6538; CM-NEXT: MOV * T7.X, KC0[2].Z,6539; CM-NEXT: ALU clause starting at 11:6540; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,6541; CM-NEXT: 48(6.726233e-44), 0(0.000000e+00)6542; CM-NEXT: LSHR T8.X, PV.W, literal.x,6543; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6544; CM-NEXT: 2(2.802597e-45), 32(4.484155e-44)6545; CM-NEXT: LSHR T9.X, PV.W, literal.x,6546; CM-NEXT: ADD_INT T0.Z, KC0[2].Y, literal.y,6547; CM-NEXT: ASHR * T10.W, T7.W, literal.z,6548; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)6549; CM-NEXT: 31(4.344025e-44), 0(0.000000e+00)6550; CM-NEXT: LSHR T11.X, PV.Z, literal.x,6551; CM-NEXT: ASHR T10.Z, T7.W, literal.y,6552; CM-NEXT: ASHR * T12.W, T7.Z, literal.z,6553; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)6554; CM-NEXT: 31(4.344025e-44), 0(0.000000e+00)6555; CM-NEXT: BFE_INT T10.X, T7.W, 0.0, literal.x,6556; CM-NEXT: ASHR T12.Z, T7.Z, literal.x,6557; CM-NEXT: ASHR * T13.W, T7.Y, literal.y,6558; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)6559; CM-NEXT: BFE_INT T12.X, T7.Z, 0.0, literal.x,6560; CM-NEXT: ASHR T10.Y, PV.X, literal.y,6561; CM-NEXT: ASHR T13.Z, T7.Y, literal.x,6562; CM-NEXT: ASHR * T7.W, T7.X, literal.y,6563; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)6564; CM-NEXT: BFE_INT T13.X, T7.Y, 0.0, literal.x,6565; CM-NEXT: ASHR T12.Y, PV.X, literal.y,6566; CM-NEXT: ASHR * T7.Z, T7.X, literal.x,6567; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)6568; CM-NEXT: BFE_INT T7.X, T7.X, 0.0, literal.x,6569; CM-NEXT: ASHR * T13.Y, PV.X, literal.y,6570; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)6571; CM-NEXT: LSHR T14.X, KC0[2].Y, literal.x,6572; CM-NEXT: ASHR * T7.Y, PV.X, literal.y,6573; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)6574 %load = load <8 x i16>, ptr addrspace(1) %in6575 %ext = sext <8 x i16> %load to <8 x i64>6576 store <8 x i64> %ext, ptr addrspace(1) %out6577 ret void6578}6579 6580define amdgpu_kernel void @global_zextload_v16i16_to_v16i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {6581; GCN-NOHSA-SI-LABEL: global_zextload_v16i16_to_v16i64:6582; GCN-NOHSA-SI: ; %bb.0:6583; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x96584; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006585; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16586; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s26587; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s36588; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6589; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s66590; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s76591; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 06592; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:166593; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, 06594; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)6595; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v13, 16, v16596; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v17, 16, v36597; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)6598; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v9, 16, v56599; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v21, 16, v26600; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v25, 16, v06601; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v23, 0xffff, v06602; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v19, 0xffff, v26603; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v11, 0xffff, v16604; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v15, 0xffff, v36605; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 16, v66606; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v66607; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v29, 16, v46608; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v27, 0xffff, v46609; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v33, 16, v76610; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v31, 0xffff, v76611; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v7, 0xffff, v56612; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, v86613; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v32, v86614; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v34, v86615; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, v86616; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v18, v86617; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, v86618; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, v86619; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v28, v86620; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v30, v86621; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, v86622; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v86623; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v20, v86624; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v22, v86625; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v24, v86626; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v26, v86627; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s46628; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s56629; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[7:10], off, s[0:3], 0 offset:806630; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[31:34], off, s[0:3], 0 offset:1126631; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[15:18], off, s[0:3], 0 offset:486632; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[11:14], off, s[0:3], 0 offset:166633; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[27:30], off, s[0:3], 0 offset:646634; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:966635; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[19:22], off, s[0:3], 0 offset:326636; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 06637; GCN-NOHSA-SI-NEXT: s_endpgm6638;6639; GCN-HSA-LABEL: global_zextload_v16i16_to_v16i64:6640; GCN-HSA: ; %bb.0:6641; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06642; GCN-HSA-NEXT: s_add_i32 s12, s12, s176643; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86644; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136645; GCN-HSA-NEXT: v_mov_b32_e32 v8, 06646; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6647; GCN-HSA-NEXT: v_mov_b32_e32 v0, s26648; GCN-HSA-NEXT: v_mov_b32_e32 v1, s36649; GCN-HSA-NEXT: s_add_u32 s2, s2, 166650; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]6651; GCN-HSA-NEXT: s_addc_u32 s3, s3, 06652; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36653; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26654; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[4:5]6655; GCN-HSA-NEXT: s_add_u32 s2, s0, 486656; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06657; GCN-HSA-NEXT: s_add_u32 s4, s0, 166658; GCN-HSA-NEXT: s_addc_u32 s5, s1, 06659; GCN-HSA-NEXT: v_mov_b32_e32 v22, s56660; GCN-HSA-NEXT: v_mov_b32_e32 v21, s46661; GCN-HSA-NEXT: s_add_u32 s4, s0, 0x506662; GCN-HSA-NEXT: v_mov_b32_e32 v12, v86663; GCN-HSA-NEXT: v_mov_b32_e32 v14, v86664; GCN-HSA-NEXT: s_addc_u32 s5, s1, 06665; GCN-HSA-NEXT: v_mov_b32_e32 v15, v86666; GCN-HSA-NEXT: v_mov_b32_e32 v17, v86667; GCN-HSA-NEXT: v_mov_b32_e32 v18, v86668; GCN-HSA-NEXT: v_mov_b32_e32 v20, v86669; GCN-HSA-NEXT: v_mov_b32_e32 v10, v86670; GCN-HSA-NEXT: v_mov_b32_e32 v23, v86671; GCN-HSA-NEXT: s_waitcnt vmcnt(1)6672; GCN-HSA-NEXT: v_lshrrev_b32_e32 v13, 16, v16673; GCN-HSA-NEXT: v_and_b32_e32 v11, 0xffff, v16674; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[11:14]6675; GCN-HSA-NEXT: v_mov_b32_e32 v22, s56676; GCN-HSA-NEXT: v_mov_b32_e32 v21, s46677; GCN-HSA-NEXT: s_add_u32 s4, s0, 0x706678; GCN-HSA-NEXT: s_waitcnt vmcnt(1)6679; GCN-HSA-NEXT: v_lshrrev_b32_e32 v16, 16, v56680; GCN-HSA-NEXT: v_and_b32_e32 v14, 0xffff, v56681; GCN-HSA-NEXT: s_addc_u32 s5, s1, 06682; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[14:17]6683; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v76684; GCN-HSA-NEXT: v_mov_b32_e32 v15, s56685; GCN-HSA-NEXT: v_mov_b32_e32 v14, s46686; GCN-HSA-NEXT: v_and_b32_e32 v17, 0xffff, v76687; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[17:20]6688; GCN-HSA-NEXT: v_lshrrev_b32_e32 v9, 16, v36689; GCN-HSA-NEXT: v_mov_b32_e32 v19, s36690; GCN-HSA-NEXT: v_mov_b32_e32 v18, s26691; GCN-HSA-NEXT: s_add_u32 s2, s0, 326692; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06693; GCN-HSA-NEXT: v_mov_b32_e32 v25, s36694; GCN-HSA-NEXT: v_and_b32_e32 v7, 0xffff, v36695; GCN-HSA-NEXT: v_mov_b32_e32 v24, s26696; GCN-HSA-NEXT: s_add_u32 s2, s0, 646697; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[7:10]6698; GCN-HSA-NEXT: v_mov_b32_e32 v19, s16699; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06700; GCN-HSA-NEXT: v_mov_b32_e32 v18, s06701; GCN-HSA-NEXT: s_add_u32 s0, s0, 0x606702; GCN-HSA-NEXT: s_addc_u32 s1, s1, 06703; GCN-HSA-NEXT: v_mov_b32_e32 v11, v86704; GCN-HSA-NEXT: v_mov_b32_e32 v13, v86705; GCN-HSA-NEXT: v_lshrrev_b32_e32 v16, 16, v46706; GCN-HSA-NEXT: v_and_b32_e32 v14, 0xffff, v46707; GCN-HSA-NEXT: v_mov_b32_e32 v4, s36708; GCN-HSA-NEXT: v_mov_b32_e32 v27, s16709; GCN-HSA-NEXT: v_lshrrev_b32_e32 v12, 16, v26710; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xffff, v26711; GCN-HSA-NEXT: v_mov_b32_e32 v21, v86712; GCN-HSA-NEXT: v_mov_b32_e32 v15, v86713; GCN-HSA-NEXT: v_mov_b32_e32 v17, v86714; GCN-HSA-NEXT: v_mov_b32_e32 v7, v86715; GCN-HSA-NEXT: v_mov_b32_e32 v9, v86716; GCN-HSA-NEXT: v_lshrrev_b32_e32 v8, 16, v66717; GCN-HSA-NEXT: v_and_b32_e32 v6, 0xffff, v66718; GCN-HSA-NEXT: v_mov_b32_e32 v3, s26719; GCN-HSA-NEXT: v_mov_b32_e32 v26, s06720; GCN-HSA-NEXT: v_lshrrev_b32_e32 v22, 16, v06721; GCN-HSA-NEXT: v_and_b32_e32 v20, 0xffff, v06722; GCN-HSA-NEXT: flat_store_dwordx4 v[24:25], v[10:13]6723; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[20:23]6724; GCN-HSA-NEXT: flat_store_dwordx4 v[3:4], v[14:17]6725; GCN-HSA-NEXT: flat_store_dwordx4 v[26:27], v[6:9]6726; GCN-HSA-NEXT: s_endpgm6727;6728; GCN-NOHSA-VI-LABEL: global_zextload_v16i16_to_v16i64:6729; GCN-NOHSA-VI: ; %bb.0:6730; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x246731; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0006732; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -16733; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s26734; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s36735; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6736; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s66737; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s76738; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 06739; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:166740; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v29, 06741; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v31, v296742; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s46743; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s56744; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v25, v296745; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v27, v296746; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v21, v296747; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v23, v296748; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v17, v296749; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v19, v296750; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v13, v296751; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v15, v296752; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v9, v296753; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v11, v296754; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)6755; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v10, 16, v06756; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)6757; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v30, 16, v56758; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v28, 0xffff, v56759; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v8, 0xffff, v06760; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v14, 16, v16761; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v12, 0xffff, v16762; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v18, 16, v26763; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v16, 0xffff, v26764; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v36765; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v36766; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v22, 16, v66767; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v20, 0xffff, v66768; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v26, 16, v76769; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v24, 0xffff, v76770; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v6, 16, v46771; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xffff, v46772; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, v296773; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, v296774; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, v296775; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v296776; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:806777; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:646778; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:1126779; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:966780; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:486781; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:326782; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:166783; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 06784; GCN-NOHSA-VI-NEXT: s_endpgm6785;6786; EG-LABEL: global_zextload_v16i16_to_v16i64:6787; EG: ; %bb.0:6788; EG-NEXT: ALU 0, @16, KC0[CB0:0-32], KC1[]6789; EG-NEXT: TEX 1 @126790; EG-NEXT: ALU 62, @17, KC0[CB0:0-32], KC1[]6791; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T26.X, 06792; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T25.X, 06793; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T24.X, 06794; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T23.X, 06795; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T16.XYZW, T22.X, 06796; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T21.X, 06797; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T18.XYZW, T20.X, 06798; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T19.X, 16799; EG-NEXT: CF_END6800; EG-NEXT: Fetch clause starting at 12:6801; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #16802; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #16803; EG-NEXT: ALU clause starting at 16:6804; EG-NEXT: MOV * T11.X, KC0[2].Z,6805; EG-NEXT: ALU clause starting at 17:6806; EG-NEXT: LSHR * T13.Z, T12.W, literal.x,6807; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6808; EG-NEXT: AND_INT T13.X, T12.W, literal.x,6809; EG-NEXT: MOV T13.Y, 0.0,6810; EG-NEXT: LSHR T14.Z, T12.Z, literal.y,6811; EG-NEXT: AND_INT * T14.X, T12.Z, literal.x,6812; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6813; EG-NEXT: MOV T14.Y, 0.0,6814; EG-NEXT: LSHR * T15.Z, T12.Y, literal.x,6815; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6816; EG-NEXT: AND_INT T15.X, T12.Y, literal.x,6817; EG-NEXT: MOV T15.Y, 0.0,6818; EG-NEXT: LSHR T12.Z, T12.X, literal.y,6819; EG-NEXT: AND_INT * T12.X, T12.X, literal.x,6820; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6821; EG-NEXT: MOV T12.Y, 0.0,6822; EG-NEXT: LSHR * T16.Z, T11.W, literal.x,6823; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6824; EG-NEXT: AND_INT T16.X, T11.W, literal.x,6825; EG-NEXT: MOV T16.Y, 0.0,6826; EG-NEXT: LSHR T17.Z, T11.Z, literal.y,6827; EG-NEXT: AND_INT * T17.X, T11.Z, literal.x,6828; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6829; EG-NEXT: MOV T17.Y, 0.0,6830; EG-NEXT: LSHR * T18.Z, T11.Y, literal.x,6831; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6832; EG-NEXT: AND_INT T18.X, T11.Y, literal.x,6833; EG-NEXT: MOV T18.Y, 0.0,6834; EG-NEXT: LSHR T11.Z, T11.X, literal.y,6835; EG-NEXT: AND_INT * T11.X, T11.X, literal.x,6836; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6837; EG-NEXT: MOV T11.Y, 0.0,6838; EG-NEXT: MOV T13.W, 0.0,6839; EG-NEXT: MOV * T14.W, 0.0,6840; EG-NEXT: MOV T15.W, 0.0,6841; EG-NEXT: MOV * T12.W, 0.0,6842; EG-NEXT: MOV T16.W, 0.0,6843; EG-NEXT: MOV * T17.W, 0.0,6844; EG-NEXT: MOV T18.W, 0.0,6845; EG-NEXT: MOV * T11.W, 0.0,6846; EG-NEXT: LSHR T19.X, KC0[2].Y, literal.x,6847; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6848; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6849; EG-NEXT: LSHR T20.X, PV.W, literal.x,6850; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6851; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)6852; EG-NEXT: LSHR T21.X, PV.W, literal.x,6853; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6854; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)6855; EG-NEXT: LSHR T22.X, PV.W, literal.x,6856; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6857; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)6858; EG-NEXT: LSHR T23.X, PV.W, literal.x,6859; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6860; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)6861; EG-NEXT: LSHR T24.X, PV.W, literal.x,6862; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6863; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)6864; EG-NEXT: LSHR T25.X, PV.W, literal.x,6865; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6866; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)6867; EG-NEXT: LSHR * T26.X, PV.W, literal.x,6868; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)6869;6870; CM-LABEL: global_zextload_v16i16_to_v16i64:6871; CM: ; %bb.0:6872; CM-NEXT: ALU 0, @16, KC0[CB0:0-32], KC1[]6873; CM-NEXT: TEX 1 @126874; CM-NEXT: ALU 64, @17, KC0[CB0:0-32], KC1[]6875; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T13, T26.X6876; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T14, T25.X6877; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T15, T24.X6878; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T23.X6879; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T16, T22.X6880; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T17, T21.X6881; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T18, T20.X6882; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T19.X6883; CM-NEXT: CF_END6884; CM-NEXT: Fetch clause starting at 12:6885; CM-NEXT: VTX_READ_128 T12.XYZW, T11.X, 0, #16886; CM-NEXT: VTX_READ_128 T11.XYZW, T11.X, 16, #16887; CM-NEXT: ALU clause starting at 16:6888; CM-NEXT: MOV * T11.X, KC0[2].Z,6889; CM-NEXT: ALU clause starting at 17:6890; CM-NEXT: LSHR * T13.Z, T12.X, literal.x,6891; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)6892; CM-NEXT: AND_INT T13.X, T12.X, literal.x,6893; CM-NEXT: MOV T13.Y, 0.0,6894; CM-NEXT: LSHR * T14.Z, T12.Y, literal.y,6895; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6896; CM-NEXT: AND_INT T14.X, T12.Y, literal.x,6897; CM-NEXT: MOV T14.Y, 0.0,6898; CM-NEXT: LSHR * T15.Z, T12.Z, literal.y,6899; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6900; CM-NEXT: AND_INT T15.X, T12.Z, literal.x,6901; CM-NEXT: MOV T15.Y, 0.0,6902; CM-NEXT: LSHR * T12.Z, T12.W, literal.y,6903; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6904; CM-NEXT: AND_INT T12.X, T12.W, literal.x,6905; CM-NEXT: MOV T12.Y, 0.0,6906; CM-NEXT: LSHR * T16.Z, T11.X, literal.y,6907; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6908; CM-NEXT: AND_INT T16.X, T11.X, literal.x,6909; CM-NEXT: MOV T16.Y, 0.0,6910; CM-NEXT: LSHR * T17.Z, T11.Y, literal.y,6911; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6912; CM-NEXT: AND_INT T17.X, T11.Y, literal.x,6913; CM-NEXT: MOV T17.Y, 0.0,6914; CM-NEXT: LSHR * T18.Z, T11.Z, literal.y,6915; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6916; CM-NEXT: AND_INT T18.X, T11.Z, literal.x,6917; CM-NEXT: MOV T18.Y, 0.0,6918; CM-NEXT: LSHR * T11.Z, T11.W, literal.y,6919; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6920; CM-NEXT: AND_INT T11.X, T11.W, literal.x,6921; CM-NEXT: MOV T11.Y, 0.0,6922; CM-NEXT: MOV * T13.W, 0.0,6923; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)6924; CM-NEXT: MOV * T14.W, 0.0,6925; CM-NEXT: MOV * T15.W, 0.0,6926; CM-NEXT: MOV * T12.W, 0.0,6927; CM-NEXT: MOV * T16.W, 0.0,6928; CM-NEXT: MOV * T17.W, 0.0,6929; CM-NEXT: MOV * T18.W, 0.0,6930; CM-NEXT: MOV * T11.W, 0.0,6931; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,6932; CM-NEXT: 112(1.569454e-43), 0(0.000000e+00)6933; CM-NEXT: LSHR T19.X, PV.W, literal.x,6934; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6935; CM-NEXT: 2(2.802597e-45), 96(1.345247e-43)6936; CM-NEXT: LSHR T20.X, PV.W, literal.x,6937; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6938; CM-NEXT: 2(2.802597e-45), 80(1.121039e-43)6939; CM-NEXT: LSHR T21.X, PV.W, literal.x,6940; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6941; CM-NEXT: 2(2.802597e-45), 64(8.968310e-44)6942; CM-NEXT: LSHR T22.X, PV.W, literal.x,6943; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6944; CM-NEXT: 2(2.802597e-45), 48(6.726233e-44)6945; CM-NEXT: LSHR T23.X, PV.W, literal.x,6946; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6947; CM-NEXT: 2(2.802597e-45), 32(4.484155e-44)6948; CM-NEXT: LSHR T24.X, PV.W, literal.x,6949; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6950; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)6951; CM-NEXT: LSHR * T25.X, PV.W, literal.x,6952; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)6953; CM-NEXT: LSHR * T26.X, KC0[2].Y, literal.x,6954; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)6955 %load = load <16 x i16>, ptr addrspace(1) %in6956 %ext = zext <16 x i16> %load to <16 x i64>6957 store <16 x i64> %ext, ptr addrspace(1) %out6958 ret void6959}6960 6961define amdgpu_kernel void @global_sextload_v16i16_to_v16i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {6962; GCN-NOHSA-SI-LABEL: global_sextload_v16i16_to_v16i64:6963; GCN-NOHSA-SI: ; %bb.0:6964; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x96965; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006966; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16967; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s26968; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s36969; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6970; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s66971; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s76972; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:166973; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 06974; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s46975; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s56976; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)6977; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v9, 16, v06978; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)6979; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v10, 16, v66980; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v11, 16, v46981; GCN-NOHSA-SI-NEXT: v_bfe_i32 v4, v4, 0, 166982; GCN-NOHSA-SI-NEXT: v_bfe_i32 v8, v6, 0, 166983; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v15, 31, v56984; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v14, 16, v56985; GCN-NOHSA-SI-NEXT: v_bfe_i32 v12, v5, 0, 166986; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v19, 31, v76987; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v18, 16, v76988; GCN-NOHSA-SI-NEXT: v_bfe_i32 v16, v7, 0, 166989; GCN-NOHSA-SI-NEXT: v_bfe_i32 v20, v0, 0, 166990; GCN-NOHSA-SI-NEXT: v_bfe_i32 v6, v11, 0, 166991; GCN-NOHSA-SI-NEXT: v_bfe_i32 v10, v10, 0, 166992; GCN-NOHSA-SI-NEXT: v_bfe_i32 v22, v9, 0, 166993; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 31, v36994; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 16, v36995; GCN-NOHSA-SI-NEXT: v_bfe_i32 v23, v3, 0, 166996; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v24, 31, v236997; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:1126998; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v27, 31, v16999; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7000; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 16, v17001; GCN-NOHSA-SI-NEXT: v_bfe_i32 v24, v1, 0, 167002; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v1, 16, v27003; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v2, 0, 167004; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v1, 0, 167005; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v5, 31, v47006; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v9, 31, v87007; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v21, 31, v207008; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v07009; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v13, 31, v127010; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v17, 31, v167011; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 31, v247012; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 31, v67013; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v11, 31, v107014; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v23, 31, v227015; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 31, v27016; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:807017; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:487018; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:167019; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:967020; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:647021; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:327022; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 07023; GCN-NOHSA-SI-NEXT: s_endpgm7024;7025; GCN-HSA-LABEL: global_sextload_v16i16_to_v16i64:7026; GCN-HSA: ; %bb.0:7027; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x07028; GCN-HSA-NEXT: s_add_i32 s12, s12, s177029; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s137030; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 87031; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)7032; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27033; GCN-HSA-NEXT: v_mov_b32_e32 v1, s37034; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[0:1]7035; GCN-HSA-NEXT: s_add_u32 s2, s2, 167036; GCN-HSA-NEXT: s_addc_u32 s3, s3, 07037; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27038; GCN-HSA-NEXT: v_mov_b32_e32 v1, s37039; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]7040; GCN-HSA-NEXT: s_add_u32 s2, s0, 487041; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07042; GCN-HSA-NEXT: v_mov_b32_e32 v15, s37043; GCN-HSA-NEXT: v_mov_b32_e32 v14, s27044; GCN-HSA-NEXT: s_add_u32 s2, s0, 327045; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07046; GCN-HSA-NEXT: v_mov_b32_e32 v17, s37047; GCN-HSA-NEXT: v_mov_b32_e32 v16, s27048; GCN-HSA-NEXT: s_add_u32 s2, s0, 167049; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07050; GCN-HSA-NEXT: v_mov_b32_e32 v19, s37051; GCN-HSA-NEXT: v_mov_b32_e32 v18, s27052; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x707053; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07054; GCN-HSA-NEXT: v_mov_b32_e32 v21, s37055; GCN-HSA-NEXT: v_mov_b32_e32 v20, s27056; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x607057; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07058; GCN-HSA-NEXT: v_mov_b32_e32 v23, s37059; GCN-HSA-NEXT: v_mov_b32_e32 v22, s27060; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x507061; GCN-HSA-NEXT: v_mov_b32_e32 v13, s17062; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07063; GCN-HSA-NEXT: v_mov_b32_e32 v12, s07064; GCN-HSA-NEXT: s_add_u32 s0, s0, 647065; GCN-HSA-NEXT: s_addc_u32 s1, s1, 07066; GCN-HSA-NEXT: v_mov_b32_e32 v25, s37067; GCN-HSA-NEXT: v_mov_b32_e32 v27, s17068; GCN-HSA-NEXT: v_mov_b32_e32 v24, s27069; GCN-HSA-NEXT: v_mov_b32_e32 v26, s07070; GCN-HSA-NEXT: s_waitcnt vmcnt(1)7071; GCN-HSA-NEXT: v_ashrrev_i32_e32 v10, 31, v77072; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 16, v77073; GCN-HSA-NEXT: v_bfe_i32 v7, v7, 0, 167074; GCN-HSA-NEXT: v_ashrrev_i32_e32 v8, 31, v77075; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[7:10]7076; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 16, v67077; GCN-HSA-NEXT: v_bfe_i32 v7, v5, 0, 167078; GCN-HSA-NEXT: v_ashrrev_i32_e32 v10, 31, v57079; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 16, v57080; GCN-HSA-NEXT: v_ashrrev_i32_e32 v8, 31, v77081; GCN-HSA-NEXT: v_lshrrev_b32_e32 v14, 16, v47082; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[7:10]7083; GCN-HSA-NEXT: v_bfe_i32 v4, v4, 0, 167084; GCN-HSA-NEXT: v_bfe_i32 v7, v6, 0, 167085; GCN-HSA-NEXT: v_bfe_i32 v9, v11, 0, 167086; GCN-HSA-NEXT: v_ashrrev_i32_e32 v8, 31, v77087; GCN-HSA-NEXT: v_bfe_i32 v6, v14, 0, 167088; GCN-HSA-NEXT: v_ashrrev_i32_e32 v10, 31, v97089; GCN-HSA-NEXT: v_ashrrev_i32_e32 v5, 31, v47090; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[7:10]7091; GCN-HSA-NEXT: s_waitcnt vmcnt(3)7092; GCN-HSA-NEXT: v_lshrrev_b32_e32 v14, 16, v27093; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 31, v67094; GCN-HSA-NEXT: v_lshrrev_b32_e32 v15, 16, v07095; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[4:7]7096; GCN-HSA-NEXT: v_bfe_i32 v0, v0, 0, 167097; GCN-HSA-NEXT: v_bfe_i32 v4, v3, 0, 167098; GCN-HSA-NEXT: v_bfe_i32 v8, v1, 0, 167099; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 31, v37100; GCN-HSA-NEXT: v_ashrrev_i32_e32 v6, 16, v37101; GCN-HSA-NEXT: v_bfe_i32 v12, v2, 0, 167102; GCN-HSA-NEXT: v_bfe_i32 v2, v15, 0, 167103; GCN-HSA-NEXT: v_bfe_i32 v14, v14, 0, 167104; GCN-HSA-NEXT: v_ashrrev_i32_e32 v5, 31, v47105; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 31, v17106; GCN-HSA-NEXT: v_ashrrev_i32_e32 v10, 16, v17107; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v07108; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 31, v127109; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 31, v87110; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 31, v27111; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 31, v147112; GCN-HSA-NEXT: flat_store_dwordx4 v[20:21], v[4:7]7113; GCN-HSA-NEXT: flat_store_dwordx4 v[24:25], v[8:11]7114; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[12:15]7115; GCN-HSA-NEXT: flat_store_dwordx4 v[26:27], v[0:3]7116; GCN-HSA-NEXT: s_endpgm7117;7118; GCN-NOHSA-VI-LABEL: global_sextload_v16i16_to_v16i64:7119; GCN-NOHSA-VI: ; %bb.0:7120; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x247121; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0007122; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -17123; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s27124; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s37125; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)7126; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s67127; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s77128; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[1:4], off, s[8:11], 07129; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[5:8], off, s[8:11], 0 offset:167130; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s47131; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s57132; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)7133; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v1, 0, 167134; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v10, 16, v17135; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)7136; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v67137; GCN-NOHSA-VI-NEXT: v_bfe_i32 v13, v3, 0, 167138; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v12, 16, v37139; GCN-NOHSA-VI-NEXT: v_bfe_i32 v3, v1, 0, 167140; GCN-NOHSA-VI-NEXT: v_bfe_i32 v1, v6, 0, 167141; GCN-NOHSA-VI-NEXT: v_bfe_i32 v9, v2, 0, 167142; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v11, 16, v27143; GCN-NOHSA-VI-NEXT: v_bfe_i32 v17, v4, 0, 167144; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v14, 16, v47145; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v2, 31, v17146; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v4, 31, v37147; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[1:4], off, s[0:3], 0 offset:807148; GCN-NOHSA-VI-NEXT: v_bfe_i32 v25, v5, 0, 167149; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v77150; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v1, 0, 167151; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v57152; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 16, v87153; GCN-NOHSA-VI-NEXT: v_bfe_i32 v27, v1, 0, 167154; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v7, 0, 167155; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v10, 0, 167156; GCN-NOHSA-VI-NEXT: v_bfe_i32 v11, v11, 0, 167157; GCN-NOHSA-VI-NEXT: v_bfe_i32 v15, v12, 0, 167158; GCN-NOHSA-VI-NEXT: v_bfe_i32 v19, v14, 0, 167159; GCN-NOHSA-VI-NEXT: v_bfe_i32 v23, v3, 0, 167160; GCN-NOHSA-VI-NEXT: v_bfe_i32 v21, v8, 0, 167161; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v26, 31, v257162; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v28, 31, v277163; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v07164; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v10, 31, v97165; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v14, 31, v137166; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v18, 31, v177167; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v5, 31, v47168; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v22, 31, v217169; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 31, v27170; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v12, 31, v117171; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v16, 31, v157172; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v20, 31, v197173; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 31, v67174; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v24, 31, v237175; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[25:28], off, s[0:3], 0 offset:647176; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[21:24], off, s[0:3], 0 offset:1127177; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:967178; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[17:20], off, s[0:3], 0 offset:487179; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[13:16], off, s[0:3], 0 offset:327180; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[9:12], off, s[0:3], 0 offset:167181; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 07182; GCN-NOHSA-VI-NEXT: s_endpgm7183;7184; EG-LABEL: global_sextload_v16i16_to_v16i64:7185; EG: ; %bb.0:7186; EG-NEXT: ALU 0, @16, KC0[CB0:0-32], KC1[]7187; EG-NEXT: TEX 1 @127188; EG-NEXT: ALU 65, @17, KC0[CB0:0-32], KC1[]7189; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T26.XYZW, T12.X, 07190; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T20.X, 07191; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T18.X, 07192; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T24.XYZW, T17.X, 07193; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T16.X, 07194; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T22.XYZW, T15.X, 07195; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T14.X, 07196; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T13.X, 17197; EG-NEXT: CF_END7198; EG-NEXT: Fetch clause starting at 12:7199; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #17200; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #17201; EG-NEXT: ALU clause starting at 16:7202; EG-NEXT: MOV * T11.X, KC0[2].Z,7203; EG-NEXT: ALU clause starting at 17:7204; EG-NEXT: LSHR T13.X, KC0[2].Y, literal.x,7205; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7206; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)7207; EG-NEXT: LSHR T14.X, PV.W, literal.x,7208; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7209; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)7210; EG-NEXT: LSHR T15.X, PV.W, literal.x,7211; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7212; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)7213; EG-NEXT: LSHR T16.X, PV.W, literal.x,7214; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7215; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)7216; EG-NEXT: LSHR T17.X, PV.W, literal.x,7217; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7218; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)7219; EG-NEXT: LSHR T18.X, PV.W, literal.x,7220; EG-NEXT: ADD_INT T0.W, KC0[2].Y, literal.y,7221; EG-NEXT: ASHR * T19.W, T11.X, literal.z,7222; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)7223; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)7224; EG-NEXT: LSHR T20.X, PV.W, literal.x,7225; EG-NEXT: ASHR T19.Z, T11.X, literal.y,7226; EG-NEXT: ASHR * T21.W, T11.Y, literal.z,7227; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)7228; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)7229; EG-NEXT: BFE_INT T19.X, T11.X, 0.0, literal.x,7230; EG-NEXT: ASHR T21.Z, T11.Y, literal.x,7231; EG-NEXT: ASHR * T22.W, T11.Z, literal.y,7232; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7233; EG-NEXT: BFE_INT T21.X, T11.Y, 0.0, literal.x,7234; EG-NEXT: ASHR T19.Y, PV.X, literal.y,7235; EG-NEXT: ASHR T22.Z, T11.Z, literal.x,7236; EG-NEXT: ASHR * T23.W, T11.W, literal.y,7237; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7238; EG-NEXT: BFE_INT T22.X, T11.Z, 0.0, literal.x,7239; EG-NEXT: ASHR T21.Y, PV.X, literal.y,7240; EG-NEXT: ASHR T23.Z, T11.W, literal.x,7241; EG-NEXT: ASHR * T24.W, T12.X, literal.y,7242; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7243; EG-NEXT: BFE_INT T23.X, T11.W, 0.0, literal.x,7244; EG-NEXT: ASHR T22.Y, PV.X, literal.y,7245; EG-NEXT: ASHR T24.Z, T12.X, literal.x,7246; EG-NEXT: ASHR * T11.W, T12.Y, literal.y,7247; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7248; EG-NEXT: BFE_INT T24.X, T12.X, 0.0, literal.x,7249; EG-NEXT: ASHR T23.Y, PV.X, literal.y,7250; EG-NEXT: ASHR T11.Z, T12.Y, literal.x,7251; EG-NEXT: ASHR * T25.W, T12.Z, literal.y,7252; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7253; EG-NEXT: BFE_INT T11.X, T12.Y, 0.0, literal.x,7254; EG-NEXT: ASHR T24.Y, PV.X, literal.y,7255; EG-NEXT: ASHR T25.Z, T12.Z, literal.x,7256; EG-NEXT: ASHR * T26.W, T12.W, literal.y,7257; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7258; EG-NEXT: BFE_INT T25.X, T12.Z, 0.0, literal.x,7259; EG-NEXT: ASHR T11.Y, PV.X, literal.y,7260; EG-NEXT: ASHR * T26.Z, T12.W, literal.x,7261; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7262; EG-NEXT: BFE_INT T26.X, T12.W, 0.0, literal.x,7263; EG-NEXT: ASHR T25.Y, PV.X, literal.y,7264; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,7265; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7266; EG-NEXT: 112(1.569454e-43), 0(0.000000e+00)7267; EG-NEXT: LSHR T12.X, PV.W, literal.x,7268; EG-NEXT: ASHR * T26.Y, PV.X, literal.y,7269; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)7270;7271; CM-LABEL: global_sextload_v16i16_to_v16i64:7272; CM: ; %bb.0:7273; CM-NEXT: ALU 0, @16, KC0[CB0:0-32], KC1[]7274; CM-NEXT: TEX 1 @127275; CM-NEXT: ALU 65, @17, KC0[CB0:0-32], KC1[]7276; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T26.X7277; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T25, T20.X7278; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T24, T18.X7279; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T23, T17.X7280; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T16.X7281; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T22, T15.X7282; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T21, T14.X7283; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T13.X7284; CM-NEXT: CF_END7285; CM-NEXT: Fetch clause starting at 12:7286; CM-NEXT: VTX_READ_128 T12.XYZW, T11.X, 0, #17287; CM-NEXT: VTX_READ_128 T11.XYZW, T11.X, 16, #17288; CM-NEXT: ALU clause starting at 16:7289; CM-NEXT: MOV * T11.X, KC0[2].Z,7290; CM-NEXT: ALU clause starting at 17:7291; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,7292; CM-NEXT: 112(1.569454e-43), 0(0.000000e+00)7293; CM-NEXT: LSHR T13.X, PV.W, literal.x,7294; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7295; CM-NEXT: 2(2.802597e-45), 96(1.345247e-43)7296; CM-NEXT: LSHR T14.X, PV.W, literal.x,7297; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7298; CM-NEXT: 2(2.802597e-45), 80(1.121039e-43)7299; CM-NEXT: LSHR T15.X, PV.W, literal.x,7300; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7301; CM-NEXT: 2(2.802597e-45), 64(8.968310e-44)7302; CM-NEXT: LSHR T16.X, PV.W, literal.x,7303; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7304; CM-NEXT: 2(2.802597e-45), 48(6.726233e-44)7305; CM-NEXT: LSHR T17.X, PV.W, literal.x,7306; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7307; CM-NEXT: 2(2.802597e-45), 32(4.484155e-44)7308; CM-NEXT: LSHR T18.X, PV.W, literal.x,7309; CM-NEXT: ADD_INT T0.Z, KC0[2].Y, literal.y,7310; CM-NEXT: ASHR * T19.W, T11.W, literal.z,7311; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)7312; CM-NEXT: 31(4.344025e-44), 0(0.000000e+00)7313; CM-NEXT: LSHR T20.X, PV.Z, literal.x,7314; CM-NEXT: ASHR T19.Z, T11.W, literal.y,7315; CM-NEXT: ASHR * T21.W, T11.Z, literal.z,7316; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)7317; CM-NEXT: 31(4.344025e-44), 0(0.000000e+00)7318; CM-NEXT: BFE_INT T19.X, T11.W, 0.0, literal.x,7319; CM-NEXT: ASHR T21.Z, T11.Z, literal.x,7320; CM-NEXT: ASHR * T22.W, T11.Y, literal.y,7321; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)7322; CM-NEXT: BFE_INT T21.X, T11.Z, 0.0, literal.x,7323; CM-NEXT: ASHR T19.Y, PV.X, literal.y,7324; CM-NEXT: ASHR T22.Z, T11.Y, literal.x,7325; CM-NEXT: ASHR * T11.W, T11.X, literal.y,7326; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)7327; CM-NEXT: BFE_INT T22.X, T11.Y, 0.0, literal.x,7328; CM-NEXT: ASHR T21.Y, PV.X, literal.y,7329; CM-NEXT: ASHR T11.Z, T11.X, literal.x,7330; CM-NEXT: ASHR * T23.W, T12.W, literal.y,7331; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)7332; CM-NEXT: BFE_INT T11.X, T11.X, 0.0, literal.x,7333; CM-NEXT: ASHR T22.Y, PV.X, literal.y,7334; CM-NEXT: ASHR T23.Z, T12.W, literal.x,7335; CM-NEXT: ASHR * T24.W, T12.Z, literal.y,7336; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)7337; CM-NEXT: BFE_INT T23.X, T12.W, 0.0, literal.x,7338; CM-NEXT: ASHR T11.Y, PV.X, literal.y,7339; CM-NEXT: ASHR T24.Z, T12.Z, literal.x,7340; CM-NEXT: ASHR * T25.W, T12.Y, literal.y,7341; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)7342; CM-NEXT: BFE_INT T24.X, T12.Z, 0.0, literal.x,7343; CM-NEXT: ASHR T23.Y, PV.X, literal.y,7344; CM-NEXT: ASHR T25.Z, T12.Y, literal.x,7345; CM-NEXT: ASHR * T12.W, T12.X, literal.y,7346; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)7347; CM-NEXT: BFE_INT T25.X, T12.Y, 0.0, literal.x,7348; CM-NEXT: ASHR T24.Y, PV.X, literal.y,7349; CM-NEXT: ASHR * T12.Z, T12.X, literal.x,7350; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)7351; CM-NEXT: BFE_INT T12.X, T12.X, 0.0, literal.x,7352; CM-NEXT: ASHR * T25.Y, PV.X, literal.y,7353; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)7354; CM-NEXT: LSHR T26.X, KC0[2].Y, literal.x,7355; CM-NEXT: ASHR * T12.Y, PV.X, literal.y,7356; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)7357 %load = load <16 x i16>, ptr addrspace(1) %in7358 %ext = sext <16 x i16> %load to <16 x i64>7359 store <16 x i64> %ext, ptr addrspace(1) %out7360 ret void7361}7362 7363define amdgpu_kernel void @global_zextload_v32i16_to_v32i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {7364; GCN-NOHSA-SI-LABEL: global_zextload_v32i16_to_v32i64:7365; GCN-NOHSA-SI: ; %bb.0:7366; GCN-NOHSA-SI-NEXT: s_mov_b32 s12, SCRATCH_RSRC_DWORD07367; GCN-NOHSA-SI-NEXT: s_mov_b32 s13, SCRATCH_RSRC_DWORD17368; GCN-NOHSA-SI-NEXT: s_mov_b32 s14, -17369; GCN-NOHSA-SI-NEXT: s_mov_b32 s15, 0xe8f0007370; GCN-NOHSA-SI-NEXT: s_add_u32 s12, s12, s117371; GCN-NOHSA-SI-NEXT: s_addc_u32 s13, s13, 07372; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x97373; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0007374; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -17375; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v39, 07376; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s27377; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s37378; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)7379; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s67380; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s77381; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[14:17], off, s[8:11], 07382; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[18:21], off, s[8:11], 0 offset:167383; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[22:25], off, s[8:11], 0 offset:327384; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[26:29], off, s[8:11], 0 offset:487385; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(3)7386; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v32, 16, v157387; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v36, 16, v177388; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(2)7389; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v6, 16, v207390; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v3, 16, v167391; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 16, v147392; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v147393; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[12:15], 0 ; 4-byte Folded Spill7394; GCN-NOHSA-SI-NEXT: buffer_store_dword v1, off, s[12:15], 0 offset:4 ; 4-byte Folded Spill7395; GCN-NOHSA-SI-NEXT: buffer_store_dword v2, off, s[12:15], 0 offset:8 ; 4-byte Folded Spill7396; GCN-NOHSA-SI-NEXT: buffer_store_dword v3, off, s[12:15], 0 offset:12 ; 4-byte Folded Spill7397; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v12, 0xffff, v167398; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, v37399; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v30, 0xffff, v157400; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v34, 0xffff, v177401; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v10, 16, v187402; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v8, 0xffff, v187403; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xffff, v207404; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v18, 16, v197405; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v16, 0xffff, v197406; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v44, 16, v217407; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v42, 0xffff, v217408; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(5)7409; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v48, 16, v227410; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v46, 0xffff, v227411; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v22, 16, v247412; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v20, 0xffff, v247413; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v52, 16, v237414; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v50, 0xffff, v237415; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v56, 16, v257416; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v54, 0xffff, v257417; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(4)7418; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v40, 16, v297419; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v60, 16, v267420; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v58, 0xffff, v267421; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v26, 16, v287422; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v24, 0xffff, v287423; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(1)7424; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 16, v277425; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v277426; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v38, 0xffff, v297427; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v41, v397428; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, v397429; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7430; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v397431; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v55, v397432; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v57, v397433; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v51, v397434; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v53, v397435; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v43, v397436; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v45, v397437; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v17, v397438; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v19, v397439; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v35, v397440; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v37, v397441; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v31, v397442; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v33, v397443; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v25, v397444; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v27, v397445; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v59, v397446; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v61, v397447; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v21, v397448; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v23, v397449; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v47, v397450; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v49, v397451; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, v397452; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, v397453; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, v397454; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, v397455; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, v397456; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, v397457; GCN-NOHSA-SI-NEXT: buffer_store_dword v12, off, s[12:15], 0 offset:16 ; 4-byte Folded Spill7458; GCN-NOHSA-SI-NEXT: buffer_store_dword v13, off, s[12:15], 0 offset:20 ; 4-byte Folded Spill7459; GCN-NOHSA-SI-NEXT: buffer_store_dword v14, off, s[12:15], 0 offset:24 ; 4-byte Folded Spill7460; GCN-NOHSA-SI-NEXT: buffer_store_dword v15, off, s[12:15], 0 offset:28 ; 4-byte Folded Spill7461; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(3)7462; GCN-NOHSA-SI-NEXT: buffer_load_dword v12, off, s[12:15], 0 ; 4-byte Folded Reload7463; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(2)7464; GCN-NOHSA-SI-NEXT: buffer_load_dword v13, off, s[12:15], 0 offset:4 ; 4-byte Folded Reload7465; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(1)7466; GCN-NOHSA-SI-NEXT: buffer_load_dword v14, off, s[12:15], 0 offset:8 ; 4-byte Folded Reload7467; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7468; GCN-NOHSA-SI-NEXT: buffer_load_dword v15, off, s[12:15], 0 offset:12 ; 4-byte Folded Reload7469; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(2)7470; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, v397471; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)7472; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, v397473; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s47474; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s57475; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[38:41], off, s[0:3], 0 offset:2407476; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2087477; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[54:57], off, s[0:3], 0 offset:1767478; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[50:53], off, s[0:3], 0 offset:1447479; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[42:45], off, s[0:3], 0 offset:1127480; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:807481; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[34:37], off, s[0:3], 0 offset:487482; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[30:33], off, s[0:3], 0 offset:167483; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:2247484; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[58:61], off, s[0:3], 0 offset:1927485; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:1607486; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[46:49], off, s[0:3], 0 offset:1287487; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:967488; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:647489; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[12:15], 0 offset:16 ; 4-byte Folded Reload7490; GCN-NOHSA-SI-NEXT: buffer_load_dword v1, off, s[12:15], 0 offset:20 ; 4-byte Folded Reload7491; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[12:15], 0 offset:24 ; 4-byte Folded Reload7492; GCN-NOHSA-SI-NEXT: buffer_load_dword v3, off, s[12:15], 0 offset:28 ; 4-byte Folded Reload7493; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)7494; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:327495; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 07496; GCN-NOHSA-SI-NEXT: s_endpgm7497;7498; GCN-HSA-LABEL: global_zextload_v32i16_to_v32i64:7499; GCN-HSA: ; %bb.0:7500; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x07501; GCN-HSA-NEXT: s_add_i32 s12, s12, s177502; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 87503; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s137504; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)7505; GCN-HSA-NEXT: s_add_u32 s4, s2, 167506; GCN-HSA-NEXT: s_addc_u32 s5, s3, 07507; GCN-HSA-NEXT: v_mov_b32_e32 v0, s47508; GCN-HSA-NEXT: v_mov_b32_e32 v1, s57509; GCN-HSA-NEXT: flat_load_dwordx4 v[2:5], v[0:1]7510; GCN-HSA-NEXT: s_add_u32 s4, s2, 327511; GCN-HSA-NEXT: s_addc_u32 s5, s3, 07512; GCN-HSA-NEXT: v_mov_b32_e32 v0, s47513; GCN-HSA-NEXT: v_mov_b32_e32 v1, s57514; GCN-HSA-NEXT: flat_load_dwordx4 v[6:9], v[0:1]7515; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27516; GCN-HSA-NEXT: v_mov_b32_e32 v1, s37517; GCN-HSA-NEXT: s_add_u32 s2, s2, 487518; GCN-HSA-NEXT: flat_load_dwordx4 v[10:13], v[0:1]7519; GCN-HSA-NEXT: s_addc_u32 s3, s3, 07520; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27521; GCN-HSA-NEXT: v_mov_b32_e32 v1, s37522; GCN-HSA-NEXT: flat_load_dwordx4 v[14:17], v[0:1]7523; GCN-HSA-NEXT: s_add_u32 s2, s0, 487524; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07525; GCN-HSA-NEXT: s_add_u32 s4, s0, 167526; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07527; GCN-HSA-NEXT: s_add_u32 s6, s0, 0xf07528; GCN-HSA-NEXT: s_addc_u32 s7, s1, 07529; GCN-HSA-NEXT: s_add_u32 s8, s0, 0xd07530; GCN-HSA-NEXT: s_addc_u32 s9, s1, 07531; GCN-HSA-NEXT: s_add_u32 s10, s0, 0xb07532; GCN-HSA-NEXT: s_addc_u32 s11, s1, 07533; GCN-HSA-NEXT: s_add_u32 s12, s0, 0x907534; GCN-HSA-NEXT: s_addc_u32 s13, s1, 07535; GCN-HSA-NEXT: s_add_u32 s14, s0, 0x707536; GCN-HSA-NEXT: s_addc_u32 s15, s1, 07537; GCN-HSA-NEXT: v_mov_b32_e32 v23, s157538; GCN-HSA-NEXT: v_mov_b32_e32 v1, 07539; GCN-HSA-NEXT: v_mov_b32_e32 v22, s147540; GCN-HSA-NEXT: s_add_u32 s14, s0, 0x507541; GCN-HSA-NEXT: v_mov_b32_e32 v19, v17542; GCN-HSA-NEXT: v_mov_b32_e32 v21, v17543; GCN-HSA-NEXT: s_addc_u32 s15, s1, 07544; GCN-HSA-NEXT: v_mov_b32_e32 v24, v17545; GCN-HSA-NEXT: s_waitcnt vmcnt(3)7546; GCN-HSA-NEXT: v_lshrrev_b32_e32 v20, 16, v57547; GCN-HSA-NEXT: v_and_b32_e32 v18, 0xffff, v57548; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[18:21]7549; GCN-HSA-NEXT: v_mov_b32_e32 v23, s157550; GCN-HSA-NEXT: v_mov_b32_e32 v22, s147551; GCN-HSA-NEXT: v_lshrrev_b32_e32 v20, 16, v37552; GCN-HSA-NEXT: v_and_b32_e32 v18, 0xffff, v37553; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[18:21]7554; GCN-HSA-NEXT: v_mov_b32_e32 v23, s117555; GCN-HSA-NEXT: v_mov_b32_e32 v22, s107556; GCN-HSA-NEXT: s_waitcnt vmcnt(4)7557; GCN-HSA-NEXT: v_lshrrev_b32_e32 v20, 16, v97558; GCN-HSA-NEXT: v_and_b32_e32 v18, 0xffff, v97559; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[18:21]7560; GCN-HSA-NEXT: v_mov_b32_e32 v23, s137561; GCN-HSA-NEXT: v_mov_b32_e32 v22, s127562; GCN-HSA-NEXT: v_lshrrev_b32_e32 v20, 16, v77563; GCN-HSA-NEXT: v_and_b32_e32 v18, 0xffff, v77564; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[18:21]7565; GCN-HSA-NEXT: v_mov_b32_e32 v23, s57566; GCN-HSA-NEXT: v_mov_b32_e32 v22, s47567; GCN-HSA-NEXT: s_waitcnt vmcnt(5)7568; GCN-HSA-NEXT: v_lshrrev_b32_e32 v20, 16, v117569; GCN-HSA-NEXT: v_and_b32_e32 v18, 0xffff, v117570; GCN-HSA-NEXT: flat_store_dwordx4 v[22:23], v[18:21]7571; GCN-HSA-NEXT: v_mov_b32_e32 v22, s77572; GCN-HSA-NEXT: v_mov_b32_e32 v18, v17573; GCN-HSA-NEXT: v_mov_b32_e32 v20, v17574; GCN-HSA-NEXT: v_mov_b32_e32 v21, s67575; GCN-HSA-NEXT: s_waitcnt vmcnt(5)7576; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v177577; GCN-HSA-NEXT: v_and_b32_e32 v17, 0xffff, v177578; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[17:20]7579; GCN-HSA-NEXT: v_mov_b32_e32 v22, s97580; GCN-HSA-NEXT: s_add_u32 s4, s0, 327581; GCN-HSA-NEXT: v_mov_b32_e32 v21, s87582; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v157583; GCN-HSA-NEXT: v_and_b32_e32 v17, 0xffff, v157584; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07585; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[17:20]7586; GCN-HSA-NEXT: v_mov_b32_e32 v22, s57587; GCN-HSA-NEXT: v_mov_b32_e32 v21, s47588; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v127589; GCN-HSA-NEXT: v_and_b32_e32 v17, 0xffff, v127590; GCN-HSA-NEXT: v_mov_b32_e32 v12, s17591; GCN-HSA-NEXT: s_add_u32 s4, s0, 0xe07592; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[17:20]7593; GCN-HSA-NEXT: v_mov_b32_e32 v11, s07594; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v107595; GCN-HSA-NEXT: v_and_b32_e32 v17, 0xffff, v107596; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07597; GCN-HSA-NEXT: flat_store_dwordx4 v[11:12], v[17:20]7598; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 16, v167599; GCN-HSA-NEXT: v_and_b32_e32 v9, 0xffff, v167600; GCN-HSA-NEXT: v_mov_b32_e32 v16, s57601; GCN-HSA-NEXT: v_mov_b32_e32 v10, v17602; GCN-HSA-NEXT: v_mov_b32_e32 v12, v17603; GCN-HSA-NEXT: v_mov_b32_e32 v15, s47604; GCN-HSA-NEXT: flat_store_dwordx4 v[15:16], v[9:12]7605; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xffff, v137606; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 16, v27607; GCN-HSA-NEXT: v_and_b32_e32 v9, 0xffff, v27608; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 16, v137609; GCN-HSA-NEXT: v_mov_b32_e32 v13, s37610; GCN-HSA-NEXT: v_mov_b32_e32 v3, v17611; GCN-HSA-NEXT: v_mov_b32_e32 v12, s27612; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xc07613; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[0:3]7614; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07615; GCN-HSA-NEXT: v_mov_b32_e32 v2, s27616; GCN-HSA-NEXT: v_lshrrev_b32_e32 v23, 16, v147617; GCN-HSA-NEXT: v_and_b32_e32 v21, 0xffff, v147618; GCN-HSA-NEXT: v_mov_b32_e32 v22, v17619; GCN-HSA-NEXT: v_mov_b32_e32 v3, s37620; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xa07621; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[21:24]7622; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07623; GCN-HSA-NEXT: v_mov_b32_e32 v2, s27624; GCN-HSA-NEXT: v_lshrrev_b32_e32 v20, 16, v87625; GCN-HSA-NEXT: v_and_b32_e32 v18, 0xffff, v87626; GCN-HSA-NEXT: v_mov_b32_e32 v19, v17627; GCN-HSA-NEXT: v_mov_b32_e32 v21, v17628; GCN-HSA-NEXT: v_mov_b32_e32 v3, s37629; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x807630; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[18:21]7631; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07632; GCN-HSA-NEXT: v_mov_b32_e32 v2, s27633; GCN-HSA-NEXT: v_mov_b32_e32 v3, s37634; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x607635; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07636; GCN-HSA-NEXT: v_lshrrev_b32_e32 v17, 16, v67637; GCN-HSA-NEXT: v_and_b32_e32 v15, 0xffff, v67638; GCN-HSA-NEXT: v_mov_b32_e32 v16, v17639; GCN-HSA-NEXT: v_mov_b32_e32 v18, v17640; GCN-HSA-NEXT: s_add_u32 s0, s0, 647641; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[15:18]7642; GCN-HSA-NEXT: v_mov_b32_e32 v6, v17643; GCN-HSA-NEXT: v_mov_b32_e32 v8, v17644; GCN-HSA-NEXT: v_mov_b32_e32 v2, s27645; GCN-HSA-NEXT: v_mov_b32_e32 v12, v17646; GCN-HSA-NEXT: s_addc_u32 s1, s1, 07647; GCN-HSA-NEXT: v_mov_b32_e32 v0, s07648; GCN-HSA-NEXT: v_lshrrev_b32_e32 v7, 16, v47649; GCN-HSA-NEXT: v_and_b32_e32 v5, 0xffff, v47650; GCN-HSA-NEXT: v_mov_b32_e32 v3, s37651; GCN-HSA-NEXT: v_mov_b32_e32 v1, s17652; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[5:8]7653; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[9:12]7654; GCN-HSA-NEXT: s_endpgm7655;7656; GCN-NOHSA-VI-LABEL: global_zextload_v32i16_to_v32i64:7657; GCN-NOHSA-VI: ; %bb.0:7658; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x247659; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0007660; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -17661; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s27662; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s37663; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)7664; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s67665; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s77666; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[7:10], off, s[8:11], 07667; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[13:16], off, s[8:11], 0 offset:167668; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s47669; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s57670; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)7671; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v6, 0xffff, v107672; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)7673; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v19, 16, v147674; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v17, 0xffff, v147675; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v23, 16, v137676; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v21, 0xffff, v137677; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v27, 16, v167678; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v25, 0xffff, v167679; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v30, 16, v157680; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v28, 0xffff, v157681; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[13:16], off, s[8:11], 0 offset:327682; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[31:34], off, s[8:11], 0 offset:487683; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v87684; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v87685; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v5, 16, v77686; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v3, 0xffff, v77687; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v8, 16, v107688; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v12, 16, v97689; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v10, 0xffff, v97690; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)7691; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v40, 16, v137692; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v38, 0xffff, v137693; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v46, 16, v157694; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v44, 0xffff, v157695; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)7696; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v15, 16, v327697; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v13, 0xffff, v327698; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v52, 16, v347699; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v50, 0xffff, v347700; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v34, 16, v337701; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v32, 0xffff, v337702; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v33, 07703; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v51, v337704; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v53, v337705; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v49, 16, v317706; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v47, 0xffff, v317707; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[50:53], off, s[0:3], 0 offset:2407708; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v48, v337709; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v50, v337710; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[47:50], off, s[0:3], 0 offset:1927711; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v45, v337712; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v47, v337713; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v43, 16, v167714; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v41, 0xffff, v167715; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[44:47], off, s[0:3], 0 offset:1607716; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v42, v337717; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v44, v337718; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[41:44], off, s[0:3], 0 offset:1767719; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v39, v337720; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v41, v337721; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v29, v337722; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v31, v337723; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v37, 16, v147724; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v35, 0xffff, v147725; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v14, v337726; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v16, v337727; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[38:41], off, s[0:3], 0 offset:1287728; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v36, v337729; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v38, v337730; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:967731; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v26, v337732; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v28, v337733; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[13:16], off, s[0:3], 0 offset:2087734; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[35:38], off, s[0:3], 0 offset:1447735; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v22, v337736; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v35, v337737; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v24, v337738; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v18, v337739; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v20, v337740; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v11, v337741; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v13, v337742; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, v337743; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v9, v337744; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, v337745; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[25:28], off, s[0:3], 0 offset:1127746; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:2247747; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[21:24], off, s[0:3], 0 offset:647748; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[17:20], off, s[0:3], 0 offset:807749; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[10:13], off, s[0:3], 0 offset:327750; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:487751; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, v337752; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, v337753; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[3:6], off, s[0:3], 07754; GCN-NOHSA-VI-NEXT: s_nop 07755; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v337756; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:167757; GCN-NOHSA-VI-NEXT: s_endpgm7758;7759; EG-LABEL: global_zextload_v32i16_to_v32i64:7760; EG: ; %bb.0:7761; EG-NEXT: ALU 0, @30, KC0[CB0:0-32], KC1[]7762; EG-NEXT: TEX 2 @227763; EG-NEXT: ALU 33, @31, KC0[], KC1[]7764; EG-NEXT: TEX 0 @287765; EG-NEXT: ALU 93, @65, KC0[CB0:0-32], KC1[]7766; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T50.X, 07767; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T24.XYZW, T49.X, 07768; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T48.X, 07769; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T47.X, 07770; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T26.XYZW, T46.X, 07771; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T27.XYZW, T45.X, 07772; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T28.XYZW, T44.X, 07773; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T22.XYZW, T43.X, 07774; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T42.X, 07775; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T30.XYZW, T41.X, 07776; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T31.XYZW, T40.X, 07777; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T39.X, 07778; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T32.XYZW, T38.X, 07779; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T33.XYZW, T37.X, 07780; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T34.XYZW, T36.X, 07781; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T29.XYZW, T35.X, 17782; EG-NEXT: CF_END7783; EG-NEXT: Fetch clause starting at 22:7784; EG-NEXT: VTX_READ_128 T20.XYZW, T19.X, 48, #17785; EG-NEXT: VTX_READ_128 T21.XYZW, T19.X, 16, #17786; EG-NEXT: VTX_READ_128 T22.XYZW, T19.X, 32, #17787; EG-NEXT: Fetch clause starting at 28:7788; EG-NEXT: VTX_READ_128 T29.XYZW, T19.X, 0, #17789; EG-NEXT: ALU clause starting at 30:7790; EG-NEXT: MOV * T19.X, KC0[2].Z,7791; EG-NEXT: ALU clause starting at 31:7792; EG-NEXT: LSHR * T23.Z, T20.Z, literal.x,7793; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7794; EG-NEXT: AND_INT T23.X, T20.Z, literal.x,7795; EG-NEXT: MOV T23.Y, 0.0,7796; EG-NEXT: LSHR T24.Z, T20.W, literal.y,7797; EG-NEXT: AND_INT * T24.X, T20.W, literal.x,7798; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7799; EG-NEXT: MOV T24.Y, 0.0,7800; EG-NEXT: LSHR * T25.Z, T20.X, literal.x,7801; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7802; EG-NEXT: AND_INT T25.X, T20.X, literal.x,7803; EG-NEXT: MOV T25.Y, 0.0,7804; EG-NEXT: LSHR T20.Z, T20.Y, literal.y,7805; EG-NEXT: AND_INT * T20.X, T20.Y, literal.x,7806; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7807; EG-NEXT: MOV T20.Y, 0.0,7808; EG-NEXT: LSHR * T26.Z, T22.Z, literal.x,7809; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7810; EG-NEXT: AND_INT T26.X, T22.Z, literal.x,7811; EG-NEXT: MOV T26.Y, 0.0,7812; EG-NEXT: LSHR T27.Z, T22.W, literal.y,7813; EG-NEXT: AND_INT * T27.X, T22.W, literal.x,7814; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7815; EG-NEXT: MOV T27.Y, 0.0,7816; EG-NEXT: LSHR * T28.Z, T22.X, literal.x,7817; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7818; EG-NEXT: AND_INT T28.X, T22.X, literal.x,7819; EG-NEXT: MOV T28.Y, 0.0,7820; EG-NEXT: LSHR T22.Z, T22.Y, literal.y,7821; EG-NEXT: AND_INT * T22.X, T22.Y, literal.x,7822; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7823; EG-NEXT: MOV T22.Y, 0.0,7824; EG-NEXT: LSHR * T19.Z, T21.Z, literal.x,7825; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7826; EG-NEXT: ALU clause starting at 65:7827; EG-NEXT: AND_INT T19.X, T21.Z, literal.x,7828; EG-NEXT: MOV T19.Y, 0.0,7829; EG-NEXT: LSHR T30.Z, T21.W, literal.y,7830; EG-NEXT: AND_INT * T30.X, T21.W, literal.x,7831; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7832; EG-NEXT: MOV T30.Y, 0.0,7833; EG-NEXT: LSHR * T31.Z, T21.X, literal.x,7834; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7835; EG-NEXT: AND_INT T31.X, T21.X, literal.x,7836; EG-NEXT: MOV T31.Y, 0.0,7837; EG-NEXT: LSHR T21.Z, T21.Y, literal.y,7838; EG-NEXT: AND_INT * T21.X, T21.Y, literal.x,7839; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7840; EG-NEXT: MOV T21.Y, 0.0,7841; EG-NEXT: LSHR * T32.Z, T29.Z, literal.x,7842; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7843; EG-NEXT: AND_INT T32.X, T29.Z, literal.x,7844; EG-NEXT: MOV T32.Y, 0.0,7845; EG-NEXT: LSHR T33.Z, T29.W, literal.y,7846; EG-NEXT: AND_INT * T33.X, T29.W, literal.x,7847; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7848; EG-NEXT: MOV T33.Y, 0.0,7849; EG-NEXT: LSHR * T34.Z, T29.X, literal.x,7850; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7851; EG-NEXT: AND_INT T34.X, T29.X, literal.x,7852; EG-NEXT: MOV T34.Y, 0.0,7853; EG-NEXT: LSHR T29.Z, T29.Y, literal.y,7854; EG-NEXT: AND_INT * T29.X, T29.Y, literal.x,7855; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7856; EG-NEXT: MOV T29.Y, 0.0,7857; EG-NEXT: MOV T23.W, 0.0,7858; EG-NEXT: MOV * T24.W, 0.0,7859; EG-NEXT: MOV T25.W, 0.0,7860; EG-NEXT: MOV * T20.W, 0.0,7861; EG-NEXT: MOV T26.W, 0.0,7862; EG-NEXT: MOV * T27.W, 0.0,7863; EG-NEXT: MOV T28.W, 0.0,7864; EG-NEXT: MOV * T22.W, 0.0,7865; EG-NEXT: MOV T19.W, 0.0,7866; EG-NEXT: MOV * T30.W, 0.0,7867; EG-NEXT: MOV T31.W, 0.0,7868; EG-NEXT: MOV * T21.W, 0.0,7869; EG-NEXT: MOV T32.W, 0.0,7870; EG-NEXT: MOV * T33.W, 0.0,7871; EG-NEXT: MOV T34.W, 0.0,7872; EG-NEXT: MOV * T29.W, 0.0,7873; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,7874; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7875; EG-NEXT: LSHR T35.X, PV.W, literal.x,7876; EG-NEXT: LSHR * T36.X, KC0[2].Y, literal.x,7877; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)7878; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,7879; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)7880; EG-NEXT: LSHR T37.X, PV.W, literal.x,7881; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7882; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)7883; EG-NEXT: LSHR T38.X, PV.W, literal.x,7884; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7885; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)7886; EG-NEXT: LSHR T39.X, PV.W, literal.x,7887; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7888; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)7889; EG-NEXT: LSHR T40.X, PV.W, literal.x,7890; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7891; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)7892; EG-NEXT: LSHR T41.X, PV.W, literal.x,7893; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7894; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)7895; EG-NEXT: LSHR T42.X, PV.W, literal.x,7896; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7897; EG-NEXT: 2(2.802597e-45), 144(2.017870e-43)7898; EG-NEXT: LSHR T43.X, PV.W, literal.x,7899; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7900; EG-NEXT: 2(2.802597e-45), 128(1.793662e-43)7901; EG-NEXT: LSHR T44.X, PV.W, literal.x,7902; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7903; EG-NEXT: 2(2.802597e-45), 176(2.466285e-43)7904; EG-NEXT: LSHR T45.X, PV.W, literal.x,7905; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7906; EG-NEXT: 2(2.802597e-45), 160(2.242078e-43)7907; EG-NEXT: LSHR T46.X, PV.W, literal.x,7908; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7909; EG-NEXT: 2(2.802597e-45), 208(2.914701e-43)7910; EG-NEXT: LSHR T47.X, PV.W, literal.x,7911; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7912; EG-NEXT: 2(2.802597e-45), 192(2.690493e-43)7913; EG-NEXT: LSHR T48.X, PV.W, literal.x,7914; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7915; EG-NEXT: 2(2.802597e-45), 240(3.363116e-43)7916; EG-NEXT: LSHR T49.X, PV.W, literal.x,7917; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7918; EG-NEXT: 2(2.802597e-45), 224(3.138909e-43)7919; EG-NEXT: LSHR * T50.X, PV.W, literal.x,7920; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)7921;7922; CM-LABEL: global_zextload_v32i16_to_v32i64:7923; CM: ; %bb.0:7924; CM-NEXT: ALU 0, @30, KC0[CB0:0-32], KC1[]7925; CM-NEXT: TEX 2 @227926; CM-NEXT: ALU 33, @31, KC0[], KC1[]7927; CM-NEXT: TEX 0 @287928; CM-NEXT: ALU 94, @65, KC0[CB0:0-32], KC1[]7929; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T50.X7930; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T24, T49.X7931; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T25, T48.X7932; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T26, T47.X7933; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T21, T46.X7934; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T27, T45.X7935; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T28, T44.X7936; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T29, T43.X7937; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T20, T42.X7938; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T30, T41.X7939; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T31, T40.X7940; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T32, T39.X7941; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T22, T38.X7942; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T33, T37.X7943; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T34, T36.X7944; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T35, T23.X7945; CM-NEXT: CF_END7946; CM-NEXT: Fetch clause starting at 22:7947; CM-NEXT: VTX_READ_128 T21.XYZW, T20.X, 0, #17948; CM-NEXT: VTX_READ_128 T22.XYZW, T20.X, 32, #17949; CM-NEXT: VTX_READ_128 T23.XYZW, T20.X, 16, #17950; CM-NEXT: Fetch clause starting at 28:7951; CM-NEXT: VTX_READ_128 T23.XYZW, T20.X, 48, #17952; CM-NEXT: ALU clause starting at 30:7953; CM-NEXT: MOV * T20.X, KC0[2].Z,7954; CM-NEXT: ALU clause starting at 31:7955; CM-NEXT: LSHR * T19.Z, T21.Y, literal.x,7956; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)7957; CM-NEXT: AND_INT T19.X, T21.Y, literal.x,7958; CM-NEXT: MOV T19.Y, 0.0,7959; CM-NEXT: LSHR * T24.Z, T21.X, literal.y,7960; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7961; CM-NEXT: AND_INT T24.X, T21.X, literal.x,7962; CM-NEXT: MOV T24.Y, 0.0,7963; CM-NEXT: LSHR * T25.Z, T21.W, literal.y,7964; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7965; CM-NEXT: AND_INT T25.X, T21.W, literal.x,7966; CM-NEXT: MOV T25.Y, 0.0,7967; CM-NEXT: LSHR * T26.Z, T21.Z, literal.y,7968; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7969; CM-NEXT: AND_INT T26.X, T21.Z, literal.x,7970; CM-NEXT: MOV T26.Y, 0.0,7971; CM-NEXT: LSHR * T21.Z, T23.Y, literal.y,7972; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7973; CM-NEXT: AND_INT T21.X, T23.Y, literal.x,7974; CM-NEXT: MOV T21.Y, 0.0,7975; CM-NEXT: LSHR * T27.Z, T23.X, literal.y,7976; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7977; CM-NEXT: AND_INT T27.X, T23.X, literal.x,7978; CM-NEXT: MOV T27.Y, 0.0,7979; CM-NEXT: LSHR * T28.Z, T23.W, literal.y,7980; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7981; CM-NEXT: AND_INT T28.X, T23.W, literal.x,7982; CM-NEXT: MOV T28.Y, 0.0,7983; CM-NEXT: LSHR * T29.Z, T23.Z, literal.y,7984; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7985; CM-NEXT: AND_INT T29.X, T23.Z, literal.x,7986; CM-NEXT: MOV T29.Y, 0.0,7987; CM-NEXT: LSHR * T20.Z, T22.Y, literal.y,7988; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7989; CM-NEXT: ALU clause starting at 65:7990; CM-NEXT: AND_INT T20.X, T22.Y, literal.x,7991; CM-NEXT: MOV T20.Y, 0.0,7992; CM-NEXT: LSHR * T30.Z, T22.X, literal.y,7993; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7994; CM-NEXT: AND_INT T30.X, T22.X, literal.x,7995; CM-NEXT: MOV T30.Y, 0.0,7996; CM-NEXT: LSHR * T31.Z, T22.W, literal.y,7997; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7998; CM-NEXT: AND_INT T31.X, T22.W, literal.x,7999; CM-NEXT: MOV T31.Y, 0.0,8000; CM-NEXT: LSHR * T32.Z, T22.Z, literal.y,8001; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8002; CM-NEXT: AND_INT T32.X, T22.Z, literal.x,8003; CM-NEXT: MOV T32.Y, 0.0,8004; CM-NEXT: LSHR * T22.Z, T23.Y, literal.y,8005; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8006; CM-NEXT: AND_INT T22.X, T23.Y, literal.x,8007; CM-NEXT: MOV T22.Y, 0.0,8008; CM-NEXT: LSHR * T33.Z, T23.X, literal.y,8009; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8010; CM-NEXT: AND_INT T33.X, T23.X, literal.x,8011; CM-NEXT: MOV T33.Y, 0.0,8012; CM-NEXT: LSHR * T34.Z, T23.W, literal.y,8013; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8014; CM-NEXT: AND_INT T34.X, T23.W, literal.x,8015; CM-NEXT: MOV T34.Y, 0.0,8016; CM-NEXT: LSHR * T35.Z, T23.Z, literal.y,8017; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8018; CM-NEXT: AND_INT T35.X, T23.Z, literal.x,8019; CM-NEXT: MOV T35.Y, 0.0,8020; CM-NEXT: MOV * T19.W, 0.0,8021; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)8022; CM-NEXT: MOV * T24.W, 0.0,8023; CM-NEXT: MOV * T25.W, 0.0,8024; CM-NEXT: MOV * T26.W, 0.0,8025; CM-NEXT: MOV * T21.W, 0.0,8026; CM-NEXT: MOV * T27.W, 0.0,8027; CM-NEXT: MOV * T28.W, 0.0,8028; CM-NEXT: MOV * T29.W, 0.0,8029; CM-NEXT: MOV * T20.W, 0.0,8030; CM-NEXT: MOV * T30.W, 0.0,8031; CM-NEXT: MOV * T31.W, 0.0,8032; CM-NEXT: MOV * T32.W, 0.0,8033; CM-NEXT: MOV * T22.W, 0.0,8034; CM-NEXT: MOV * T33.W, 0.0,8035; CM-NEXT: MOV * T34.W, 0.0,8036; CM-NEXT: MOV * T35.W, 0.0,8037; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,8038; CM-NEXT: 224(3.138909e-43), 0(0.000000e+00)8039; CM-NEXT: LSHR T23.X, PV.W, literal.x,8040; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8041; CM-NEXT: 2(2.802597e-45), 240(3.363116e-43)8042; CM-NEXT: LSHR T36.X, PV.W, literal.x,8043; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8044; CM-NEXT: 2(2.802597e-45), 192(2.690493e-43)8045; CM-NEXT: LSHR T37.X, PV.W, literal.x,8046; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8047; CM-NEXT: 2(2.802597e-45), 208(2.914701e-43)8048; CM-NEXT: LSHR T38.X, PV.W, literal.x,8049; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8050; CM-NEXT: 2(2.802597e-45), 160(2.242078e-43)8051; CM-NEXT: LSHR T39.X, PV.W, literal.x,8052; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8053; CM-NEXT: 2(2.802597e-45), 176(2.466285e-43)8054; CM-NEXT: LSHR T40.X, PV.W, literal.x,8055; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8056; CM-NEXT: 2(2.802597e-45), 128(1.793662e-43)8057; CM-NEXT: LSHR T41.X, PV.W, literal.x,8058; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8059; CM-NEXT: 2(2.802597e-45), 144(2.017870e-43)8060; CM-NEXT: LSHR T42.X, PV.W, literal.x,8061; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8062; CM-NEXT: 2(2.802597e-45), 96(1.345247e-43)8063; CM-NEXT: LSHR T43.X, PV.W, literal.x,8064; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8065; CM-NEXT: 2(2.802597e-45), 112(1.569454e-43)8066; CM-NEXT: LSHR T44.X, PV.W, literal.x,8067; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8068; CM-NEXT: 2(2.802597e-45), 64(8.968310e-44)8069; CM-NEXT: LSHR T45.X, PV.W, literal.x,8070; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8071; CM-NEXT: 2(2.802597e-45), 80(1.121039e-43)8072; CM-NEXT: LSHR T46.X, PV.W, literal.x,8073; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8074; CM-NEXT: 2(2.802597e-45), 32(4.484155e-44)8075; CM-NEXT: LSHR T47.X, PV.W, literal.x,8076; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8077; CM-NEXT: 2(2.802597e-45), 48(6.726233e-44)8078; CM-NEXT: LSHR * T48.X, PV.W, literal.x,8079; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)8080; CM-NEXT: LSHR T49.X, KC0[2].Y, literal.x,8081; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8082; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)8083; CM-NEXT: LSHR * T50.X, PV.W, literal.x,8084; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)8085 %load = load <32 x i16>, ptr addrspace(1) %in8086 %ext = zext <32 x i16> %load to <32 x i64>8087 store <32 x i64> %ext, ptr addrspace(1) %out8088 ret void8089}8090 8091define amdgpu_kernel void @global_sextload_v32i16_to_v32i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {8092; GCN-NOHSA-SI-LABEL: global_sextload_v32i16_to_v32i64:8093; GCN-NOHSA-SI: ; %bb.0:8094; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x98095; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0008096; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -18097; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s28098; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s38099; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)8100; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s68101; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s78102; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:488103; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:328104; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s48105; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s58106; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[8:11], off, s[8:11], 08107; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:168108; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(3)8109; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v20, 16, v148110; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v21, 16, v128111; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(2)8112; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v16, 16, v08113; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)8114; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v17, 16, v68115; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v18, 16, v48116; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v19, 16, v108117; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v22, 16, v88118; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 31, v158119; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 16, v158120; GCN-NOHSA-SI-NEXT: v_bfe_i32 v23, v15, 0, 168121; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v24, 31, v238122; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:2408123; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8124; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 31, v138125; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 16, v138126; GCN-NOHSA-SI-NEXT: v_bfe_i32 v23, v13, 0, 168127; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v24, 31, v238128; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:2088129; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8130; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 31, v38131; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 16, v38132; GCN-NOHSA-SI-NEXT: v_bfe_i32 v23, v3, 0, 168133; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v24, 31, v238134; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:1768135; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8136; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 31, v18137; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 16, v18138; GCN-NOHSA-SI-NEXT: v_bfe_i32 v23, v1, 0, 168139; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v24, 31, v238140; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:1448141; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8142; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 31, v78143; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 16, v78144; GCN-NOHSA-SI-NEXT: v_bfe_i32 v23, v7, 0, 168145; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v24, 31, v238146; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:1128147; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8148; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 31, v58149; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 16, v58150; GCN-NOHSA-SI-NEXT: v_bfe_i32 v23, v5, 0, 168151; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v24, 31, v238152; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:808153; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8154; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 31, v118155; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 16, v118156; GCN-NOHSA-SI-NEXT: v_bfe_i32 v23, v11, 0, 168157; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v24, 31, v238158; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:488159; GCN-NOHSA-SI-NEXT: v_bfe_i32 v11, v12, 0, 168160; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8161; GCN-NOHSA-SI-NEXT: v_bfe_i32 v23, v14, 0, 168162; GCN-NOHSA-SI-NEXT: v_bfe_i32 v13, v21, 0, 168163; GCN-NOHSA-SI-NEXT: v_bfe_i32 v25, v20, 0, 168164; GCN-NOHSA-SI-NEXT: v_bfe_i32 v3, v22, 0, 168165; GCN-NOHSA-SI-NEXT: v_bfe_i32 v1, v8, 0, 168166; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v24, 31, v238167; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v26, 31, v258168; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:2248169; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v8, 31, v98170; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 16, v98171; GCN-NOHSA-SI-NEXT: v_bfe_i32 v5, v9, 0, 168172; GCN-NOHSA-SI-NEXT: v_bfe_i32 v9, v10, 0, 168173; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v12, 31, v118174; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v14, 31, v138175; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[11:14], off, s[0:3], 0 offset:1928176; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8177; GCN-NOHSA-SI-NEXT: v_bfe_i32 v13, v4, 0, 168178; GCN-NOHSA-SI-NEXT: v_bfe_i32 v20, v6, 0, 168179; GCN-NOHSA-SI-NEXT: v_bfe_i32 v11, v19, 0, 168180; GCN-NOHSA-SI-NEXT: v_bfe_i32 v15, v18, 0, 168181; GCN-NOHSA-SI-NEXT: v_bfe_i32 v22, v17, 0, 168182; GCN-NOHSA-SI-NEXT: v_bfe_i32 v26, v16, 0, 168183; GCN-NOHSA-SI-NEXT: v_bfe_i32 v24, v0, 0, 168184; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v0, 16, v28185; GCN-NOHSA-SI-NEXT: v_bfe_i32 v28, v2, 0, 168186; GCN-NOHSA-SI-NEXT: v_bfe_i32 v30, v0, 0, 168187; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v2, 31, v18188; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v10, 31, v98189; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v14, 31, v138190; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v21, 31, v208191; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v25, 31, v248192; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v29, 31, v288193; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v6, 31, v58194; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v4, 31, v38195; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v12, 31, v118196; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v16, 31, v158197; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v23, 31, v228198; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v27, 31, v268199; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v31, 31, v308200; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1608201; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:1288202; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:968203; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[13:16], off, s[0:3], 0 offset:648204; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[9:12], off, s[0:3], 0 offset:328205; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[1:4], off, s[0:3], 08206; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[5:8], off, s[0:3], 0 offset:168207; GCN-NOHSA-SI-NEXT: s_endpgm8208;8209; GCN-HSA-LABEL: global_sextload_v32i16_to_v32i64:8210; GCN-HSA: ; %bb.0:8211; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x08212; GCN-HSA-NEXT: s_add_i32 s12, s12, s178213; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s138214; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 88215; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)8216; GCN-HSA-NEXT: v_mov_b32_e32 v0, s28217; GCN-HSA-NEXT: v_mov_b32_e32 v1, s38218; GCN-HSA-NEXT: flat_load_dwordx4 v[12:15], v[0:1]8219; GCN-HSA-NEXT: s_add_u32 s4, s2, 488220; GCN-HSA-NEXT: s_addc_u32 s5, s3, 08221; GCN-HSA-NEXT: v_mov_b32_e32 v0, s48222; GCN-HSA-NEXT: v_mov_b32_e32 v1, s58223; GCN-HSA-NEXT: s_add_u32 s4, s2, 328224; GCN-HSA-NEXT: s_addc_u32 s5, s3, 08225; GCN-HSA-NEXT: s_add_u32 s2, s2, 168226; GCN-HSA-NEXT: s_addc_u32 s3, s3, 08227; GCN-HSA-NEXT: flat_load_dwordx4 v[8:11], v[0:1]8228; GCN-HSA-NEXT: v_mov_b32_e32 v5, s38229; GCN-HSA-NEXT: v_mov_b32_e32 v4, s28230; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[4:5]8231; GCN-HSA-NEXT: v_mov_b32_e32 v0, s48232; GCN-HSA-NEXT: v_mov_b32_e32 v1, s58233; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]8234; GCN-HSA-NEXT: s_add_u32 s2, s0, 328235; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08236; GCN-HSA-NEXT: v_mov_b32_e32 v22, s38237; GCN-HSA-NEXT: v_mov_b32_e32 v21, s28238; GCN-HSA-NEXT: s_add_u32 s2, s0, 488239; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08240; GCN-HSA-NEXT: v_mov_b32_e32 v24, s38241; GCN-HSA-NEXT: v_mov_b32_e32 v23, s28242; GCN-HSA-NEXT: s_add_u32 s2, s0, 168243; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08244; GCN-HSA-NEXT: v_mov_b32_e32 v26, s38245; GCN-HSA-NEXT: v_mov_b32_e32 v25, s28246; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xe08247; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08248; GCN-HSA-NEXT: v_mov_b32_e32 v20, s18249; GCN-HSA-NEXT: v_mov_b32_e32 v19, s08250; GCN-HSA-NEXT: s_waitcnt vmcnt(3)8251; GCN-HSA-NEXT: v_ashrrev_i32_e32 v18, 31, v158252; GCN-HSA-NEXT: v_ashrrev_i32_e32 v17, 16, v158253; GCN-HSA-NEXT: v_bfe_i32 v15, v15, 0, 168254; GCN-HSA-NEXT: v_ashrrev_i32_e32 v16, 31, v158255; GCN-HSA-NEXT: flat_store_dwordx4 v[23:24], v[15:18]8256; GCN-HSA-NEXT: v_mov_b32_e32 v24, s38257; GCN-HSA-NEXT: v_bfe_i32 v15, v13, 0, 168258; GCN-HSA-NEXT: v_mov_b32_e32 v23, s28259; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xf08260; GCN-HSA-NEXT: v_ashrrev_i32_e32 v18, 31, v138261; GCN-HSA-NEXT: v_ashrrev_i32_e32 v17, 16, v138262; GCN-HSA-NEXT: v_ashrrev_i32_e32 v16, 31, v158263; GCN-HSA-NEXT: v_lshrrev_b32_e32 v13, 16, v148264; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08265; GCN-HSA-NEXT: flat_store_dwordx4 v[25:26], v[15:18]8266; GCN-HSA-NEXT: s_waitcnt vmcnt(4)8267; GCN-HSA-NEXT: v_lshrrev_b32_e32 v27, 16, v108268; GCN-HSA-NEXT: v_bfe_i32 v15, v13, 0, 168269; GCN-HSA-NEXT: v_bfe_i32 v13, v14, 0, 168270; GCN-HSA-NEXT: v_mov_b32_e32 v18, s38271; GCN-HSA-NEXT: v_ashrrev_i32_e32 v14, 31, v138272; GCN-HSA-NEXT: v_ashrrev_i32_e32 v16, 31, v158273; GCN-HSA-NEXT: v_mov_b32_e32 v17, s28274; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xc08275; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[13:16]8276; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08277; GCN-HSA-NEXT: v_lshrrev_b32_e32 v14, 16, v128278; GCN-HSA-NEXT: v_bfe_i32 v12, v12, 0, 168279; GCN-HSA-NEXT: v_bfe_i32 v14, v14, 0, 168280; GCN-HSA-NEXT: v_mov_b32_e32 v22, s38281; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 31, v128282; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 31, v148283; GCN-HSA-NEXT: v_mov_b32_e32 v21, s28284; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xd08285; GCN-HSA-NEXT: flat_store_dwordx4 v[19:20], v[12:15]8286; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08287; GCN-HSA-NEXT: v_ashrrev_i32_e32 v14, 31, v118288; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 16, v118289; GCN-HSA-NEXT: v_bfe_i32 v11, v11, 0, 168290; GCN-HSA-NEXT: v_ashrrev_i32_e32 v12, 31, v118291; GCN-HSA-NEXT: v_mov_b32_e32 v26, s38292; GCN-HSA-NEXT: v_lshrrev_b32_e32 v28, 16, v88293; GCN-HSA-NEXT: flat_store_dwordx4 v[17:18], v[11:14]8294; GCN-HSA-NEXT: v_mov_b32_e32 v25, s28295; GCN-HSA-NEXT: v_bfe_i32 v11, v9, 0, 168296; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xa08297; GCN-HSA-NEXT: v_ashrrev_i32_e32 v14, 31, v98298; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 16, v98299; GCN-HSA-NEXT: v_bfe_i32 v15, v10, 0, 168300; GCN-HSA-NEXT: v_ashrrev_i32_e32 v12, 31, v118301; GCN-HSA-NEXT: v_bfe_i32 v10, v28, 0, 168302; GCN-HSA-NEXT: v_bfe_i32 v17, v27, 0, 168303; GCN-HSA-NEXT: v_bfe_i32 v8, v8, 0, 168304; GCN-HSA-NEXT: v_ashrrev_i32_e32 v16, 31, v158305; GCN-HSA-NEXT: s_waitcnt vmcnt(5)8306; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v28307; GCN-HSA-NEXT: flat_store_dwordx4 v[25:26], v[11:14]8308; GCN-HSA-NEXT: v_ashrrev_i32_e32 v18, 31, v178309; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 31, v108310; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08311; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 31, v88312; GCN-HSA-NEXT: v_bfe_i32 v12, v2, 0, 168313; GCN-HSA-NEXT: v_bfe_i32 v14, v19, 0, 168314; GCN-HSA-NEXT: flat_store_dwordx4 v[23:24], v[15:18]8315; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[8:11]8316; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 31, v128317; GCN-HSA-NEXT: v_mov_b32_e32 v11, s38318; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 31, v148319; GCN-HSA-NEXT: v_mov_b32_e32 v10, s28320; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xb08321; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[12:15]8322; GCN-HSA-NEXT: v_bfe_i32 v10, v3, 0, 168323; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 31, v38324; GCN-HSA-NEXT: v_ashrrev_i32_e32 v12, 16, v38325; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08326; GCN-HSA-NEXT: v_mov_b32_e32 v2, s28327; GCN-HSA-NEXT: v_lshrrev_b32_e32 v27, 16, v08328; GCN-HSA-NEXT: v_mov_b32_e32 v3, s38329; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x808330; GCN-HSA-NEXT: v_ashrrev_i32_e32 v23, 31, v18331; GCN-HSA-NEXT: v_ashrrev_i32_e32 v22, 16, v18332; GCN-HSA-NEXT: v_bfe_i32 v20, v1, 0, 168333; GCN-HSA-NEXT: v_bfe_i32 v24, v0, 0, 168334; GCN-HSA-NEXT: v_bfe_i32 v26, v27, 0, 168335; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08336; GCN-HSA-NEXT: v_mov_b32_e32 v0, s28337; GCN-HSA-NEXT: v_ashrrev_i32_e32 v25, 31, v248338; GCN-HSA-NEXT: v_ashrrev_i32_e32 v27, 31, v268339; GCN-HSA-NEXT: v_mov_b32_e32 v1, s38340; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x908341; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[24:27]8342; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08343; GCN-HSA-NEXT: v_mov_b32_e32 v0, s28344; GCN-HSA-NEXT: v_lshrrev_b32_e32 v18, 16, v68345; GCN-HSA-NEXT: v_ashrrev_i32_e32 v21, 31, v208346; GCN-HSA-NEXT: v_mov_b32_e32 v1, s38347; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x608348; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 16, v48349; GCN-HSA-NEXT: v_bfe_i32 v16, v6, 0, 168350; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 31, v108351; GCN-HSA-NEXT: v_bfe_i32 v18, v18, 0, 168352; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[20:23]8353; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08354; GCN-HSA-NEXT: v_mov_b32_e32 v0, s28355; GCN-HSA-NEXT: v_ashrrev_i32_e32 v17, 31, v168356; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[10:13]8357; GCN-HSA-NEXT: v_mov_b32_e32 v1, s38358; GCN-HSA-NEXT: v_bfe_i32 v10, v19, 0, 168359; GCN-HSA-NEXT: v_ashrrev_i32_e32 v19, 31, v188360; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x708361; GCN-HSA-NEXT: v_bfe_i32 v2, v7, 0, 168362; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[16:19]8363; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08364; GCN-HSA-NEXT: v_mov_b32_e32 v0, s28365; GCN-HSA-NEXT: v_bfe_i32 v8, v4, 0, 168366; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 31, v58367; GCN-HSA-NEXT: v_ashrrev_i32_e32 v14, 16, v58368; GCN-HSA-NEXT: v_bfe_i32 v12, v5, 0, 168369; GCN-HSA-NEXT: v_ashrrev_i32_e32 v5, 31, v78370; GCN-HSA-NEXT: v_ashrrev_i32_e32 v4, 16, v78371; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 31, v28372; GCN-HSA-NEXT: v_mov_b32_e32 v1, s38373; GCN-HSA-NEXT: s_add_u32 s2, s0, 648374; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[2:5]8375; GCN-HSA-NEXT: s_addc_u32 s3, s1, 08376; GCN-HSA-NEXT: v_mov_b32_e32 v0, s28377; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 31, v88378; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 31, v108379; GCN-HSA-NEXT: v_mov_b32_e32 v1, s38380; GCN-HSA-NEXT: s_add_u32 s0, s0, 0x508381; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[8:11]8382; GCN-HSA-NEXT: s_addc_u32 s1, s1, 08383; GCN-HSA-NEXT: v_mov_b32_e32 v0, s08384; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 31, v128385; GCN-HSA-NEXT: v_mov_b32_e32 v1, s18386; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[12:15]8387; GCN-HSA-NEXT: s_endpgm8388;8389; GCN-NOHSA-VI-LABEL: global_sextload_v32i16_to_v32i64:8390; GCN-NOHSA-VI: ; %bb.0:8391; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x248392; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0008393; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -18394; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s28395; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s38396; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)8397; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s68398; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s78399; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[7:10], off, s[8:11], 08400; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[15:18], off, s[8:11], 0 offset:488401; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[11:14], off, s[8:11], 0 offset:328402; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[3:6], off, s[8:11], 0 offset:168403; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s48404; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s58405; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(3)8406; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v88407; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(2)8408; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v178409; GCN-NOHSA-VI-NEXT: v_bfe_i32 v19, v17, 0, 168410; GCN-NOHSA-VI-NEXT: v_bfe_i32 v21, v2, 0, 168411; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v20, 31, v198412; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v22, 31, v218413; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v188414; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[19:22], off, s[0:3], 0 offset:2248415; GCN-NOHSA-VI-NEXT: v_bfe_i32 v17, v18, 0, 168416; GCN-NOHSA-VI-NEXT: v_bfe_i32 v19, v2, 0, 168417; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v18, 31, v178418; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v20, 31, v198419; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v158420; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[17:20], off, s[0:3], 0 offset:2408421; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(2)8422; GCN-NOHSA-VI-NEXT: v_bfe_i32 v22, v4, 0, 168423; GCN-NOHSA-VI-NEXT: v_bfe_i32 v17, v15, 0, 168424; GCN-NOHSA-VI-NEXT: v_bfe_i32 v19, v2, 0, 168425; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v18, 31, v178426; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v20, 31, v198427; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v168428; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[17:20], off, s[0:3], 0 offset:1928429; GCN-NOHSA-VI-NEXT: v_bfe_i32 v15, v16, 0, 168430; GCN-NOHSA-VI-NEXT: v_bfe_i32 v17, v2, 0, 168431; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v16, 31, v158432; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v18, 31, v178433; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v138434; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[15:18], off, s[0:3], 0 offset:2088435; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v20, 16, v98436; GCN-NOHSA-VI-NEXT: v_bfe_i32 v15, v13, 0, 168437; GCN-NOHSA-VI-NEXT: v_bfe_i32 v17, v2, 0, 168438; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v16, 31, v158439; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v18, 31, v178440; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v148441; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[15:18], off, s[0:3], 0 offset:1608442; GCN-NOHSA-VI-NEXT: v_bfe_i32 v13, v14, 0, 168443; GCN-NOHSA-VI-NEXT: v_bfe_i32 v15, v2, 0, 168444; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v14, 31, v138445; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v16, 31, v158446; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v118447; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[13:16], off, s[0:3], 0 offset:1768448; GCN-NOHSA-VI-NEXT: v_bfe_i32 v18, v9, 0, 168449; GCN-NOHSA-VI-NEXT: v_bfe_i32 v13, v11, 0, 168450; GCN-NOHSA-VI-NEXT: v_bfe_i32 v15, v2, 0, 168451; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v14, 31, v138452; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v16, 31, v158453; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v128454; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[13:16], off, s[0:3], 0 offset:1288455; GCN-NOHSA-VI-NEXT: v_bfe_i32 v9, v5, 0, 168456; GCN-NOHSA-VI-NEXT: v_bfe_i32 v16, v2, 0, 168457; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 16, v58458; GCN-NOHSA-VI-NEXT: v_bfe_i32 v11, v2, 0, 168459; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v1, 0, 168460; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v48461; GCN-NOHSA-VI-NEXT: v_bfe_i32 v14, v12, 0, 168462; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v4, 16, v38463; GCN-NOHSA-VI-NEXT: v_bfe_i32 v24, v1, 0, 168464; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v68465; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v8, 0, 168466; GCN-NOHSA-VI-NEXT: v_bfe_i32 v8, v7, 0, 168467; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v7, 16, v78468; GCN-NOHSA-VI-NEXT: v_bfe_i32 v13, v10, 0, 168469; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v19, 16, v108470; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v15, 31, v148471; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v17, 31, v168472; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v10, 31, v98473; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v12, 31, v118474; GCN-NOHSA-VI-NEXT: v_bfe_i32 v28, v4, 0, 168475; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v6, 0, 168476; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v1, 0, 168477; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[14:17], off, s[0:3], 0 offset:1448478; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[9:12], off, s[0:3], 0 offset:968479; GCN-NOHSA-VI-NEXT: v_bfe_i32 v15, v19, 0, 168480; GCN-NOHSA-VI-NEXT: v_bfe_i32 v10, v7, 0, 168481; GCN-NOHSA-VI-NEXT: v_bfe_i32 v20, v20, 0, 168482; GCN-NOHSA-VI-NEXT: v_bfe_i32 v26, v3, 0, 168483; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v5, 31, v48484; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 31, v68485; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v08486; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 31, v28487; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v9, 31, v88488; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v11, 31, v108489; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v14, 31, v138490; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v16, 31, v158491; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v19, 31, v188492; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v21, 31, v208493; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v23, 31, v228494; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v25, 31, v248495; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v27, 31, v268496; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v29, 31, v288497; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1128498; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[26:29], off, s[0:3], 0 offset:648499; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[22:25], off, s[0:3], 0 offset:808500; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[18:21], off, s[0:3], 0 offset:328501; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[13:16], off, s[0:3], 0 offset:488502; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 08503; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:168504; GCN-NOHSA-VI-NEXT: s_endpgm8505;8506; EG-LABEL: global_sextload_v32i16_to_v32i64:8507; EG: ; %bb.0:8508; EG-NEXT: ALU 0, @30, KC0[CB0:0-32], KC1[]8509; EG-NEXT: TEX 0 @228510; EG-NEXT: ALU 56, @31, KC0[CB0:0-32], KC1[]8511; EG-NEXT: TEX 2 @248512; EG-NEXT: ALU 74, @88, KC0[CB0:0-32], KC1[]8513; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T50.XYZW, T38.X, 08514; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T49.XYZW, T36.X, 08515; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T48.XYZW, T34.X, 08516; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T39.XYZW, T33.X, 08517; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T47.XYZW, T32.X, 08518; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T46.XYZW, T31.X, 08519; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T45.XYZW, T30.X, 08520; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T40.XYZW, T29.X, 08521; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T44.XYZW, T28.X, 08522; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T43.XYZW, T27.X, 08523; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T42.XYZW, T26.X, 08524; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T25.X, 08525; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T41.XYZW, T24.X, 08526; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T23.X, 08527; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T37.XYZW, T22.X, 08528; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T35.XYZW, T21.X, 18529; EG-NEXT: CF_END8530; EG-NEXT: Fetch clause starting at 22:8531; EG-NEXT: VTX_READ_128 T20.XYZW, T19.X, 0, #18532; EG-NEXT: Fetch clause starting at 24:8533; EG-NEXT: VTX_READ_128 T38.XYZW, T19.X, 48, #18534; EG-NEXT: VTX_READ_128 T39.XYZW, T19.X, 32, #18535; EG-NEXT: VTX_READ_128 T40.XYZW, T19.X, 16, #18536; EG-NEXT: ALU clause starting at 30:8537; EG-NEXT: MOV * T19.X, KC0[2].Z,8538; EG-NEXT: ALU clause starting at 31:8539; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,8540; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8541; EG-NEXT: LSHR T21.X, PV.W, literal.x,8542; EG-NEXT: LSHR * T22.X, KC0[2].Y, literal.x,8543; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)8544; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,8545; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)8546; EG-NEXT: LSHR T23.X, PV.W, literal.x,8547; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8548; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)8549; EG-NEXT: LSHR T24.X, PV.W, literal.x,8550; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8551; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)8552; EG-NEXT: LSHR T25.X, PV.W, literal.x,8553; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8554; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)8555; EG-NEXT: LSHR T26.X, PV.W, literal.x,8556; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8557; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)8558; EG-NEXT: LSHR T27.X, PV.W, literal.x,8559; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8560; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)8561; EG-NEXT: LSHR T28.X, PV.W, literal.x,8562; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8563; EG-NEXT: 2(2.802597e-45), 144(2.017870e-43)8564; EG-NEXT: LSHR T29.X, PV.W, literal.x,8565; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8566; EG-NEXT: 2(2.802597e-45), 128(1.793662e-43)8567; EG-NEXT: LSHR T30.X, PV.W, literal.x,8568; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8569; EG-NEXT: 2(2.802597e-45), 176(2.466285e-43)8570; EG-NEXT: LSHR T31.X, PV.W, literal.x,8571; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8572; EG-NEXT: 2(2.802597e-45), 160(2.242078e-43)8573; EG-NEXT: LSHR T32.X, PV.W, literal.x,8574; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8575; EG-NEXT: 2(2.802597e-45), 208(2.914701e-43)8576; EG-NEXT: LSHR T33.X, PV.W, literal.x,8577; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8578; EG-NEXT: 2(2.802597e-45), 192(2.690493e-43)8579; EG-NEXT: LSHR T34.X, PV.W, literal.x,8580; EG-NEXT: ADD_INT T0.W, KC0[2].Y, literal.y,8581; EG-NEXT: ASHR * T35.W, T20.Y, literal.z,8582; EG-NEXT: 2(2.802597e-45), 240(3.363116e-43)8583; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)8584; EG-NEXT: LSHR T36.X, PV.W, literal.x,8585; EG-NEXT: ASHR T35.Z, T20.Y, literal.y,8586; EG-NEXT: ASHR * T37.W, T20.X, literal.z,8587; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)8588; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)8589; EG-NEXT: BFE_INT T35.X, T20.Y, 0.0, literal.x,8590; EG-NEXT: ASHR * T37.Z, T20.X, literal.x,8591; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8592; EG-NEXT: BFE_INT T37.X, T20.X, 0.0, literal.x,8593; EG-NEXT: ASHR T35.Y, PV.X, literal.y,8594; EG-NEXT: ASHR * T19.W, T20.W, literal.y,8595; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8596; EG-NEXT: ALU clause starting at 88:8597; EG-NEXT: ASHR T19.Z, T20.W, literal.x,8598; EG-NEXT: ASHR * T41.W, T20.Z, literal.y,8599; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8600; EG-NEXT: BFE_INT T19.X, T20.W, 0.0, literal.x,8601; EG-NEXT: ASHR T37.Y, T37.X, literal.y,8602; EG-NEXT: ASHR T41.Z, T20.Z, literal.x,8603; EG-NEXT: ASHR * T20.W, T40.Y, literal.y,8604; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8605; EG-NEXT: BFE_INT T41.X, T20.Z, 0.0, literal.x,8606; EG-NEXT: ASHR T19.Y, PV.X, literal.y,8607; EG-NEXT: ASHR T20.Z, T40.Y, literal.x,8608; EG-NEXT: ASHR * T42.W, T40.X, literal.y,8609; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8610; EG-NEXT: BFE_INT T20.X, T40.Y, 0.0, literal.x,8611; EG-NEXT: ASHR T41.Y, PV.X, literal.y,8612; EG-NEXT: ASHR T42.Z, T40.X, literal.x,8613; EG-NEXT: ASHR * T43.W, T40.W, literal.y,8614; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8615; EG-NEXT: BFE_INT T42.X, T40.X, 0.0, literal.x,8616; EG-NEXT: ASHR T20.Y, PV.X, literal.y,8617; EG-NEXT: ASHR T43.Z, T40.W, literal.x,8618; EG-NEXT: ASHR * T44.W, T40.Z, literal.y,8619; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8620; EG-NEXT: BFE_INT T43.X, T40.W, 0.0, literal.x,8621; EG-NEXT: ASHR T42.Y, PV.X, literal.y,8622; EG-NEXT: ASHR T44.Z, T40.Z, literal.x,8623; EG-NEXT: ASHR * T40.W, T39.Y, literal.y,8624; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8625; EG-NEXT: BFE_INT T44.X, T40.Z, 0.0, literal.x,8626; EG-NEXT: ASHR T43.Y, PV.X, literal.y,8627; EG-NEXT: ASHR T40.Z, T39.Y, literal.x,8628; EG-NEXT: ASHR * T45.W, T39.X, literal.y,8629; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8630; EG-NEXT: BFE_INT T40.X, T39.Y, 0.0, literal.x,8631; EG-NEXT: ASHR T44.Y, PV.X, literal.y,8632; EG-NEXT: ASHR T45.Z, T39.X, literal.x,8633; EG-NEXT: ASHR * T46.W, T39.W, literal.y,8634; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8635; EG-NEXT: BFE_INT T45.X, T39.X, 0.0, literal.x,8636; EG-NEXT: ASHR T40.Y, PV.X, literal.y,8637; EG-NEXT: ASHR T46.Z, T39.W, literal.x,8638; EG-NEXT: ASHR * T47.W, T39.Z, literal.y,8639; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8640; EG-NEXT: BFE_INT T46.X, T39.W, 0.0, literal.x,8641; EG-NEXT: ASHR T45.Y, PV.X, literal.y,8642; EG-NEXT: ASHR T47.Z, T39.Z, literal.x,8643; EG-NEXT: ASHR * T39.W, T38.Y, literal.y,8644; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8645; EG-NEXT: BFE_INT T47.X, T39.Z, 0.0, literal.x,8646; EG-NEXT: ASHR T46.Y, PV.X, literal.y,8647; EG-NEXT: ASHR T39.Z, T38.Y, literal.x,8648; EG-NEXT: ASHR * T48.W, T38.X, literal.y,8649; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8650; EG-NEXT: BFE_INT T39.X, T38.Y, 0.0, literal.x,8651; EG-NEXT: ASHR T47.Y, PV.X, literal.y,8652; EG-NEXT: ASHR T48.Z, T38.X, literal.x,8653; EG-NEXT: ASHR * T49.W, T38.W, literal.y,8654; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8655; EG-NEXT: BFE_INT T48.X, T38.X, 0.0, literal.x,8656; EG-NEXT: ASHR T39.Y, PV.X, literal.y,8657; EG-NEXT: ASHR T49.Z, T38.W, literal.x,8658; EG-NEXT: ASHR * T50.W, T38.Z, literal.y,8659; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8660; EG-NEXT: BFE_INT T49.X, T38.W, 0.0, literal.x,8661; EG-NEXT: ASHR T48.Y, PV.X, literal.y,8662; EG-NEXT: ASHR * T50.Z, T38.Z, literal.x,8663; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8664; EG-NEXT: BFE_INT T50.X, T38.Z, 0.0, literal.x,8665; EG-NEXT: ASHR T49.Y, PV.X, literal.y,8666; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,8667; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8668; EG-NEXT: 224(3.138909e-43), 0(0.000000e+00)8669; EG-NEXT: LSHR T38.X, PV.W, literal.x,8670; EG-NEXT: ASHR * T50.Y, PV.X, literal.y,8671; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)8672;8673; CM-LABEL: global_sextload_v32i16_to_v32i64:8674; CM: ; %bb.0:8675; CM-NEXT: ALU 0, @30, KC0[CB0:0-32], KC1[]8676; CM-NEXT: TEX 0 @228677; CM-NEXT: ALU 55, @31, KC0[CB0:0-32], KC1[]8678; CM-NEXT: TEX 2 @248679; CM-NEXT: ALU 73, @87, KC0[CB0:0-32], KC1[]8680; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T38, T50.X8681; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T49, T36.X8682; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T48, T34.X8683; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T47, T33.X8684; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T39, T32.X8685; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T46, T31.X8686; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T45, T30.X8687; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T44, T29.X8688; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T40, T28.X8689; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T43, T27.X8690; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T42, T26.X8691; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T41, T25.X8692; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T20, T24.X8693; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T23.X8694; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T37, T22.X8695; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T35, T21.X8696; CM-NEXT: CF_END8697; CM-NEXT: Fetch clause starting at 22:8698; CM-NEXT: VTX_READ_128 T20.XYZW, T19.X, 48, #18699; CM-NEXT: Fetch clause starting at 24:8700; CM-NEXT: VTX_READ_128 T38.XYZW, T19.X, 0, #18701; CM-NEXT: VTX_READ_128 T39.XYZW, T19.X, 16, #18702; CM-NEXT: VTX_READ_128 T40.XYZW, T19.X, 32, #18703; CM-NEXT: ALU clause starting at 30:8704; CM-NEXT: MOV * T19.X, KC0[2].Z,8705; CM-NEXT: ALU clause starting at 31:8706; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,8707; CM-NEXT: 224(3.138909e-43), 0(0.000000e+00)8708; CM-NEXT: LSHR T21.X, PV.W, literal.x,8709; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8710; CM-NEXT: 2(2.802597e-45), 240(3.363116e-43)8711; CM-NEXT: LSHR T22.X, PV.W, literal.x,8712; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8713; CM-NEXT: 2(2.802597e-45), 192(2.690493e-43)8714; CM-NEXT: LSHR T23.X, PV.W, literal.x,8715; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8716; CM-NEXT: 2(2.802597e-45), 208(2.914701e-43)8717; CM-NEXT: LSHR T24.X, PV.W, literal.x,8718; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8719; CM-NEXT: 2(2.802597e-45), 160(2.242078e-43)8720; CM-NEXT: LSHR T25.X, PV.W, literal.x,8721; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8722; CM-NEXT: 2(2.802597e-45), 176(2.466285e-43)8723; CM-NEXT: LSHR T26.X, PV.W, literal.x,8724; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8725; CM-NEXT: 2(2.802597e-45), 128(1.793662e-43)8726; CM-NEXT: LSHR T27.X, PV.W, literal.x,8727; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8728; CM-NEXT: 2(2.802597e-45), 144(2.017870e-43)8729; CM-NEXT: LSHR T28.X, PV.W, literal.x,8730; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8731; CM-NEXT: 2(2.802597e-45), 96(1.345247e-43)8732; CM-NEXT: LSHR T29.X, PV.W, literal.x,8733; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8734; CM-NEXT: 2(2.802597e-45), 112(1.569454e-43)8735; CM-NEXT: LSHR T30.X, PV.W, literal.x,8736; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8737; CM-NEXT: 2(2.802597e-45), 64(8.968310e-44)8738; CM-NEXT: LSHR T31.X, PV.W, literal.x,8739; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8740; CM-NEXT: 2(2.802597e-45), 80(1.121039e-43)8741; CM-NEXT: LSHR T32.X, PV.W, literal.x,8742; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8743; CM-NEXT: 2(2.802597e-45), 32(4.484155e-44)8744; CM-NEXT: LSHR T33.X, PV.W, literal.x,8745; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8746; CM-NEXT: 2(2.802597e-45), 48(6.726233e-44)8747; CM-NEXT: LSHR T34.X, PV.W, literal.x,8748; CM-NEXT: ASHR * T35.W, T20.Z, literal.y,8749; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)8750; CM-NEXT: LSHR T36.X, KC0[2].Y, literal.x,8751; CM-NEXT: ASHR T35.Z, T20.Z, literal.y,8752; CM-NEXT: ASHR * T37.W, T20.W, literal.z,8753; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)8754; CM-NEXT: 31(4.344025e-44), 0(0.000000e+00)8755; CM-NEXT: BFE_INT T35.X, T20.Z, 0.0, literal.x,8756; CM-NEXT: ASHR * T37.Z, T20.W, literal.x,8757; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)8758; CM-NEXT: BFE_INT T37.X, T20.W, 0.0, literal.x,8759; CM-NEXT: ASHR T35.Y, PV.X, literal.y,8760; CM-NEXT: ASHR * T19.W, T20.X, literal.y,8761; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8762; CM-NEXT: ALU clause starting at 87:8763; CM-NEXT: ASHR T19.Z, T20.X, literal.x,8764; CM-NEXT: ASHR * T20.W, T20.Y, literal.y,8765; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8766; CM-NEXT: BFE_INT T19.X, T20.X, 0.0, literal.x,8767; CM-NEXT: ASHR T37.Y, T37.X, literal.y, BS:VEC_120/SCL_2128768; CM-NEXT: ASHR T20.Z, T20.Y, literal.x,8769; CM-NEXT: ASHR * T41.W, T40.Z, literal.y,8770; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8771; CM-NEXT: BFE_INT T20.X, T20.Y, 0.0, literal.x,8772; CM-NEXT: ASHR T19.Y, PV.X, literal.y,8773; CM-NEXT: ASHR T41.Z, T40.Z, literal.x,8774; CM-NEXT: ASHR * T42.W, T40.W, literal.y,8775; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8776; CM-NEXT: BFE_INT T41.X, T40.Z, 0.0, literal.x,8777; CM-NEXT: ASHR T20.Y, PV.X, literal.y,8778; CM-NEXT: ASHR T42.Z, T40.W, literal.x,8779; CM-NEXT: ASHR * T43.W, T40.X, literal.y,8780; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8781; CM-NEXT: BFE_INT T42.X, T40.W, 0.0, literal.x,8782; CM-NEXT: ASHR T41.Y, PV.X, literal.y,8783; CM-NEXT: ASHR T43.Z, T40.X, literal.x,8784; CM-NEXT: ASHR * T40.W, T40.Y, literal.y,8785; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8786; CM-NEXT: BFE_INT T43.X, T40.X, 0.0, literal.x,8787; CM-NEXT: ASHR T42.Y, PV.X, literal.y,8788; CM-NEXT: ASHR T40.Z, T40.Y, literal.x,8789; CM-NEXT: ASHR * T44.W, T39.Z, literal.y,8790; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8791; CM-NEXT: BFE_INT T40.X, T40.Y, 0.0, literal.x,8792; CM-NEXT: ASHR T43.Y, PV.X, literal.y,8793; CM-NEXT: ASHR T44.Z, T39.Z, literal.x,8794; CM-NEXT: ASHR * T45.W, T39.W, literal.y,8795; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8796; CM-NEXT: BFE_INT T44.X, T39.Z, 0.0, literal.x,8797; CM-NEXT: ASHR T40.Y, PV.X, literal.y,8798; CM-NEXT: ASHR T45.Z, T39.W, literal.x,8799; CM-NEXT: ASHR * T46.W, T39.X, literal.y,8800; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8801; CM-NEXT: BFE_INT T45.X, T39.W, 0.0, literal.x,8802; CM-NEXT: ASHR T44.Y, PV.X, literal.y,8803; CM-NEXT: ASHR T46.Z, T39.X, literal.x,8804; CM-NEXT: ASHR * T39.W, T39.Y, literal.y,8805; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8806; CM-NEXT: BFE_INT T46.X, T39.X, 0.0, literal.x,8807; CM-NEXT: ASHR T45.Y, PV.X, literal.y,8808; CM-NEXT: ASHR T39.Z, T39.Y, literal.x,8809; CM-NEXT: ASHR * T47.W, T38.Z, literal.y,8810; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8811; CM-NEXT: BFE_INT T39.X, T39.Y, 0.0, literal.x,8812; CM-NEXT: ASHR T46.Y, PV.X, literal.y,8813; CM-NEXT: ASHR T47.Z, T38.Z, literal.x,8814; CM-NEXT: ASHR * T48.W, T38.W, literal.y,8815; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8816; CM-NEXT: BFE_INT T47.X, T38.Z, 0.0, literal.x,8817; CM-NEXT: ASHR T39.Y, PV.X, literal.y,8818; CM-NEXT: ASHR T48.Z, T38.W, literal.x,8819; CM-NEXT: ASHR * T49.W, T38.X, literal.y,8820; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8821; CM-NEXT: BFE_INT T48.X, T38.W, 0.0, literal.x,8822; CM-NEXT: ASHR T47.Y, PV.X, literal.y,8823; CM-NEXT: ASHR T49.Z, T38.X, literal.x,8824; CM-NEXT: ASHR * T38.W, T38.Y, literal.y,8825; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8826; CM-NEXT: BFE_INT T49.X, T38.X, 0.0, literal.x,8827; CM-NEXT: ASHR T48.Y, PV.X, literal.y,8828; CM-NEXT: ASHR * T38.Z, T38.Y, literal.x,8829; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8830; CM-NEXT: BFE_INT T38.X, T38.Y, 0.0, literal.x,8831; CM-NEXT: ASHR T49.Y, PV.X, literal.y,8832; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,8833; CM-NEXT: 16(2.242078e-44), 31(4.344025e-44)8834; CM-NEXT: LSHR T50.X, PV.W, literal.x,8835; CM-NEXT: ASHR * T38.Y, PV.X, literal.y,8836; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)8837 %load = load <32 x i16>, ptr addrspace(1) %in8838 %ext = sext <32 x i16> %load to <32 x i64>8839 store <32 x i64> %ext, ptr addrspace(1) %out8840 ret void8841}8842 8843; define amdgpu_kernel void @global_zextload_v64i16_to_v64i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {8844; %load = load <64 x i16>, ptr addrspace(1) %in8845; %ext = zext <64 x i16> %load to <64 x i64>8846; store <64 x i64> %ext, ptr addrspace(1) %out8847; ret void8848; }8849 8850; define amdgpu_kernel void @global_sextload_v64i16_to_v64i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {8851; %load = load <64 x i16>, ptr addrspace(1) %in8852; %ext = sext <64 x i16> %load to <64 x i64>8853; store <64 x i64> %ext, ptr addrspace(1) %out8854; ret void8855; }8856 8857attributes #0 = { nounwind "amdgpu-flat-work-group-size"="1024,1024" }8858