9195 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn < %s | FileCheck --check-prefix=GCN-NOHSA-SI %s3; RUN: llc -mtriple=amdgcn--amdhsa -mcpu=kaveri < %s | FileCheck --check-prefix=GCN-HSA %s4; RUN: llc -mtriple=amdgcn -mcpu=tonga < %s | FileCheck --check-prefix=GCN-NOHSA-VI %s5; RUN: llc -mtriple=r600 -mcpu=redwood < %s | FileCheck --check-prefix=EG %s6; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=+real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-TRUE16 %s7; RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -mattr=-real-true16 < %s | FileCheck -check-prefixes=GFX12,GFX12-FAKE16 %s8 9define amdgpu_kernel void @constant_load_i16(ptr addrspace(1) %out, ptr addrspace(4) %in) {10; GCN-NOHSA-SI-LABEL: constant_load_i16:11; GCN-NOHSA-SI: ; %bb.0: ; %entry12; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x913; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf00014; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -115; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s616; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s717; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)18; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s219; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s320; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 021; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s022; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s123; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)24; GCN-NOHSA-SI-NEXT: buffer_store_short v0, off, s[4:7], 025; GCN-NOHSA-SI-NEXT: s_endpgm26;27; GCN-HSA-LABEL: constant_load_i16:28; GCN-HSA: ; %bb.0: ; %entry29; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x030; GCN-HSA-NEXT: s_add_i32 s12, s12, s1731; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s1332; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 833; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)34; GCN-HSA-NEXT: v_mov_b32_e32 v0, s235; GCN-HSA-NEXT: v_mov_b32_e32 v1, s336; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]37; GCN-HSA-NEXT: v_mov_b32_e32 v0, s038; GCN-HSA-NEXT: v_mov_b32_e32 v1, s139; GCN-HSA-NEXT: s_waitcnt vmcnt(0)40; GCN-HSA-NEXT: flat_store_short v[0:1], v241; GCN-HSA-NEXT: s_endpgm42;43; GCN-NOHSA-VI-LABEL: constant_load_i16:44; GCN-NOHSA-VI: ; %bb.0: ; %entry45; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x2446; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)47; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s248; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s349; GCN-NOHSA-VI-NEXT: flat_load_ushort v2, v[0:1]50; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s051; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s152; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)53; GCN-NOHSA-VI-NEXT: flat_store_short v[0:1], v254; GCN-NOHSA-VI-NEXT: s_endpgm55;56; EG-LABEL: constant_load_i16:57; EG: ; %bb.0: ; %entry58; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]59; EG-NEXT: TEX 0 @660; EG-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]61; EG-NEXT: MEM_RAT MSKOR T0.XW, T1.X62; EG-NEXT: CF_END63; EG-NEXT: PAD64; EG-NEXT: Fetch clause starting at 6:65; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #166; EG-NEXT: ALU clause starting at 8:67; EG-NEXT: MOV * T0.X, KC0[2].Z,68; EG-NEXT: ALU clause starting at 9:69; EG-NEXT: AND_INT T0.W, KC0[2].Y, literal.x,70; EG-NEXT: AND_INT * T1.W, T0.X, literal.y,71; EG-NEXT: 3(4.203895e-45), 65535(9.183409e-41)72; EG-NEXT: LSHL * T0.W, PV.W, literal.x,73; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)74; EG-NEXT: LSHL T0.X, T1.W, PV.W,75; EG-NEXT: LSHL * T0.W, literal.x, PV.W,76; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)77; EG-NEXT: MOV T0.Y, 0.0,78; EG-NEXT: MOV * T0.Z, 0.0,79; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,80; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)81;82; GFX12-TRUE16-LABEL: constant_load_i16:83; GFX12-TRUE16: ; %bb.0: ; %entry84; GFX12-TRUE16-NEXT: s_load_b128 s[0:3], s[4:5], 0x2485; GFX12-TRUE16-NEXT: v_mov_b32_e32 v1, 086; GFX12-TRUE16-NEXT: s_wait_kmcnt 0x087; GFX12-TRUE16-NEXT: global_load_d16_b16 v0, v1, s[2:3]88; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x089; GFX12-TRUE16-NEXT: global_store_b16 v1, v0, s[0:1]90; GFX12-TRUE16-NEXT: s_endpgm91;92; GFX12-FAKE16-LABEL: constant_load_i16:93; GFX12-FAKE16: ; %bb.0: ; %entry94; GFX12-FAKE16-NEXT: s_load_b128 s[0:3], s[4:5], 0x2495; GFX12-FAKE16-NEXT: v_mov_b32_e32 v0, 096; GFX12-FAKE16-NEXT: s_wait_kmcnt 0x097; GFX12-FAKE16-NEXT: global_load_u16 v1, v0, s[2:3]98; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x099; GFX12-FAKE16-NEXT: global_store_b16 v0, v1, s[0:1]100; GFX12-FAKE16-NEXT: s_endpgm101entry:102 %ld = load i16, ptr addrspace(4) %in103 store i16 %ld, ptr addrspace(1) %out104 ret void105}106 107define amdgpu_kernel void @constant_load_v2i16(ptr addrspace(1) %out, ptr addrspace(4) %in) {108; GCN-NOHSA-SI-LABEL: constant_load_v2i16:109; GCN-NOHSA-SI: ; %bb.0: ; %entry110; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9111; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)112; GCN-NOHSA-SI-NEXT: s_load_dword s4, s[2:3], 0x0113; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf000114; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -1115; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)116; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s4117; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[0:3], 0118; GCN-NOHSA-SI-NEXT: s_endpgm119;120; GCN-HSA-LABEL: constant_load_v2i16:121; GCN-HSA: ; %bb.0: ; %entry122; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0123; GCN-HSA-NEXT: s_add_i32 s12, s12, s17124; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13125; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8126; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)127; GCN-HSA-NEXT: s_load_dword s2, s[2:3], 0x0128; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0129; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1130; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)131; GCN-HSA-NEXT: v_mov_b32_e32 v2, s2132; GCN-HSA-NEXT: flat_store_dword v[0:1], v2133; GCN-HSA-NEXT: s_endpgm134;135; GCN-NOHSA-VI-LABEL: constant_load_v2i16:136; GCN-NOHSA-VI: ; %bb.0: ; %entry137; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24138; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)139; GCN-NOHSA-VI-NEXT: s_load_dword s2, s[2:3], 0x0140; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s0141; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s1142; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)143; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s2144; GCN-NOHSA-VI-NEXT: flat_store_dword v[0:1], v2145; GCN-NOHSA-VI-NEXT: s_endpgm146;147; EG-LABEL: constant_load_v2i16:148; EG: ; %bb.0: ; %entry149; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]150; EG-NEXT: TEX 0 @6151; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]152; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1153; EG-NEXT: CF_END154; EG-NEXT: PAD155; EG-NEXT: Fetch clause starting at 6:156; EG-NEXT: VTX_READ_32 T0.X, T0.X, 0, #1157; EG-NEXT: ALU clause starting at 8:158; EG-NEXT: MOV * T0.X, KC0[2].Z,159; EG-NEXT: ALU clause starting at 9:160; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,161; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)162;163; GFX12-LABEL: constant_load_v2i16:164; GFX12: ; %bb.0: ; %entry165; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x24166; GFX12-NEXT: s_wait_kmcnt 0x0167; GFX12-NEXT: s_load_b32 s2, s[2:3], 0x0168; GFX12-NEXT: s_wait_kmcnt 0x0169; GFX12-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2170; GFX12-NEXT: global_store_b32 v0, v1, s[0:1]171; GFX12-NEXT: s_endpgm172entry:173 %ld = load <2 x i16>, ptr addrspace(4) %in174 store <2 x i16> %ld, ptr addrspace(1) %out175 ret void176}177 178define amdgpu_kernel void @constant_load_v3i16(ptr addrspace(1) %out, ptr addrspace(4) %in) {179; GCN-NOHSA-SI-LABEL: constant_load_v3i16:180; GCN-NOHSA-SI: ; %bb.0: ; %entry181; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9182; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)183; GCN-NOHSA-SI-NEXT: s_load_dwordx2 s[4:5], s[2:3], 0x0184; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf000185; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -1186; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)187; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s5188; GCN-NOHSA-SI-NEXT: buffer_store_short v0, off, s[0:3], 0 offset:4189; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)190; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s4191; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[0:3], 0192; GCN-NOHSA-SI-NEXT: s_endpgm193;194; GCN-HSA-LABEL: constant_load_v3i16:195; GCN-HSA: ; %bb.0: ; %entry196; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0197; GCN-HSA-NEXT: s_add_i32 s12, s12, s17198; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8199; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13200; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)201; GCN-HSA-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x0202; GCN-HSA-NEXT: s_add_u32 s4, s0, 4203; GCN-HSA-NEXT: s_addc_u32 s5, s1, 0204; GCN-HSA-NEXT: v_mov_b32_e32 v2, s4205; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0206; GCN-HSA-NEXT: v_mov_b32_e32 v3, s5207; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)208; GCN-HSA-NEXT: v_mov_b32_e32 v4, s3209; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1210; GCN-HSA-NEXT: v_mov_b32_e32 v5, s2211; GCN-HSA-NEXT: flat_store_short v[2:3], v4212; GCN-HSA-NEXT: flat_store_dword v[0:1], v5213; GCN-HSA-NEXT: s_endpgm214;215; GCN-NOHSA-VI-LABEL: constant_load_v3i16:216; GCN-NOHSA-VI: ; %bb.0: ; %entry217; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24218; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)219; GCN-NOHSA-VI-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x0220; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s0, 4221; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s1, 0222; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s4223; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s0224; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s5225; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)226; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s3227; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s1228; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s2229; GCN-NOHSA-VI-NEXT: flat_store_short v[2:3], v4230; GCN-NOHSA-VI-NEXT: flat_store_dword v[0:1], v5231; GCN-NOHSA-VI-NEXT: s_endpgm232;233; EG-LABEL: constant_load_v3i16:234; EG: ; %bb.0: ; %entry235; EG-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]236; EG-NEXT: TEX 2 @6237; EG-NEXT: ALU 19, @13, KC0[CB0:0-32], KC1[]238; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T6.X, T7.X, 0239; EG-NEXT: MEM_RAT MSKOR T5.XW, T8.X240; EG-NEXT: CF_END241; EG-NEXT: Fetch clause starting at 6:242; EG-NEXT: VTX_READ_16 T6.X, T5.X, 0, #1243; EG-NEXT: VTX_READ_16 T7.X, T5.X, 2, #1244; EG-NEXT: VTX_READ_16 T5.X, T5.X, 4, #1245; EG-NEXT: ALU clause starting at 12:246; EG-NEXT: MOV * T5.X, KC0[2].Z,247; EG-NEXT: ALU clause starting at 13:248; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,249; EG-NEXT: 4(5.605194e-45), 0(0.000000e+00)250; EG-NEXT: AND_INT T1.W, PV.W, literal.x,251; EG-NEXT: AND_INT * T2.W, T5.X, literal.y,252; EG-NEXT: 3(4.203895e-45), 65535(9.183409e-41)253; EG-NEXT: LSHL * T1.W, PV.W, literal.x,254; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)255; EG-NEXT: LSHL T5.X, T2.W, PV.W,256; EG-NEXT: LSHL * T5.W, literal.x, PV.W,257; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)258; EG-NEXT: MOV T5.Y, 0.0,259; EG-NEXT: MOV * T5.Z, 0.0,260; EG-NEXT: LSHR T8.X, T0.W, literal.x,261; EG-NEXT: LSHL T0.W, T7.X, literal.y,262; EG-NEXT: AND_INT * T1.W, T6.X, literal.z,263; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)264; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)265; EG-NEXT: OR_INT T6.X, PV.W, PS,266; EG-NEXT: LSHR * T7.X, KC0[2].Y, literal.x,267; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)268;269; GFX12-LABEL: constant_load_v3i16:270; GFX12: ; %bb.0: ; %entry271; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x24272; GFX12-NEXT: s_wait_kmcnt 0x0273; GFX12-NEXT: s_load_b64 s[2:3], s[2:3], 0x0274; GFX12-NEXT: s_wait_kmcnt 0x0275; GFX12-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s3276; GFX12-NEXT: v_mov_b32_e32 v2, s2277; GFX12-NEXT: s_clause 0x1278; GFX12-NEXT: global_store_b16 v0, v1, s[0:1] offset:4279; GFX12-NEXT: global_store_b32 v0, v2, s[0:1]280; GFX12-NEXT: s_endpgm281entry:282 %ld = load <3 x i16>, ptr addrspace(4) %in283 store <3 x i16> %ld, ptr addrspace(1) %out284 ret void285}286 287define amdgpu_kernel void @constant_load_v4i16(ptr addrspace(1) %out, ptr addrspace(4) %in) {288; GCN-NOHSA-SI-LABEL: constant_load_v4i16:289; GCN-NOHSA-SI: ; %bb.0: ; %entry290; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9291; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)292; GCN-NOHSA-SI-NEXT: s_load_dwordx2 s[4:5], s[2:3], 0x0293; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf000294; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -1295; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)296; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s4297; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s5298; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0299; GCN-NOHSA-SI-NEXT: s_endpgm300;301; GCN-HSA-LABEL: constant_load_v4i16:302; GCN-HSA: ; %bb.0: ; %entry303; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0304; GCN-HSA-NEXT: s_add_i32 s12, s12, s17305; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13306; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8307; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)308; GCN-HSA-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x0309; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0310; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1311; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)312; GCN-HSA-NEXT: v_mov_b32_e32 v2, s2313; GCN-HSA-NEXT: v_mov_b32_e32 v3, s3314; GCN-HSA-NEXT: flat_store_dwordx2 v[0:1], v[2:3]315; GCN-HSA-NEXT: s_endpgm316;317; GCN-NOHSA-VI-LABEL: constant_load_v4i16:318; GCN-NOHSA-VI: ; %bb.0: ; %entry319; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24320; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)321; GCN-NOHSA-VI-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x0322; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s0323; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s1324; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)325; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s2326; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s3327; GCN-NOHSA-VI-NEXT: flat_store_dwordx2 v[0:1], v[2:3]328; GCN-NOHSA-VI-NEXT: s_endpgm329;330; EG-LABEL: constant_load_v4i16:331; EG: ; %bb.0: ; %entry332; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]333; EG-NEXT: TEX 0 @6334; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]335; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1336; EG-NEXT: CF_END337; EG-NEXT: PAD338; EG-NEXT: Fetch clause starting at 6:339; EG-NEXT: VTX_READ_64 T0.XY, T0.X, 0, #1340; EG-NEXT: ALU clause starting at 8:341; EG-NEXT: MOV * T0.X, KC0[2].Z,342; EG-NEXT: ALU clause starting at 9:343; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,344; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)345;346; GFX12-LABEL: constant_load_v4i16:347; GFX12: ; %bb.0: ; %entry348; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x24349; GFX12-NEXT: s_wait_kmcnt 0x0350; GFX12-NEXT: s_load_b64 s[2:3], s[2:3], 0x0351; GFX12-NEXT: v_mov_b32_e32 v2, 0352; GFX12-NEXT: s_wait_kmcnt 0x0353; GFX12-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v1, s3354; GFX12-NEXT: global_store_b64 v2, v[0:1], s[0:1]355; GFX12-NEXT: s_endpgm356entry:357 %ld = load <4 x i16>, ptr addrspace(4) %in358 store <4 x i16> %ld, ptr addrspace(1) %out359 ret void360}361 362define amdgpu_kernel void @constant_load_v8i16(ptr addrspace(1) %out, ptr addrspace(4) %in) {363; GCN-NOHSA-SI-LABEL: constant_load_v8i16:364; GCN-NOHSA-SI: ; %bb.0: ; %entry365; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9366; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)367; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x0368; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf000369; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -1370; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)371; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s4372; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s5373; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s6374; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s7375; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0376; GCN-NOHSA-SI-NEXT: s_endpgm377;378; GCN-HSA-LABEL: constant_load_v8i16:379; GCN-HSA: ; %bb.0: ; %entry380; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0381; GCN-HSA-NEXT: s_add_i32 s12, s12, s17382; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13383; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8384; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)385; GCN-HSA-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x0386; GCN-HSA-NEXT: v_mov_b32_e32 v4, s0387; GCN-HSA-NEXT: v_mov_b32_e32 v5, s1388; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)389; GCN-HSA-NEXT: v_mov_b32_e32 v0, s4390; GCN-HSA-NEXT: v_mov_b32_e32 v1, s5391; GCN-HSA-NEXT: v_mov_b32_e32 v2, s6392; GCN-HSA-NEXT: v_mov_b32_e32 v3, s7393; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]394; GCN-HSA-NEXT: s_endpgm395;396; GCN-NOHSA-VI-LABEL: constant_load_v8i16:397; GCN-NOHSA-VI: ; %bb.0: ; %entry398; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24399; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)400; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x0401; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s0402; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s1403; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)404; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s4405; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s5406; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s6407; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s7408; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]409; GCN-NOHSA-VI-NEXT: s_endpgm410;411; EG-LABEL: constant_load_v8i16:412; EG: ; %bb.0: ; %entry413; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]414; EG-NEXT: TEX 0 @6415; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]416; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T1.X, 1417; EG-NEXT: CF_END418; EG-NEXT: PAD419; EG-NEXT: Fetch clause starting at 6:420; EG-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1421; EG-NEXT: ALU clause starting at 8:422; EG-NEXT: MOV * T0.X, KC0[2].Z,423; EG-NEXT: ALU clause starting at 9:424; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,425; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)426;427; GFX12-LABEL: constant_load_v8i16:428; GFX12: ; %bb.0: ; %entry429; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x24430; GFX12-NEXT: s_wait_kmcnt 0x0431; GFX12-NEXT: s_load_b128 s[4:7], s[2:3], 0x0432; GFX12-NEXT: v_mov_b32_e32 v4, 0433; GFX12-NEXT: s_wait_kmcnt 0x0434; GFX12-NEXT: v_dual_mov_b32 v0, s4 :: v_dual_mov_b32 v3, s7435; GFX12-NEXT: v_dual_mov_b32 v1, s5 :: v_dual_mov_b32 v2, s6436; GFX12-NEXT: global_store_b128 v4, v[0:3], s[0:1]437; GFX12-NEXT: s_endpgm438entry:439 %ld = load <8 x i16>, ptr addrspace(4) %in440 store <8 x i16> %ld, ptr addrspace(1) %out441 ret void442}443 444define amdgpu_kernel void @constant_load_v16i16(ptr addrspace(1) %out, ptr addrspace(4) %in) {445; GCN-NOHSA-SI-LABEL: constant_load_v16i16:446; GCN-NOHSA-SI: ; %bb.0: ; %entry447; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x9448; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)449; GCN-NOHSA-SI-NEXT: s_load_dwordx8 s[0:7], s[10:11], 0x0450; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, 0xf000451; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, -1452; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)453; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s4454; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s5455; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s6456; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s7457; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0 offset:16458; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)459; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s0460; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s1461; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s2462; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s3463; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0464; GCN-NOHSA-SI-NEXT: s_endpgm465;466; GCN-HSA-LABEL: constant_load_v16i16:467; GCN-HSA: ; %bb.0: ; %entry468; GCN-HSA-NEXT: s_load_dwordx4 s[8:11], s[8:9], 0x0469; GCN-HSA-NEXT: s_add_i32 s12, s12, s17470; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8471; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13472; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)473; GCN-HSA-NEXT: s_load_dwordx8 s[0:7], s[10:11], 0x0474; GCN-HSA-NEXT: s_add_u32 s10, s8, 16475; GCN-HSA-NEXT: s_addc_u32 s11, s9, 0476; GCN-HSA-NEXT: v_mov_b32_e32 v6, s10477; GCN-HSA-NEXT: v_mov_b32_e32 v7, s11478; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)479; GCN-HSA-NEXT: v_mov_b32_e32 v0, s4480; GCN-HSA-NEXT: v_mov_b32_e32 v1, s5481; GCN-HSA-NEXT: v_mov_b32_e32 v2, s6482; GCN-HSA-NEXT: v_mov_b32_e32 v3, s7483; GCN-HSA-NEXT: flat_store_dwordx4 v[6:7], v[0:3]484; GCN-HSA-NEXT: v_mov_b32_e32 v4, s0485; GCN-HSA-NEXT: v_mov_b32_e32 v0, s8486; GCN-HSA-NEXT: v_mov_b32_e32 v5, s1487; GCN-HSA-NEXT: v_mov_b32_e32 v6, s2488; GCN-HSA-NEXT: v_mov_b32_e32 v7, s3489; GCN-HSA-NEXT: v_mov_b32_e32 v1, s9490; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[4:7]491; GCN-HSA-NEXT: s_endpgm492;493; GCN-NOHSA-VI-LABEL: constant_load_v16i16:494; GCN-NOHSA-VI: ; %bb.0: ; %entry495; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x24496; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)497; GCN-NOHSA-VI-NEXT: s_load_dwordx8 s[0:7], s[10:11], 0x0498; GCN-NOHSA-VI-NEXT: s_add_u32 s10, s8, 16499; GCN-NOHSA-VI-NEXT: s_addc_u32 s11, s9, 0500; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s10501; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s11502; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)503; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s4504; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s5505; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s6506; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s7507; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[6:7], v[0:3]508; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s0509; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s8510; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s1511; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s2512; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s3513; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s9514; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[0:1], v[4:7]515; GCN-NOHSA-VI-NEXT: s_endpgm516;517; EG-LABEL: constant_load_v16i16:518; EG: ; %bb.0: ; %entry519; EG-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]520; EG-NEXT: TEX 0 @8521; EG-NEXT: ALU 3, @13, KC0[CB0:0-32], KC1[]522; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T2.X, 0523; EG-NEXT: TEX 0 @10524; EG-NEXT: ALU 1, @17, KC0[CB0:0-32], KC1[]525; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T1.X, 1526; EG-NEXT: CF_END527; EG-NEXT: Fetch clause starting at 8:528; EG-NEXT: VTX_READ_128 T1.XYZW, T0.X, 16, #1529; EG-NEXT: Fetch clause starting at 10:530; EG-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1531; EG-NEXT: ALU clause starting at 12:532; EG-NEXT: MOV * T0.X, KC0[2].Z,533; EG-NEXT: ALU clause starting at 13:534; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,535; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)536; EG-NEXT: LSHR * T2.X, PV.W, literal.x,537; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)538; EG-NEXT: ALU clause starting at 17:539; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,540; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)541;542; GFX12-LABEL: constant_load_v16i16:543; GFX12: ; %bb.0: ; %entry544; GFX12-NEXT: s_load_b128 s[8:11], s[4:5], 0x24545; GFX12-NEXT: s_wait_kmcnt 0x0546; GFX12-NEXT: s_load_b256 s[0:7], s[10:11], 0x0547; GFX12-NEXT: s_wait_kmcnt 0x0548; GFX12-NEXT: v_dual_mov_b32 v8, 0 :: v_dual_mov_b32 v1, s5549; GFX12-NEXT: v_dual_mov_b32 v0, s4 :: v_dual_mov_b32 v3, s7550; GFX12-NEXT: v_dual_mov_b32 v2, s6 :: v_dual_mov_b32 v5, s1551; GFX12-NEXT: v_dual_mov_b32 v4, s0 :: v_dual_mov_b32 v7, s3552; GFX12-NEXT: v_mov_b32_e32 v6, s2553; GFX12-NEXT: s_clause 0x1554; GFX12-NEXT: global_store_b128 v8, v[0:3], s[8:9] offset:16555; GFX12-NEXT: global_store_b128 v8, v[4:7], s[8:9]556; GFX12-NEXT: s_endpgm557entry:558 %ld = load <16 x i16>, ptr addrspace(4) %in559 store <16 x i16> %ld, ptr addrspace(1) %out560 ret void561}562 563define amdgpu_kernel void @constant_load_v16i16_align2(ptr addrspace(4) %ptr0) #0 {564; GCN-NOHSA-SI-LABEL: constant_load_v16i16_align2:565; GCN-NOHSA-SI: ; %bb.0: ; %entry566; GCN-NOHSA-SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x9567; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf000568; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -1569; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)570; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[0:3], 0571; GCN-NOHSA-SI-NEXT: buffer_load_ushort v1, off, s[0:3], 0 offset:2572; GCN-NOHSA-SI-NEXT: buffer_load_ushort v4, off, s[0:3], 0 offset:4573; GCN-NOHSA-SI-NEXT: buffer_load_ushort v2, off, s[0:3], 0 offset:6574; GCN-NOHSA-SI-NEXT: buffer_load_ushort v5, off, s[0:3], 0 offset:8575; GCN-NOHSA-SI-NEXT: buffer_load_ushort v3, off, s[0:3], 0 offset:10576; GCN-NOHSA-SI-NEXT: buffer_load_ushort v6, off, s[0:3], 0 offset:12577; GCN-NOHSA-SI-NEXT: buffer_load_ushort v7, off, s[0:3], 0 offset:14578; GCN-NOHSA-SI-NEXT: buffer_load_ushort v8, off, s[0:3], 0 offset:16579; GCN-NOHSA-SI-NEXT: buffer_load_ushort v9, off, s[0:3], 0 offset:18580; GCN-NOHSA-SI-NEXT: buffer_load_ushort v10, off, s[0:3], 0 offset:20581; GCN-NOHSA-SI-NEXT: buffer_load_ushort v11, off, s[0:3], 0 offset:22582; GCN-NOHSA-SI-NEXT: buffer_load_ushort v12, off, s[0:3], 0 offset:24583; GCN-NOHSA-SI-NEXT: buffer_load_ushort v13, off, s[0:3], 0 offset:26584; GCN-NOHSA-SI-NEXT: buffer_load_ushort v14, off, s[0:3], 0 offset:28585; GCN-NOHSA-SI-NEXT: buffer_load_ushort v15, off, s[0:3], 0 offset:30586; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(8)587; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v7, 16, v7588; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v16, 16, v3589; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v17, 16, v2590; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v18, 16, v1591; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)592; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v15, 16, v15593; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v13, 16, v13594; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v11, 16, v11595; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v9, 16, v9596; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v3, v7, v6597; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v2, v16, v5598; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v1, v17, v4599; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v0, v18, v0600; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v7, v15, v14601; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v6, v13, v12602; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v5, v11, v10603; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v4, v9, v8604; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0605; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0606; GCN-NOHSA-SI-NEXT: s_endpgm607;608; GCN-HSA-LABEL: constant_load_v16i16_align2:609; GCN-HSA: ; %bb.0: ; %entry610; GCN-HSA-NEXT: s_load_dwordx2 s[0:1], s[8:9], 0x0611; GCN-HSA-NEXT: s_add_i32 s12, s12, s17612; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8613; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13614; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)615; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0616; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1617; GCN-HSA-NEXT: s_add_u32 s0, s0, 16618; GCN-HSA-NEXT: s_addc_u32 s1, s1, 0619; GCN-HSA-NEXT: v_mov_b32_e32 v5, s1620; GCN-HSA-NEXT: v_mov_b32_e32 v4, s0621; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]622; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[4:5]623; GCN-HSA-NEXT: s_waitcnt vmcnt(1)624; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[0:3]625; GCN-HSA-NEXT: s_waitcnt vmcnt(1)626; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[4:7]627; GCN-HSA-NEXT: s_endpgm628;629; GCN-NOHSA-VI-LABEL: constant_load_v16i16_align2:630; GCN-NOHSA-VI: ; %bb.0: ; %entry631; GCN-NOHSA-VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24632; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)633; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 14634; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0635; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s2636; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s3637; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 12638; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0639; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s2640; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s3641; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 10642; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0643; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s3644; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s2645; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 8646; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0647; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s3648; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s2649; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 6650; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0651; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v9, s3652; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v8, s2653; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 4654; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0655; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v11, s3656; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v10, s2657; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 30658; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0659; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v13, s3660; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v12, s2661; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 28662; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0663; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v15, s3664; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v14, s2665; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 26666; GCN-NOHSA-VI-NEXT: flat_load_ushort v16, v[0:1]667; GCN-NOHSA-VI-NEXT: flat_load_ushort v17, v[2:3]668; GCN-NOHSA-VI-NEXT: flat_load_ushort v18, v[4:5]669; GCN-NOHSA-VI-NEXT: flat_load_ushort v19, v[6:7]670; GCN-NOHSA-VI-NEXT: flat_load_ushort v8, v[8:9]671; GCN-NOHSA-VI-NEXT: flat_load_ushort v9, v[10:11]672; GCN-NOHSA-VI-NEXT: flat_load_ushort v10, v[12:13]673; GCN-NOHSA-VI-NEXT: flat_load_ushort v11, v[14:15]674; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0675; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s2676; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s3677; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 24678; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0679; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s2680; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s3681; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 22682; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0683; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s3684; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s2685; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 20686; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0687; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s3688; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s2689; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 18690; GCN-NOHSA-VI-NEXT: flat_load_ushort v12, v[0:1]691; GCN-NOHSA-VI-NEXT: flat_load_ushort v13, v[2:3]692; GCN-NOHSA-VI-NEXT: flat_load_ushort v14, v[4:5]693; GCN-NOHSA-VI-NEXT: flat_load_ushort v15, v[6:7]694; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0695; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s2696; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s3697; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 16698; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0699; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s2700; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s3701; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 2702; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 0703; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s3704; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s1705; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s2706; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s0707; GCN-NOHSA-VI-NEXT: flat_load_ushort v0, v[0:1]708; GCN-NOHSA-VI-NEXT: flat_load_ushort v20, v[2:3]709; GCN-NOHSA-VI-NEXT: flat_load_ushort v21, v[4:5]710; GCN-NOHSA-VI-NEXT: flat_load_ushort v22, v[6:7]711; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(14)712; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v1, 16, v16713; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v3, v17, v1714; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(13)715; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v1, 16, v18716; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(12)717; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v2, v19, v1718; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(11)719; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v1, 16, v8720; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(10)721; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v1, v9, v1722; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(9)723; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v4, 16, v10724; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(8)725; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v7, v11, v4726; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(7)727; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v4, 16, v12728; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(6)729; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v6, v13, v4730; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(5)731; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v4, 16, v14732; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(4)733; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v5, v15, v4734; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(3)735; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v0, 16, v0736; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(2)737; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v4, v20, v0738; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)739; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v0, 16, v21740; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)741; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v0, v22, v0742; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[0:1], v[4:7]743; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[0:1], v[0:3]744; GCN-NOHSA-VI-NEXT: s_endpgm745;746; EG-LABEL: constant_load_v16i16_align2:747; EG: ; %bb.0: ; %entry748; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]749; EG-NEXT: TEX 1 @6750; EG-NEXT: ALU 1, @11, KC0[], KC1[]751; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T1.XYZW, T2.X, 0752; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T2.X, 1753; EG-NEXT: CF_END754; EG-NEXT: Fetch clause starting at 6:755; EG-NEXT: VTX_READ_128 T1.XYZW, T0.X, 16, #1756; EG-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1757; EG-NEXT: ALU clause starting at 10:758; EG-NEXT: MOV * T0.X, KC0[2].Y,759; EG-NEXT: ALU clause starting at 11:760; EG-NEXT: MOV * T2.X, literal.x,761; EG-NEXT: 0(0.000000e+00), 0(0.000000e+00)762;763; GFX12-TRUE16-LABEL: constant_load_v16i16_align2:764; GFX12-TRUE16: ; %bb.0: ; %entry765; GFX12-TRUE16-NEXT: s_load_b64 s[0:1], s[4:5], 0x24766; GFX12-TRUE16-NEXT: v_mov_b32_e32 v8, 0767; GFX12-TRUE16-NEXT: s_wait_kmcnt 0x0768; GFX12-TRUE16-NEXT: s_clause 0x7769; GFX12-TRUE16-NEXT: global_load_d16_b16 v3, v8, s[0:1] offset:12770; GFX12-TRUE16-NEXT: global_load_d16_b16 v7, v8, s[0:1] offset:28771; GFX12-TRUE16-NEXT: global_load_d16_b16 v6, v8, s[0:1] offset:24772; GFX12-TRUE16-NEXT: global_load_d16_b16 v5, v8, s[0:1] offset:20773; GFX12-TRUE16-NEXT: global_load_d16_b16 v4, v8, s[0:1] offset:16774; GFX12-TRUE16-NEXT: global_load_d16_b16 v2, v8, s[0:1] offset:8775; GFX12-TRUE16-NEXT: global_load_d16_b16 v1, v8, s[0:1] offset:4776; GFX12-TRUE16-NEXT: global_load_d16_b16 v0, v8, s[0:1]777; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x7778; GFX12-TRUE16-NEXT: global_load_d16_hi_b16 v3, v8, s[0:1] offset:14779; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x7780; GFX12-TRUE16-NEXT: global_load_d16_hi_b16 v7, v8, s[0:1] offset:30781; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x7782; GFX12-TRUE16-NEXT: global_load_d16_hi_b16 v6, v8, s[0:1] offset:26783; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x7784; GFX12-TRUE16-NEXT: global_load_d16_hi_b16 v5, v8, s[0:1] offset:22785; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x7786; GFX12-TRUE16-NEXT: global_load_d16_hi_b16 v4, v8, s[0:1] offset:18787; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x7788; GFX12-TRUE16-NEXT: global_load_d16_hi_b16 v2, v8, s[0:1] offset:10789; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x7790; GFX12-TRUE16-NEXT: global_load_d16_hi_b16 v1, v8, s[0:1] offset:6791; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x7792; GFX12-TRUE16-NEXT: global_load_d16_hi_b16 v0, v8, s[0:1] offset:2793; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x0794; GFX12-TRUE16-NEXT: s_clause 0x1795; GFX12-TRUE16-NEXT: global_store_b128 v[0:1], v[4:7], off796; GFX12-TRUE16-NEXT: global_store_b128 v[0:1], v[0:3], off797; GFX12-TRUE16-NEXT: s_endpgm798;799; GFX12-FAKE16-LABEL: constant_load_v16i16_align2:800; GFX12-FAKE16: ; %bb.0: ; %entry801; GFX12-FAKE16-NEXT: s_load_b64 s[0:1], s[4:5], 0x24802; GFX12-FAKE16-NEXT: v_mov_b32_e32 v8, 0803; GFX12-FAKE16-NEXT: s_wait_kmcnt 0x0804; GFX12-FAKE16-NEXT: s_clause 0x7805; GFX12-FAKE16-NEXT: global_load_u16 v3, v8, s[0:1] offset:12806; GFX12-FAKE16-NEXT: global_load_u16 v7, v8, s[0:1] offset:28807; GFX12-FAKE16-NEXT: global_load_u16 v6, v8, s[0:1] offset:24808; GFX12-FAKE16-NEXT: global_load_u16 v5, v8, s[0:1] offset:20809; GFX12-FAKE16-NEXT: global_load_u16 v4, v8, s[0:1] offset:16810; GFX12-FAKE16-NEXT: global_load_u16 v2, v8, s[0:1] offset:8811; GFX12-FAKE16-NEXT: global_load_u16 v1, v8, s[0:1] offset:4812; GFX12-FAKE16-NEXT: global_load_u16 v0, v8, s[0:1]813; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x7814; GFX12-FAKE16-NEXT: global_load_d16_hi_b16 v3, v8, s[0:1] offset:14815; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x7816; GFX12-FAKE16-NEXT: global_load_d16_hi_b16 v7, v8, s[0:1] offset:30817; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x7818; GFX12-FAKE16-NEXT: global_load_d16_hi_b16 v6, v8, s[0:1] offset:26819; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x7820; GFX12-FAKE16-NEXT: global_load_d16_hi_b16 v5, v8, s[0:1] offset:22821; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x7822; GFX12-FAKE16-NEXT: global_load_d16_hi_b16 v4, v8, s[0:1] offset:18823; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x7824; GFX12-FAKE16-NEXT: global_load_d16_hi_b16 v2, v8, s[0:1] offset:10825; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x7826; GFX12-FAKE16-NEXT: global_load_d16_hi_b16 v1, v8, s[0:1] offset:6827; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x7828; GFX12-FAKE16-NEXT: global_load_d16_hi_b16 v0, v8, s[0:1] offset:2829; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x0830; GFX12-FAKE16-NEXT: s_clause 0x1831; GFX12-FAKE16-NEXT: global_store_b128 v[0:1], v[4:7], off832; GFX12-FAKE16-NEXT: global_store_b128 v[0:1], v[0:3], off833; GFX12-FAKE16-NEXT: s_endpgm834entry:835 %ld = load <16 x i16>, ptr addrspace(4) %ptr0, align 2836 store <16 x i16> %ld, ptr addrspace(1) poison, align 32837 ret void838}839 840define amdgpu_kernel void @constant_zextload_i16_to_i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {841; GCN-NOHSA-SI-LABEL: constant_zextload_i16_to_i32:842; GCN-NOHSA-SI: ; %bb.0:843; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9844; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000845; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1846; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6847; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7848; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)849; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2850; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3851; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 0852; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0853; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1854; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)855; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0856; GCN-NOHSA-SI-NEXT: s_endpgm857;858; GCN-HSA-LABEL: constant_zextload_i16_to_i32:859; GCN-HSA: ; %bb.0:860; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0861; GCN-HSA-NEXT: s_add_i32 s12, s12, s17862; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13863; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8864; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)865; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2866; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3867; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]868; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0869; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1870; GCN-HSA-NEXT: s_waitcnt vmcnt(0)871; GCN-HSA-NEXT: flat_store_dword v[0:1], v2872; GCN-HSA-NEXT: s_endpgm873;874; GCN-NOHSA-VI-LABEL: constant_zextload_i16_to_i32:875; GCN-NOHSA-VI: ; %bb.0:876; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24877; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)878; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s2879; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s3880; GCN-NOHSA-VI-NEXT: flat_load_ushort v2, v[0:1]881; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s0882; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s1883; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)884; GCN-NOHSA-VI-NEXT: flat_store_dword v[0:1], v2885; GCN-NOHSA-VI-NEXT: s_endpgm886;887; EG-LABEL: constant_zextload_i16_to_i32:888; EG: ; %bb.0:889; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]890; EG-NEXT: TEX 0 @6891; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]892; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1893; EG-NEXT: CF_END894; EG-NEXT: PAD895; EG-NEXT: Fetch clause starting at 6:896; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #1897; EG-NEXT: ALU clause starting at 8:898; EG-NEXT: MOV * T0.X, KC0[2].Z,899; EG-NEXT: ALU clause starting at 9:900; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,901; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)902;903; GFX12-LABEL: constant_zextload_i16_to_i32:904; GFX12: ; %bb.0:905; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x24906; GFX12-NEXT: s_wait_kmcnt 0x0907; GFX12-NEXT: s_load_u16 s2, s[2:3], 0x0908; GFX12-NEXT: s_wait_kmcnt 0x0909; GFX12-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2910; GFX12-NEXT: global_store_b32 v0, v1, s[0:1]911; GFX12-NEXT: s_endpgm912 %a = load i16, ptr addrspace(4) %in913 %ext = zext i16 %a to i32914 store i32 %ext, ptr addrspace(1) %out915 ret void916}917 918define amdgpu_kernel void @constant_sextload_i16_to_i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {919; GCN-NOHSA-SI-LABEL: constant_sextload_i16_to_i32:920; GCN-NOHSA-SI: ; %bb.0:921; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9922; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000923; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1924; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6925; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7926; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)927; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2928; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3929; GCN-NOHSA-SI-NEXT: buffer_load_sshort v0, off, s[8:11], 0930; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0931; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1932; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)933; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0934; GCN-NOHSA-SI-NEXT: s_endpgm935;936; GCN-HSA-LABEL: constant_sextload_i16_to_i32:937; GCN-HSA: ; %bb.0:938; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0939; GCN-HSA-NEXT: s_add_i32 s12, s12, s17940; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13941; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8942; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)943; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2944; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3945; GCN-HSA-NEXT: flat_load_sshort v2, v[0:1]946; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0947; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1948; GCN-HSA-NEXT: s_waitcnt vmcnt(0)949; GCN-HSA-NEXT: flat_store_dword v[0:1], v2950; GCN-HSA-NEXT: s_endpgm951;952; GCN-NOHSA-VI-LABEL: constant_sextload_i16_to_i32:953; GCN-NOHSA-VI: ; %bb.0:954; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24955; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)956; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s2957; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s3958; GCN-NOHSA-VI-NEXT: flat_load_sshort v2, v[0:1]959; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s0960; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s1961; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)962; GCN-NOHSA-VI-NEXT: flat_store_dword v[0:1], v2963; GCN-NOHSA-VI-NEXT: s_endpgm964;965; EG-LABEL: constant_sextload_i16_to_i32:966; EG: ; %bb.0:967; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]968; EG-NEXT: TEX 0 @6969; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]970; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1971; EG-NEXT: CF_END972; EG-NEXT: PAD973; EG-NEXT: Fetch clause starting at 6:974; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #1975; EG-NEXT: ALU clause starting at 8:976; EG-NEXT: MOV * T0.X, KC0[2].Z,977; EG-NEXT: ALU clause starting at 9:978; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,979; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,980; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)981;982; GFX12-LABEL: constant_sextload_i16_to_i32:983; GFX12: ; %bb.0:984; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x24985; GFX12-NEXT: s_wait_kmcnt 0x0986; GFX12-NEXT: s_load_i16 s2, s[2:3], 0x0987; GFX12-NEXT: s_wait_kmcnt 0x0988; GFX12-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s2989; GFX12-NEXT: global_store_b32 v0, v1, s[0:1]990; GFX12-NEXT: s_endpgm991 %a = load i16, ptr addrspace(4) %in992 %ext = sext i16 %a to i32993 store i32 %ext, ptr addrspace(1) %out994 ret void995}996 997define amdgpu_kernel void @constant_zextload_v1i16_to_v1i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {998; GCN-NOHSA-SI-LABEL: constant_zextload_v1i16_to_v1i32:999; GCN-NOHSA-SI: ; %bb.0:1000; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91001; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001002; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11003; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61004; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71005; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1006; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21007; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31008; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 01009; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01010; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11011; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1012; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 01013; GCN-NOHSA-SI-NEXT: s_endpgm1014;1015; GCN-HSA-LABEL: constant_zextload_v1i16_to_v1i32:1016; GCN-HSA: ; %bb.0:1017; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01018; GCN-HSA-NEXT: s_add_i32 s12, s12, s171019; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131020; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81021; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1022; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21023; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31024; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]1025; GCN-HSA-NEXT: v_mov_b32_e32 v0, s01026; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11027; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1028; GCN-HSA-NEXT: flat_store_dword v[0:1], v21029; GCN-HSA-NEXT: s_endpgm1030;1031; GCN-NOHSA-VI-LABEL: constant_zextload_v1i16_to_v1i32:1032; GCN-NOHSA-VI: ; %bb.0:1033; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241034; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1035; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s21036; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s31037; GCN-NOHSA-VI-NEXT: flat_load_ushort v2, v[0:1]1038; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s01039; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s11040; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1041; GCN-NOHSA-VI-NEXT: flat_store_dword v[0:1], v21042; GCN-NOHSA-VI-NEXT: s_endpgm1043;1044; EG-LABEL: constant_zextload_v1i16_to_v1i32:1045; EG: ; %bb.0:1046; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1047; EG-NEXT: TEX 0 @61048; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]1049; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 11050; EG-NEXT: CF_END1051; EG-NEXT: PAD1052; EG-NEXT: Fetch clause starting at 6:1053; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #11054; EG-NEXT: ALU clause starting at 8:1055; EG-NEXT: MOV * T0.X, KC0[2].Z,1056; EG-NEXT: ALU clause starting at 9:1057; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,1058; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1059;1060; GFX12-LABEL: constant_zextload_v1i16_to_v1i32:1061; GFX12: ; %bb.0:1062; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x241063; GFX12-NEXT: s_wait_kmcnt 0x01064; GFX12-NEXT: s_load_u16 s2, s[2:3], 0x01065; GFX12-NEXT: s_wait_kmcnt 0x01066; GFX12-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s21067; GFX12-NEXT: global_store_b32 v0, v1, s[0:1]1068; GFX12-NEXT: s_endpgm1069 %load = load <1 x i16>, ptr addrspace(4) %in1070 %ext = zext <1 x i16> %load to <1 x i32>1071 store <1 x i32> %ext, ptr addrspace(1) %out1072 ret void1073}1074 1075define amdgpu_kernel void @constant_sextload_v1i16_to_v1i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {1076; GCN-NOHSA-SI-LABEL: constant_sextload_v1i16_to_v1i32:1077; GCN-NOHSA-SI: ; %bb.0:1078; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91079; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001080; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11081; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61082; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71083; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1084; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21085; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31086; GCN-NOHSA-SI-NEXT: buffer_load_sshort v0, off, s[8:11], 01087; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01088; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11089; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1090; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 01091; GCN-NOHSA-SI-NEXT: s_endpgm1092;1093; GCN-HSA-LABEL: constant_sextload_v1i16_to_v1i32:1094; GCN-HSA: ; %bb.0:1095; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01096; GCN-HSA-NEXT: s_add_i32 s12, s12, s171097; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131098; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81099; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1100; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21101; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31102; GCN-HSA-NEXT: flat_load_sshort v2, v[0:1]1103; GCN-HSA-NEXT: v_mov_b32_e32 v0, s01104; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11105; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1106; GCN-HSA-NEXT: flat_store_dword v[0:1], v21107; GCN-HSA-NEXT: s_endpgm1108;1109; GCN-NOHSA-VI-LABEL: constant_sextload_v1i16_to_v1i32:1110; GCN-NOHSA-VI: ; %bb.0:1111; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241112; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1113; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s21114; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s31115; GCN-NOHSA-VI-NEXT: flat_load_sshort v2, v[0:1]1116; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s01117; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s11118; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1119; GCN-NOHSA-VI-NEXT: flat_store_dword v[0:1], v21120; GCN-NOHSA-VI-NEXT: s_endpgm1121;1122; EG-LABEL: constant_sextload_v1i16_to_v1i32:1123; EG: ; %bb.0:1124; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1125; EG-NEXT: TEX 0 @61126; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]1127; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 11128; EG-NEXT: CF_END1129; EG-NEXT: PAD1130; EG-NEXT: Fetch clause starting at 6:1131; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #11132; EG-NEXT: ALU clause starting at 8:1133; EG-NEXT: MOV * T0.X, KC0[2].Z,1134; EG-NEXT: ALU clause starting at 9:1135; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,1136; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,1137; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)1138;1139; GFX12-LABEL: constant_sextload_v1i16_to_v1i32:1140; GFX12: ; %bb.0:1141; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x241142; GFX12-NEXT: s_wait_kmcnt 0x01143; GFX12-NEXT: s_load_i16 s2, s[2:3], 0x01144; GFX12-NEXT: s_wait_kmcnt 0x01145; GFX12-NEXT: v_dual_mov_b32 v0, 0 :: v_dual_mov_b32 v1, s21146; GFX12-NEXT: global_store_b32 v0, v1, s[0:1]1147; GFX12-NEXT: s_endpgm1148 %load = load <1 x i16>, ptr addrspace(4) %in1149 %ext = sext <1 x i16> %load to <1 x i32>1150 store <1 x i32> %ext, ptr addrspace(1) %out1151 ret void1152}1153 1154define amdgpu_kernel void @constant_zextload_v2i16_to_v2i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {1155; GCN-NOHSA-SI-LABEL: constant_zextload_v2i16_to_v2i32:1156; GCN-NOHSA-SI: ; %bb.0:1157; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91158; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1159; GCN-NOHSA-SI-NEXT: s_load_dword s2, s[2:3], 0x01160; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0001161; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1162; GCN-NOHSA-SI-NEXT: s_lshr_b32 s4, s2, 161163; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s2, 0xffff1164; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -11165; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s51166; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s41167; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 01168; GCN-NOHSA-SI-NEXT: s_endpgm1169;1170; GCN-HSA-LABEL: constant_zextload_v2i16_to_v2i32:1171; GCN-HSA: ; %bb.0:1172; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01173; GCN-HSA-NEXT: s_add_i32 s12, s12, s171174; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131175; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81176; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1177; GCN-HSA-NEXT: s_load_dword s2, s[2:3], 0x01178; GCN-HSA-NEXT: v_mov_b32_e32 v0, s01179; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11180; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1181; GCN-HSA-NEXT: s_lshr_b32 s0, s2, 161182; GCN-HSA-NEXT: s_and_b32 s1, s2, 0xffff1183; GCN-HSA-NEXT: v_mov_b32_e32 v2, s11184; GCN-HSA-NEXT: v_mov_b32_e32 v3, s01185; GCN-HSA-NEXT: flat_store_dwordx2 v[0:1], v[2:3]1186; GCN-HSA-NEXT: s_endpgm1187;1188; GCN-NOHSA-VI-LABEL: constant_zextload_v2i16_to_v2i32:1189; GCN-NOHSA-VI: ; %bb.0:1190; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241191; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1192; GCN-NOHSA-VI-NEXT: s_load_dword s2, s[2:3], 0x01193; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s01194; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s11195; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1196; GCN-NOHSA-VI-NEXT: s_lshr_b32 s0, s2, 161197; GCN-NOHSA-VI-NEXT: s_and_b32 s1, s2, 0xffff1198; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s11199; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s01200; GCN-NOHSA-VI-NEXT: flat_store_dwordx2 v[0:1], v[2:3]1201; GCN-NOHSA-VI-NEXT: s_endpgm1202;1203; EG-LABEL: constant_zextload_v2i16_to_v2i32:1204; EG: ; %bb.0:1205; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1206; EG-NEXT: TEX 0 @61207; EG-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]1208; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XY, T5.X, 11209; EG-NEXT: CF_END1210; EG-NEXT: PAD1211; EG-NEXT: Fetch clause starting at 6:1212; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11213; EG-NEXT: ALU clause starting at 8:1214; EG-NEXT: MOV * T4.X, KC0[2].Z,1215; EG-NEXT: ALU clause starting at 9:1216; EG-NEXT: LSHR * T4.Y, T4.X, literal.x,1217; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1218; EG-NEXT: AND_INT T4.X, T4.X, literal.x,1219; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.y,1220; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)1221;1222; GFX12-LABEL: constant_zextload_v2i16_to_v2i32:1223; GFX12: ; %bb.0:1224; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x241225; GFX12-NEXT: s_wait_kmcnt 0x01226; GFX12-NEXT: s_load_b32 s2, s[2:3], 0x01227; GFX12-NEXT: s_wait_kmcnt 0x01228; GFX12-NEXT: s_and_b32 s3, s2, 0xffff1229; GFX12-NEXT: s_lshr_b32 s2, s2, 161230; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1)1231; GFX12-NEXT: v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v1, s21232; GFX12-NEXT: v_mov_b32_e32 v0, s31233; GFX12-NEXT: global_store_b64 v2, v[0:1], s[0:1]1234; GFX12-NEXT: s_endpgm1235 %load = load <2 x i16>, ptr addrspace(4) %in1236 %ext = zext <2 x i16> %load to <2 x i32>1237 store <2 x i32> %ext, ptr addrspace(1) %out1238 ret void1239}1240 1241; TODO: We should use ASHR instead of LSHR + BFE1242define amdgpu_kernel void @constant_sextload_v2i16_to_v2i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {1243; GCN-NOHSA-SI-LABEL: constant_sextload_v2i16_to_v2i32:1244; GCN-NOHSA-SI: ; %bb.0:1245; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91246; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1247; GCN-NOHSA-SI-NEXT: s_load_dword s2, s[2:3], 0x01248; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0001249; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1250; GCN-NOHSA-SI-NEXT: s_ashr_i32 s4, s2, 161251; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s5, s21252; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -11253; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s51254; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s41255; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 01256; GCN-NOHSA-SI-NEXT: s_endpgm1257;1258; GCN-HSA-LABEL: constant_sextload_v2i16_to_v2i32:1259; GCN-HSA: ; %bb.0:1260; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01261; GCN-HSA-NEXT: s_add_i32 s12, s12, s171262; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131263; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81264; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1265; GCN-HSA-NEXT: s_load_dword s2, s[2:3], 0x01266; GCN-HSA-NEXT: v_mov_b32_e32 v0, s01267; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11268; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1269; GCN-HSA-NEXT: s_ashr_i32 s0, s2, 161270; GCN-HSA-NEXT: s_sext_i32_i16 s1, s21271; GCN-HSA-NEXT: v_mov_b32_e32 v2, s11272; GCN-HSA-NEXT: v_mov_b32_e32 v3, s01273; GCN-HSA-NEXT: flat_store_dwordx2 v[0:1], v[2:3]1274; GCN-HSA-NEXT: s_endpgm1275;1276; GCN-NOHSA-VI-LABEL: constant_sextload_v2i16_to_v2i32:1277; GCN-NOHSA-VI: ; %bb.0:1278; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241279; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1280; GCN-NOHSA-VI-NEXT: s_load_dword s2, s[2:3], 0x01281; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s01282; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s11283; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1284; GCN-NOHSA-VI-NEXT: s_ashr_i32 s0, s2, 161285; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s1, s21286; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s11287; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s01288; GCN-NOHSA-VI-NEXT: flat_store_dwordx2 v[0:1], v[2:3]1289; GCN-NOHSA-VI-NEXT: s_endpgm1290;1291; EG-LABEL: constant_sextload_v2i16_to_v2i32:1292; EG: ; %bb.0:1293; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1294; EG-NEXT: TEX 0 @61295; EG-NEXT: ALU 5, @9, KC0[CB0:0-32], KC1[]1296; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XY, T4.X, 11297; EG-NEXT: CF_END1298; EG-NEXT: PAD1299; EG-NEXT: Fetch clause starting at 6:1300; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11301; EG-NEXT: ALU clause starting at 8:1302; EG-NEXT: MOV * T4.X, KC0[2].Z,1303; EG-NEXT: ALU clause starting at 9:1304; EG-NEXT: BFE_INT T5.X, T4.X, 0.0, literal.x,1305; EG-NEXT: LSHR T0.W, T4.X, literal.x,1306; EG-NEXT: LSHR * T4.X, KC0[2].Y, literal.y,1307; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)1308; EG-NEXT: BFE_INT * T5.Y, PV.W, 0.0, literal.x,1309; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1310;1311; GFX12-LABEL: constant_sextload_v2i16_to_v2i32:1312; GFX12: ; %bb.0:1313; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x241314; GFX12-NEXT: s_wait_kmcnt 0x01315; GFX12-NEXT: s_load_b32 s2, s[2:3], 0x01316; GFX12-NEXT: s_wait_kmcnt 0x01317; GFX12-NEXT: s_sext_i32_i16 s3, s21318; GFX12-NEXT: s_ashr_i32 s2, s2, 161319; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1)1320; GFX12-NEXT: v_dual_mov_b32 v2, 0 :: v_dual_mov_b32 v1, s21321; GFX12-NEXT: v_mov_b32_e32 v0, s31322; GFX12-NEXT: global_store_b64 v2, v[0:1], s[0:1]1323; GFX12-NEXT: s_endpgm1324 %load = load <2 x i16>, ptr addrspace(4) %in1325 %ext = sext <2 x i16> %load to <2 x i32>1326 store <2 x i32> %ext, ptr addrspace(1) %out1327 ret void1328}1329 1330define amdgpu_kernel void @constant_zextload_v3i16_to_v3i32(ptr addrspace(1) %out, ptr addrspace(4) %in) {1331; GCN-NOHSA-SI-LABEL: constant_zextload_v3i16_to_v3i32:1332; GCN-NOHSA-SI: ; %bb.0: ; %entry1333; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91334; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1335; GCN-NOHSA-SI-NEXT: s_load_dwordx2 s[4:5], s[2:3], 0x01336; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0001337; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -11338; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1339; GCN-NOHSA-SI-NEXT: s_lshr_b32 s6, s4, 161340; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff1341; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff1342; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s51343; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[0:3], 0 offset:81344; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)1345; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s41346; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s61347; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 01348; GCN-NOHSA-SI-NEXT: s_endpgm1349;1350; GCN-HSA-LABEL: constant_zextload_v3i16_to_v3i32:1351; GCN-HSA: ; %bb.0: ; %entry1352; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01353; GCN-HSA-NEXT: s_add_i32 s12, s12, s171354; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131355; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81356; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1357; GCN-HSA-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x01358; GCN-HSA-NEXT: v_mov_b32_e32 v3, s01359; GCN-HSA-NEXT: v_mov_b32_e32 v4, s11360; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1361; GCN-HSA-NEXT: s_lshr_b32 s0, s2, 161362; GCN-HSA-NEXT: s_and_b32 s1, s3, 0xffff1363; GCN-HSA-NEXT: s_and_b32 s2, s2, 0xffff1364; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21365; GCN-HSA-NEXT: v_mov_b32_e32 v1, s01366; GCN-HSA-NEXT: v_mov_b32_e32 v2, s11367; GCN-HSA-NEXT: flat_store_dwordx3 v[3:4], v[0:2]1368; GCN-HSA-NEXT: s_endpgm1369;1370; GCN-NOHSA-VI-LABEL: constant_zextload_v3i16_to_v3i32:1371; GCN-NOHSA-VI: ; %bb.0: ; %entry1372; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241373; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1374; GCN-NOHSA-VI-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x01375; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s01376; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s11377; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1378; GCN-NOHSA-VI-NEXT: s_and_b32 s0, s3, 0xffff1379; GCN-NOHSA-VI-NEXT: s_lshr_b32 s1, s2, 161380; GCN-NOHSA-VI-NEXT: s_and_b32 s2, s2, 0xffff1381; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s21382; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s11383; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s01384; GCN-NOHSA-VI-NEXT: flat_store_dwordx3 v[3:4], v[0:2]1385; GCN-NOHSA-VI-NEXT: s_endpgm1386;1387; EG-LABEL: constant_zextload_v3i16_to_v3i32:1388; EG: ; %bb.0: ; %entry1389; EG-NEXT: ALU 4, @12, KC0[CB0:0-32], KC1[]1390; EG-NEXT: TEX 2 @61391; EG-NEXT: ALU 2, @17, KC0[], KC1[]1392; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T2.X, T4.X, 01393; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T3.XY, T0.X, 11394; EG-NEXT: CF_END1395; EG-NEXT: Fetch clause starting at 6:1396; EG-NEXT: VTX_READ_16 T2.X, T1.X, 4, #11397; EG-NEXT: VTX_READ_16 T3.X, T1.X, 0, #11398; EG-NEXT: VTX_READ_16 T1.X, T1.X, 2, #11399; EG-NEXT: ALU clause starting at 12:1400; EG-NEXT: LSHR T0.X, KC0[2].Y, literal.x,1401; EG-NEXT: MOV * T1.X, KC0[2].Z,1402; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1403; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,1404; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1405; EG-NEXT: ALU clause starting at 17:1406; EG-NEXT: LSHR T4.X, T0.W, literal.x,1407; EG-NEXT: MOV * T3.Y, T1.X,1408; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1409;1410; GFX12-LABEL: constant_zextload_v3i16_to_v3i32:1411; GFX12: ; %bb.0: ; %entry1412; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x241413; GFX12-NEXT: s_wait_kmcnt 0x01414; GFX12-NEXT: s_load_b64 s[2:3], s[2:3], 0x01415; GFX12-NEXT: s_wait_kmcnt 0x01416; GFX12-NEXT: s_and_b32 s3, s3, 0xffff1417; GFX12-NEXT: s_and_b32 s4, s2, 0xffff1418; GFX12-NEXT: s_lshr_b32 s2, s2, 161419; GFX12-NEXT: v_dual_mov_b32 v3, 0 :: v_dual_mov_b32 v0, s41420; GFX12-NEXT: v_dual_mov_b32 v1, s2 :: v_dual_mov_b32 v2, s31421; GFX12-NEXT: global_store_b96 v3, v[0:2], s[0:1]1422; GFX12-NEXT: s_endpgm1423entry:1424 %ld = load <3 x i16>, ptr addrspace(4) %in1425 %ext = zext <3 x i16> %ld to <3 x i32>1426 store <3 x i32> %ext, ptr addrspace(1) %out1427 ret void1428}1429 1430define amdgpu_kernel void @constant_sextload_v3i16_to_v3i32(ptr addrspace(1) %out, ptr addrspace(4) %in) {1431; GCN-NOHSA-SI-LABEL: constant_sextload_v3i16_to_v3i32:1432; GCN-NOHSA-SI: ; %bb.0: ; %entry1433; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91434; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1435; GCN-NOHSA-SI-NEXT: s_load_dwordx2 s[4:5], s[2:3], 0x01436; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0001437; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -11438; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1439; GCN-NOHSA-SI-NEXT: s_ashr_i32 s6, s4, 161440; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s5, s51441; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s4, s41442; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s51443; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[0:3], 0 offset:81444; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)1445; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s41446; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s61447; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 01448; GCN-NOHSA-SI-NEXT: s_endpgm1449;1450; GCN-HSA-LABEL: constant_sextload_v3i16_to_v3i32:1451; GCN-HSA: ; %bb.0: ; %entry1452; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01453; GCN-HSA-NEXT: s_add_i32 s12, s12, s171454; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131455; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81456; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1457; GCN-HSA-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x01458; GCN-HSA-NEXT: v_mov_b32_e32 v3, s01459; GCN-HSA-NEXT: v_mov_b32_e32 v4, s11460; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1461; GCN-HSA-NEXT: s_ashr_i32 s0, s2, 161462; GCN-HSA-NEXT: s_sext_i32_i16 s1, s31463; GCN-HSA-NEXT: s_sext_i32_i16 s2, s21464; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21465; GCN-HSA-NEXT: v_mov_b32_e32 v1, s01466; GCN-HSA-NEXT: v_mov_b32_e32 v2, s11467; GCN-HSA-NEXT: flat_store_dwordx3 v[3:4], v[0:2]1468; GCN-HSA-NEXT: s_endpgm1469;1470; GCN-NOHSA-VI-LABEL: constant_sextload_v3i16_to_v3i32:1471; GCN-NOHSA-VI: ; %bb.0: ; %entry1472; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241473; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1474; GCN-NOHSA-VI-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x01475; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s01476; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s11477; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1478; GCN-NOHSA-VI-NEXT: s_ashr_i32 s0, s2, 161479; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s1, s31480; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s2, s21481; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s21482; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s01483; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s11484; GCN-NOHSA-VI-NEXT: flat_store_dwordx3 v[3:4], v[0:2]1485; GCN-NOHSA-VI-NEXT: s_endpgm1486;1487; EG-LABEL: constant_sextload_v3i16_to_v3i32:1488; EG: ; %bb.0: ; %entry1489; EG-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]1490; EG-NEXT: TEX 2 @61491; EG-NEXT: ALU 9, @13, KC0[CB0:0-32], KC1[]1492; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T2.X, T3.X, 01493; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 11494; EG-NEXT: CF_END1495; EG-NEXT: Fetch clause starting at 6:1496; EG-NEXT: VTX_READ_16 T1.X, T0.X, 2, #11497; EG-NEXT: VTX_READ_16 T2.X, T0.X, 4, #11498; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #11499; EG-NEXT: ALU clause starting at 12:1500; EG-NEXT: MOV * T0.X, KC0[2].Z,1501; EG-NEXT: ALU clause starting at 13:1502; EG-NEXT: BFE_INT * T0.Y, T1.X, 0.0, literal.x,1503; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1504; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,1505; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,1506; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)1507; EG-NEXT: BFE_INT T2.X, T2.X, 0.0, literal.x,1508; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,1509; EG-NEXT: 16(2.242078e-44), 8(1.121039e-44)1510; EG-NEXT: LSHR * T3.X, PV.W, literal.x,1511; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1512;1513; GFX12-LABEL: constant_sextload_v3i16_to_v3i32:1514; GFX12: ; %bb.0: ; %entry1515; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x241516; GFX12-NEXT: s_wait_kmcnt 0x01517; GFX12-NEXT: s_load_b64 s[2:3], s[2:3], 0x01518; GFX12-NEXT: s_wait_kmcnt 0x01519; GFX12-NEXT: s_ashr_i32 s4, s2, 161520; GFX12-NEXT: s_sext_i32_i16 s2, s21521; GFX12-NEXT: s_sext_i32_i16 s3, s31522; GFX12-NEXT: v_dual_mov_b32 v3, 0 :: v_dual_mov_b32 v0, s21523; GFX12-NEXT: v_dual_mov_b32 v1, s4 :: v_dual_mov_b32 v2, s31524; GFX12-NEXT: global_store_b96 v3, v[0:2], s[0:1]1525; GFX12-NEXT: s_endpgm1526entry:1527 %ld = load <3 x i16>, ptr addrspace(4) %in1528 %ext = sext <3 x i16> %ld to <3 x i32>1529 store <3 x i32> %ext, ptr addrspace(1) %out1530 ret void1531}1532 1533; v4i16 is naturally 8 byte aligned1534; TODO: This should use LD, but for some there are redundant MOVs1535define amdgpu_kernel void @constant_zextload_v4i16_to_v4i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {1536; GCN-NOHSA-SI-LABEL: constant_zextload_v4i16_to_v4i32:1537; GCN-NOHSA-SI: ; %bb.0:1538; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91539; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1540; GCN-NOHSA-SI-NEXT: s_load_dwordx2 s[4:5], s[2:3], 0x01541; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0001542; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1543; GCN-NOHSA-SI-NEXT: s_lshr_b32 s6, s5, 161544; GCN-NOHSA-SI-NEXT: s_lshr_b32 s7, s4, 161545; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff1546; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff1547; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -11548; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s41549; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s71550; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s51551; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s61552; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 01553; GCN-NOHSA-SI-NEXT: s_endpgm1554;1555; GCN-HSA-LABEL: constant_zextload_v4i16_to_v4i32:1556; GCN-HSA: ; %bb.0:1557; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01558; GCN-HSA-NEXT: s_add_i32 s12, s12, s171559; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131560; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81561; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1562; GCN-HSA-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x01563; GCN-HSA-NEXT: v_mov_b32_e32 v4, s01564; GCN-HSA-NEXT: v_mov_b32_e32 v5, s11565; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1566; GCN-HSA-NEXT: s_lshr_b32 s0, s3, 161567; GCN-HSA-NEXT: s_lshr_b32 s1, s2, 161568; GCN-HSA-NEXT: s_and_b32 s3, s3, 0xffff1569; GCN-HSA-NEXT: s_and_b32 s2, s2, 0xffff1570; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21571; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11572; GCN-HSA-NEXT: v_mov_b32_e32 v2, s31573; GCN-HSA-NEXT: v_mov_b32_e32 v3, s01574; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1575; GCN-HSA-NEXT: s_endpgm1576;1577; GCN-NOHSA-VI-LABEL: constant_zextload_v4i16_to_v4i32:1578; GCN-NOHSA-VI: ; %bb.0:1579; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241580; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1581; GCN-NOHSA-VI-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x01582; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s01583; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s11584; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1585; GCN-NOHSA-VI-NEXT: s_lshr_b32 s0, s3, 161586; GCN-NOHSA-VI-NEXT: s_and_b32 s1, s3, 0xffff1587; GCN-NOHSA-VI-NEXT: s_lshr_b32 s3, s2, 161588; GCN-NOHSA-VI-NEXT: s_and_b32 s2, s2, 0xffff1589; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s21590; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s31591; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s11592; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s01593; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1594; GCN-NOHSA-VI-NEXT: s_endpgm1595;1596; EG-LABEL: constant_zextload_v4i16_to_v4i32:1597; EG: ; %bb.0:1598; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1599; EG-NEXT: TEX 0 @61600; EG-NEXT: ALU 8, @9, KC0[CB0:0-32], KC1[]1601; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T6.X, 11602; EG-NEXT: CF_END1603; EG-NEXT: PAD1604; EG-NEXT: Fetch clause starting at 6:1605; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #11606; EG-NEXT: ALU clause starting at 8:1607; EG-NEXT: MOV * T5.X, KC0[2].Z,1608; EG-NEXT: ALU clause starting at 9:1609; EG-NEXT: LSHR * T5.W, T5.Y, literal.x,1610; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1611; EG-NEXT: AND_INT * T5.Z, T5.Y, literal.x,1612; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)1613; EG-NEXT: LSHR * T5.Y, T5.X, literal.x,1614; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1615; EG-NEXT: AND_INT T5.X, T5.X, literal.x,1616; EG-NEXT: LSHR * T6.X, KC0[2].Y, literal.y,1617; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)1618;1619; GFX12-LABEL: constant_zextload_v4i16_to_v4i32:1620; GFX12: ; %bb.0:1621; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x241622; GFX12-NEXT: s_wait_kmcnt 0x01623; GFX12-NEXT: s_load_b64 s[2:3], s[2:3], 0x01624; GFX12-NEXT: s_wait_kmcnt 0x01625; GFX12-NEXT: s_lshr_b32 s4, s3, 161626; GFX12-NEXT: s_and_b32 s3, s3, 0xffff1627; GFX12-NEXT: s_and_b32 s5, s2, 0xffff1628; GFX12-NEXT: s_lshr_b32 s2, s2, 161629; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1)1630; GFX12-NEXT: v_dual_mov_b32 v4, 0 :: v_dual_mov_b32 v1, s21631; GFX12-NEXT: v_dual_mov_b32 v0, s5 :: v_dual_mov_b32 v3, s41632; GFX12-NEXT: v_mov_b32_e32 v2, s31633; GFX12-NEXT: global_store_b128 v4, v[0:3], s[0:1]1634; GFX12-NEXT: s_endpgm1635 %load = load <4 x i16>, ptr addrspace(4) %in1636 %ext = zext <4 x i16> %load to <4 x i32>1637 store <4 x i32> %ext, ptr addrspace(1) %out1638 ret void1639}1640 1641; v4i16 is naturally 8 byte aligned1642; TODO: This should use LD, but for some there are redundant MOVs1643; TODO: We should use ASHR instead of LSHR + BFE1644define amdgpu_kernel void @constant_sextload_v4i16_to_v4i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {1645; GCN-NOHSA-SI-LABEL: constant_sextload_v4i16_to_v4i32:1646; GCN-NOHSA-SI: ; %bb.0:1647; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91648; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1649; GCN-NOHSA-SI-NEXT: s_load_dwordx2 s[4:5], s[2:3], 0x01650; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0001651; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1652; GCN-NOHSA-SI-NEXT: s_ashr_i32 s6, s5, 161653; GCN-NOHSA-SI-NEXT: s_ashr_i32 s7, s4, 161654; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s5, s51655; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s4, s41656; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -11657; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s41658; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s71659; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s51660; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s61661; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 01662; GCN-NOHSA-SI-NEXT: s_endpgm1663;1664; GCN-HSA-LABEL: constant_sextload_v4i16_to_v4i32:1665; GCN-HSA: ; %bb.0:1666; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01667; GCN-HSA-NEXT: s_add_i32 s12, s12, s171668; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131669; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81670; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1671; GCN-HSA-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x01672; GCN-HSA-NEXT: v_mov_b32_e32 v4, s01673; GCN-HSA-NEXT: v_mov_b32_e32 v5, s11674; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1675; GCN-HSA-NEXT: s_ashr_i32 s0, s3, 161676; GCN-HSA-NEXT: s_ashr_i32 s1, s2, 161677; GCN-HSA-NEXT: s_sext_i32_i16 s3, s31678; GCN-HSA-NEXT: s_sext_i32_i16 s2, s21679; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21680; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11681; GCN-HSA-NEXT: v_mov_b32_e32 v2, s31682; GCN-HSA-NEXT: v_mov_b32_e32 v3, s01683; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1684; GCN-HSA-NEXT: s_endpgm1685;1686; GCN-NOHSA-VI-LABEL: constant_sextload_v4i16_to_v4i32:1687; GCN-NOHSA-VI: ; %bb.0:1688; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241689; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1690; GCN-NOHSA-VI-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x01691; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s01692; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s11693; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1694; GCN-NOHSA-VI-NEXT: s_ashr_i32 s0, s3, 161695; GCN-NOHSA-VI-NEXT: s_ashr_i32 s1, s2, 161696; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s3, s31697; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s2, s21698; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s21699; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s11700; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s31701; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s01702; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1703; GCN-NOHSA-VI-NEXT: s_endpgm1704;1705; EG-LABEL: constant_sextload_v4i16_to_v4i32:1706; EG: ; %bb.0:1707; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1708; EG-NEXT: TEX 0 @61709; EG-NEXT: ALU 10, @9, KC0[CB0:0-32], KC1[]1710; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T5.X, 11711; EG-NEXT: CF_END1712; EG-NEXT: PAD1713; EG-NEXT: Fetch clause starting at 6:1714; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #11715; EG-NEXT: ALU clause starting at 8:1716; EG-NEXT: MOV * T5.X, KC0[2].Z,1717; EG-NEXT: ALU clause starting at 9:1718; EG-NEXT: BFE_INT * T6.Z, T5.Y, 0.0, literal.x,1719; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1720; EG-NEXT: BFE_INT T6.X, T5.X, 0.0, literal.x,1721; EG-NEXT: LSHR * T0.W, T5.Y, literal.x,1722; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1723; EG-NEXT: BFE_INT T6.W, PV.W, 0.0, literal.x,1724; EG-NEXT: LSHR * T0.W, T5.X, literal.x,1725; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1726; EG-NEXT: LSHR T5.X, KC0[2].Y, literal.x,1727; EG-NEXT: BFE_INT * T6.Y, PS, 0.0, literal.y,1728; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)1729;1730; GFX12-LABEL: constant_sextload_v4i16_to_v4i32:1731; GFX12: ; %bb.0:1732; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x241733; GFX12-NEXT: s_wait_kmcnt 0x01734; GFX12-NEXT: s_load_b64 s[2:3], s[2:3], 0x01735; GFX12-NEXT: s_wait_kmcnt 0x01736; GFX12-NEXT: s_ashr_i32 s4, s3, 161737; GFX12-NEXT: s_ashr_i32 s5, s2, 161738; GFX12-NEXT: s_sext_i32_i16 s2, s21739; GFX12-NEXT: s_sext_i32_i16 s3, s31740; GFX12-NEXT: v_dual_mov_b32 v4, 0 :: v_dual_mov_b32 v1, s51741; GFX12-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v3, s41742; GFX12-NEXT: v_mov_b32_e32 v2, s31743; GFX12-NEXT: global_store_b128 v4, v[0:3], s[0:1]1744; GFX12-NEXT: s_endpgm1745 %load = load <4 x i16>, ptr addrspace(4) %in1746 %ext = sext <4 x i16> %load to <4 x i32>1747 store <4 x i32> %ext, ptr addrspace(1) %out1748 ret void1749}1750 1751; v8i16 is naturally 16 byte aligned1752; TODO: These should use LSHR instead of BFE_UINT1753; TODO: This should use DST, but for some there are redundant MOVs1754define amdgpu_kernel void @constant_zextload_v8i16_to_v8i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {1755; GCN-NOHSA-SI-LABEL: constant_zextload_v8i16_to_v8i32:1756; GCN-NOHSA-SI: ; %bb.0:1757; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91758; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1759; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x01760; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0001761; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -11762; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1763; GCN-NOHSA-SI-NEXT: s_lshr_b32 s8, s5, 161764; GCN-NOHSA-SI-NEXT: s_lshr_b32 s9, s4, 161765; GCN-NOHSA-SI-NEXT: s_lshr_b32 s10, s7, 161766; GCN-NOHSA-SI-NEXT: s_lshr_b32 s11, s6, 161767; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff1768; GCN-NOHSA-SI-NEXT: s_and_b32 s7, s7, 0xffff1769; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xffff1770; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff1771; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s61772; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s111773; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s71774; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s101775; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:161776; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)1777; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s41778; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s91779; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s51780; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s81781; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 01782; GCN-NOHSA-SI-NEXT: s_endpgm1783;1784; GCN-HSA-LABEL: constant_zextload_v8i16_to_v8i32:1785; GCN-HSA: ; %bb.0:1786; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01787; GCN-HSA-NEXT: s_add_i32 s12, s12, s171788; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81789; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131790; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1791; GCN-HSA-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x01792; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1793; GCN-HSA-NEXT: s_lshr_b32 s8, s5, 161794; GCN-HSA-NEXT: s_lshr_b32 s9, s4, 161795; GCN-HSA-NEXT: s_lshr_b32 s2, s7, 161796; GCN-HSA-NEXT: s_lshr_b32 s3, s6, 161797; GCN-HSA-NEXT: s_and_b32 s5, s5, 0xffff1798; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xffff1799; GCN-HSA-NEXT: s_and_b32 s7, s7, 0xffff1800; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xffff1801; GCN-HSA-NEXT: v_mov_b32_e32 v3, s21802; GCN-HSA-NEXT: s_add_u32 s2, s0, 161803; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31804; GCN-HSA-NEXT: s_addc_u32 s3, s1, 01805; GCN-HSA-NEXT: v_mov_b32_e32 v5, s31806; GCN-HSA-NEXT: v_mov_b32_e32 v0, s61807; GCN-HSA-NEXT: v_mov_b32_e32 v2, s71808; GCN-HSA-NEXT: v_mov_b32_e32 v4, s21809; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1810; GCN-HSA-NEXT: v_mov_b32_e32 v5, s11811; GCN-HSA-NEXT: v_mov_b32_e32 v0, s41812; GCN-HSA-NEXT: v_mov_b32_e32 v1, s91813; GCN-HSA-NEXT: v_mov_b32_e32 v2, s51814; GCN-HSA-NEXT: v_mov_b32_e32 v3, s81815; GCN-HSA-NEXT: v_mov_b32_e32 v4, s01816; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1817; GCN-HSA-NEXT: s_endpgm1818;1819; GCN-NOHSA-VI-LABEL: constant_zextload_v8i16_to_v8i32:1820; GCN-NOHSA-VI: ; %bb.0:1821; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241822; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1823; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x01824; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1825; GCN-NOHSA-VI-NEXT: s_lshr_b32 s8, s5, 161826; GCN-NOHSA-VI-NEXT: s_and_b32 s5, s5, 0xffff1827; GCN-NOHSA-VI-NEXT: s_lshr_b32 s9, s4, 161828; GCN-NOHSA-VI-NEXT: s_and_b32 s4, s4, 0xffff1829; GCN-NOHSA-VI-NEXT: s_lshr_b32 s2, s7, 161830; GCN-NOHSA-VI-NEXT: s_and_b32 s3, s7, 0xffff1831; GCN-NOHSA-VI-NEXT: s_lshr_b32 s7, s6, 161832; GCN-NOHSA-VI-NEXT: s_and_b32 s6, s6, 0xffff1833; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s21834; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 161835; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s31836; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 01837; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s31838; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s61839; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s71840; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s21841; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1842; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s11843; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s41844; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s91845; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s51846; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s81847; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s01848; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1849; GCN-NOHSA-VI-NEXT: s_endpgm1850;1851; EG-LABEL: constant_zextload_v8i16_to_v8i32:1852; EG: ; %bb.0:1853; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1854; EG-NEXT: TEX 0 @61855; EG-NEXT: ALU 17, @9, KC0[CB0:0-32], KC1[]1856; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T10.X, 01857; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T7.X, 11858; EG-NEXT: CF_END1859; EG-NEXT: Fetch clause starting at 6:1860; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #11861; EG-NEXT: ALU clause starting at 8:1862; EG-NEXT: MOV * T7.X, KC0[2].Z,1863; EG-NEXT: ALU clause starting at 9:1864; EG-NEXT: LSHR * T8.W, T7.Y, literal.x,1865; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1866; EG-NEXT: AND_INT * T8.Z, T7.Y, literal.x,1867; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)1868; EG-NEXT: LSHR T8.Y, T7.X, literal.x,1869; EG-NEXT: LSHR * T9.W, T7.W, literal.x,1870; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1871; EG-NEXT: AND_INT T8.X, T7.X, literal.x,1872; EG-NEXT: AND_INT T9.Z, T7.W, literal.x,1873; EG-NEXT: LSHR * T7.X, KC0[2].Y, literal.y,1874; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)1875; EG-NEXT: LSHR * T9.Y, T7.Z, literal.x,1876; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1877; EG-NEXT: AND_INT T9.X, T7.Z, literal.x,1878; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,1879; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)1880; EG-NEXT: LSHR * T10.X, PV.W, literal.x,1881; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1882;1883; GFX12-LABEL: constant_zextload_v8i16_to_v8i32:1884; GFX12: ; %bb.0:1885; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x241886; GFX12-NEXT: s_wait_kmcnt 0x01887; GFX12-NEXT: s_load_b128 s[4:7], s[2:3], 0x01888; GFX12-NEXT: s_wait_kmcnt 0x01889; GFX12-NEXT: s_lshr_b32 s8, s7, 161890; GFX12-NEXT: s_and_b32 s7, s7, 0xffff1891; GFX12-NEXT: s_and_b32 s9, s6, 0xffff1892; GFX12-NEXT: s_lshr_b32 s6, s6, 161893; GFX12-NEXT: s_lshr_b32 s2, s5, 161894; GFX12-NEXT: s_and_b32 s3, s5, 0xffff1895; GFX12-NEXT: s_lshr_b32 s5, s4, 161896; GFX12-NEXT: s_and_b32 s4, s4, 0xffff1897; GFX12-NEXT: v_dual_mov_b32 v8, 0 :: v_dual_mov_b32 v1, s61898; GFX12-NEXT: v_dual_mov_b32 v0, s9 :: v_dual_mov_b32 v3, s81899; GFX12-NEXT: v_dual_mov_b32 v2, s7 :: v_dual_mov_b32 v5, s51900; GFX12-NEXT: v_dual_mov_b32 v4, s4 :: v_dual_mov_b32 v7, s21901; GFX12-NEXT: v_mov_b32_e32 v6, s31902; GFX12-NEXT: s_clause 0x11903; GFX12-NEXT: global_store_b128 v8, v[0:3], s[0:1] offset:161904; GFX12-NEXT: global_store_b128 v8, v[4:7], s[0:1]1905; GFX12-NEXT: s_endpgm1906 %load = load <8 x i16>, ptr addrspace(4) %in1907 %ext = zext <8 x i16> %load to <8 x i32>1908 store <8 x i32> %ext, ptr addrspace(1) %out1909 ret void1910}1911 1912; v8i16 is naturally 16 byte aligned1913; TODO: 4 of these should use ASHR instead of LSHR + BFE_INT1914; TODO: This should use DST, but for some there are redundant MOVs1915define amdgpu_kernel void @constant_sextload_v8i16_to_v8i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {1916; GCN-NOHSA-SI-LABEL: constant_sextload_v8i16_to_v8i32:1917; GCN-NOHSA-SI: ; %bb.0:1918; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91919; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1920; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x01921; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0001922; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -11923; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1924; GCN-NOHSA-SI-NEXT: s_ashr_i32 s8, s5, 161925; GCN-NOHSA-SI-NEXT: s_ashr_i32 s9, s4, 161926; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s5, s51927; GCN-NOHSA-SI-NEXT: s_ashr_i32 s10, s7, 161928; GCN-NOHSA-SI-NEXT: s_ashr_i32 s11, s6, 161929; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s7, s71930; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s6, s61931; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s4, s41932; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s61933; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s111934; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s71935; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s101936; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:161937; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)1938; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s41939; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s91940; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s51941; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s81942; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 01943; GCN-NOHSA-SI-NEXT: s_endpgm1944;1945; GCN-HSA-LABEL: constant_sextload_v8i16_to_v8i32:1946; GCN-HSA: ; %bb.0:1947; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01948; GCN-HSA-NEXT: s_add_i32 s12, s12, s171949; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81950; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131951; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1952; GCN-HSA-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x01953; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1954; GCN-HSA-NEXT: s_ashr_i32 s8, s5, 161955; GCN-HSA-NEXT: s_ashr_i32 s9, s4, 161956; GCN-HSA-NEXT: s_ashr_i32 s2, s7, 161957; GCN-HSA-NEXT: s_ashr_i32 s3, s6, 161958; GCN-HSA-NEXT: v_mov_b32_e32 v3, s21959; GCN-HSA-NEXT: s_add_u32 s2, s0, 161960; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31961; GCN-HSA-NEXT: s_addc_u32 s3, s1, 01962; GCN-HSA-NEXT: s_sext_i32_i16 s7, s71963; GCN-HSA-NEXT: s_sext_i32_i16 s6, s61964; GCN-HSA-NEXT: v_mov_b32_e32 v5, s31965; GCN-HSA-NEXT: v_mov_b32_e32 v0, s61966; GCN-HSA-NEXT: v_mov_b32_e32 v2, s71967; GCN-HSA-NEXT: v_mov_b32_e32 v4, s21968; GCN-HSA-NEXT: s_sext_i32_i16 s5, s51969; GCN-HSA-NEXT: s_sext_i32_i16 s4, s41970; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1971; GCN-HSA-NEXT: v_mov_b32_e32 v5, s11972; GCN-HSA-NEXT: v_mov_b32_e32 v0, s41973; GCN-HSA-NEXT: v_mov_b32_e32 v1, s91974; GCN-HSA-NEXT: v_mov_b32_e32 v2, s51975; GCN-HSA-NEXT: v_mov_b32_e32 v3, s81976; GCN-HSA-NEXT: v_mov_b32_e32 v4, s01977; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1978; GCN-HSA-NEXT: s_endpgm1979;1980; GCN-NOHSA-VI-LABEL: constant_sextload_v8i16_to_v8i32:1981; GCN-NOHSA-VI: ; %bb.0:1982; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241983; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1984; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x01985; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1986; GCN-NOHSA-VI-NEXT: s_ashr_i32 s8, s5, 161987; GCN-NOHSA-VI-NEXT: s_ashr_i32 s9, s4, 161988; GCN-NOHSA-VI-NEXT: s_ashr_i32 s2, s7, 161989; GCN-NOHSA-VI-NEXT: s_ashr_i32 s3, s6, 161990; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s21991; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 161992; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s31993; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 01994; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s7, s71995; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s6, s61996; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s31997; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s61998; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s71999; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s22000; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s5, s52001; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s4, s42002; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2003; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s12004; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s42005; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s92006; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s52007; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s82008; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s02009; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2010; GCN-NOHSA-VI-NEXT: s_endpgm2011;2012; EG-LABEL: constant_sextload_v8i16_to_v8i32:2013; EG: ; %bb.0:2014; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]2015; EG-NEXT: TEX 0 @62016; EG-NEXT: ALU 19, @9, KC0[CB0:0-32], KC1[]2017; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T10.X, 02018; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T7.X, 12019; EG-NEXT: CF_END2020; EG-NEXT: Fetch clause starting at 6:2021; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #12022; EG-NEXT: ALU clause starting at 8:2023; EG-NEXT: MOV * T7.X, KC0[2].Z,2024; EG-NEXT: ALU clause starting at 9:2025; EG-NEXT: BFE_INT * T8.Z, T7.Y, 0.0, literal.x,2026; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2027; EG-NEXT: BFE_INT T8.X, T7.X, 0.0, literal.x,2028; EG-NEXT: BFE_INT T9.Z, T7.W, 0.0, literal.x,2029; EG-NEXT: LSHR * T0.W, T7.Y, literal.x,2030; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2031; EG-NEXT: BFE_INT T9.X, T7.Z, 0.0, literal.x,2032; EG-NEXT: LSHR T0.Z, T7.W, literal.x,2033; EG-NEXT: BFE_INT T8.W, PV.W, 0.0, literal.x,2034; EG-NEXT: LSHR * T0.W, T7.X, literal.x,2035; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2036; EG-NEXT: LSHR T7.X, KC0[2].Y, literal.x,2037; EG-NEXT: BFE_INT T8.Y, PS, 0.0, literal.y,2038; EG-NEXT: LSHR T1.Z, T7.Z, literal.y,2039; EG-NEXT: BFE_INT T9.W, PV.Z, 0.0, literal.y,2040; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2041; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2042; EG-NEXT: LSHR T10.X, PS, literal.x,2043; EG-NEXT: BFE_INT * T9.Y, PV.Z, 0.0, literal.y,2044; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2045;2046; GFX12-LABEL: constant_sextload_v8i16_to_v8i32:2047; GFX12: ; %bb.0:2048; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x242049; GFX12-NEXT: s_wait_kmcnt 0x02050; GFX12-NEXT: s_load_b128 s[4:7], s[2:3], 0x02051; GFX12-NEXT: s_wait_kmcnt 0x02052; GFX12-NEXT: s_ashr_i32 s8, s7, 162053; GFX12-NEXT: s_ashr_i32 s9, s6, 162054; GFX12-NEXT: s_sext_i32_i16 s6, s62055; GFX12-NEXT: s_sext_i32_i16 s7, s72056; GFX12-NEXT: s_ashr_i32 s2, s5, 162057; GFX12-NEXT: s_ashr_i32 s3, s4, 162058; GFX12-NEXT: s_sext_i32_i16 s5, s52059; GFX12-NEXT: s_sext_i32_i16 s4, s42060; GFX12-NEXT: v_dual_mov_b32 v8, 0 :: v_dual_mov_b32 v1, s92061; GFX12-NEXT: v_dual_mov_b32 v0, s6 :: v_dual_mov_b32 v3, s82062; GFX12-NEXT: v_dual_mov_b32 v2, s7 :: v_dual_mov_b32 v5, s32063; GFX12-NEXT: v_dual_mov_b32 v4, s4 :: v_dual_mov_b32 v7, s22064; GFX12-NEXT: v_mov_b32_e32 v6, s52065; GFX12-NEXT: s_clause 0x12066; GFX12-NEXT: global_store_b128 v8, v[0:3], s[0:1] offset:162067; GFX12-NEXT: global_store_b128 v8, v[4:7], s[0:1]2068; GFX12-NEXT: s_endpgm2069 %load = load <8 x i16>, ptr addrspace(4) %in2070 %ext = sext <8 x i16> %load to <8 x i32>2071 store <8 x i32> %ext, ptr addrspace(1) %out2072 ret void2073}2074 2075define amdgpu_kernel void @constant_zextload_v16i16_to_v16i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {2076; GCN-NOHSA-SI-LABEL: constant_zextload_v16i16_to_v16i32:2077; GCN-NOHSA-SI: ; %bb.0:2078; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x92079; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2080; GCN-NOHSA-SI-NEXT: s_load_dwordx8 s[4:11], s[2:3], 0x02081; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0002082; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -12083; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2084; GCN-NOHSA-SI-NEXT: s_lshr_b32 s12, s5, 162085; GCN-NOHSA-SI-NEXT: s_lshr_b32 s13, s4, 162086; GCN-NOHSA-SI-NEXT: s_lshr_b32 s14, s7, 162087; GCN-NOHSA-SI-NEXT: s_lshr_b32 s15, s6, 162088; GCN-NOHSA-SI-NEXT: s_lshr_b32 s16, s9, 162089; GCN-NOHSA-SI-NEXT: s_lshr_b32 s17, s8, 162090; GCN-NOHSA-SI-NEXT: s_lshr_b32 s18, s11, 162091; GCN-NOHSA-SI-NEXT: s_lshr_b32 s19, s10, 162092; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff2093; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff2094; GCN-NOHSA-SI-NEXT: s_and_b32 s7, s7, 0xffff2095; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xffff2096; GCN-NOHSA-SI-NEXT: s_and_b32 s9, s9, 0xffff2097; GCN-NOHSA-SI-NEXT: s_and_b32 s11, s11, 0xffff2098; GCN-NOHSA-SI-NEXT: s_and_b32 s10, s10, 0xffff2099; GCN-NOHSA-SI-NEXT: s_and_b32 s8, s8, 0xffff2100; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s102101; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s192102; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s112103; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s182104; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:482105; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2106; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s82107; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s172108; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s92109; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s162110; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:322111; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2112; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s62113; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s152114; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s72115; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s142116; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:162117; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2118; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s42119; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s132120; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s52121; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s122122; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 02123; GCN-NOHSA-SI-NEXT: s_endpgm2124;2125; GCN-HSA-LABEL: constant_zextload_v16i16_to_v16i32:2126; GCN-HSA: ; %bb.0:2127; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x02128; GCN-HSA-NEXT: s_add_i32 s12, s12, s172129; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s132130; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 82131; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2132; GCN-HSA-NEXT: s_load_dwordx8 s[4:11], s[2:3], 0x02133; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2134; GCN-HSA-NEXT: s_lshr_b32 s12, s5, 162135; GCN-HSA-NEXT: s_lshr_b32 s13, s4, 162136; GCN-HSA-NEXT: s_lshr_b32 s14, s7, 162137; GCN-HSA-NEXT: s_lshr_b32 s15, s6, 162138; GCN-HSA-NEXT: s_lshr_b32 s16, s9, 162139; GCN-HSA-NEXT: s_lshr_b32 s17, s8, 162140; GCN-HSA-NEXT: s_lshr_b32 s2, s11, 162141; GCN-HSA-NEXT: s_lshr_b32 s3, s10, 162142; GCN-HSA-NEXT: s_and_b32 s5, s5, 0xffff2143; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xffff2144; GCN-HSA-NEXT: s_and_b32 s7, s7, 0xffff2145; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xffff2146; GCN-HSA-NEXT: s_and_b32 s9, s9, 0xffff2147; GCN-HSA-NEXT: s_and_b32 s8, s8, 0xffff2148; GCN-HSA-NEXT: s_and_b32 s11, s11, 0xffff2149; GCN-HSA-NEXT: s_and_b32 s10, s10, 0xffff2150; GCN-HSA-NEXT: v_mov_b32_e32 v3, s22151; GCN-HSA-NEXT: s_add_u32 s2, s0, 482152; GCN-HSA-NEXT: v_mov_b32_e32 v1, s32153; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02154; GCN-HSA-NEXT: v_mov_b32_e32 v5, s32155; GCN-HSA-NEXT: v_mov_b32_e32 v4, s22156; GCN-HSA-NEXT: s_add_u32 s2, s0, 322157; GCN-HSA-NEXT: v_mov_b32_e32 v0, s102158; GCN-HSA-NEXT: v_mov_b32_e32 v2, s112159; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02160; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2161; GCN-HSA-NEXT: v_mov_b32_e32 v5, s32162; GCN-HSA-NEXT: v_mov_b32_e32 v4, s22163; GCN-HSA-NEXT: s_add_u32 s2, s0, 162164; GCN-HSA-NEXT: v_mov_b32_e32 v0, s82165; GCN-HSA-NEXT: v_mov_b32_e32 v1, s172166; GCN-HSA-NEXT: v_mov_b32_e32 v2, s92167; GCN-HSA-NEXT: v_mov_b32_e32 v3, s162168; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02169; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2170; GCN-HSA-NEXT: v_mov_b32_e32 v5, s32171; GCN-HSA-NEXT: v_mov_b32_e32 v0, s62172; GCN-HSA-NEXT: v_mov_b32_e32 v1, s152173; GCN-HSA-NEXT: v_mov_b32_e32 v2, s72174; GCN-HSA-NEXT: v_mov_b32_e32 v3, s142175; GCN-HSA-NEXT: v_mov_b32_e32 v4, s22176; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2177; GCN-HSA-NEXT: v_mov_b32_e32 v5, s12178; GCN-HSA-NEXT: v_mov_b32_e32 v0, s42179; GCN-HSA-NEXT: v_mov_b32_e32 v1, s132180; GCN-HSA-NEXT: v_mov_b32_e32 v2, s52181; GCN-HSA-NEXT: v_mov_b32_e32 v3, s122182; GCN-HSA-NEXT: v_mov_b32_e32 v4, s02183; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2184; GCN-HSA-NEXT: s_endpgm2185;2186; GCN-NOHSA-VI-LABEL: constant_zextload_v16i16_to_v16i32:2187; GCN-NOHSA-VI: ; %bb.0:2188; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x242189; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2190; GCN-NOHSA-VI-NEXT: s_load_dwordx8 s[4:11], s[2:3], 0x02191; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2192; GCN-NOHSA-VI-NEXT: s_lshr_b32 s12, s5, 162193; GCN-NOHSA-VI-NEXT: s_and_b32 s5, s5, 0xffff2194; GCN-NOHSA-VI-NEXT: s_lshr_b32 s13, s4, 162195; GCN-NOHSA-VI-NEXT: s_and_b32 s4, s4, 0xffff2196; GCN-NOHSA-VI-NEXT: s_lshr_b32 s14, s7, 162197; GCN-NOHSA-VI-NEXT: s_and_b32 s7, s7, 0xffff2198; GCN-NOHSA-VI-NEXT: s_lshr_b32 s15, s6, 162199; GCN-NOHSA-VI-NEXT: s_and_b32 s6, s6, 0xffff2200; GCN-NOHSA-VI-NEXT: s_lshr_b32 s16, s9, 162201; GCN-NOHSA-VI-NEXT: s_and_b32 s9, s9, 0xffff2202; GCN-NOHSA-VI-NEXT: s_lshr_b32 s17, s8, 162203; GCN-NOHSA-VI-NEXT: s_and_b32 s8, s8, 0xffff2204; GCN-NOHSA-VI-NEXT: s_lshr_b32 s2, s11, 162205; GCN-NOHSA-VI-NEXT: s_and_b32 s3, s11, 0xffff2206; GCN-NOHSA-VI-NEXT: s_lshr_b32 s11, s10, 162207; GCN-NOHSA-VI-NEXT: s_and_b32 s10, s10, 0xffff2208; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s22209; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 482210; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s32211; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 02212; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s32213; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s22214; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 322215; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s102216; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s112217; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 02218; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2219; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s32220; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s22221; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 162222; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s82223; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s172224; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s92225; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s162226; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 02227; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2228; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s32229; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s62230; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s152231; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s72232; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s142233; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s22234; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2235; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s12236; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s42237; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s132238; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s52239; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s122240; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s02241; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2242; GCN-NOHSA-VI-NEXT: s_endpgm2243;2244; EG-LABEL: constant_zextload_v16i16_to_v16i32:2245; EG: ; %bb.0:2246; EG-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]2247; EG-NEXT: TEX 1 @82248; EG-NEXT: ALU 35, @13, KC0[CB0:0-32], KC1[]2249; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T18.X, 02250; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T11.X, 02251; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T16.X, 02252; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T12.X, 12253; EG-NEXT: CF_END2254; EG-NEXT: Fetch clause starting at 8:2255; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 0, #12256; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 16, #12257; EG-NEXT: ALU clause starting at 12:2258; EG-NEXT: MOV * T11.X, KC0[2].Z,2259; EG-NEXT: ALU clause starting at 13:2260; EG-NEXT: LSHR * T13.W, T12.Y, literal.x,2261; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2262; EG-NEXT: AND_INT * T13.Z, T12.Y, literal.x,2263; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2264; EG-NEXT: LSHR T13.Y, T12.X, literal.x,2265; EG-NEXT: LSHR * T14.W, T12.W, literal.x,2266; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2267; EG-NEXT: AND_INT T13.X, T12.X, literal.x,2268; EG-NEXT: AND_INT T14.Z, T12.W, literal.x,2269; EG-NEXT: LSHR * T12.X, KC0[2].Y, literal.y,2270; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)2271; EG-NEXT: LSHR T14.Y, T12.Z, literal.x,2272; EG-NEXT: LSHR * T15.W, T11.Y, literal.x,2273; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2274; EG-NEXT: AND_INT T14.X, T12.Z, literal.x,2275; EG-NEXT: AND_INT T15.Z, T11.Y, literal.x,2276; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2277; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)2278; EG-NEXT: LSHR T16.X, PV.W, literal.x,2279; EG-NEXT: LSHR T15.Y, T11.X, literal.y,2280; EG-NEXT: LSHR T17.W, T11.W, literal.y,2281; EG-NEXT: AND_INT * T15.X, T11.X, literal.z,2282; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2283; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2284; EG-NEXT: AND_INT T17.Z, T11.W, literal.x,2285; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2286; EG-NEXT: 65535(9.183409e-41), 32(4.484155e-44)2287; EG-NEXT: LSHR T11.X, PV.W, literal.x,2288; EG-NEXT: LSHR T17.Y, T11.Z, literal.y,2289; EG-NEXT: AND_INT * T17.X, T11.Z, literal.z,2290; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2291; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2292; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,2293; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)2294; EG-NEXT: LSHR * T18.X, PV.W, literal.x,2295; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)2296;2297; GFX12-LABEL: constant_zextload_v16i16_to_v16i32:2298; GFX12: ; %bb.0:2299; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x242300; GFX12-NEXT: s_wait_kmcnt 0x02301; GFX12-NEXT: s_load_b256 s[4:11], s[2:3], 0x02302; GFX12-NEXT: s_wait_kmcnt 0x02303; GFX12-NEXT: s_lshr_b32 s16, s11, 162304; GFX12-NEXT: s_and_b32 s11, s11, 0xffff2305; GFX12-NEXT: s_and_b32 s17, s10, 0xffff2306; GFX12-NEXT: s_lshr_b32 s10, s10, 162307; GFX12-NEXT: s_lshr_b32 s14, s9, 162308; GFX12-NEXT: s_and_b32 s9, s9, 0xffff2309; GFX12-NEXT: s_lshr_b32 s15, s8, 162310; GFX12-NEXT: s_and_b32 s8, s8, 0xffff2311; GFX12-NEXT: v_dual_mov_b32 v16, 0 :: v_dual_mov_b32 v1, s102312; GFX12-NEXT: s_lshr_b32 s12, s7, 162313; GFX12-NEXT: s_and_b32 s7, s7, 0xffff2314; GFX12-NEXT: s_lshr_b32 s13, s6, 162315; GFX12-NEXT: s_and_b32 s6, s6, 0xffff2316; GFX12-NEXT: v_dual_mov_b32 v0, s17 :: v_dual_mov_b32 v3, s162317; GFX12-NEXT: v_dual_mov_b32 v2, s11 :: v_dual_mov_b32 v5, s152318; GFX12-NEXT: s_lshr_b32 s2, s5, 162319; GFX12-NEXT: s_and_b32 s3, s5, 0xffff2320; GFX12-NEXT: s_lshr_b32 s5, s4, 162321; GFX12-NEXT: s_and_b32 s4, s4, 0xffff2322; GFX12-NEXT: v_dual_mov_b32 v4, s8 :: v_dual_mov_b32 v7, s142323; GFX12-NEXT: v_dual_mov_b32 v6, s9 :: v_dual_mov_b32 v9, s132324; GFX12-NEXT: v_dual_mov_b32 v8, s6 :: v_dual_mov_b32 v11, s122325; GFX12-NEXT: v_dual_mov_b32 v10, s7 :: v_dual_mov_b32 v13, s52326; GFX12-NEXT: v_dual_mov_b32 v12, s4 :: v_dual_mov_b32 v15, s22327; GFX12-NEXT: v_mov_b32_e32 v14, s32328; GFX12-NEXT: s_clause 0x32329; GFX12-NEXT: global_store_b128 v16, v[0:3], s[0:1] offset:482330; GFX12-NEXT: global_store_b128 v16, v[4:7], s[0:1] offset:322331; GFX12-NEXT: global_store_b128 v16, v[8:11], s[0:1] offset:162332; GFX12-NEXT: global_store_b128 v16, v[12:15], s[0:1]2333; GFX12-NEXT: s_endpgm2334 %load = load <16 x i16>, ptr addrspace(4) %in2335 %ext = zext <16 x i16> %load to <16 x i32>2336 store <16 x i32> %ext, ptr addrspace(1) %out2337 ret void2338}2339 2340define amdgpu_kernel void @constant_sextload_v16i16_to_v16i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {2341; GCN-NOHSA-SI-LABEL: constant_sextload_v16i16_to_v16i32:2342; GCN-NOHSA-SI: ; %bb.0:2343; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x92344; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2345; GCN-NOHSA-SI-NEXT: s_load_dwordx8 s[4:11], s[2:3], 0x02346; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0002347; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -12348; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2349; GCN-NOHSA-SI-NEXT: s_ashr_i32 s12, s5, 162350; GCN-NOHSA-SI-NEXT: s_ashr_i32 s13, s4, 162351; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s5, s52352; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s4, s42353; GCN-NOHSA-SI-NEXT: s_ashr_i32 s14, s7, 162354; GCN-NOHSA-SI-NEXT: s_ashr_i32 s15, s6, 162355; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s7, s72356; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s6, s62357; GCN-NOHSA-SI-NEXT: s_ashr_i32 s16, s9, 162358; GCN-NOHSA-SI-NEXT: s_ashr_i32 s17, s8, 162359; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s9, s92360; GCN-NOHSA-SI-NEXT: s_ashr_i32 s18, s11, 162361; GCN-NOHSA-SI-NEXT: s_ashr_i32 s19, s10, 162362; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s11, s112363; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s10, s102364; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s8, s82365; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s102366; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s192367; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s112368; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s182369; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:482370; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2371; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s82372; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s172373; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s92374; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s162375; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:322376; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2377; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s62378; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s152379; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s72380; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s142381; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:162382; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2383; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s42384; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s132385; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s52386; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s122387; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 02388; GCN-NOHSA-SI-NEXT: s_endpgm2389;2390; GCN-HSA-LABEL: constant_sextload_v16i16_to_v16i32:2391; GCN-HSA: ; %bb.0:2392; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x02393; GCN-HSA-NEXT: s_add_i32 s12, s12, s172394; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s132395; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 82396; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2397; GCN-HSA-NEXT: s_load_dwordx8 s[4:11], s[2:3], 0x02398; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2399; GCN-HSA-NEXT: s_ashr_i32 s12, s5, 162400; GCN-HSA-NEXT: s_ashr_i32 s13, s4, 162401; GCN-HSA-NEXT: s_ashr_i32 s14, s7, 162402; GCN-HSA-NEXT: s_ashr_i32 s15, s6, 162403; GCN-HSA-NEXT: s_ashr_i32 s16, s9, 162404; GCN-HSA-NEXT: s_ashr_i32 s17, s8, 162405; GCN-HSA-NEXT: s_ashr_i32 s2, s11, 162406; GCN-HSA-NEXT: s_ashr_i32 s3, s10, 162407; GCN-HSA-NEXT: v_mov_b32_e32 v3, s22408; GCN-HSA-NEXT: s_add_u32 s2, s0, 482409; GCN-HSA-NEXT: v_mov_b32_e32 v1, s32410; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02411; GCN-HSA-NEXT: v_mov_b32_e32 v5, s32412; GCN-HSA-NEXT: s_sext_i32_i16 s11, s112413; GCN-HSA-NEXT: s_sext_i32_i16 s10, s102414; GCN-HSA-NEXT: v_mov_b32_e32 v4, s22415; GCN-HSA-NEXT: s_add_u32 s2, s0, 322416; GCN-HSA-NEXT: v_mov_b32_e32 v0, s102417; GCN-HSA-NEXT: v_mov_b32_e32 v2, s112418; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02419; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2420; GCN-HSA-NEXT: v_mov_b32_e32 v5, s32421; GCN-HSA-NEXT: s_sext_i32_i16 s9, s92422; GCN-HSA-NEXT: s_sext_i32_i16 s8, s82423; GCN-HSA-NEXT: v_mov_b32_e32 v4, s22424; GCN-HSA-NEXT: s_add_u32 s2, s0, 162425; GCN-HSA-NEXT: v_mov_b32_e32 v0, s82426; GCN-HSA-NEXT: v_mov_b32_e32 v1, s172427; GCN-HSA-NEXT: v_mov_b32_e32 v2, s92428; GCN-HSA-NEXT: v_mov_b32_e32 v3, s162429; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02430; GCN-HSA-NEXT: s_sext_i32_i16 s7, s72431; GCN-HSA-NEXT: s_sext_i32_i16 s6, s62432; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2433; GCN-HSA-NEXT: v_mov_b32_e32 v5, s32434; GCN-HSA-NEXT: v_mov_b32_e32 v0, s62435; GCN-HSA-NEXT: v_mov_b32_e32 v1, s152436; GCN-HSA-NEXT: v_mov_b32_e32 v2, s72437; GCN-HSA-NEXT: v_mov_b32_e32 v3, s142438; GCN-HSA-NEXT: v_mov_b32_e32 v4, s22439; GCN-HSA-NEXT: s_sext_i32_i16 s5, s52440; GCN-HSA-NEXT: s_sext_i32_i16 s4, s42441; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2442; GCN-HSA-NEXT: v_mov_b32_e32 v5, s12443; GCN-HSA-NEXT: v_mov_b32_e32 v0, s42444; GCN-HSA-NEXT: v_mov_b32_e32 v1, s132445; GCN-HSA-NEXT: v_mov_b32_e32 v2, s52446; GCN-HSA-NEXT: v_mov_b32_e32 v3, s122447; GCN-HSA-NEXT: v_mov_b32_e32 v4, s02448; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2449; GCN-HSA-NEXT: s_endpgm2450;2451; GCN-NOHSA-VI-LABEL: constant_sextload_v16i16_to_v16i32:2452; GCN-NOHSA-VI: ; %bb.0:2453; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x242454; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2455; GCN-NOHSA-VI-NEXT: s_load_dwordx8 s[4:11], s[2:3], 0x02456; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2457; GCN-NOHSA-VI-NEXT: s_ashr_i32 s12, s5, 162458; GCN-NOHSA-VI-NEXT: s_ashr_i32 s13, s4, 162459; GCN-NOHSA-VI-NEXT: s_ashr_i32 s14, s7, 162460; GCN-NOHSA-VI-NEXT: s_ashr_i32 s15, s6, 162461; GCN-NOHSA-VI-NEXT: s_ashr_i32 s16, s9, 162462; GCN-NOHSA-VI-NEXT: s_ashr_i32 s17, s8, 162463; GCN-NOHSA-VI-NEXT: s_ashr_i32 s2, s11, 162464; GCN-NOHSA-VI-NEXT: s_ashr_i32 s3, s10, 162465; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s22466; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 482467; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s32468; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 02469; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s32470; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s11, s112471; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s10, s102472; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s22473; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 322474; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s102475; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s112476; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 02477; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2478; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s32479; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s9, s92480; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s8, s82481; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s22482; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 162483; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s82484; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s172485; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s92486; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s162487; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 02488; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s7, s72489; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s6, s62490; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2491; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s32492; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s62493; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s152494; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s72495; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s142496; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s22497; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s5, s52498; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s4, s42499; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2500; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s12501; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s42502; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s132503; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s52504; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s122505; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s02506; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2507; GCN-NOHSA-VI-NEXT: s_endpgm2508;2509; EG-LABEL: constant_sextload_v16i16_to_v16i32:2510; EG: ; %bb.0:2511; EG-NEXT: ALU 0, @12, KC0[CB0:0-32], KC1[]2512; EG-NEXT: TEX 1 @82513; EG-NEXT: ALU 39, @13, KC0[CB0:0-32], KC1[]2514; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T18.XYZW, T12.X, 02515; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T11.X, 02516; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T16.XYZW, T14.X, 02517; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T13.X, 12518; EG-NEXT: CF_END2519; EG-NEXT: Fetch clause starting at 8:2520; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #12521; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #12522; EG-NEXT: ALU clause starting at 12:2523; EG-NEXT: MOV * T11.X, KC0[2].Z,2524; EG-NEXT: ALU clause starting at 13:2525; EG-NEXT: LSHR T13.X, KC0[2].Y, literal.x,2526; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2527; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2528; EG-NEXT: LSHR T14.X, PV.W, literal.x,2529; EG-NEXT: BFE_INT * T15.Z, T11.Y, 0.0, literal.y,2530; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2531; EG-NEXT: BFE_INT T15.X, T11.X, 0.0, literal.x,2532; EG-NEXT: LSHR T0.Y, T12.W, literal.x,2533; EG-NEXT: BFE_INT T16.Z, T11.W, 0.0, literal.x, BS:VEC_120/SCL_2122534; EG-NEXT: LSHR T0.W, T12.Y, literal.x,2535; EG-NEXT: LSHR * T1.W, T11.Y, literal.x,2536; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2537; EG-NEXT: BFE_INT T16.X, T11.Z, 0.0, literal.x,2538; EG-NEXT: LSHR T1.Y, T11.W, literal.x,2539; EG-NEXT: BFE_INT T17.Z, T12.Y, 0.0, literal.x,2540; EG-NEXT: BFE_INT T15.W, PS, 0.0, literal.x,2541; EG-NEXT: LSHR * T1.W, T11.X, literal.x,2542; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2543; EG-NEXT: BFE_INT T17.X, T12.X, 0.0, literal.x,2544; EG-NEXT: BFE_INT T15.Y, PS, 0.0, literal.x,2545; EG-NEXT: BFE_INT T18.Z, T12.W, 0.0, literal.x,2546; EG-NEXT: BFE_INT T16.W, PV.Y, 0.0, literal.x,2547; EG-NEXT: LSHR * T1.W, T11.Z, literal.x,2548; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2549; EG-NEXT: BFE_INT T18.X, T12.Z, 0.0, literal.x,2550; EG-NEXT: BFE_INT T16.Y, PS, 0.0, literal.x,2551; EG-NEXT: LSHR T0.Z, T12.X, literal.x,2552; EG-NEXT: BFE_INT T17.W, T0.W, 0.0, literal.x,2553; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2554; EG-NEXT: 16(2.242078e-44), 32(4.484155e-44)2555; EG-NEXT: LSHR T11.X, PS, literal.x,2556; EG-NEXT: BFE_INT T17.Y, PV.Z, 0.0, literal.y,2557; EG-NEXT: LSHR T0.Z, T12.Z, literal.y,2558; EG-NEXT: BFE_INT T18.W, T0.Y, 0.0, literal.y,2559; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,2560; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2561; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)2562; EG-NEXT: LSHR T12.X, PS, literal.x,2563; EG-NEXT: BFE_INT * T18.Y, PV.Z, 0.0, literal.y,2564; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2565;2566; GFX12-LABEL: constant_sextload_v16i16_to_v16i32:2567; GFX12: ; %bb.0:2568; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x242569; GFX12-NEXT: s_wait_kmcnt 0x02570; GFX12-NEXT: s_load_b256 s[4:11], s[2:3], 0x02571; GFX12-NEXT: s_wait_kmcnt 0x02572; GFX12-NEXT: s_ashr_i32 s16, s11, 162573; GFX12-NEXT: s_ashr_i32 s17, s10, 162574; GFX12-NEXT: s_sext_i32_i16 s10, s102575; GFX12-NEXT: s_sext_i32_i16 s11, s112576; GFX12-NEXT: s_ashr_i32 s14, s9, 162577; GFX12-NEXT: s_ashr_i32 s15, s8, 162578; GFX12-NEXT: s_sext_i32_i16 s9, s92579; GFX12-NEXT: s_sext_i32_i16 s8, s82580; GFX12-NEXT: v_dual_mov_b32 v16, 0 :: v_dual_mov_b32 v1, s172581; GFX12-NEXT: s_ashr_i32 s12, s7, 162582; GFX12-NEXT: s_ashr_i32 s13, s6, 162583; GFX12-NEXT: s_sext_i32_i16 s7, s72584; GFX12-NEXT: s_sext_i32_i16 s6, s62585; GFX12-NEXT: v_dual_mov_b32 v0, s10 :: v_dual_mov_b32 v3, s162586; GFX12-NEXT: v_dual_mov_b32 v2, s11 :: v_dual_mov_b32 v5, s152587; GFX12-NEXT: s_ashr_i32 s2, s5, 162588; GFX12-NEXT: s_ashr_i32 s3, s4, 162589; GFX12-NEXT: s_sext_i32_i16 s5, s52590; GFX12-NEXT: s_sext_i32_i16 s4, s42591; GFX12-NEXT: v_dual_mov_b32 v4, s8 :: v_dual_mov_b32 v7, s142592; GFX12-NEXT: v_dual_mov_b32 v6, s9 :: v_dual_mov_b32 v9, s132593; GFX12-NEXT: v_dual_mov_b32 v8, s6 :: v_dual_mov_b32 v11, s122594; GFX12-NEXT: v_dual_mov_b32 v10, s7 :: v_dual_mov_b32 v13, s32595; GFX12-NEXT: v_dual_mov_b32 v12, s4 :: v_dual_mov_b32 v15, s22596; GFX12-NEXT: v_mov_b32_e32 v14, s52597; GFX12-NEXT: s_clause 0x32598; GFX12-NEXT: global_store_b128 v16, v[0:3], s[0:1] offset:482599; GFX12-NEXT: global_store_b128 v16, v[4:7], s[0:1] offset:322600; GFX12-NEXT: global_store_b128 v16, v[8:11], s[0:1] offset:162601; GFX12-NEXT: global_store_b128 v16, v[12:15], s[0:1]2602; GFX12-NEXT: s_endpgm2603 %load = load <16 x i16>, ptr addrspace(4) %in2604 %ext = sext <16 x i16> %load to <16 x i32>2605 store <16 x i32> %ext, ptr addrspace(1) %out2606 ret void2607}2608 2609define amdgpu_kernel void @constant_zextload_v32i16_to_v32i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {2610; GCN-NOHSA-SI-LABEL: constant_zextload_v32i16_to_v32i32:2611; GCN-NOHSA-SI: ; %bb.0:2612; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x92613; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2614; GCN-NOHSA-SI-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x02615; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2616; GCN-NOHSA-SI-NEXT: s_lshr_b32 s18, s1, 162617; GCN-NOHSA-SI-NEXT: s_lshr_b32 s19, s0, 162618; GCN-NOHSA-SI-NEXT: s_lshr_b32 s20, s3, 162619; GCN-NOHSA-SI-NEXT: s_lshr_b32 s21, s2, 162620; GCN-NOHSA-SI-NEXT: s_lshr_b32 s22, s5, 162621; GCN-NOHSA-SI-NEXT: s_lshr_b32 s23, s4, 162622; GCN-NOHSA-SI-NEXT: s_lshr_b32 s24, s7, 162623; GCN-NOHSA-SI-NEXT: s_lshr_b32 s25, s6, 162624; GCN-NOHSA-SI-NEXT: s_lshr_b32 s26, s9, 162625; GCN-NOHSA-SI-NEXT: s_lshr_b32 s27, s8, 162626; GCN-NOHSA-SI-NEXT: s_lshr_b32 s28, s11, 162627; GCN-NOHSA-SI-NEXT: s_lshr_b32 s29, s10, 162628; GCN-NOHSA-SI-NEXT: s_lshr_b32 s30, s13, 162629; GCN-NOHSA-SI-NEXT: s_lshr_b32 s31, s12, 162630; GCN-NOHSA-SI-NEXT: s_lshr_b32 s33, s15, 162631; GCN-NOHSA-SI-NEXT: s_lshr_b32 s34, s14, 162632; GCN-NOHSA-SI-NEXT: s_and_b32 s35, s1, 0xffff2633; GCN-NOHSA-SI-NEXT: s_and_b32 s36, s0, 0xffff2634; GCN-NOHSA-SI-NEXT: s_and_b32 s37, s3, 0xffff2635; GCN-NOHSA-SI-NEXT: s_and_b32 s38, s2, 0xffff2636; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff2637; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff2638; GCN-NOHSA-SI-NEXT: s_and_b32 s7, s7, 0xffff2639; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xffff2640; GCN-NOHSA-SI-NEXT: s_and_b32 s9, s9, 0xffff2641; GCN-NOHSA-SI-NEXT: s_and_b32 s8, s8, 0xffff2642; GCN-NOHSA-SI-NEXT: s_and_b32 s11, s11, 0xffff2643; GCN-NOHSA-SI-NEXT: s_and_b32 s10, s10, 0xffff2644; GCN-NOHSA-SI-NEXT: s_and_b32 s13, s13, 0xffff2645; GCN-NOHSA-SI-NEXT: s_and_b32 s12, s12, 0xffff2646; GCN-NOHSA-SI-NEXT: s_and_b32 s15, s15, 0xffff2647; GCN-NOHSA-SI-NEXT: s_and_b32 s14, s14, 0xffff2648; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0002649; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -12650; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s162651; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s172652; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s142653; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s342654; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s152655; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s332656; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1122657; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2658; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s122659; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s312660; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s132661; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s302662; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:962663; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2664; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s102665; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s292666; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s112667; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s282668; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:802669; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2670; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s82671; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s272672; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s92673; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s262674; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:642675; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2676; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s62677; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s252678; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s72679; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s242680; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:482681; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2682; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s42683; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s232684; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s52685; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s222686; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:322687; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2688; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s382689; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s212690; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s372691; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s202692; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:162693; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)2694; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s362695; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s192696; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s352697; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s182698; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 02699; GCN-NOHSA-SI-NEXT: s_endpgm2700;2701; GCN-HSA-LABEL: constant_zextload_v32i16_to_v32i32:2702; GCN-HSA: ; %bb.0:2703; GCN-HSA-NEXT: s_add_i32 s12, s12, s172704; GCN-HSA-NEXT: s_load_dwordx4 s[16:19], s[8:9], 0x02705; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s132706; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 82707; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2708; GCN-HSA-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x02709; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2710; GCN-HSA-NEXT: s_lshr_b32 s18, s1, 162711; GCN-HSA-NEXT: s_lshr_b32 s19, s0, 162712; GCN-HSA-NEXT: s_lshr_b32 s20, s3, 162713; GCN-HSA-NEXT: s_lshr_b32 s21, s2, 162714; GCN-HSA-NEXT: s_lshr_b32 s22, s5, 162715; GCN-HSA-NEXT: s_lshr_b32 s23, s4, 162716; GCN-HSA-NEXT: s_lshr_b32 s24, s7, 162717; GCN-HSA-NEXT: s_lshr_b32 s25, s6, 162718; GCN-HSA-NEXT: s_lshr_b32 s26, s9, 162719; GCN-HSA-NEXT: s_lshr_b32 s27, s8, 162720; GCN-HSA-NEXT: s_lshr_b32 s28, s11, 162721; GCN-HSA-NEXT: s_lshr_b32 s29, s10, 162722; GCN-HSA-NEXT: s_lshr_b32 s30, s13, 162723; GCN-HSA-NEXT: s_lshr_b32 s31, s12, 162724; GCN-HSA-NEXT: s_lshr_b32 s33, s15, 162725; GCN-HSA-NEXT: s_lshr_b32 s34, s14, 162726; GCN-HSA-NEXT: s_and_b32 s35, s1, 0xffff2727; GCN-HSA-NEXT: s_and_b32 s36, s0, 0xffff2728; GCN-HSA-NEXT: s_and_b32 s3, s3, 0xffff2729; GCN-HSA-NEXT: s_and_b32 s2, s2, 0xffff2730; GCN-HSA-NEXT: s_and_b32 s5, s5, 0xffff2731; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xffff2732; GCN-HSA-NEXT: s_and_b32 s7, s7, 0xffff2733; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xffff2734; GCN-HSA-NEXT: s_and_b32 s9, s9, 0xffff2735; GCN-HSA-NEXT: s_and_b32 s8, s8, 0xffff2736; GCN-HSA-NEXT: s_and_b32 s11, s11, 0xffff2737; GCN-HSA-NEXT: s_and_b32 s10, s10, 0xffff2738; GCN-HSA-NEXT: s_and_b32 s13, s13, 0xffff2739; GCN-HSA-NEXT: s_and_b32 s12, s12, 0xffff2740; GCN-HSA-NEXT: s_and_b32 s15, s15, 0xffff2741; GCN-HSA-NEXT: s_and_b32 s14, s14, 0xffff2742; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x702743; GCN-HSA-NEXT: s_addc_u32 s1, s17, 02744; GCN-HSA-NEXT: v_mov_b32_e32 v9, s12745; GCN-HSA-NEXT: v_mov_b32_e32 v8, s02746; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x602747; GCN-HSA-NEXT: s_addc_u32 s1, s17, 02748; GCN-HSA-NEXT: v_mov_b32_e32 v11, s12749; GCN-HSA-NEXT: v_mov_b32_e32 v10, s02750; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x502751; GCN-HSA-NEXT: v_mov_b32_e32 v0, s142752; GCN-HSA-NEXT: v_mov_b32_e32 v1, s342753; GCN-HSA-NEXT: v_mov_b32_e32 v2, s152754; GCN-HSA-NEXT: v_mov_b32_e32 v3, s332755; GCN-HSA-NEXT: v_mov_b32_e32 v4, s122756; GCN-HSA-NEXT: v_mov_b32_e32 v5, s312757; GCN-HSA-NEXT: s_addc_u32 s1, s17, 02758; GCN-HSA-NEXT: v_mov_b32_e32 v6, s132759; GCN-HSA-NEXT: v_mov_b32_e32 v7, s302760; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[0:3]2761; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[4:7]2762; GCN-HSA-NEXT: v_mov_b32_e32 v0, s102763; GCN-HSA-NEXT: v_mov_b32_e32 v5, s12764; GCN-HSA-NEXT: v_mov_b32_e32 v4, s02765; GCN-HSA-NEXT: s_add_u32 s0, s16, 642766; GCN-HSA-NEXT: v_mov_b32_e32 v1, s292767; GCN-HSA-NEXT: v_mov_b32_e32 v2, s112768; GCN-HSA-NEXT: v_mov_b32_e32 v3, s282769; GCN-HSA-NEXT: s_addc_u32 s1, s17, 02770; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2771; GCN-HSA-NEXT: v_mov_b32_e32 v5, s12772; GCN-HSA-NEXT: v_mov_b32_e32 v4, s02773; GCN-HSA-NEXT: s_add_u32 s0, s16, 482774; GCN-HSA-NEXT: v_mov_b32_e32 v0, s82775; GCN-HSA-NEXT: v_mov_b32_e32 v1, s272776; GCN-HSA-NEXT: v_mov_b32_e32 v2, s92777; GCN-HSA-NEXT: v_mov_b32_e32 v3, s262778; GCN-HSA-NEXT: s_addc_u32 s1, s17, 02779; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2780; GCN-HSA-NEXT: v_mov_b32_e32 v5, s12781; GCN-HSA-NEXT: v_mov_b32_e32 v4, s02782; GCN-HSA-NEXT: s_add_u32 s0, s16, 322783; GCN-HSA-NEXT: v_mov_b32_e32 v0, s62784; GCN-HSA-NEXT: v_mov_b32_e32 v1, s252785; GCN-HSA-NEXT: v_mov_b32_e32 v2, s72786; GCN-HSA-NEXT: v_mov_b32_e32 v3, s242787; GCN-HSA-NEXT: s_addc_u32 s1, s17, 02788; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2789; GCN-HSA-NEXT: v_mov_b32_e32 v5, s12790; GCN-HSA-NEXT: v_mov_b32_e32 v4, s02791; GCN-HSA-NEXT: s_add_u32 s0, s16, 162792; GCN-HSA-NEXT: v_mov_b32_e32 v0, s42793; GCN-HSA-NEXT: v_mov_b32_e32 v1, s232794; GCN-HSA-NEXT: v_mov_b32_e32 v2, s52795; GCN-HSA-NEXT: v_mov_b32_e32 v3, s222796; GCN-HSA-NEXT: s_addc_u32 s1, s17, 02797; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2798; GCN-HSA-NEXT: v_mov_b32_e32 v5, s12799; GCN-HSA-NEXT: v_mov_b32_e32 v0, s22800; GCN-HSA-NEXT: v_mov_b32_e32 v1, s212801; GCN-HSA-NEXT: v_mov_b32_e32 v2, s32802; GCN-HSA-NEXT: v_mov_b32_e32 v3, s202803; GCN-HSA-NEXT: v_mov_b32_e32 v4, s02804; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2805; GCN-HSA-NEXT: v_mov_b32_e32 v4, s162806; GCN-HSA-NEXT: v_mov_b32_e32 v0, s362807; GCN-HSA-NEXT: v_mov_b32_e32 v1, s192808; GCN-HSA-NEXT: v_mov_b32_e32 v2, s352809; GCN-HSA-NEXT: v_mov_b32_e32 v3, s182810; GCN-HSA-NEXT: v_mov_b32_e32 v5, s172811; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2812; GCN-HSA-NEXT: s_endpgm2813;2814; GCN-NOHSA-VI-LABEL: constant_zextload_v32i16_to_v32i32:2815; GCN-NOHSA-VI: ; %bb.0:2816; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x242817; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2818; GCN-NOHSA-VI-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x02819; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2820; GCN-NOHSA-VI-NEXT: s_lshr_b32 s18, s1, 162821; GCN-NOHSA-VI-NEXT: s_and_b32 s19, s1, 0xffff2822; GCN-NOHSA-VI-NEXT: s_lshr_b32 s20, s0, 162823; GCN-NOHSA-VI-NEXT: s_and_b32 s21, s0, 0xffff2824; GCN-NOHSA-VI-NEXT: s_lshr_b32 s22, s3, 162825; GCN-NOHSA-VI-NEXT: s_and_b32 s3, s3, 0xffff2826; GCN-NOHSA-VI-NEXT: s_lshr_b32 s23, s2, 162827; GCN-NOHSA-VI-NEXT: s_and_b32 s2, s2, 0xffff2828; GCN-NOHSA-VI-NEXT: s_lshr_b32 s24, s5, 162829; GCN-NOHSA-VI-NEXT: s_and_b32 s5, s5, 0xffff2830; GCN-NOHSA-VI-NEXT: s_lshr_b32 s25, s4, 162831; GCN-NOHSA-VI-NEXT: s_and_b32 s4, s4, 0xffff2832; GCN-NOHSA-VI-NEXT: s_lshr_b32 s26, s7, 162833; GCN-NOHSA-VI-NEXT: s_and_b32 s7, s7, 0xffff2834; GCN-NOHSA-VI-NEXT: s_lshr_b32 s27, s6, 162835; GCN-NOHSA-VI-NEXT: s_and_b32 s6, s6, 0xffff2836; GCN-NOHSA-VI-NEXT: s_lshr_b32 s28, s9, 162837; GCN-NOHSA-VI-NEXT: s_and_b32 s9, s9, 0xffff2838; GCN-NOHSA-VI-NEXT: s_lshr_b32 s29, s8, 162839; GCN-NOHSA-VI-NEXT: s_and_b32 s8, s8, 0xffff2840; GCN-NOHSA-VI-NEXT: s_lshr_b32 s30, s11, 162841; GCN-NOHSA-VI-NEXT: s_and_b32 s11, s11, 0xffff2842; GCN-NOHSA-VI-NEXT: s_lshr_b32 s31, s10, 162843; GCN-NOHSA-VI-NEXT: s_and_b32 s10, s10, 0xffff2844; GCN-NOHSA-VI-NEXT: s_lshr_b32 s33, s13, 162845; GCN-NOHSA-VI-NEXT: s_and_b32 s13, s13, 0xffff2846; GCN-NOHSA-VI-NEXT: s_lshr_b32 s34, s12, 162847; GCN-NOHSA-VI-NEXT: s_and_b32 s12, s12, 0xffff2848; GCN-NOHSA-VI-NEXT: s_lshr_b32 s0, s15, 162849; GCN-NOHSA-VI-NEXT: s_and_b32 s1, s15, 0xffff2850; GCN-NOHSA-VI-NEXT: s_lshr_b32 s15, s14, 162851; GCN-NOHSA-VI-NEXT: s_and_b32 s14, s14, 0xffff2852; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s02853; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 0x702854; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s12855; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 02856; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s12857; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s02858; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 0x602859; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s142860; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s152861; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 02862; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2863; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s12864; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s02865; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 0x502866; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s122867; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s342868; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s132869; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s332870; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 02871; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2872; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s12873; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s02874; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 642875; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s102876; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s312877; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s112878; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s302879; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 02880; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2881; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s12882; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s02883; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 482884; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s82885; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s292886; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s92887; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s282888; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 02889; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2890; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s12891; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s02892; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 322893; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s62894; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s272895; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s72896; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s262897; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 02898; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2899; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s12900; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s02901; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 162902; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s42903; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s252904; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s52905; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s242906; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 02907; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2908; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s12909; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s22910; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s232911; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s32912; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s222913; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s02914; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2915; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s162916; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s212917; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s202918; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s192919; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s182920; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s172921; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]2922; GCN-NOHSA-VI-NEXT: s_endpgm2923;2924; EG-LABEL: constant_zextload_v32i16_to_v32i32:2925; EG: ; %bb.0:2926; EG-NEXT: ALU 0, @20, KC0[CB0:0-32], KC1[]2927; EG-NEXT: TEX 3 @122928; EG-NEXT: ALU 71, @21, KC0[CB0:0-32], KC1[]2929; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T33.XYZW, T34.X, 02930; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T31.XYZW, T21.X, 02931; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T30.XYZW, T32.X, 02932; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T28.XYZW, T22.X, 02933; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T27.XYZW, T29.X, 02934; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T19.X, 02935; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T24.XYZW, T26.X, 02936; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T20.X, 12937; EG-NEXT: CF_END2938; EG-NEXT: Fetch clause starting at 12:2939; EG-NEXT: VTX_READ_128 T20.XYZW, T19.X, 0, #12940; EG-NEXT: VTX_READ_128 T21.XYZW, T19.X, 48, #12941; EG-NEXT: VTX_READ_128 T22.XYZW, T19.X, 32, #12942; EG-NEXT: VTX_READ_128 T19.XYZW, T19.X, 16, #12943; EG-NEXT: ALU clause starting at 20:2944; EG-NEXT: MOV * T19.X, KC0[2].Z,2945; EG-NEXT: ALU clause starting at 21:2946; EG-NEXT: LSHR * T23.W, T20.Y, literal.x,2947; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2948; EG-NEXT: AND_INT * T23.Z, T20.Y, literal.x,2949; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2950; EG-NEXT: LSHR T23.Y, T20.X, literal.x,2951; EG-NEXT: LSHR * T24.W, T20.W, literal.x,2952; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2953; EG-NEXT: AND_INT T23.X, T20.X, literal.x,2954; EG-NEXT: AND_INT T24.Z, T20.W, literal.x,2955; EG-NEXT: LSHR * T20.X, KC0[2].Y, literal.y,2956; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)2957; EG-NEXT: LSHR T24.Y, T20.Z, literal.x,2958; EG-NEXT: LSHR * T25.W, T19.Y, literal.x,2959; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2960; EG-NEXT: AND_INT T24.X, T20.Z, literal.x,2961; EG-NEXT: AND_INT T25.Z, T19.Y, literal.x,2962; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2963; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)2964; EG-NEXT: LSHR T26.X, PV.W, literal.x,2965; EG-NEXT: LSHR T25.Y, T19.X, literal.y,2966; EG-NEXT: LSHR T27.W, T19.W, literal.y,2967; EG-NEXT: AND_INT * T25.X, T19.X, literal.z,2968; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2969; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2970; EG-NEXT: AND_INT T27.Z, T19.W, literal.x,2971; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2972; EG-NEXT: 65535(9.183409e-41), 32(4.484155e-44)2973; EG-NEXT: LSHR T19.X, PV.W, literal.x,2974; EG-NEXT: LSHR T27.Y, T19.Z, literal.y,2975; EG-NEXT: LSHR T28.W, T22.Y, literal.y,2976; EG-NEXT: AND_INT * T27.X, T19.Z, literal.z,2977; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2978; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2979; EG-NEXT: AND_INT T28.Z, T22.Y, literal.x,2980; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2981; EG-NEXT: 65535(9.183409e-41), 48(6.726233e-44)2982; EG-NEXT: LSHR T29.X, PV.W, literal.x,2983; EG-NEXT: LSHR T28.Y, T22.X, literal.y,2984; EG-NEXT: LSHR T30.W, T22.W, literal.y,2985; EG-NEXT: AND_INT * T28.X, T22.X, literal.z,2986; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2987; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2988; EG-NEXT: AND_INT T30.Z, T22.W, literal.x,2989; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2990; EG-NEXT: 65535(9.183409e-41), 64(8.968310e-44)2991; EG-NEXT: LSHR T22.X, PV.W, literal.x,2992; EG-NEXT: LSHR T30.Y, T22.Z, literal.y,2993; EG-NEXT: LSHR T31.W, T21.Y, literal.y,2994; EG-NEXT: AND_INT * T30.X, T22.Z, literal.z,2995; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2996; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)2997; EG-NEXT: AND_INT T31.Z, T21.Y, literal.x,2998; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2999; EG-NEXT: 65535(9.183409e-41), 80(1.121039e-43)3000; EG-NEXT: LSHR T32.X, PV.W, literal.x,3001; EG-NEXT: LSHR T31.Y, T21.X, literal.y,3002; EG-NEXT: LSHR T33.W, T21.W, literal.y,3003; EG-NEXT: AND_INT * T31.X, T21.X, literal.z,3004; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3005; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)3006; EG-NEXT: AND_INT T33.Z, T21.W, literal.x,3007; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3008; EG-NEXT: 65535(9.183409e-41), 96(1.345247e-43)3009; EG-NEXT: LSHR T21.X, PV.W, literal.x,3010; EG-NEXT: LSHR T33.Y, T21.Z, literal.y,3011; EG-NEXT: AND_INT * T33.X, T21.Z, literal.z,3012; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3013; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)3014; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,3015; EG-NEXT: 112(1.569454e-43), 0(0.000000e+00)3016; EG-NEXT: LSHR * T34.X, PV.W, literal.x,3017; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)3018;3019; GFX12-LABEL: constant_zextload_v32i16_to_v32i32:3020; GFX12: ; %bb.0:3021; GFX12-NEXT: s_load_b128 s[16:19], s[4:5], 0x243022; GFX12-NEXT: s_wait_kmcnt 0x03023; GFX12-NEXT: s_load_b512 s[0:15], s[18:19], 0x03024; GFX12-NEXT: s_wait_kmcnt 0x03025; GFX12-NEXT: s_lshr_b32 s33, s15, 163026; GFX12-NEXT: s_and_b32 s15, s15, 0xffff3027; GFX12-NEXT: s_and_b32 s34, s14, 0xffff3028; GFX12-NEXT: s_lshr_b32 s14, s14, 163029; GFX12-NEXT: s_lshr_b32 s30, s13, 163030; GFX12-NEXT: s_and_b32 s13, s13, 0xffff3031; GFX12-NEXT: s_lshr_b32 s31, s12, 163032; GFX12-NEXT: s_and_b32 s12, s12, 0xffff3033; GFX12-NEXT: v_dual_mov_b32 v24, 0 :: v_dual_mov_b32 v1, s143034; GFX12-NEXT: v_dual_mov_b32 v0, s34 :: v_dual_mov_b32 v3, s333035; GFX12-NEXT: v_dual_mov_b32 v2, s15 :: v_dual_mov_b32 v5, s313036; GFX12-NEXT: s_lshr_b32 s29, s10, 163037; GFX12-NEXT: v_dual_mov_b32 v4, s12 :: v_dual_mov_b32 v7, s303038; GFX12-NEXT: v_dual_mov_b32 v6, s13 :: v_dual_mov_b32 v9, s293039; GFX12-NEXT: s_lshr_b32 s28, s11, 163040; GFX12-NEXT: s_and_b32 s11, s11, 0xffff3041; GFX12-NEXT: s_and_b32 s10, s10, 0xffff3042; GFX12-NEXT: s_lshr_b32 s26, s9, 163043; GFX12-NEXT: s_and_b32 s9, s9, 0xffff3044; GFX12-NEXT: s_lshr_b32 s27, s8, 163045; GFX12-NEXT: s_and_b32 s8, s8, 0xffff3046; GFX12-NEXT: s_lshr_b32 s24, s7, 163047; GFX12-NEXT: s_and_b32 s7, s7, 0xffff3048; GFX12-NEXT: s_lshr_b32 s25, s6, 163049; GFX12-NEXT: s_and_b32 s6, s6, 0xffff3050; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)3051; GFX12-NEXT: v_dual_mov_b32 v8, s10 :: v_dual_mov_b32 v11, s283052; GFX12-NEXT: v_mov_b32_e32 v10, s113053; GFX12-NEXT: s_lshr_b32 s22, s5, 163054; GFX12-NEXT: s_and_b32 s5, s5, 0xffff3055; GFX12-NEXT: s_lshr_b32 s23, s4, 163056; GFX12-NEXT: s_and_b32 s4, s4, 0xffff3057; GFX12-NEXT: s_clause 0x13058; GFX12-NEXT: global_store_b128 v24, v[0:3], s[16:17] offset:1123059; GFX12-NEXT: global_store_b128 v24, v[4:7], s[16:17] offset:963060; GFX12-NEXT: v_dual_mov_b32 v0, s8 :: v_dual_mov_b32 v3, s263061; GFX12-NEXT: v_dual_mov_b32 v1, s27 :: v_dual_mov_b32 v2, s93062; GFX12-NEXT: v_mov_b32_e32 v5, s253063; GFX12-NEXT: s_lshr_b32 s20, s3, 163064; GFX12-NEXT: s_and_b32 s3, s3, 0xffff3065; GFX12-NEXT: s_lshr_b32 s21, s2, 163066; GFX12-NEXT: s_and_b32 s2, s2, 0xffff3067; GFX12-NEXT: v_dual_mov_b32 v4, s6 :: v_dual_mov_b32 v7, s243068; GFX12-NEXT: v_dual_mov_b32 v6, s7 :: v_dual_mov_b32 v13, s233069; GFX12-NEXT: s_lshr_b32 s18, s1, 163070; GFX12-NEXT: s_and_b32 s1, s1, 0xffff3071; GFX12-NEXT: s_lshr_b32 s19, s0, 163072; GFX12-NEXT: s_and_b32 s0, s0, 0xffff3073; GFX12-NEXT: v_dual_mov_b32 v12, s4 :: v_dual_mov_b32 v15, s223074; GFX12-NEXT: v_dual_mov_b32 v14, s5 :: v_dual_mov_b32 v17, s213075; GFX12-NEXT: v_dual_mov_b32 v16, s2 :: v_dual_mov_b32 v19, s203076; GFX12-NEXT: v_dual_mov_b32 v18, s3 :: v_dual_mov_b32 v21, s193077; GFX12-NEXT: v_dual_mov_b32 v20, s0 :: v_dual_mov_b32 v23, s183078; GFX12-NEXT: v_mov_b32_e32 v22, s13079; GFX12-NEXT: s_clause 0x53080; GFX12-NEXT: global_store_b128 v24, v[8:11], s[16:17] offset:803081; GFX12-NEXT: global_store_b128 v24, v[0:3], s[16:17] offset:643082; GFX12-NEXT: global_store_b128 v24, v[4:7], s[16:17] offset:483083; GFX12-NEXT: global_store_b128 v24, v[12:15], s[16:17] offset:323084; GFX12-NEXT: global_store_b128 v24, v[16:19], s[16:17] offset:163085; GFX12-NEXT: global_store_b128 v24, v[20:23], s[16:17]3086; GFX12-NEXT: s_endpgm3087 %load = load <32 x i16>, ptr addrspace(4) %in3088 %ext = zext <32 x i16> %load to <32 x i32>3089 store <32 x i32> %ext, ptr addrspace(1) %out3090 ret void3091}3092 3093define amdgpu_kernel void @constant_sextload_v32i16_to_v32i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {3094; GCN-NOHSA-SI-LABEL: constant_sextload_v32i16_to_v32i32:3095; GCN-NOHSA-SI: ; %bb.0:3096; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x93097; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)3098; GCN-NOHSA-SI-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x03099; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)3100; GCN-NOHSA-SI-NEXT: s_ashr_i32 s18, s1, 163101; GCN-NOHSA-SI-NEXT: s_ashr_i32 s19, s0, 163102; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s20, s13103; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s21, s03104; GCN-NOHSA-SI-NEXT: s_ashr_i32 s22, s3, 163105; GCN-NOHSA-SI-NEXT: s_ashr_i32 s23, s2, 163106; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s24, s33107; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s25, s23108; GCN-NOHSA-SI-NEXT: s_ashr_i32 s26, s5, 163109; GCN-NOHSA-SI-NEXT: s_ashr_i32 s27, s4, 163110; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s5, s53111; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s4, s43112; GCN-NOHSA-SI-NEXT: s_ashr_i32 s28, s7, 163113; GCN-NOHSA-SI-NEXT: s_ashr_i32 s29, s6, 163114; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s7, s73115; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s6, s63116; GCN-NOHSA-SI-NEXT: s_ashr_i32 s30, s9, 163117; GCN-NOHSA-SI-NEXT: s_ashr_i32 s31, s8, 163118; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s9, s93119; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s8, s83120; GCN-NOHSA-SI-NEXT: s_ashr_i32 s33, s11, 163121; GCN-NOHSA-SI-NEXT: s_ashr_i32 s34, s10, 163122; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s11, s113123; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s10, s103124; GCN-NOHSA-SI-NEXT: s_ashr_i32 s35, s13, 163125; GCN-NOHSA-SI-NEXT: s_ashr_i32 s36, s12, 163126; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s13, s133127; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s12, s123128; GCN-NOHSA-SI-NEXT: s_ashr_i32 s37, s15, 163129; GCN-NOHSA-SI-NEXT: s_ashr_i32 s38, s14, 163130; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s15, s153131; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s14, s143132; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0003133; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -13134; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s163135; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s173136; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s143137; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s383138; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s153139; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s373140; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1123141; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3142; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s123143; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s363144; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s133145; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s353146; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:963147; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3148; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s103149; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s343150; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s113151; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s333152; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:803153; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3154; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s83155; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s313156; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s93157; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s303158; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:643159; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3160; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s63161; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s293162; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s73163; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s283164; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:483165; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3166; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s43167; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s273168; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s53169; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s263170; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:323171; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3172; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s253173; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s233174; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s243175; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s223176; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:163177; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3178; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s213179; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s193180; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s203181; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s183182; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 03183; GCN-NOHSA-SI-NEXT: s_endpgm3184;3185; GCN-HSA-LABEL: constant_sextload_v32i16_to_v32i32:3186; GCN-HSA: ; %bb.0:3187; GCN-HSA-NEXT: s_add_i32 s12, s12, s173188; GCN-HSA-NEXT: s_load_dwordx4 s[16:19], s[8:9], 0x03189; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s133190; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 83191; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)3192; GCN-HSA-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x03193; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)3194; GCN-HSA-NEXT: s_ashr_i32 s18, s1, 163195; GCN-HSA-NEXT: s_ashr_i32 s19, s0, 163196; GCN-HSA-NEXT: s_ashr_i32 s22, s3, 163197; GCN-HSA-NEXT: s_ashr_i32 s23, s2, 163198; GCN-HSA-NEXT: s_ashr_i32 s24, s5, 163199; GCN-HSA-NEXT: s_ashr_i32 s25, s4, 163200; GCN-HSA-NEXT: s_ashr_i32 s26, s7, 163201; GCN-HSA-NEXT: s_ashr_i32 s27, s6, 163202; GCN-HSA-NEXT: s_ashr_i32 s28, s9, 163203; GCN-HSA-NEXT: s_ashr_i32 s29, s8, 163204; GCN-HSA-NEXT: s_ashr_i32 s30, s11, 163205; GCN-HSA-NEXT: s_ashr_i32 s31, s10, 163206; GCN-HSA-NEXT: s_ashr_i32 s33, s13, 163207; GCN-HSA-NEXT: s_ashr_i32 s34, s12, 163208; GCN-HSA-NEXT: s_ashr_i32 s35, s15, 163209; GCN-HSA-NEXT: s_ashr_i32 s36, s14, 163210; GCN-HSA-NEXT: s_sext_i32_i16 s21, s03211; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x703212; GCN-HSA-NEXT: s_sext_i32_i16 s20, s13213; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03214; GCN-HSA-NEXT: v_mov_b32_e32 v9, s13215; GCN-HSA-NEXT: v_mov_b32_e32 v8, s03216; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x603217; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03218; GCN-HSA-NEXT: v_mov_b32_e32 v11, s13219; GCN-HSA-NEXT: s_sext_i32_i16 s12, s123220; GCN-HSA-NEXT: s_sext_i32_i16 s15, s153221; GCN-HSA-NEXT: s_sext_i32_i16 s14, s143222; GCN-HSA-NEXT: v_mov_b32_e32 v10, s03223; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x503224; GCN-HSA-NEXT: s_sext_i32_i16 s13, s133225; GCN-HSA-NEXT: v_mov_b32_e32 v0, s143226; GCN-HSA-NEXT: v_mov_b32_e32 v1, s363227; GCN-HSA-NEXT: v_mov_b32_e32 v2, s153228; GCN-HSA-NEXT: v_mov_b32_e32 v3, s353229; GCN-HSA-NEXT: v_mov_b32_e32 v4, s123230; GCN-HSA-NEXT: v_mov_b32_e32 v5, s343231; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03232; GCN-HSA-NEXT: v_mov_b32_e32 v6, s133233; GCN-HSA-NEXT: v_mov_b32_e32 v7, s333234; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[0:3]3235; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[4:7]3236; GCN-HSA-NEXT: s_sext_i32_i16 s11, s113237; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13238; GCN-HSA-NEXT: s_sext_i32_i16 s10, s103239; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03240; GCN-HSA-NEXT: s_add_u32 s0, s16, 643241; GCN-HSA-NEXT: v_mov_b32_e32 v0, s103242; GCN-HSA-NEXT: v_mov_b32_e32 v1, s313243; GCN-HSA-NEXT: v_mov_b32_e32 v2, s113244; GCN-HSA-NEXT: v_mov_b32_e32 v3, s303245; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03246; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3247; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13248; GCN-HSA-NEXT: s_sext_i32_i16 s9, s93249; GCN-HSA-NEXT: s_sext_i32_i16 s8, s83250; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03251; GCN-HSA-NEXT: s_add_u32 s0, s16, 483252; GCN-HSA-NEXT: v_mov_b32_e32 v0, s83253; GCN-HSA-NEXT: v_mov_b32_e32 v1, s293254; GCN-HSA-NEXT: v_mov_b32_e32 v2, s93255; GCN-HSA-NEXT: v_mov_b32_e32 v3, s283256; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03257; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3258; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13259; GCN-HSA-NEXT: s_sext_i32_i16 s7, s73260; GCN-HSA-NEXT: s_sext_i32_i16 s6, s63261; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03262; GCN-HSA-NEXT: s_add_u32 s0, s16, 323263; GCN-HSA-NEXT: v_mov_b32_e32 v0, s63264; GCN-HSA-NEXT: v_mov_b32_e32 v1, s273265; GCN-HSA-NEXT: v_mov_b32_e32 v2, s73266; GCN-HSA-NEXT: v_mov_b32_e32 v3, s263267; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03268; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3269; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13270; GCN-HSA-NEXT: s_sext_i32_i16 s5, s53271; GCN-HSA-NEXT: s_sext_i32_i16 s4, s43272; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03273; GCN-HSA-NEXT: s_add_u32 s0, s16, 163274; GCN-HSA-NEXT: v_mov_b32_e32 v0, s43275; GCN-HSA-NEXT: v_mov_b32_e32 v1, s253276; GCN-HSA-NEXT: v_mov_b32_e32 v2, s53277; GCN-HSA-NEXT: v_mov_b32_e32 v3, s243278; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03279; GCN-HSA-NEXT: s_sext_i32_i16 s3, s33280; GCN-HSA-NEXT: s_sext_i32_i16 s2, s23281; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3282; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13283; GCN-HSA-NEXT: v_mov_b32_e32 v0, s23284; GCN-HSA-NEXT: v_mov_b32_e32 v1, s233285; GCN-HSA-NEXT: v_mov_b32_e32 v2, s33286; GCN-HSA-NEXT: v_mov_b32_e32 v3, s223287; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03288; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3289; GCN-HSA-NEXT: v_mov_b32_e32 v4, s163290; GCN-HSA-NEXT: v_mov_b32_e32 v0, s213291; GCN-HSA-NEXT: v_mov_b32_e32 v1, s193292; GCN-HSA-NEXT: v_mov_b32_e32 v2, s203293; GCN-HSA-NEXT: v_mov_b32_e32 v3, s183294; GCN-HSA-NEXT: v_mov_b32_e32 v5, s173295; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3296; GCN-HSA-NEXT: s_endpgm3297;3298; GCN-NOHSA-VI-LABEL: constant_sextload_v32i16_to_v32i32:3299; GCN-NOHSA-VI: ; %bb.0:3300; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x243301; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)3302; GCN-NOHSA-VI-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x03303; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)3304; GCN-NOHSA-VI-NEXT: s_ashr_i32 s18, s1, 163305; GCN-NOHSA-VI-NEXT: s_ashr_i32 s19, s0, 163306; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s20, s13307; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s21, s03308; GCN-NOHSA-VI-NEXT: s_ashr_i32 s22, s3, 163309; GCN-NOHSA-VI-NEXT: s_ashr_i32 s23, s2, 163310; GCN-NOHSA-VI-NEXT: s_ashr_i32 s24, s5, 163311; GCN-NOHSA-VI-NEXT: s_ashr_i32 s25, s4, 163312; GCN-NOHSA-VI-NEXT: s_ashr_i32 s26, s7, 163313; GCN-NOHSA-VI-NEXT: s_ashr_i32 s27, s6, 163314; GCN-NOHSA-VI-NEXT: s_ashr_i32 s28, s9, 163315; GCN-NOHSA-VI-NEXT: s_ashr_i32 s29, s8, 163316; GCN-NOHSA-VI-NEXT: s_ashr_i32 s30, s11, 163317; GCN-NOHSA-VI-NEXT: s_ashr_i32 s31, s10, 163318; GCN-NOHSA-VI-NEXT: s_ashr_i32 s33, s13, 163319; GCN-NOHSA-VI-NEXT: s_ashr_i32 s34, s12, 163320; GCN-NOHSA-VI-NEXT: s_ashr_i32 s0, s15, 163321; GCN-NOHSA-VI-NEXT: s_ashr_i32 s1, s14, 163322; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s03323; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 0x703324; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s13325; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 03326; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s13327; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s15, s153328; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s14, s143329; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s03330; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 0x603331; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s143332; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s153333; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 03334; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3335; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s13336; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s13, s133337; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s12, s123338; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s03339; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 0x503340; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s123341; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s343342; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s133343; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s333344; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 03345; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3346; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s13347; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s11, s113348; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s10, s103349; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s03350; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 643351; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s103352; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s313353; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s113354; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s303355; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 03356; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3357; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s13358; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s9, s93359; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s8, s83360; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s03361; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 483362; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s83363; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s293364; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s93365; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s283366; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 03367; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3368; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s13369; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s7, s73370; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s6, s63371; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s03372; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 323373; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s63374; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s273375; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s73376; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s263377; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 03378; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3379; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s13380; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s5, s53381; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s4, s43382; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s03383; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 163384; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s43385; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s253386; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s53387; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s243388; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 03389; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s3, s33390; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s2, s23391; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3392; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s13393; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s23394; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s233395; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s33396; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s223397; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s03398; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3399; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s163400; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s213401; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s193402; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s203403; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s183404; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s173405; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3406; GCN-NOHSA-VI-NEXT: s_endpgm3407;3408; EG-LABEL: constant_sextload_v32i16_to_v32i32:3409; EG: ; %bb.0:3410; EG-NEXT: ALU 8, @20, KC0[CB0:0-32], KC1[]3411; EG-NEXT: TEX 3 @123412; EG-NEXT: ALU 73, @29, KC0[CB0:0-32], KC1[]3413; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T34.XYZW, T24.X, 03414; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T22.X, 03415; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T33.XYZW, T28.X, 03416; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T27.X, 03417; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T32.XYZW, T26.X, 03418; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T31.XYZW, T21.X, 03419; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T30.XYZW, T20.X, 03420; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T29.XYZW, T19.X, 13421; EG-NEXT: CF_END3422; EG-NEXT: Fetch clause starting at 12:3423; EG-NEXT: VTX_READ_128 T23.XYZW, T22.X, 16, #13424; EG-NEXT: VTX_READ_128 T24.XYZW, T22.X, 32, #13425; EG-NEXT: VTX_READ_128 T25.XYZW, T22.X, 0, #13426; EG-NEXT: VTX_READ_128 T22.XYZW, T22.X, 48, #13427; EG-NEXT: ALU clause starting at 20:3428; EG-NEXT: LSHR T19.X, KC0[2].Y, literal.x,3429; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3430; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3431; EG-NEXT: LSHR T20.X, PV.W, literal.x,3432; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3433; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)3434; EG-NEXT: LSHR T21.X, PV.W, literal.x,3435; EG-NEXT: MOV * T22.X, KC0[2].Z,3436; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)3437; EG-NEXT: ALU clause starting at 29:3438; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,3439; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)3440; EG-NEXT: LSHR T26.X, PV.W, literal.x,3441; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3442; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)3443; EG-NEXT: LSHR T27.X, PV.W, literal.x,3444; EG-NEXT: LSHR T0.W, T22.W, literal.y,3445; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,3446; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3447; EG-NEXT: 80(1.121039e-43), 0(0.000000e+00)3448; EG-NEXT: LSHR T28.X, PS, literal.x,3449; EG-NEXT: LSHR T0.Y, T22.Y, literal.y,3450; EG-NEXT: BFE_INT T29.Z, T25.Y, 0.0, literal.y, BS:VEC_120/SCL_2123451; EG-NEXT: LSHR T1.W, T24.W, literal.y,3452; EG-NEXT: LSHR * T2.W, T24.Y, literal.y,3453; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3454; EG-NEXT: BFE_INT T29.X, T25.X, 0.0, literal.x,3455; EG-NEXT: LSHR T1.Y, T23.W, literal.x,3456; EG-NEXT: BFE_INT T30.Z, T25.W, 0.0, literal.x, BS:VEC_120/SCL_2123457; EG-NEXT: LSHR T3.W, T23.Y, literal.x,3458; EG-NEXT: LSHR * T4.W, T25.Y, literal.x,3459; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3460; EG-NEXT: BFE_INT T30.X, T25.Z, 0.0, literal.x,3461; EG-NEXT: LSHR T2.Y, T25.W, literal.x,3462; EG-NEXT: BFE_INT T31.Z, T23.Y, 0.0, literal.x,3463; EG-NEXT: BFE_INT T29.W, PS, 0.0, literal.x,3464; EG-NEXT: LSHR * T4.W, T25.X, literal.x,3465; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3466; EG-NEXT: BFE_INT T31.X, T23.X, 0.0, literal.x,3467; EG-NEXT: BFE_INT T29.Y, PS, 0.0, literal.x,3468; EG-NEXT: BFE_INT T32.Z, T23.W, 0.0, literal.x,3469; EG-NEXT: BFE_INT T30.W, PV.Y, 0.0, literal.x,3470; EG-NEXT: LSHR * T4.W, T25.Z, literal.x,3471; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3472; EG-NEXT: BFE_INT T32.X, T23.Z, 0.0, literal.x,3473; EG-NEXT: BFE_INT T30.Y, PS, 0.0, literal.x,3474; EG-NEXT: BFE_INT T25.Z, T24.Y, 0.0, literal.x,3475; EG-NEXT: BFE_INT T31.W, T3.W, 0.0, literal.x,3476; EG-NEXT: LSHR * T3.W, T23.X, literal.x,3477; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3478; EG-NEXT: BFE_INT T25.X, T24.X, 0.0, literal.x,3479; EG-NEXT: BFE_INT T31.Y, PS, 0.0, literal.x,3480; EG-NEXT: BFE_INT T33.Z, T24.W, 0.0, literal.x,3481; EG-NEXT: BFE_INT T32.W, T1.Y, 0.0, literal.x,3482; EG-NEXT: LSHR * T3.W, T23.Z, literal.x,3483; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3484; EG-NEXT: BFE_INT T33.X, T24.Z, 0.0, literal.x,3485; EG-NEXT: BFE_INT T32.Y, PS, 0.0, literal.x,3486; EG-NEXT: BFE_INT T23.Z, T22.Y, 0.0, literal.x,3487; EG-NEXT: BFE_INT T25.W, T2.W, 0.0, literal.x,3488; EG-NEXT: LSHR * T2.W, T24.X, literal.x,3489; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3490; EG-NEXT: BFE_INT T23.X, T22.X, 0.0, literal.x,3491; EG-NEXT: BFE_INT T25.Y, PS, 0.0, literal.x,3492; EG-NEXT: BFE_INT T34.Z, T22.W, 0.0, literal.x,3493; EG-NEXT: BFE_INT T33.W, T1.W, 0.0, literal.x, BS:VEC_120/SCL_2123494; EG-NEXT: LSHR * T1.W, T24.Z, literal.x,3495; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3496; EG-NEXT: BFE_INT T34.X, T22.Z, 0.0, literal.x,3497; EG-NEXT: BFE_INT T33.Y, PS, 0.0, literal.x,3498; EG-NEXT: LSHR T0.Z, T22.X, literal.x,3499; EG-NEXT: BFE_INT T23.W, T0.Y, 0.0, literal.x,3500; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3501; EG-NEXT: 16(2.242078e-44), 96(1.345247e-43)3502; EG-NEXT: LSHR T22.X, PS, literal.x,3503; EG-NEXT: BFE_INT T23.Y, PV.Z, 0.0, literal.y,3504; EG-NEXT: LSHR T0.Z, T22.Z, literal.y,3505; EG-NEXT: BFE_INT T34.W, T0.W, 0.0, literal.y,3506; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,3507; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3508; EG-NEXT: 112(1.569454e-43), 0(0.000000e+00)3509; EG-NEXT: LSHR T24.X, PS, literal.x,3510; EG-NEXT: BFE_INT * T34.Y, PV.Z, 0.0, literal.y,3511; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3512;3513; GFX12-LABEL: constant_sextload_v32i16_to_v32i32:3514; GFX12: ; %bb.0:3515; GFX12-NEXT: s_load_b128 s[16:19], s[4:5], 0x243516; GFX12-NEXT: s_wait_kmcnt 0x03517; GFX12-NEXT: s_load_b512 s[0:15], s[18:19], 0x03518; GFX12-NEXT: s_wait_kmcnt 0x03519; GFX12-NEXT: s_ashr_i32 s33, s15, 163520; GFX12-NEXT: s_ashr_i32 s34, s14, 163521; GFX12-NEXT: s_sext_i32_i16 s14, s143522; GFX12-NEXT: s_sext_i32_i16 s15, s153523; GFX12-NEXT: s_ashr_i32 s30, s13, 163524; GFX12-NEXT: s_ashr_i32 s31, s12, 163525; GFX12-NEXT: s_sext_i32_i16 s13, s133526; GFX12-NEXT: s_sext_i32_i16 s12, s123527; GFX12-NEXT: v_dual_mov_b32 v24, 0 :: v_dual_mov_b32 v1, s343528; GFX12-NEXT: v_dual_mov_b32 v0, s14 :: v_dual_mov_b32 v3, s333529; GFX12-NEXT: v_dual_mov_b32 v2, s15 :: v_dual_mov_b32 v5, s313530; GFX12-NEXT: s_ashr_i32 s29, s10, 163531; GFX12-NEXT: v_dual_mov_b32 v4, s12 :: v_dual_mov_b32 v7, s303532; GFX12-NEXT: v_dual_mov_b32 v6, s13 :: v_dual_mov_b32 v9, s293533; GFX12-NEXT: s_ashr_i32 s28, s11, 163534; GFX12-NEXT: s_sext_i32_i16 s11, s113535; GFX12-NEXT: s_sext_i32_i16 s10, s103536; GFX12-NEXT: s_ashr_i32 s26, s9, 163537; GFX12-NEXT: s_ashr_i32 s27, s8, 163538; GFX12-NEXT: s_sext_i32_i16 s9, s93539; GFX12-NEXT: s_sext_i32_i16 s8, s83540; GFX12-NEXT: s_ashr_i32 s24, s7, 163541; GFX12-NEXT: s_ashr_i32 s25, s6, 163542; GFX12-NEXT: s_sext_i32_i16 s7, s73543; GFX12-NEXT: s_sext_i32_i16 s6, s63544; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)3545; GFX12-NEXT: v_dual_mov_b32 v8, s10 :: v_dual_mov_b32 v11, s283546; GFX12-NEXT: v_mov_b32_e32 v10, s113547; GFX12-NEXT: s_ashr_i32 s22, s5, 163548; GFX12-NEXT: s_ashr_i32 s23, s4, 163549; GFX12-NEXT: s_sext_i32_i16 s5, s53550; GFX12-NEXT: s_sext_i32_i16 s4, s43551; GFX12-NEXT: s_clause 0x13552; GFX12-NEXT: global_store_b128 v24, v[0:3], s[16:17] offset:1123553; GFX12-NEXT: global_store_b128 v24, v[4:7], s[16:17] offset:963554; GFX12-NEXT: v_dual_mov_b32 v0, s8 :: v_dual_mov_b32 v3, s263555; GFX12-NEXT: v_dual_mov_b32 v1, s27 :: v_dual_mov_b32 v2, s93556; GFX12-NEXT: v_mov_b32_e32 v5, s253557; GFX12-NEXT: s_ashr_i32 s20, s3, 163558; GFX12-NEXT: s_ashr_i32 s21, s2, 163559; GFX12-NEXT: s_sext_i32_i16 s3, s33560; GFX12-NEXT: s_sext_i32_i16 s2, s23561; GFX12-NEXT: v_dual_mov_b32 v4, s6 :: v_dual_mov_b32 v7, s243562; GFX12-NEXT: v_dual_mov_b32 v6, s7 :: v_dual_mov_b32 v13, s233563; GFX12-NEXT: s_ashr_i32 s18, s1, 163564; GFX12-NEXT: s_ashr_i32 s19, s0, 163565; GFX12-NEXT: s_sext_i32_i16 s1, s13566; GFX12-NEXT: s_sext_i32_i16 s0, s03567; GFX12-NEXT: v_dual_mov_b32 v12, s4 :: v_dual_mov_b32 v15, s223568; GFX12-NEXT: v_dual_mov_b32 v14, s5 :: v_dual_mov_b32 v17, s213569; GFX12-NEXT: v_dual_mov_b32 v16, s2 :: v_dual_mov_b32 v19, s203570; GFX12-NEXT: v_dual_mov_b32 v18, s3 :: v_dual_mov_b32 v21, s193571; GFX12-NEXT: v_dual_mov_b32 v20, s0 :: v_dual_mov_b32 v23, s183572; GFX12-NEXT: v_mov_b32_e32 v22, s13573; GFX12-NEXT: s_clause 0x53574; GFX12-NEXT: global_store_b128 v24, v[8:11], s[16:17] offset:803575; GFX12-NEXT: global_store_b128 v24, v[0:3], s[16:17] offset:643576; GFX12-NEXT: global_store_b128 v24, v[4:7], s[16:17] offset:483577; GFX12-NEXT: global_store_b128 v24, v[12:15], s[16:17] offset:323578; GFX12-NEXT: global_store_b128 v24, v[16:19], s[16:17] offset:163579; GFX12-NEXT: global_store_b128 v24, v[20:23], s[16:17]3580; GFX12-NEXT: s_endpgm3581 %load = load <32 x i16>, ptr addrspace(4) %in3582 %ext = sext <32 x i16> %load to <32 x i32>3583 store <32 x i32> %ext, ptr addrspace(1) %out3584 ret void3585}3586 3587define amdgpu_kernel void @constant_zextload_v64i16_to_v64i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {3588; GCN-NOHSA-SI-LABEL: constant_zextload_v64i16_to_v64i32:3589; GCN-NOHSA-SI: ; %bb.0:3590; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[36:39], s[4:5], 0x93591; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)3592; GCN-NOHSA-SI-NEXT: s_load_dwordx16 s[0:15], s[38:39], 0x03593; GCN-NOHSA-SI-NEXT: s_load_dwordx16 s[16:31], s[38:39], 0x103594; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)3595; GCN-NOHSA-SI-NEXT: s_lshr_b32 s33, s1, 163596; GCN-NOHSA-SI-NEXT: s_lshr_b32 s34, s0, 163597; GCN-NOHSA-SI-NEXT: s_lshr_b32 s35, s3, 163598; GCN-NOHSA-SI-NEXT: s_lshr_b32 s38, s2, 163599; GCN-NOHSA-SI-NEXT: s_lshr_b32 s41, s5, 163600; GCN-NOHSA-SI-NEXT: s_lshr_b32 s42, s4, 163601; GCN-NOHSA-SI-NEXT: s_lshr_b32 s45, s7, 163602; GCN-NOHSA-SI-NEXT: s_lshr_b32 s46, s6, 163603; GCN-NOHSA-SI-NEXT: s_lshr_b32 s47, s9, 163604; GCN-NOHSA-SI-NEXT: s_lshr_b32 s48, s8, 163605; GCN-NOHSA-SI-NEXT: s_lshr_b32 s49, s11, 163606; GCN-NOHSA-SI-NEXT: s_lshr_b32 s50, s10, 163607; GCN-NOHSA-SI-NEXT: s_lshr_b32 s51, s13, 163608; GCN-NOHSA-SI-NEXT: s_lshr_b32 s52, s12, 163609; GCN-NOHSA-SI-NEXT: s_lshr_b32 s53, s15, 163610; GCN-NOHSA-SI-NEXT: s_lshr_b32 s54, s14, 163611; GCN-NOHSA-SI-NEXT: s_and_b32 s39, s1, 0xffff3612; GCN-NOHSA-SI-NEXT: s_and_b32 s40, s0, 0xffff3613; GCN-NOHSA-SI-NEXT: s_and_b32 s43, s3, 0xffff3614; GCN-NOHSA-SI-NEXT: s_and_b32 s44, s2, 0xffff3615; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff3616; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff3617; GCN-NOHSA-SI-NEXT: s_and_b32 s7, s7, 0xffff3618; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xffff3619; GCN-NOHSA-SI-NEXT: s_and_b32 s9, s9, 0xffff3620; GCN-NOHSA-SI-NEXT: s_and_b32 s8, s8, 0xffff3621; GCN-NOHSA-SI-NEXT: s_and_b32 s11, s11, 0xffff3622; GCN-NOHSA-SI-NEXT: s_and_b32 s10, s10, 0xffff3623; GCN-NOHSA-SI-NEXT: s_and_b32 s13, s13, 0xffff3624; GCN-NOHSA-SI-NEXT: s_and_b32 s12, s12, 0xffff3625; GCN-NOHSA-SI-NEXT: s_and_b32 s15, s15, 0xffff3626; GCN-NOHSA-SI-NEXT: s_and_b32 s14, s14, 0xffff3627; GCN-NOHSA-SI-NEXT: s_lshr_b32 s55, s17, 163628; GCN-NOHSA-SI-NEXT: s_lshr_b32 s56, s16, 163629; GCN-NOHSA-SI-NEXT: s_lshr_b32 s57, s19, 163630; GCN-NOHSA-SI-NEXT: s_lshr_b32 s58, s18, 163631; GCN-NOHSA-SI-NEXT: s_lshr_b32 s59, s21, 163632; GCN-NOHSA-SI-NEXT: s_lshr_b32 s60, s20, 163633; GCN-NOHSA-SI-NEXT: s_lshr_b32 s61, s23, 163634; GCN-NOHSA-SI-NEXT: s_lshr_b32 s62, s22, 163635; GCN-NOHSA-SI-NEXT: s_lshr_b32 s63, s25, 163636; GCN-NOHSA-SI-NEXT: s_lshr_b32 s64, s24, 163637; GCN-NOHSA-SI-NEXT: s_lshr_b32 s65, s27, 163638; GCN-NOHSA-SI-NEXT: s_lshr_b32 s66, s26, 163639; GCN-NOHSA-SI-NEXT: s_lshr_b32 s67, s29, 163640; GCN-NOHSA-SI-NEXT: s_lshr_b32 s68, s28, 163641; GCN-NOHSA-SI-NEXT: s_lshr_b32 s69, s31, 163642; GCN-NOHSA-SI-NEXT: s_lshr_b32 s70, s30, 163643; GCN-NOHSA-SI-NEXT: s_and_b32 s17, s17, 0xffff3644; GCN-NOHSA-SI-NEXT: s_and_b32 s16, s16, 0xffff3645; GCN-NOHSA-SI-NEXT: s_and_b32 s19, s19, 0xffff3646; GCN-NOHSA-SI-NEXT: s_and_b32 s18, s18, 0xffff3647; GCN-NOHSA-SI-NEXT: s_and_b32 s20, s20, 0xffff3648; GCN-NOHSA-SI-NEXT: s_and_b32 s23, s23, 0xffff3649; GCN-NOHSA-SI-NEXT: s_and_b32 s22, s22, 0xffff3650; GCN-NOHSA-SI-NEXT: s_and_b32 s25, s25, 0xffff3651; GCN-NOHSA-SI-NEXT: s_and_b32 s24, s24, 0xffff3652; GCN-NOHSA-SI-NEXT: s_and_b32 s27, s27, 0xffff3653; GCN-NOHSA-SI-NEXT: s_and_b32 s26, s26, 0xffff3654; GCN-NOHSA-SI-NEXT: s_and_b32 s29, s29, 0xffff3655; GCN-NOHSA-SI-NEXT: s_and_b32 s28, s28, 0xffff3656; GCN-NOHSA-SI-NEXT: s_and_b32 s31, s31, 0xffff3657; GCN-NOHSA-SI-NEXT: s_and_b32 s30, s30, 0xffff3658; GCN-NOHSA-SI-NEXT: s_and_b32 s21, s21, 0xffff3659; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s363660; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s373661; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0003662; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -13663; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s303664; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s703665; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s313666; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s693667; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s283668; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s683669; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s293670; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s673671; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s263672; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s663673; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s273674; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s653675; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s243676; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s643677; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, s253678; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, s633679; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, s223680; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v17, s623681; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v18, s233682; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2403683; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3684; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s203685; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v19, s613686; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s603687; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s213688; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s593689; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:2243690; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:2083691; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:1923692; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:1763693; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1603694; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3695; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s183696; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s583697; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s193698; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s573699; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1443700; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3701; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s163702; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s563703; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s173704; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s553705; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1283706; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3707; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s143708; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s543709; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s153710; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s533711; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1123712; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3713; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s123714; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s523715; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s133716; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s513717; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:963718; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3719; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s103720; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s503721; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s113722; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s493723; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:803724; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3725; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s83726; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s483727; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s93728; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s473729; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:643730; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3731; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s63732; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s463733; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s73734; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s453735; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:483736; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3737; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s43738; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s423739; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s53740; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s413741; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:323742; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3743; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s443744; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s383745; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s433746; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s353747; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:163748; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)3749; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s403750; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s343751; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s393752; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s333753; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 03754; GCN-NOHSA-SI-NEXT: s_endpgm3755;3756; GCN-HSA-LABEL: constant_zextload_v64i16_to_v64i32:3757; GCN-HSA: ; %bb.0:3758; GCN-HSA-NEXT: s_add_i32 s12, s12, s173759; GCN-HSA-NEXT: s_load_dwordx4 s[16:19], s[8:9], 0x03760; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s133761; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 83762; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)3763; GCN-HSA-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x03764; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)3765; GCN-HSA-NEXT: s_lshr_b32 s20, s1, 163766; GCN-HSA-NEXT: s_lshr_b32 s21, s0, 163767; GCN-HSA-NEXT: s_lshr_b32 s22, s3, 163768; GCN-HSA-NEXT: s_lshr_b32 s23, s2, 163769; GCN-HSA-NEXT: s_lshr_b32 s24, s5, 163770; GCN-HSA-NEXT: s_lshr_b32 s26, s4, 163771; GCN-HSA-NEXT: s_lshr_b32 s28, s7, 163772; GCN-HSA-NEXT: s_lshr_b32 s30, s6, 163773; GCN-HSA-NEXT: s_lshr_b32 s33, s9, 163774; GCN-HSA-NEXT: s_lshr_b32 s35, s8, 163775; GCN-HSA-NEXT: s_lshr_b32 s37, s11, 163776; GCN-HSA-NEXT: s_lshr_b32 s39, s10, 163777; GCN-HSA-NEXT: s_lshr_b32 s42, s13, 163778; GCN-HSA-NEXT: s_lshr_b32 s44, s12, 163779; GCN-HSA-NEXT: s_lshr_b32 s45, s15, 163780; GCN-HSA-NEXT: s_lshr_b32 s46, s14, 163781; GCN-HSA-NEXT: s_and_b32 s25, s1, 0xffff3782; GCN-HSA-NEXT: s_and_b32 s27, s0, 0xffff3783; GCN-HSA-NEXT: s_and_b32 s29, s3, 0xffff3784; GCN-HSA-NEXT: s_and_b32 s31, s2, 0xffff3785; GCN-HSA-NEXT: s_and_b32 s34, s5, 0xffff3786; GCN-HSA-NEXT: s_and_b32 s36, s4, 0xffff3787; GCN-HSA-NEXT: s_and_b32 s38, s7, 0xffff3788; GCN-HSA-NEXT: s_and_b32 s40, s6, 0xffff3789; GCN-HSA-NEXT: s_and_b32 s41, s9, 0xffff3790; GCN-HSA-NEXT: s_and_b32 s43, s8, 0xffff3791; GCN-HSA-NEXT: s_and_b32 s47, s11, 0xffff3792; GCN-HSA-NEXT: s_and_b32 s48, s10, 0xffff3793; GCN-HSA-NEXT: s_and_b32 s49, s13, 0xffff3794; GCN-HSA-NEXT: s_and_b32 s51, s12, 0xffff3795; GCN-HSA-NEXT: s_and_b32 s50, s15, 0xffff3796; GCN-HSA-NEXT: s_and_b32 s52, s14, 0xffff3797; GCN-HSA-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x103798; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)3799; GCN-HSA-NEXT: s_lshr_b32 s18, s1, 163800; GCN-HSA-NEXT: s_lshr_b32 s19, s0, 163801; GCN-HSA-NEXT: s_lshr_b32 s53, s3, 163802; GCN-HSA-NEXT: s_lshr_b32 s54, s2, 163803; GCN-HSA-NEXT: s_lshr_b32 s55, s5, 163804; GCN-HSA-NEXT: s_lshr_b32 s56, s4, 163805; GCN-HSA-NEXT: s_lshr_b32 s57, s7, 163806; GCN-HSA-NEXT: s_lshr_b32 s58, s6, 163807; GCN-HSA-NEXT: s_lshr_b32 s59, s9, 163808; GCN-HSA-NEXT: s_lshr_b32 s60, s8, 163809; GCN-HSA-NEXT: s_lshr_b32 s61, s11, 163810; GCN-HSA-NEXT: s_lshr_b32 s62, s10, 163811; GCN-HSA-NEXT: s_lshr_b32 s63, s13, 163812; GCN-HSA-NEXT: s_lshr_b32 s64, s12, 163813; GCN-HSA-NEXT: s_lshr_b32 s65, s15, 163814; GCN-HSA-NEXT: s_lshr_b32 s66, s14, 163815; GCN-HSA-NEXT: s_and_b32 s67, s1, 0xffff3816; GCN-HSA-NEXT: s_and_b32 s68, s0, 0xffff3817; GCN-HSA-NEXT: s_and_b32 s3, s3, 0xffff3818; GCN-HSA-NEXT: s_and_b32 s2, s2, 0xffff3819; GCN-HSA-NEXT: s_and_b32 s5, s5, 0xffff3820; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xffff3821; GCN-HSA-NEXT: s_and_b32 s7, s7, 0xffff3822; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xffff3823; GCN-HSA-NEXT: s_and_b32 s9, s9, 0xffff3824; GCN-HSA-NEXT: s_and_b32 s8, s8, 0xffff3825; GCN-HSA-NEXT: s_and_b32 s11, s11, 0xffff3826; GCN-HSA-NEXT: s_and_b32 s10, s10, 0xffff3827; GCN-HSA-NEXT: s_and_b32 s13, s13, 0xffff3828; GCN-HSA-NEXT: s_and_b32 s12, s12, 0xffff3829; GCN-HSA-NEXT: s_and_b32 s15, s15, 0xffff3830; GCN-HSA-NEXT: s_and_b32 s14, s14, 0xffff3831; GCN-HSA-NEXT: s_add_u32 s0, s16, 0xf03832; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03833; GCN-HSA-NEXT: v_mov_b32_e32 v20, s13834; GCN-HSA-NEXT: v_mov_b32_e32 v19, s03835; GCN-HSA-NEXT: s_add_u32 s0, s16, 0xe03836; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03837; GCN-HSA-NEXT: v_mov_b32_e32 v22, s13838; GCN-HSA-NEXT: v_mov_b32_e32 v21, s03839; GCN-HSA-NEXT: s_add_u32 s0, s16, 0xd03840; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03841; GCN-HSA-NEXT: v_mov_b32_e32 v24, s13842; GCN-HSA-NEXT: v_mov_b32_e32 v23, s03843; GCN-HSA-NEXT: s_add_u32 s0, s16, 0xc03844; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03845; GCN-HSA-NEXT: v_mov_b32_e32 v26, s13846; GCN-HSA-NEXT: v_mov_b32_e32 v25, s03847; GCN-HSA-NEXT: s_add_u32 s0, s16, 0xb03848; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03849; GCN-HSA-NEXT: v_mov_b32_e32 v28, s13850; GCN-HSA-NEXT: v_mov_b32_e32 v27, s03851; GCN-HSA-NEXT: s_add_u32 s0, s16, 0xa03852; GCN-HSA-NEXT: v_mov_b32_e32 v8, s103853; GCN-HSA-NEXT: v_mov_b32_e32 v9, s623854; GCN-HSA-NEXT: v_mov_b32_e32 v10, s113855; GCN-HSA-NEXT: v_mov_b32_e32 v11, s613856; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03857; GCN-HSA-NEXT: flat_store_dwordx4 v[23:24], v[8:11]3858; GCN-HSA-NEXT: v_mov_b32_e32 v12, s83859; GCN-HSA-NEXT: v_mov_b32_e32 v10, s13860; GCN-HSA-NEXT: v_mov_b32_e32 v9, s03861; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x903862; GCN-HSA-NEXT: v_mov_b32_e32 v13, s603863; GCN-HSA-NEXT: v_mov_b32_e32 v14, s93864; GCN-HSA-NEXT: v_mov_b32_e32 v15, s593865; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03866; GCN-HSA-NEXT: flat_store_dwordx4 v[25:26], v[12:15]3867; GCN-HSA-NEXT: v_mov_b32_e32 v0, s143868; GCN-HSA-NEXT: v_mov_b32_e32 v13, s13869; GCN-HSA-NEXT: v_mov_b32_e32 v12, s03870; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x803871; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03872; GCN-HSA-NEXT: v_mov_b32_e32 v15, s13873; GCN-HSA-NEXT: v_mov_b32_e32 v1, s663874; GCN-HSA-NEXT: v_mov_b32_e32 v2, s153875; GCN-HSA-NEXT: v_mov_b32_e32 v3, s653876; GCN-HSA-NEXT: v_mov_b32_e32 v14, s03877; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x703878; GCN-HSA-NEXT: v_mov_b32_e32 v16, s63879; GCN-HSA-NEXT: v_mov_b32_e32 v17, s583880; GCN-HSA-NEXT: v_mov_b32_e32 v18, s73881; GCN-HSA-NEXT: flat_store_dwordx4 v[19:20], v[0:3]3882; GCN-HSA-NEXT: v_mov_b32_e32 v19, s573883; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03884; GCN-HSA-NEXT: flat_store_dwordx4 v[27:28], v[16:19]3885; GCN-HSA-NEXT: v_mov_b32_e32 v4, s123886; GCN-HSA-NEXT: v_mov_b32_e32 v17, s13887; GCN-HSA-NEXT: v_mov_b32_e32 v16, s03888; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x603889; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03890; GCN-HSA-NEXT: v_mov_b32_e32 v19, s13891; GCN-HSA-NEXT: v_mov_b32_e32 v5, s643892; GCN-HSA-NEXT: v_mov_b32_e32 v6, s133893; GCN-HSA-NEXT: v_mov_b32_e32 v7, s633894; GCN-HSA-NEXT: v_mov_b32_e32 v18, s03895; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x503896; GCN-HSA-NEXT: v_mov_b32_e32 v0, s43897; GCN-HSA-NEXT: v_mov_b32_e32 v20, s23898; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[4:7]3899; GCN-HSA-NEXT: v_mov_b32_e32 v1, s563900; GCN-HSA-NEXT: v_mov_b32_e32 v2, s53901; GCN-HSA-NEXT: v_mov_b32_e32 v3, s553902; GCN-HSA-NEXT: v_mov_b32_e32 v21, s543903; GCN-HSA-NEXT: v_mov_b32_e32 v22, s33904; GCN-HSA-NEXT: v_mov_b32_e32 v4, s683905; GCN-HSA-NEXT: v_mov_b32_e32 v23, s533906; GCN-HSA-NEXT: v_mov_b32_e32 v5, s193907; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03908; GCN-HSA-NEXT: v_mov_b32_e32 v6, s673909; GCN-HSA-NEXT: v_mov_b32_e32 v8, s523910; GCN-HSA-NEXT: v_mov_b32_e32 v7, s183911; GCN-HSA-NEXT: flat_store_dwordx4 v[9:10], v[0:3]3912; GCN-HSA-NEXT: v_mov_b32_e32 v9, s463913; GCN-HSA-NEXT: v_mov_b32_e32 v0, s513914; GCN-HSA-NEXT: v_mov_b32_e32 v10, s503915; GCN-HSA-NEXT: v_mov_b32_e32 v11, s453916; GCN-HSA-NEXT: v_mov_b32_e32 v1, s443917; GCN-HSA-NEXT: v_mov_b32_e32 v2, s493918; GCN-HSA-NEXT: v_mov_b32_e32 v3, s423919; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[20:23]3920; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[4:7]3921; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[8:11]3922; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[0:3]3923; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13924; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03925; GCN-HSA-NEXT: s_add_u32 s0, s16, 643926; GCN-HSA-NEXT: v_mov_b32_e32 v0, s483927; GCN-HSA-NEXT: v_mov_b32_e32 v1, s393928; GCN-HSA-NEXT: v_mov_b32_e32 v2, s473929; GCN-HSA-NEXT: v_mov_b32_e32 v3, s373930; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03931; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3932; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13933; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03934; GCN-HSA-NEXT: s_add_u32 s0, s16, 483935; GCN-HSA-NEXT: v_mov_b32_e32 v0, s433936; GCN-HSA-NEXT: v_mov_b32_e32 v1, s353937; GCN-HSA-NEXT: v_mov_b32_e32 v2, s413938; GCN-HSA-NEXT: v_mov_b32_e32 v3, s333939; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03940; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3941; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13942; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03943; GCN-HSA-NEXT: s_add_u32 s0, s16, 323944; GCN-HSA-NEXT: v_mov_b32_e32 v0, s403945; GCN-HSA-NEXT: v_mov_b32_e32 v1, s303946; GCN-HSA-NEXT: v_mov_b32_e32 v2, s383947; GCN-HSA-NEXT: v_mov_b32_e32 v3, s283948; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03949; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3950; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13951; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03952; GCN-HSA-NEXT: s_add_u32 s0, s16, 163953; GCN-HSA-NEXT: v_mov_b32_e32 v0, s363954; GCN-HSA-NEXT: v_mov_b32_e32 v1, s263955; GCN-HSA-NEXT: v_mov_b32_e32 v2, s343956; GCN-HSA-NEXT: v_mov_b32_e32 v3, s243957; GCN-HSA-NEXT: s_addc_u32 s1, s17, 03958; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3959; GCN-HSA-NEXT: v_mov_b32_e32 v5, s13960; GCN-HSA-NEXT: v_mov_b32_e32 v0, s313961; GCN-HSA-NEXT: v_mov_b32_e32 v1, s233962; GCN-HSA-NEXT: v_mov_b32_e32 v2, s293963; GCN-HSA-NEXT: v_mov_b32_e32 v3, s223964; GCN-HSA-NEXT: v_mov_b32_e32 v4, s03965; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3966; GCN-HSA-NEXT: v_mov_b32_e32 v4, s163967; GCN-HSA-NEXT: v_mov_b32_e32 v0, s273968; GCN-HSA-NEXT: v_mov_b32_e32 v1, s213969; GCN-HSA-NEXT: v_mov_b32_e32 v2, s253970; GCN-HSA-NEXT: v_mov_b32_e32 v3, s203971; GCN-HSA-NEXT: v_mov_b32_e32 v5, s173972; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3973; GCN-HSA-NEXT: s_endpgm3974;3975; GCN-NOHSA-VI-LABEL: constant_zextload_v64i16_to_v64i32:3976; GCN-NOHSA-VI: ; %bb.0:3977; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[36:39], s[4:5], 0x243978; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)3979; GCN-NOHSA-VI-NEXT: s_load_dwordx16 s[16:31], s[38:39], 0x03980; GCN-NOHSA-VI-NEXT: s_load_dwordx16 s[0:15], s[38:39], 0x403981; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)3982; GCN-NOHSA-VI-NEXT: s_lshr_b32 s33, s17, 163983; GCN-NOHSA-VI-NEXT: s_lshr_b32 s34, s16, 163984; GCN-NOHSA-VI-NEXT: s_lshr_b32 s35, s19, 163985; GCN-NOHSA-VI-NEXT: s_lshr_b32 s40, s18, 163986; GCN-NOHSA-VI-NEXT: s_lshr_b32 s41, s21, 163987; GCN-NOHSA-VI-NEXT: s_lshr_b32 s42, s20, 163988; GCN-NOHSA-VI-NEXT: s_lshr_b32 s43, s23, 163989; GCN-NOHSA-VI-NEXT: s_lshr_b32 s44, s22, 163990; GCN-NOHSA-VI-NEXT: s_lshr_b32 s45, s25, 163991; GCN-NOHSA-VI-NEXT: s_lshr_b32 s46, s24, 163992; GCN-NOHSA-VI-NEXT: s_lshr_b32 s47, s27, 163993; GCN-NOHSA-VI-NEXT: s_lshr_b32 s48, s26, 163994; GCN-NOHSA-VI-NEXT: s_lshr_b32 s38, s29, 163995; GCN-NOHSA-VI-NEXT: s_lshr_b32 s39, s28, 163996; GCN-NOHSA-VI-NEXT: s_lshr_b32 s49, s31, 163997; GCN-NOHSA-VI-NEXT: s_lshr_b32 s50, s30, 163998; GCN-NOHSA-VI-NEXT: s_lshr_b32 s51, s1, 163999; GCN-NOHSA-VI-NEXT: s_lshr_b32 s52, s0, 164000; GCN-NOHSA-VI-NEXT: s_lshr_b32 s53, s3, 164001; GCN-NOHSA-VI-NEXT: s_lshr_b32 s54, s2, 164002; GCN-NOHSA-VI-NEXT: s_lshr_b32 s55, s5, 164003; GCN-NOHSA-VI-NEXT: s_lshr_b32 s56, s4, 164004; GCN-NOHSA-VI-NEXT: s_lshr_b32 s57, s7, 164005; GCN-NOHSA-VI-NEXT: s_lshr_b32 s58, s6, 164006; GCN-NOHSA-VI-NEXT: s_lshr_b32 s59, s9, 164007; GCN-NOHSA-VI-NEXT: s_and_b32 s17, s17, 0xffff4008; GCN-NOHSA-VI-NEXT: s_and_b32 s16, s16, 0xffff4009; GCN-NOHSA-VI-NEXT: s_and_b32 s19, s19, 0xffff4010; GCN-NOHSA-VI-NEXT: s_and_b32 s18, s18, 0xffff4011; GCN-NOHSA-VI-NEXT: s_and_b32 s21, s21, 0xffff4012; GCN-NOHSA-VI-NEXT: s_and_b32 s20, s20, 0xffff4013; GCN-NOHSA-VI-NEXT: s_and_b32 s23, s23, 0xffff4014; GCN-NOHSA-VI-NEXT: s_and_b32 s22, s22, 0xffff4015; GCN-NOHSA-VI-NEXT: s_and_b32 s25, s25, 0xffff4016; GCN-NOHSA-VI-NEXT: s_and_b32 s24, s24, 0xffff4017; GCN-NOHSA-VI-NEXT: s_and_b32 s27, s27, 0xffff4018; GCN-NOHSA-VI-NEXT: s_and_b32 s26, s26, 0xffff4019; GCN-NOHSA-VI-NEXT: s_and_b32 s29, s29, 0xffff4020; GCN-NOHSA-VI-NEXT: s_and_b32 s28, s28, 0xffff4021; GCN-NOHSA-VI-NEXT: s_and_b32 s31, s31, 0xffff4022; GCN-NOHSA-VI-NEXT: s_and_b32 s30, s30, 0xffff4023; GCN-NOHSA-VI-NEXT: s_lshr_b32 s60, s8, 164024; GCN-NOHSA-VI-NEXT: s_lshr_b32 s61, s11, 164025; GCN-NOHSA-VI-NEXT: s_lshr_b32 s62, s10, 164026; GCN-NOHSA-VI-NEXT: s_lshr_b32 s63, s13, 164027; GCN-NOHSA-VI-NEXT: s_lshr_b32 s64, s12, 164028; GCN-NOHSA-VI-NEXT: s_lshr_b32 s65, s15, 164029; GCN-NOHSA-VI-NEXT: s_lshr_b32 s66, s14, 164030; GCN-NOHSA-VI-NEXT: s_and_b32 s67, s1, 0xffff4031; GCN-NOHSA-VI-NEXT: s_and_b32 s68, s0, 0xffff4032; GCN-NOHSA-VI-NEXT: s_and_b32 s3, s3, 0xffff4033; GCN-NOHSA-VI-NEXT: s_and_b32 s2, s2, 0xffff4034; GCN-NOHSA-VI-NEXT: s_and_b32 s5, s5, 0xffff4035; GCN-NOHSA-VI-NEXT: s_and_b32 s4, s4, 0xffff4036; GCN-NOHSA-VI-NEXT: s_and_b32 s7, s7, 0xffff4037; GCN-NOHSA-VI-NEXT: s_and_b32 s6, s6, 0xffff4038; GCN-NOHSA-VI-NEXT: s_and_b32 s9, s9, 0xffff4039; GCN-NOHSA-VI-NEXT: s_and_b32 s8, s8, 0xffff4040; GCN-NOHSA-VI-NEXT: s_and_b32 s11, s11, 0xffff4041; GCN-NOHSA-VI-NEXT: s_and_b32 s10, s10, 0xffff4042; GCN-NOHSA-VI-NEXT: s_and_b32 s13, s13, 0xffff4043; GCN-NOHSA-VI-NEXT: s_and_b32 s12, s12, 0xffff4044; GCN-NOHSA-VI-NEXT: s_and_b32 s0, s15, 0xffff4045; GCN-NOHSA-VI-NEXT: s_and_b32 s1, s14, 0xffff4046; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s04047; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xf04048; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s14049; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04050; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14051; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04052; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xe04053; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s664054; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s654055; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04056; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4057; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14058; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04059; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xd04060; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s124061; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s644062; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s134063; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s634064; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04065; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4066; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14067; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04068; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xc04069; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s104070; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s624071; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s114072; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s614073; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04074; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4075; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14076; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04077; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xb04078; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s84079; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s604080; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s94081; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s594082; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04083; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4084; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14085; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04086; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xa04087; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s64088; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s584089; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s74090; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s574091; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04092; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4093; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14094; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04095; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0x904096; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s44097; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s564098; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s54099; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s554100; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04101; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4102; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14103; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04104; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0x804105; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s24106; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s544107; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s34108; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s534109; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04110; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4111; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14112; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04113; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0x704114; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s684115; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s524116; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s674117; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s514118; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04119; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4120; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14121; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04122; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0x604123; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s304124; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s504125; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s314126; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s494127; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04128; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4129; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14130; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04131; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0x504132; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s284133; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s394134; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s294135; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s384136; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04137; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4138; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14139; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04140; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 644141; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s264142; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s484143; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s274144; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s474145; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04146; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4147; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14148; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04149; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 484150; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s244151; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s464152; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s254153; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s454154; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04155; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4156; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14157; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04158; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 324159; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s224160; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s444161; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s234162; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s434163; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04164; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4165; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14166; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04167; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 164168; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s204169; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s424170; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s214171; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s414172; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04173; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4174; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14175; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s184176; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s404177; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s194178; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s354179; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04180; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4181; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s364182; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s164183; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s344184; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s174185; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s334186; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s374187; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4188; GCN-NOHSA-VI-NEXT: s_endpgm4189;4190; EG-LABEL: constant_zextload_v64i16_to_v64i32:4191; EG: ; %bb.0:4192; EG-NEXT: ALU 0, @38, KC0[CB0:0-32], KC1[]4193; EG-NEXT: TEX 3 @224194; EG-NEXT: ALU 55, @39, KC0[CB0:0-32], KC1[]4195; EG-NEXT: TEX 3 @304196; EG-NEXT: ALU 87, @95, KC0[CB0:0-32], KC1[]4197; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T65.XYZW, T66.X, 04198; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T63.XYZW, T49.X, 04199; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T62.XYZW, T64.X, 04200; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T60.XYZW, T50.X, 04201; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T59.XYZW, T61.X, 04202; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T57.XYZW, T51.X, 04203; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T56.XYZW, T58.X, 04204; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T54.XYZW, T52.X, 04205; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T53.XYZW, T55.X, 04206; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T37.XYZW, T39.X, 04207; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T47.XYZW, T48.X, 04208; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T45.XYZW, T40.X, 04209; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T44.XYZW, T46.X, 04210; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T42.XYZW, T41.X, 04211; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T36.XYZW, T43.X, 04212; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T35.XYZW, T38.X, 14213; EG-NEXT: CF_END4214; EG-NEXT: Fetch clause starting at 22:4215; EG-NEXT: VTX_READ_128 T38.XYZW, T37.X, 0, #14216; EG-NEXT: VTX_READ_128 T39.XYZW, T37.X, 48, #14217; EG-NEXT: VTX_READ_128 T40.XYZW, T37.X, 32, #14218; EG-NEXT: VTX_READ_128 T41.XYZW, T37.X, 16, #14219; EG-NEXT: Fetch clause starting at 30:4220; EG-NEXT: VTX_READ_128 T49.XYZW, T37.X, 112, #14221; EG-NEXT: VTX_READ_128 T50.XYZW, T37.X, 96, #14222; EG-NEXT: VTX_READ_128 T51.XYZW, T37.X, 80, #14223; EG-NEXT: VTX_READ_128 T52.XYZW, T37.X, 64, #14224; EG-NEXT: ALU clause starting at 38:4225; EG-NEXT: MOV * T37.X, KC0[2].Z,4226; EG-NEXT: ALU clause starting at 39:4227; EG-NEXT: LSHR * T35.W, T38.Y, literal.x,4228; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4229; EG-NEXT: AND_INT * T35.Z, T38.Y, literal.x,4230; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4231; EG-NEXT: LSHR T35.Y, T38.X, literal.x,4232; EG-NEXT: LSHR * T36.W, T38.W, literal.x,4233; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4234; EG-NEXT: AND_INT T35.X, T38.X, literal.x,4235; EG-NEXT: AND_INT T36.Z, T38.W, literal.x,4236; EG-NEXT: LSHR * T38.X, KC0[2].Y, literal.y,4237; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)4238; EG-NEXT: LSHR T36.Y, T38.Z, literal.x,4239; EG-NEXT: LSHR * T42.W, T41.Y, literal.x,4240; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4241; EG-NEXT: AND_INT T36.X, T38.Z, literal.x,4242; EG-NEXT: AND_INT T42.Z, T41.Y, literal.x,4243; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4244; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)4245; EG-NEXT: LSHR T43.X, PV.W, literal.x,4246; EG-NEXT: LSHR T42.Y, T41.X, literal.y,4247; EG-NEXT: LSHR T44.W, T41.W, literal.y,4248; EG-NEXT: AND_INT * T42.X, T41.X, literal.z,4249; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4250; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4251; EG-NEXT: AND_INT T44.Z, T41.W, literal.x,4252; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4253; EG-NEXT: 65535(9.183409e-41), 32(4.484155e-44)4254; EG-NEXT: LSHR T41.X, PV.W, literal.x,4255; EG-NEXT: LSHR T44.Y, T41.Z, literal.y,4256; EG-NEXT: LSHR T45.W, T40.Y, literal.y,4257; EG-NEXT: AND_INT * T44.X, T41.Z, literal.z,4258; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4259; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4260; EG-NEXT: AND_INT T45.Z, T40.Y, literal.x,4261; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4262; EG-NEXT: 65535(9.183409e-41), 48(6.726233e-44)4263; EG-NEXT: LSHR T46.X, PV.W, literal.x,4264; EG-NEXT: LSHR T45.Y, T40.X, literal.y,4265; EG-NEXT: LSHR T47.W, T40.W, literal.y,4266; EG-NEXT: AND_INT * T45.X, T40.X, literal.z,4267; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4268; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4269; EG-NEXT: AND_INT T47.Z, T40.W, literal.x,4270; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4271; EG-NEXT: 65535(9.183409e-41), 64(8.968310e-44)4272; EG-NEXT: LSHR T40.X, PV.W, literal.x,4273; EG-NEXT: LSHR T47.Y, T40.Z, literal.y,4274; EG-NEXT: AND_INT * T47.X, T40.Z, literal.z,4275; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4276; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4277; EG-NEXT: ADD_INT T0.W, KC0[2].Y, literal.x,4278; EG-NEXT: LSHR * T37.W, T39.Y, literal.y,4279; EG-NEXT: 80(1.121039e-43), 16(2.242078e-44)4280; EG-NEXT: LSHR T48.X, PV.W, literal.x,4281; EG-NEXT: AND_INT * T37.Z, T39.Y, literal.y,4282; EG-NEXT: 2(2.802597e-45), 65535(9.183409e-41)4283; EG-NEXT: ALU clause starting at 95:4284; EG-NEXT: LSHR T37.Y, T39.X, literal.x,4285; EG-NEXT: LSHR * T53.W, T39.W, literal.x,4286; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4287; EG-NEXT: AND_INT T37.X, T39.X, literal.x,4288; EG-NEXT: AND_INT T53.Z, T39.W, literal.x,4289; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4290; EG-NEXT: 65535(9.183409e-41), 96(1.345247e-43)4291; EG-NEXT: LSHR T39.X, PV.W, literal.x,4292; EG-NEXT: LSHR T53.Y, T39.Z, literal.y,4293; EG-NEXT: LSHR T54.W, T52.Y, literal.y,4294; EG-NEXT: AND_INT * T53.X, T39.Z, literal.z,4295; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4296; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4297; EG-NEXT: AND_INT T54.Z, T52.Y, literal.x,4298; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4299; EG-NEXT: 65535(9.183409e-41), 112(1.569454e-43)4300; EG-NEXT: LSHR T55.X, PV.W, literal.x,4301; EG-NEXT: LSHR T54.Y, T52.X, literal.y,4302; EG-NEXT: LSHR T56.W, T52.W, literal.y,4303; EG-NEXT: AND_INT * T54.X, T52.X, literal.z,4304; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4305; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4306; EG-NEXT: AND_INT T56.Z, T52.W, literal.x,4307; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4308; EG-NEXT: 65535(9.183409e-41), 128(1.793662e-43)4309; EG-NEXT: LSHR T52.X, PV.W, literal.x,4310; EG-NEXT: LSHR T56.Y, T52.Z, literal.y,4311; EG-NEXT: LSHR T57.W, T51.Y, literal.y,4312; EG-NEXT: AND_INT * T56.X, T52.Z, literal.z,4313; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4314; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4315; EG-NEXT: AND_INT T57.Z, T51.Y, literal.x,4316; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4317; EG-NEXT: 65535(9.183409e-41), 144(2.017870e-43)4318; EG-NEXT: LSHR T58.X, PV.W, literal.x,4319; EG-NEXT: LSHR T57.Y, T51.X, literal.y,4320; EG-NEXT: LSHR T59.W, T51.W, literal.y,4321; EG-NEXT: AND_INT * T57.X, T51.X, literal.z,4322; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4323; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4324; EG-NEXT: AND_INT T59.Z, T51.W, literal.x,4325; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4326; EG-NEXT: 65535(9.183409e-41), 160(2.242078e-43)4327; EG-NEXT: LSHR T51.X, PV.W, literal.x,4328; EG-NEXT: LSHR T59.Y, T51.Z, literal.y,4329; EG-NEXT: LSHR T60.W, T50.Y, literal.y,4330; EG-NEXT: AND_INT * T59.X, T51.Z, literal.z,4331; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4332; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4333; EG-NEXT: AND_INT T60.Z, T50.Y, literal.x,4334; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4335; EG-NEXT: 65535(9.183409e-41), 176(2.466285e-43)4336; EG-NEXT: LSHR T61.X, PV.W, literal.x,4337; EG-NEXT: LSHR T60.Y, T50.X, literal.y,4338; EG-NEXT: LSHR T62.W, T50.W, literal.y,4339; EG-NEXT: AND_INT * T60.X, T50.X, literal.z,4340; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4341; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4342; EG-NEXT: AND_INT T62.Z, T50.W, literal.x,4343; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4344; EG-NEXT: 65535(9.183409e-41), 192(2.690493e-43)4345; EG-NEXT: LSHR T50.X, PV.W, literal.x,4346; EG-NEXT: LSHR T62.Y, T50.Z, literal.y,4347; EG-NEXT: LSHR T63.W, T49.Y, literal.y,4348; EG-NEXT: AND_INT * T62.X, T50.Z, literal.z,4349; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4350; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4351; EG-NEXT: AND_INT T63.Z, T49.Y, literal.x,4352; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4353; EG-NEXT: 65535(9.183409e-41), 208(2.914701e-43)4354; EG-NEXT: LSHR T64.X, PV.W, literal.x,4355; EG-NEXT: LSHR T63.Y, T49.X, literal.y,4356; EG-NEXT: LSHR T65.W, T49.W, literal.y,4357; EG-NEXT: AND_INT * T63.X, T49.X, literal.z,4358; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4359; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4360; EG-NEXT: AND_INT T65.Z, T49.W, literal.x,4361; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4362; EG-NEXT: 65535(9.183409e-41), 224(3.138909e-43)4363; EG-NEXT: LSHR T49.X, PV.W, literal.x,4364; EG-NEXT: LSHR T65.Y, T49.Z, literal.y,4365; EG-NEXT: AND_INT * T65.X, T49.Z, literal.z,4366; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4367; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)4368; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,4369; EG-NEXT: 240(3.363116e-43), 0(0.000000e+00)4370; EG-NEXT: LSHR * T66.X, PV.W, literal.x,4371; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)4372;4373; GFX12-LABEL: constant_zextload_v64i16_to_v64i32:4374; GFX12: ; %bb.0:4375; GFX12-NEXT: s_load_b128 s[36:39], s[4:5], 0x244376; GFX12-NEXT: s_wait_kmcnt 0x04377; GFX12-NEXT: s_clause 0x14378; GFX12-NEXT: s_load_b512 s[16:31], s[38:39], 0x04379; GFX12-NEXT: s_load_b512 s[0:15], s[38:39], 0x404380; GFX12-NEXT: s_wait_kmcnt 0x04381; GFX12-NEXT: s_lshr_b32 s49, s31, 164382; GFX12-NEXT: s_lshr_b32 s65, s15, 164383; GFX12-NEXT: s_lshr_b32 s66, s14, 164384; GFX12-NEXT: s_and_b32 s14, s14, 0xffff4385; GFX12-NEXT: s_and_b32 s15, s15, 0xffff4386; GFX12-NEXT: s_lshr_b32 s63, s13, 164387; GFX12-NEXT: s_lshr_b32 s64, s12, 164388; GFX12-NEXT: s_and_b32 s13, s13, 0xffff4389; GFX12-NEXT: s_and_b32 s12, s12, 0xffff4390; GFX12-NEXT: v_dual_mov_b32 v24, 0 :: v_dual_mov_b32 v1, s664391; GFX12-NEXT: s_lshr_b32 s61, s11, 164392; GFX12-NEXT: s_lshr_b32 s62, s10, 164393; GFX12-NEXT: s_and_b32 s11, s11, 0xffff4394; GFX12-NEXT: s_and_b32 s10, s10, 0xffff4395; GFX12-NEXT: v_dual_mov_b32 v0, s14 :: v_dual_mov_b32 v3, s654396; GFX12-NEXT: v_dual_mov_b32 v2, s15 :: v_dual_mov_b32 v5, s644397; GFX12-NEXT: s_lshr_b32 s59, s9, 164398; GFX12-NEXT: s_lshr_b32 s60, s8, 164399; GFX12-NEXT: s_and_b32 s9, s9, 0xffff4400; GFX12-NEXT: s_and_b32 s8, s8, 0xffff4401; GFX12-NEXT: v_dual_mov_b32 v4, s12 :: v_dual_mov_b32 v7, s634402; GFX12-NEXT: v_dual_mov_b32 v6, s13 :: v_dual_mov_b32 v9, s624403; GFX12-NEXT: v_dual_mov_b32 v8, s10 :: v_dual_mov_b32 v11, s614404; GFX12-NEXT: v_dual_mov_b32 v10, s11 :: v_dual_mov_b32 v13, s604405; GFX12-NEXT: s_lshr_b32 s57, s7, 164406; GFX12-NEXT: s_lshr_b32 s58, s6, 164407; GFX12-NEXT: s_and_b32 s7, s7, 0xffff4408; GFX12-NEXT: v_dual_mov_b32 v12, s8 :: v_dual_mov_b32 v15, s594409; GFX12-NEXT: v_mov_b32_e32 v14, s94410; GFX12-NEXT: s_and_b32 s6, s6, 0xffff4411; GFX12-NEXT: s_lshr_b32 s55, s5, 164412; GFX12-NEXT: s_lshr_b32 s56, s4, 164413; GFX12-NEXT: s_and_b32 s5, s5, 0xffff4414; GFX12-NEXT: s_and_b32 s4, s4, 0xffff4415; GFX12-NEXT: s_lshr_b32 s53, s3, 164416; GFX12-NEXT: s_lshr_b32 s54, s2, 164417; GFX12-NEXT: s_and_b32 s3, s3, 0xffff4418; GFX12-NEXT: s_and_b32 s2, s2, 0xffff4419; GFX12-NEXT: s_clause 0x34420; GFX12-NEXT: global_store_b128 v24, v[0:3], s[36:37] offset:2404421; GFX12-NEXT: global_store_b128 v24, v[4:7], s[36:37] offset:2244422; GFX12-NEXT: global_store_b128 v24, v[8:11], s[36:37] offset:2084423; GFX12-NEXT: global_store_b128 v24, v[12:15], s[36:37] offset:1924424; GFX12-NEXT: v_dual_mov_b32 v0, s6 :: v_dual_mov_b32 v3, s574425; GFX12-NEXT: v_dual_mov_b32 v1, s58 :: v_dual_mov_b32 v2, s74426; GFX12-NEXT: v_mov_b32_e32 v5, s564427; GFX12-NEXT: s_lshr_b32 s51, s1, 164428; GFX12-NEXT: s_lshr_b32 s52, s0, 164429; GFX12-NEXT: s_and_b32 s1, s1, 0xffff4430; GFX12-NEXT: s_and_b32 s0, s0, 0xffff4431; GFX12-NEXT: v_dual_mov_b32 v4, s4 :: v_dual_mov_b32 v7, s554432; GFX12-NEXT: v_dual_mov_b32 v6, s5 :: v_dual_mov_b32 v9, s544433; GFX12-NEXT: s_lshr_b32 s50, s30, 164434; GFX12-NEXT: s_and_b32 s31, s31, 0xffff4435; GFX12-NEXT: s_and_b32 s30, s30, 0xffff4436; GFX12-NEXT: v_dual_mov_b32 v8, s2 :: v_dual_mov_b32 v11, s534437; GFX12-NEXT: v_dual_mov_b32 v10, s3 :: v_dual_mov_b32 v13, s524438; GFX12-NEXT: s_lshr_b32 s45, s27, 164439; GFX12-NEXT: s_lshr_b32 s46, s26, 164440; GFX12-NEXT: s_lshr_b32 s47, s29, 164441; GFX12-NEXT: s_lshr_b32 s48, s28, 164442; GFX12-NEXT: s_and_b32 s27, s27, 0xffff4443; GFX12-NEXT: s_and_b32 s26, s26, 0xffff4444; GFX12-NEXT: s_and_b32 s29, s29, 0xffff4445; GFX12-NEXT: s_and_b32 s28, s28, 0xffff4446; GFX12-NEXT: v_dual_mov_b32 v12, s0 :: v_dual_mov_b32 v15, s514447; GFX12-NEXT: v_dual_mov_b32 v14, s1 :: v_dual_mov_b32 v17, s504448; GFX12-NEXT: s_lshr_b32 s43, s25, 164449; GFX12-NEXT: s_lshr_b32 s44, s24, 164450; GFX12-NEXT: s_and_b32 s25, s25, 0xffff4451; GFX12-NEXT: s_and_b32 s24, s24, 0xffff4452; GFX12-NEXT: v_dual_mov_b32 v16, s30 :: v_dual_mov_b32 v19, s494453; GFX12-NEXT: v_dual_mov_b32 v18, s31 :: v_dual_mov_b32 v21, s484454; GFX12-NEXT: s_lshr_b32 s41, s23, 164455; GFX12-NEXT: s_lshr_b32 s42, s22, 164456; GFX12-NEXT: s_and_b32 s23, s23, 0xffff4457; GFX12-NEXT: s_and_b32 s22, s22, 0xffff4458; GFX12-NEXT: v_dual_mov_b32 v20, s28 :: v_dual_mov_b32 v23, s474459; GFX12-NEXT: v_mov_b32_e32 v22, s294460; GFX12-NEXT: s_clause 0x54461; GFX12-NEXT: global_store_b128 v24, v[0:3], s[36:37] offset:1764462; GFX12-NEXT: global_store_b128 v24, v[4:7], s[36:37] offset:1604463; GFX12-NEXT: global_store_b128 v24, v[8:11], s[36:37] offset:1444464; GFX12-NEXT: global_store_b128 v24, v[12:15], s[36:37] offset:1284465; GFX12-NEXT: global_store_b128 v24, v[16:19], s[36:37] offset:1124466; GFX12-NEXT: global_store_b128 v24, v[20:23], s[36:37] offset:964467; GFX12-NEXT: v_dual_mov_b32 v0, s26 :: v_dual_mov_b32 v3, s454468; GFX12-NEXT: v_dual_mov_b32 v1, s46 :: v_dual_mov_b32 v2, s274469; GFX12-NEXT: v_mov_b32_e32 v5, s444470; GFX12-NEXT: s_lshr_b32 s39, s21, 164471; GFX12-NEXT: s_lshr_b32 s40, s20, 164472; GFX12-NEXT: s_and_b32 s21, s21, 0xffff4473; GFX12-NEXT: s_and_b32 s20, s20, 0xffff4474; GFX12-NEXT: v_dual_mov_b32 v4, s24 :: v_dual_mov_b32 v7, s434475; GFX12-NEXT: v_dual_mov_b32 v6, s25 :: v_dual_mov_b32 v9, s424476; GFX12-NEXT: s_lshr_b32 s35, s19, 164477; GFX12-NEXT: s_lshr_b32 s38, s18, 164478; GFX12-NEXT: s_and_b32 s19, s19, 0xffff4479; GFX12-NEXT: s_and_b32 s18, s18, 0xffff4480; GFX12-NEXT: v_dual_mov_b32 v8, s22 :: v_dual_mov_b32 v11, s414481; GFX12-NEXT: v_dual_mov_b32 v10, s23 :: v_dual_mov_b32 v13, s404482; GFX12-NEXT: s_lshr_b32 s33, s17, 164483; GFX12-NEXT: s_lshr_b32 s34, s16, 164484; GFX12-NEXT: s_and_b32 s17, s17, 0xffff4485; GFX12-NEXT: s_and_b32 s16, s16, 0xffff4486; GFX12-NEXT: v_dual_mov_b32 v12, s20 :: v_dual_mov_b32 v15, s394487; GFX12-NEXT: v_dual_mov_b32 v14, s21 :: v_dual_mov_b32 v17, s384488; GFX12-NEXT: v_dual_mov_b32 v16, s18 :: v_dual_mov_b32 v19, s354489; GFX12-NEXT: v_dual_mov_b32 v18, s19 :: v_dual_mov_b32 v21, s344490; GFX12-NEXT: v_dual_mov_b32 v20, s16 :: v_dual_mov_b32 v23, s334491; GFX12-NEXT: v_mov_b32_e32 v22, s174492; GFX12-NEXT: s_clause 0x54493; GFX12-NEXT: global_store_b128 v24, v[0:3], s[36:37] offset:804494; GFX12-NEXT: global_store_b128 v24, v[4:7], s[36:37] offset:644495; GFX12-NEXT: global_store_b128 v24, v[8:11], s[36:37] offset:484496; GFX12-NEXT: global_store_b128 v24, v[12:15], s[36:37] offset:324497; GFX12-NEXT: global_store_b128 v24, v[16:19], s[36:37] offset:164498; GFX12-NEXT: global_store_b128 v24, v[20:23], s[36:37]4499; GFX12-NEXT: s_endpgm4500 %load = load <64 x i16>, ptr addrspace(4) %in4501 %ext = zext <64 x i16> %load to <64 x i32>4502 store <64 x i32> %ext, ptr addrspace(1) %out4503 ret void4504}4505 4506define amdgpu_kernel void @constant_sextload_v64i16_to_v64i32(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {4507; GCN-NOHSA-SI-LABEL: constant_sextload_v64i16_to_v64i32:4508; GCN-NOHSA-SI: ; %bb.0:4509; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[36:39], s[4:5], 0x94510; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)4511; GCN-NOHSA-SI-NEXT: s_load_dwordx16 s[16:31], s[38:39], 0x04512; GCN-NOHSA-SI-NEXT: s_load_dwordx16 s[0:15], s[38:39], 0x104513; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)4514; GCN-NOHSA-SI-NEXT: s_ashr_i32 s33, s17, 164515; GCN-NOHSA-SI-NEXT: s_ashr_i32 s34, s16, 164516; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s17, s174517; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s16, s164518; GCN-NOHSA-SI-NEXT: s_ashr_i32 s35, s19, 164519; GCN-NOHSA-SI-NEXT: s_ashr_i32 s38, s18, 164520; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s19, s194521; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s18, s184522; GCN-NOHSA-SI-NEXT: s_ashr_i32 s39, s21, 164523; GCN-NOHSA-SI-NEXT: s_ashr_i32 s40, s20, 164524; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s21, s214525; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s20, s204526; GCN-NOHSA-SI-NEXT: s_ashr_i32 s41, s23, 164527; GCN-NOHSA-SI-NEXT: s_ashr_i32 s42, s22, 164528; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s23, s234529; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s22, s224530; GCN-NOHSA-SI-NEXT: s_ashr_i32 s43, s25, 164531; GCN-NOHSA-SI-NEXT: s_ashr_i32 s44, s24, 164532; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s25, s254533; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s24, s244534; GCN-NOHSA-SI-NEXT: s_ashr_i32 s45, s27, 164535; GCN-NOHSA-SI-NEXT: s_ashr_i32 s46, s26, 164536; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s27, s274537; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s26, s264538; GCN-NOHSA-SI-NEXT: s_ashr_i32 s47, s29, 164539; GCN-NOHSA-SI-NEXT: s_ashr_i32 s48, s28, 164540; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s29, s294541; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s28, s284542; GCN-NOHSA-SI-NEXT: s_ashr_i32 s49, s31, 164543; GCN-NOHSA-SI-NEXT: s_ashr_i32 s50, s30, 164544; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s31, s314545; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s30, s304546; GCN-NOHSA-SI-NEXT: s_ashr_i32 s51, s1, 164547; GCN-NOHSA-SI-NEXT: s_ashr_i32 s52, s0, 164548; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s53, s14549; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s54, s04550; GCN-NOHSA-SI-NEXT: s_ashr_i32 s55, s3, 164551; GCN-NOHSA-SI-NEXT: s_ashr_i32 s56, s2, 164552; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s57, s34553; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s58, s24554; GCN-NOHSA-SI-NEXT: s_ashr_i32 s59, s5, 164555; GCN-NOHSA-SI-NEXT: s_ashr_i32 s60, s4, 164556; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s5, s54557; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s4, s44558; GCN-NOHSA-SI-NEXT: s_ashr_i32 s61, s6, 164559; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s62, s74560; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s6, s64561; GCN-NOHSA-SI-NEXT: s_ashr_i32 s63, s9, 164562; GCN-NOHSA-SI-NEXT: s_ashr_i32 s64, s8, 164563; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s9, s94564; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s8, s84565; GCN-NOHSA-SI-NEXT: s_ashr_i32 s65, s11, 164566; GCN-NOHSA-SI-NEXT: s_ashr_i32 s66, s10, 164567; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s11, s114568; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s10, s104569; GCN-NOHSA-SI-NEXT: s_ashr_i32 s67, s13, 164570; GCN-NOHSA-SI-NEXT: s_ashr_i32 s68, s12, 164571; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s13, s134572; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s12, s124573; GCN-NOHSA-SI-NEXT: s_ashr_i32 s69, s15, 164574; GCN-NOHSA-SI-NEXT: s_ashr_i32 s70, s14, 164575; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s15, s154576; GCN-NOHSA-SI-NEXT: s_sext_i32_i16 s14, s144577; GCN-NOHSA-SI-NEXT: s_ashr_i32 s7, s7, 164578; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s364579; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s374580; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0004581; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -14582; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s144583; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s704584; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s154585; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s694586; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s124587; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s684588; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s134589; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s674590; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s104591; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s664592; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s114593; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s654594; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s84595; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s644596; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, s94597; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, s634598; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, s64599; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v17, s614600; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v18, s624601; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2404602; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4603; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s44604; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v19, s74605; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s604606; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s54607; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s594608; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:2244609; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:2084610; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:1924611; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:1764612; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1604613; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4614; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s584615; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s564616; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s574617; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s554618; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1444619; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4620; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s544621; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s524622; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s534623; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s514624; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1284625; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4626; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s304627; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s504628; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s314629; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s494630; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1124631; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4632; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s284633; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s484634; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s294635; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s474636; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:964637; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4638; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s264639; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s464640; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s274641; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s454642; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:804643; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4644; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s244645; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s444646; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s254647; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s434648; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:644649; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4650; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s224651; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s424652; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s234653; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s414654; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:484655; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4656; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s204657; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s404658; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s214659; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s394660; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:324661; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4662; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s184663; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s384664; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s194665; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s354666; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:164667; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4668; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s164669; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s344670; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s174671; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s334672; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 04673; GCN-NOHSA-SI-NEXT: s_endpgm4674;4675; GCN-HSA-LABEL: constant_sextload_v64i16_to_v64i32:4676; GCN-HSA: ; %bb.0:4677; GCN-HSA-NEXT: s_add_i32 s12, s12, s174678; GCN-HSA-NEXT: s_load_dwordx4 s[16:19], s[8:9], 0x04679; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s134680; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 84681; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)4682; GCN-HSA-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x04683; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)4684; GCN-HSA-NEXT: s_ashr_i32 s20, s1, 164685; GCN-HSA-NEXT: s_ashr_i32 s21, s0, 164686; GCN-HSA-NEXT: s_sext_i32_i16 s22, s14687; GCN-HSA-NEXT: s_sext_i32_i16 s23, s04688; GCN-HSA-NEXT: s_ashr_i32 s24, s3, 164689; GCN-HSA-NEXT: s_ashr_i32 s25, s2, 164690; GCN-HSA-NEXT: s_sext_i32_i16 s26, s34691; GCN-HSA-NEXT: s_sext_i32_i16 s27, s24692; GCN-HSA-NEXT: s_ashr_i32 s28, s5, 164693; GCN-HSA-NEXT: s_ashr_i32 s29, s4, 164694; GCN-HSA-NEXT: s_sext_i32_i16 s30, s54695; GCN-HSA-NEXT: s_sext_i32_i16 s31, s44696; GCN-HSA-NEXT: s_ashr_i32 s33, s7, 164697; GCN-HSA-NEXT: s_ashr_i32 s34, s6, 164698; GCN-HSA-NEXT: s_sext_i32_i16 s35, s74699; GCN-HSA-NEXT: s_sext_i32_i16 s36, s64700; GCN-HSA-NEXT: s_ashr_i32 s37, s9, 164701; GCN-HSA-NEXT: s_ashr_i32 s38, s8, 164702; GCN-HSA-NEXT: s_sext_i32_i16 s39, s94703; GCN-HSA-NEXT: s_sext_i32_i16 s40, s84704; GCN-HSA-NEXT: s_ashr_i32 s41, s11, 164705; GCN-HSA-NEXT: s_ashr_i32 s42, s10, 164706; GCN-HSA-NEXT: s_sext_i32_i16 s43, s114707; GCN-HSA-NEXT: s_sext_i32_i16 s44, s104708; GCN-HSA-NEXT: s_ashr_i32 s45, s13, 164709; GCN-HSA-NEXT: s_ashr_i32 s47, s12, 164710; GCN-HSA-NEXT: s_sext_i32_i16 s46, s134711; GCN-HSA-NEXT: s_sext_i32_i16 s49, s124712; GCN-HSA-NEXT: s_ashr_i32 s48, s15, 164713; GCN-HSA-NEXT: s_ashr_i32 s50, s14, 164714; GCN-HSA-NEXT: s_sext_i32_i16 s51, s154715; GCN-HSA-NEXT: s_sext_i32_i16 s52, s144716; GCN-HSA-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x104717; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)4718; GCN-HSA-NEXT: s_ashr_i32 s18, s1, 164719; GCN-HSA-NEXT: s_ashr_i32 s19, s0, 164720; GCN-HSA-NEXT: s_ashr_i32 s53, s3, 164721; GCN-HSA-NEXT: s_ashr_i32 s54, s2, 164722; GCN-HSA-NEXT: s_ashr_i32 s57, s5, 164723; GCN-HSA-NEXT: s_ashr_i32 s58, s4, 164724; GCN-HSA-NEXT: s_ashr_i32 s59, s7, 164725; GCN-HSA-NEXT: s_ashr_i32 s60, s6, 164726; GCN-HSA-NEXT: s_ashr_i32 s61, s9, 164727; GCN-HSA-NEXT: s_ashr_i32 s62, s8, 164728; GCN-HSA-NEXT: s_ashr_i32 s63, s11, 164729; GCN-HSA-NEXT: s_ashr_i32 s64, s10, 164730; GCN-HSA-NEXT: s_ashr_i32 s65, s13, 164731; GCN-HSA-NEXT: s_ashr_i32 s66, s12, 164732; GCN-HSA-NEXT: s_ashr_i32 s67, s15, 164733; GCN-HSA-NEXT: s_ashr_i32 s68, s14, 164734; GCN-HSA-NEXT: s_sext_i32_i16 s56, s24735; GCN-HSA-NEXT: s_add_u32 s2, s16, 0xf04736; GCN-HSA-NEXT: s_sext_i32_i16 s55, s34737; GCN-HSA-NEXT: s_addc_u32 s3, s17, 04738; GCN-HSA-NEXT: v_mov_b32_e32 v20, s34739; GCN-HSA-NEXT: v_mov_b32_e32 v19, s24740; GCN-HSA-NEXT: s_add_u32 s2, s16, 0xe04741; GCN-HSA-NEXT: s_addc_u32 s3, s17, 04742; GCN-HSA-NEXT: v_mov_b32_e32 v22, s34743; GCN-HSA-NEXT: v_mov_b32_e32 v21, s24744; GCN-HSA-NEXT: s_add_u32 s2, s16, 0xd04745; GCN-HSA-NEXT: s_addc_u32 s3, s17, 04746; GCN-HSA-NEXT: v_mov_b32_e32 v24, s34747; GCN-HSA-NEXT: v_mov_b32_e32 v23, s24748; GCN-HSA-NEXT: s_add_u32 s2, s16, 0xc04749; GCN-HSA-NEXT: s_addc_u32 s3, s17, 04750; GCN-HSA-NEXT: v_mov_b32_e32 v26, s34751; GCN-HSA-NEXT: v_mov_b32_e32 v25, s24752; GCN-HSA-NEXT: s_add_u32 s2, s16, 0xb04753; GCN-HSA-NEXT: s_addc_u32 s3, s17, 04754; GCN-HSA-NEXT: v_mov_b32_e32 v28, s34755; GCN-HSA-NEXT: s_sext_i32_i16 s11, s114756; GCN-HSA-NEXT: s_sext_i32_i16 s10, s104757; GCN-HSA-NEXT: v_mov_b32_e32 v27, s24758; GCN-HSA-NEXT: s_add_u32 s2, s16, 0xa04759; GCN-HSA-NEXT: v_mov_b32_e32 v8, s104760; GCN-HSA-NEXT: v_mov_b32_e32 v9, s644761; GCN-HSA-NEXT: v_mov_b32_e32 v10, s114762; GCN-HSA-NEXT: v_mov_b32_e32 v11, s634763; GCN-HSA-NEXT: s_addc_u32 s3, s17, 04764; GCN-HSA-NEXT: flat_store_dwordx4 v[23:24], v[8:11]4765; GCN-HSA-NEXT: s_sext_i32_i16 s9, s94766; GCN-HSA-NEXT: v_mov_b32_e32 v10, s34767; GCN-HSA-NEXT: s_sext_i32_i16 s8, s84768; GCN-HSA-NEXT: v_mov_b32_e32 v9, s24769; GCN-HSA-NEXT: s_add_u32 s2, s16, 0x904770; GCN-HSA-NEXT: v_mov_b32_e32 v12, s84771; GCN-HSA-NEXT: v_mov_b32_e32 v13, s624772; GCN-HSA-NEXT: v_mov_b32_e32 v14, s94773; GCN-HSA-NEXT: v_mov_b32_e32 v15, s614774; GCN-HSA-NEXT: s_addc_u32 s3, s17, 04775; GCN-HSA-NEXT: flat_store_dwordx4 v[25:26], v[12:15]4776; GCN-HSA-NEXT: s_sext_i32_i16 s13, s134777; GCN-HSA-NEXT: v_mov_b32_e32 v13, s34778; GCN-HSA-NEXT: s_sext_i32_i16 s12, s124779; GCN-HSA-NEXT: v_mov_b32_e32 v12, s24780; GCN-HSA-NEXT: s_add_u32 s2, s16, 0x804781; GCN-HSA-NEXT: s_sext_i32_i16 s0, s04782; GCN-HSA-NEXT: s_sext_i32_i16 s15, s154783; GCN-HSA-NEXT: s_sext_i32_i16 s14, s144784; GCN-HSA-NEXT: v_mov_b32_e32 v4, s124785; GCN-HSA-NEXT: v_mov_b32_e32 v5, s664786; GCN-HSA-NEXT: v_mov_b32_e32 v6, s134787; GCN-HSA-NEXT: v_mov_b32_e32 v7, s654788; GCN-HSA-NEXT: s_addc_u32 s3, s17, 04789; GCN-HSA-NEXT: s_sext_i32_i16 s1, s14790; GCN-HSA-NEXT: s_sext_i32_i16 s7, s74791; GCN-HSA-NEXT: s_sext_i32_i16 s6, s64792; GCN-HSA-NEXT: v_mov_b32_e32 v0, s144793; GCN-HSA-NEXT: v_mov_b32_e32 v1, s684794; GCN-HSA-NEXT: v_mov_b32_e32 v2, s154795; GCN-HSA-NEXT: v_mov_b32_e32 v3, s674796; GCN-HSA-NEXT: flat_store_dwordx4 v[21:22], v[4:7]4797; GCN-HSA-NEXT: v_mov_b32_e32 v16, s64798; GCN-HSA-NEXT: v_mov_b32_e32 v4, s04799; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x704800; GCN-HSA-NEXT: v_mov_b32_e32 v17, s604801; GCN-HSA-NEXT: v_mov_b32_e32 v18, s74802; GCN-HSA-NEXT: flat_store_dwordx4 v[19:20], v[0:3]4803; GCN-HSA-NEXT: v_mov_b32_e32 v19, s594804; GCN-HSA-NEXT: v_mov_b32_e32 v6, s14805; GCN-HSA-NEXT: s_addc_u32 s1, s17, 04806; GCN-HSA-NEXT: flat_store_dwordx4 v[27:28], v[16:19]4807; GCN-HSA-NEXT: s_sext_i32_i16 s5, s54808; GCN-HSA-NEXT: v_mov_b32_e32 v17, s14809; GCN-HSA-NEXT: v_mov_b32_e32 v16, s04810; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x604811; GCN-HSA-NEXT: s_addc_u32 s1, s17, 04812; GCN-HSA-NEXT: v_mov_b32_e32 v19, s14813; GCN-HSA-NEXT: s_sext_i32_i16 s4, s44814; GCN-HSA-NEXT: v_mov_b32_e32 v18, s04815; GCN-HSA-NEXT: s_add_u32 s0, s16, 0x504816; GCN-HSA-NEXT: v_mov_b32_e32 v0, s44817; GCN-HSA-NEXT: v_mov_b32_e32 v20, s564818; GCN-HSA-NEXT: v_mov_b32_e32 v1, s584819; GCN-HSA-NEXT: v_mov_b32_e32 v2, s54820; GCN-HSA-NEXT: v_mov_b32_e32 v3, s574821; GCN-HSA-NEXT: v_mov_b32_e32 v21, s544822; GCN-HSA-NEXT: v_mov_b32_e32 v22, s554823; GCN-HSA-NEXT: v_mov_b32_e32 v23, s534824; GCN-HSA-NEXT: v_mov_b32_e32 v5, s194825; GCN-HSA-NEXT: v_mov_b32_e32 v15, s34826; GCN-HSA-NEXT: s_addc_u32 s1, s17, 04827; GCN-HSA-NEXT: v_mov_b32_e32 v14, s24828; GCN-HSA-NEXT: v_mov_b32_e32 v8, s524829; GCN-HSA-NEXT: v_mov_b32_e32 v7, s184830; GCN-HSA-NEXT: flat_store_dwordx4 v[9:10], v[0:3]4831; GCN-HSA-NEXT: v_mov_b32_e32 v9, s504832; GCN-HSA-NEXT: v_mov_b32_e32 v0, s494833; GCN-HSA-NEXT: v_mov_b32_e32 v10, s514834; GCN-HSA-NEXT: v_mov_b32_e32 v11, s484835; GCN-HSA-NEXT: v_mov_b32_e32 v1, s474836; GCN-HSA-NEXT: v_mov_b32_e32 v2, s464837; GCN-HSA-NEXT: v_mov_b32_e32 v3, s454838; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[20:23]4839; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[4:7]4840; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[8:11]4841; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[0:3]4842; GCN-HSA-NEXT: v_mov_b32_e32 v5, s14843; GCN-HSA-NEXT: v_mov_b32_e32 v4, s04844; GCN-HSA-NEXT: s_add_u32 s0, s16, 644845; GCN-HSA-NEXT: v_mov_b32_e32 v0, s444846; GCN-HSA-NEXT: v_mov_b32_e32 v1, s424847; GCN-HSA-NEXT: v_mov_b32_e32 v2, s434848; GCN-HSA-NEXT: v_mov_b32_e32 v3, s414849; GCN-HSA-NEXT: s_addc_u32 s1, s17, 04850; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4851; GCN-HSA-NEXT: v_mov_b32_e32 v5, s14852; GCN-HSA-NEXT: v_mov_b32_e32 v4, s04853; GCN-HSA-NEXT: s_add_u32 s0, s16, 484854; GCN-HSA-NEXT: v_mov_b32_e32 v0, s404855; GCN-HSA-NEXT: v_mov_b32_e32 v1, s384856; GCN-HSA-NEXT: v_mov_b32_e32 v2, s394857; GCN-HSA-NEXT: v_mov_b32_e32 v3, s374858; GCN-HSA-NEXT: s_addc_u32 s1, s17, 04859; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4860; GCN-HSA-NEXT: v_mov_b32_e32 v5, s14861; GCN-HSA-NEXT: v_mov_b32_e32 v4, s04862; GCN-HSA-NEXT: s_add_u32 s0, s16, 324863; GCN-HSA-NEXT: v_mov_b32_e32 v0, s364864; GCN-HSA-NEXT: v_mov_b32_e32 v1, s344865; GCN-HSA-NEXT: v_mov_b32_e32 v2, s354866; GCN-HSA-NEXT: v_mov_b32_e32 v3, s334867; GCN-HSA-NEXT: s_addc_u32 s1, s17, 04868; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4869; GCN-HSA-NEXT: v_mov_b32_e32 v5, s14870; GCN-HSA-NEXT: v_mov_b32_e32 v4, s04871; GCN-HSA-NEXT: s_add_u32 s0, s16, 164872; GCN-HSA-NEXT: v_mov_b32_e32 v0, s314873; GCN-HSA-NEXT: v_mov_b32_e32 v1, s294874; GCN-HSA-NEXT: v_mov_b32_e32 v2, s304875; GCN-HSA-NEXT: v_mov_b32_e32 v3, s284876; GCN-HSA-NEXT: s_addc_u32 s1, s17, 04877; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4878; GCN-HSA-NEXT: v_mov_b32_e32 v5, s14879; GCN-HSA-NEXT: v_mov_b32_e32 v0, s274880; GCN-HSA-NEXT: v_mov_b32_e32 v1, s254881; GCN-HSA-NEXT: v_mov_b32_e32 v2, s264882; GCN-HSA-NEXT: v_mov_b32_e32 v3, s244883; GCN-HSA-NEXT: v_mov_b32_e32 v4, s04884; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4885; GCN-HSA-NEXT: v_mov_b32_e32 v4, s164886; GCN-HSA-NEXT: v_mov_b32_e32 v0, s234887; GCN-HSA-NEXT: v_mov_b32_e32 v1, s214888; GCN-HSA-NEXT: v_mov_b32_e32 v2, s224889; GCN-HSA-NEXT: v_mov_b32_e32 v3, s204890; GCN-HSA-NEXT: v_mov_b32_e32 v5, s174891; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4892; GCN-HSA-NEXT: s_endpgm4893;4894; GCN-NOHSA-VI-LABEL: constant_sextload_v64i16_to_v64i32:4895; GCN-NOHSA-VI: ; %bb.0:4896; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[36:39], s[4:5], 0x244897; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)4898; GCN-NOHSA-VI-NEXT: s_load_dwordx16 s[16:31], s[38:39], 0x04899; GCN-NOHSA-VI-NEXT: s_load_dwordx16 s[0:15], s[38:39], 0x404900; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)4901; GCN-NOHSA-VI-NEXT: s_ashr_i32 s33, s17, 164902; GCN-NOHSA-VI-NEXT: s_ashr_i32 s34, s16, 164903; GCN-NOHSA-VI-NEXT: s_ashr_i32 s35, s19, 164904; GCN-NOHSA-VI-NEXT: s_ashr_i32 s38, s18, 164905; GCN-NOHSA-VI-NEXT: s_ashr_i32 s39, s21, 164906; GCN-NOHSA-VI-NEXT: s_ashr_i32 s40, s20, 164907; GCN-NOHSA-VI-NEXT: s_ashr_i32 s41, s23, 164908; GCN-NOHSA-VI-NEXT: s_ashr_i32 s42, s22, 164909; GCN-NOHSA-VI-NEXT: s_ashr_i32 s43, s25, 164910; GCN-NOHSA-VI-NEXT: s_ashr_i32 s44, s24, 164911; GCN-NOHSA-VI-NEXT: s_ashr_i32 s45, s27, 164912; GCN-NOHSA-VI-NEXT: s_ashr_i32 s46, s26, 164913; GCN-NOHSA-VI-NEXT: s_ashr_i32 s47, s29, 164914; GCN-NOHSA-VI-NEXT: s_ashr_i32 s48, s28, 164915; GCN-NOHSA-VI-NEXT: s_ashr_i32 s49, s31, 164916; GCN-NOHSA-VI-NEXT: s_ashr_i32 s50, s30, 164917; GCN-NOHSA-VI-NEXT: s_ashr_i32 s51, s1, 164918; GCN-NOHSA-VI-NEXT: s_ashr_i32 s52, s0, 164919; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s53, s14920; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s54, s04921; GCN-NOHSA-VI-NEXT: s_ashr_i32 s55, s3, 164922; GCN-NOHSA-VI-NEXT: s_ashr_i32 s56, s2, 164923; GCN-NOHSA-VI-NEXT: s_ashr_i32 s57, s5, 164924; GCN-NOHSA-VI-NEXT: s_ashr_i32 s58, s4, 164925; GCN-NOHSA-VI-NEXT: s_ashr_i32 s59, s7, 164926; GCN-NOHSA-VI-NEXT: s_ashr_i32 s60, s6, 164927; GCN-NOHSA-VI-NEXT: s_ashr_i32 s61, s9, 164928; GCN-NOHSA-VI-NEXT: s_ashr_i32 s62, s8, 164929; GCN-NOHSA-VI-NEXT: s_ashr_i32 s63, s11, 164930; GCN-NOHSA-VI-NEXT: s_ashr_i32 s64, s10, 164931; GCN-NOHSA-VI-NEXT: s_ashr_i32 s65, s13, 164932; GCN-NOHSA-VI-NEXT: s_ashr_i32 s66, s12, 164933; GCN-NOHSA-VI-NEXT: s_ashr_i32 s0, s15, 164934; GCN-NOHSA-VI-NEXT: s_ashr_i32 s1, s14, 164935; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s04936; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xf04937; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s14938; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04939; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14940; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s15, s154941; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s14, s144942; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04943; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xe04944; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s144945; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s154946; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04947; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4948; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14949; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s13, s134950; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s12, s124951; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04952; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xd04953; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s124954; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s664955; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s134956; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s654957; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04958; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4959; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14960; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s11, s114961; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s10, s104962; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04963; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xc04964; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s104965; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s644966; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s114967; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s634968; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04969; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4970; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14971; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s9, s94972; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s8, s84973; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04974; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xb04975; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s84976; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s624977; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s94978; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s614979; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04980; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4981; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14982; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s7, s74983; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s6, s64984; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04985; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0xa04986; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s64987; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s604988; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s74989; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s594990; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 04991; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]4992; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s14993; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s5, s54994; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s4, s44995; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s04996; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0x904997; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s44998; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s584999; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s55000; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s575001; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 05002; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5003; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15004; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s3, s35005; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s2, s25006; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05007; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0x805008; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s25009; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s565010; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s35011; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s555012; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 05013; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5014; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15015; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05016; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0x705017; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s545018; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s525019; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s535020; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s515021; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 05022; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5023; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15024; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s31, s315025; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s30, s305026; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05027; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0x605028; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s305029; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s505030; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s315031; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s495032; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 05033; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5034; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15035; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s29, s295036; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s28, s285037; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05038; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 0x505039; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s285040; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s485041; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s295042; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s475043; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 05044; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5045; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15046; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s27, s275047; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s26, s265048; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05049; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 645050; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s265051; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s465052; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s275053; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s455054; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 05055; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5056; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15057; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s25, s255058; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s24, s245059; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05060; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 485061; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s245062; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s445063; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s255064; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s435065; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 05066; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5067; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15068; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s23, s235069; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s22, s225070; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05071; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 325072; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s225073; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s425074; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s235075; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s415076; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 05077; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5078; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15079; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s21, s215080; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s20, s205081; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05082; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s36, 165083; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s205084; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s405085; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s215086; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s395087; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s37, 05088; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s19, s195089; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s18, s185090; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5091; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15092; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s185093; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s385094; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s195095; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s355096; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05097; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s17, s175098; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s16, s165099; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5100; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s365101; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s165102; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s345103; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s175104; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s335105; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s375106; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5107; GCN-NOHSA-VI-NEXT: s_endpgm5108;5109; EG-LABEL: constant_sextload_v64i16_to_v64i32:5110; EG: ; %bb.0:5111; EG-NEXT: ALU 17, @38, KC0[CB0:0-32], KC1[]5112; EG-NEXT: TEX 7 @225113; EG-NEXT: ALU 75, @56, KC0[CB0:0-32], KC1[]5114; EG-NEXT: ALU 71, @132, KC0[CB0:0-32], KC1[]5115; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T66.XYZW, T48.X, 05116; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T47.XYZW, T41.X, 05117; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T65.XYZW, T56.X, 05118; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T46.XYZW, T55.X, 05119; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T64.XYZW, T54.X, 05120; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T45.XYZW, T53.X, 05121; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T63.XYZW, T52.X, 05122; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T43.XYZW, T51.X, 05123; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T62.XYZW, T50.X, 05124; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T42.XYZW, T49.X, 05125; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T61.XYZW, T40.X, 05126; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T44.XYZW, T39.X, 05127; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T60.XYZW, T38.X, 05128; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T59.XYZW, T37.X, 05129; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T58.XYZW, T36.X, 05130; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T57.XYZW, T35.X, 15131; EG-NEXT: CF_END5132; EG-NEXT: PAD5133; EG-NEXT: Fetch clause starting at 22:5134; EG-NEXT: VTX_READ_128 T42.XYZW, T41.X, 16, #15135; EG-NEXT: VTX_READ_128 T43.XYZW, T41.X, 32, #15136; EG-NEXT: VTX_READ_128 T44.XYZW, T41.X, 0, #15137; EG-NEXT: VTX_READ_128 T45.XYZW, T41.X, 48, #15138; EG-NEXT: VTX_READ_128 T46.XYZW, T41.X, 64, #15139; EG-NEXT: VTX_READ_128 T47.XYZW, T41.X, 80, #15140; EG-NEXT: VTX_READ_128 T48.XYZW, T41.X, 96, #15141; EG-NEXT: VTX_READ_128 T41.XYZW, T41.X, 112, #15142; EG-NEXT: ALU clause starting at 38:5143; EG-NEXT: LSHR T35.X, KC0[2].Y, literal.x,5144; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5145; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)5146; EG-NEXT: LSHR T36.X, PV.W, literal.x,5147; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5148; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)5149; EG-NEXT: LSHR T37.X, PV.W, literal.x,5150; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5151; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)5152; EG-NEXT: LSHR T38.X, PV.W, literal.x,5153; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5154; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)5155; EG-NEXT: LSHR T39.X, PV.W, literal.x,5156; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5157; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)5158; EG-NEXT: LSHR T40.X, PV.W, literal.x,5159; EG-NEXT: MOV * T41.X, KC0[2].Z,5160; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)5161; EG-NEXT: ALU clause starting at 56:5162; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,5163; EG-NEXT: 96(1.345247e-43), 0(0.000000e+00)5164; EG-NEXT: LSHR T49.X, PV.W, literal.x,5165; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5166; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)5167; EG-NEXT: LSHR T50.X, PV.W, literal.x,5168; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5169; EG-NEXT: 2(2.802597e-45), 128(1.793662e-43)5170; EG-NEXT: LSHR T51.X, PV.W, literal.x,5171; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5172; EG-NEXT: 2(2.802597e-45), 144(2.017870e-43)5173; EG-NEXT: LSHR T52.X, PV.W, literal.x,5174; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5175; EG-NEXT: 2(2.802597e-45), 160(2.242078e-43)5176; EG-NEXT: LSHR T53.X, PV.W, literal.x,5177; EG-NEXT: LSHR T0.Y, T41.W, literal.y,5178; EG-NEXT: LSHR T0.Z, T41.Y, literal.y,5179; EG-NEXT: LSHR T0.W, T48.W, literal.y, BS:VEC_120/SCL_2125180; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,5181; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)5182; EG-NEXT: 176(2.466285e-43), 0(0.000000e+00)5183; EG-NEXT: LSHR T54.X, PS, literal.x,5184; EG-NEXT: LSHR T1.Y, T48.Y, literal.y,5185; EG-NEXT: LSHR T1.Z, T47.W, literal.y,5186; EG-NEXT: LSHR T1.W, T47.Y, literal.y, BS:VEC_120/SCL_2125187; EG-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.z,5188; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)5189; EG-NEXT: 192(2.690493e-43), 0(0.000000e+00)5190; EG-NEXT: LSHR T55.X, PS, literal.x,5191; EG-NEXT: LSHR T2.Y, T46.W, literal.y,5192; EG-NEXT: LSHR T2.Z, T46.Y, literal.y,5193; EG-NEXT: LSHR T2.W, T45.W, literal.y, BS:VEC_120/SCL_2125194; EG-NEXT: ADD_INT * T3.W, KC0[2].Y, literal.z,5195; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)5196; EG-NEXT: 208(2.914701e-43), 0(0.000000e+00)5197; EG-NEXT: LSHR T56.X, PS, literal.x,5198; EG-NEXT: LSHR T3.Y, T45.Y, literal.y,5199; EG-NEXT: BFE_INT T57.Z, T44.Y, 0.0, literal.y, BS:VEC_120/SCL_2125200; EG-NEXT: LSHR T3.W, T43.W, literal.y,5201; EG-NEXT: LSHR * T4.W, T43.Y, literal.y,5202; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)5203; EG-NEXT: BFE_INT T57.X, T44.X, 0.0, literal.x,5204; EG-NEXT: LSHR T4.Y, T42.W, literal.x,5205; EG-NEXT: BFE_INT T58.Z, T44.W, 0.0, literal.x, BS:VEC_120/SCL_2125206; EG-NEXT: LSHR T5.W, T42.Y, literal.x,5207; EG-NEXT: LSHR * T6.W, T44.Y, literal.x,5208; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5209; EG-NEXT: BFE_INT T58.X, T44.Z, 0.0, literal.x,5210; EG-NEXT: LSHR T5.Y, T44.W, literal.x,5211; EG-NEXT: BFE_INT T59.Z, T42.Y, 0.0, literal.x,5212; EG-NEXT: BFE_INT T57.W, PS, 0.0, literal.x,5213; EG-NEXT: LSHR * T6.W, T44.X, literal.x,5214; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5215; EG-NEXT: BFE_INT T59.X, T42.X, 0.0, literal.x,5216; EG-NEXT: BFE_INT T57.Y, PS, 0.0, literal.x,5217; EG-NEXT: BFE_INT T60.Z, T42.W, 0.0, literal.x,5218; EG-NEXT: BFE_INT T58.W, PV.Y, 0.0, literal.x,5219; EG-NEXT: LSHR * T6.W, T44.Z, literal.x,5220; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5221; EG-NEXT: BFE_INT T60.X, T42.Z, 0.0, literal.x,5222; EG-NEXT: BFE_INT T58.Y, PS, 0.0, literal.x,5223; EG-NEXT: BFE_INT T44.Z, T43.Y, 0.0, literal.x,5224; EG-NEXT: BFE_INT T59.W, T5.W, 0.0, literal.x,5225; EG-NEXT: LSHR * T5.W, T42.X, literal.x,5226; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5227; EG-NEXT: BFE_INT T44.X, T43.X, 0.0, literal.x,5228; EG-NEXT: BFE_INT T59.Y, PS, 0.0, literal.x,5229; EG-NEXT: BFE_INT T61.Z, T43.W, 0.0, literal.x,5230; EG-NEXT: BFE_INT T60.W, T4.Y, 0.0, literal.x,5231; EG-NEXT: LSHR * T5.W, T42.Z, literal.x,5232; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5233; EG-NEXT: BFE_INT T61.X, T43.Z, 0.0, literal.x,5234; EG-NEXT: BFE_INT T60.Y, PS, 0.0, literal.x,5235; EG-NEXT: BFE_INT T42.Z, T45.Y, 0.0, literal.x,5236; EG-NEXT: BFE_INT * T44.W, T4.W, 0.0, literal.x,5237; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5238; EG-NEXT: ALU clause starting at 132:5239; EG-NEXT: LSHR * T4.W, T43.X, literal.x,5240; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5241; EG-NEXT: BFE_INT T42.X, T45.X, 0.0, literal.x,5242; EG-NEXT: BFE_INT T44.Y, PV.W, 0.0, literal.x,5243; EG-NEXT: BFE_INT T62.Z, T45.W, 0.0, literal.x,5244; EG-NEXT: BFE_INT T61.W, T3.W, 0.0, literal.x, BS:VEC_120/SCL_2125245; EG-NEXT: LSHR * T3.W, T43.Z, literal.x,5246; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5247; EG-NEXT: BFE_INT T62.X, T45.Z, 0.0, literal.x,5248; EG-NEXT: BFE_INT T61.Y, PS, 0.0, literal.x,5249; EG-NEXT: BFE_INT T43.Z, T46.Y, 0.0, literal.x,5250; EG-NEXT: BFE_INT T42.W, T3.Y, 0.0, literal.x, BS:VEC_120/SCL_2125251; EG-NEXT: LSHR * T3.W, T45.X, literal.x,5252; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5253; EG-NEXT: BFE_INT T43.X, T46.X, 0.0, literal.x,5254; EG-NEXT: BFE_INT T42.Y, PS, 0.0, literal.x,5255; EG-NEXT: BFE_INT T63.Z, T46.W, 0.0, literal.x,5256; EG-NEXT: BFE_INT T62.W, T2.W, 0.0, literal.x, BS:VEC_120/SCL_2125257; EG-NEXT: LSHR * T2.W, T45.Z, literal.x,5258; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5259; EG-NEXT: BFE_INT T63.X, T46.Z, 0.0, literal.x,5260; EG-NEXT: BFE_INT T62.Y, PS, 0.0, literal.x,5261; EG-NEXT: BFE_INT T45.Z, T47.Y, 0.0, literal.x,5262; EG-NEXT: BFE_INT T43.W, T2.Z, 0.0, literal.x, BS:VEC_120/SCL_2125263; EG-NEXT: LSHR * T2.W, T46.X, literal.x,5264; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5265; EG-NEXT: BFE_INT T45.X, T47.X, 0.0, literal.x,5266; EG-NEXT: BFE_INT T43.Y, PS, 0.0, literal.x,5267; EG-NEXT: BFE_INT T64.Z, T47.W, 0.0, literal.x,5268; EG-NEXT: BFE_INT T63.W, T2.Y, 0.0, literal.x,5269; EG-NEXT: LSHR * T2.W, T46.Z, literal.x,5270; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5271; EG-NEXT: BFE_INT T64.X, T47.Z, 0.0, literal.x,5272; EG-NEXT: BFE_INT T63.Y, PS, 0.0, literal.x,5273; EG-NEXT: BFE_INT T46.Z, T48.Y, 0.0, literal.x,5274; EG-NEXT: BFE_INT T45.W, T1.W, 0.0, literal.x,5275; EG-NEXT: LSHR * T1.W, T47.X, literal.x,5276; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5277; EG-NEXT: BFE_INT T46.X, T48.X, 0.0, literal.x,5278; EG-NEXT: BFE_INT T45.Y, PS, 0.0, literal.x,5279; EG-NEXT: BFE_INT T65.Z, T48.W, 0.0, literal.x,5280; EG-NEXT: BFE_INT T64.W, T1.Z, 0.0, literal.x,5281; EG-NEXT: LSHR * T1.W, T47.Z, literal.x,5282; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5283; EG-NEXT: BFE_INT T65.X, T48.Z, 0.0, literal.x,5284; EG-NEXT: BFE_INT T64.Y, PS, 0.0, literal.x,5285; EG-NEXT: BFE_INT T47.Z, T41.Y, 0.0, literal.x,5286; EG-NEXT: BFE_INT T46.W, T1.Y, 0.0, literal.x, BS:VEC_120/SCL_2125287; EG-NEXT: LSHR * T1.W, T48.X, literal.x,5288; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5289; EG-NEXT: BFE_INT T47.X, T41.X, 0.0, literal.x,5290; EG-NEXT: BFE_INT T46.Y, PS, 0.0, literal.x,5291; EG-NEXT: BFE_INT T66.Z, T41.W, 0.0, literal.x,5292; EG-NEXT: BFE_INT T65.W, T0.W, 0.0, literal.x, BS:VEC_120/SCL_2125293; EG-NEXT: LSHR * T0.W, T48.Z, literal.x,5294; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5295; EG-NEXT: BFE_INT T66.X, T41.Z, 0.0, literal.x,5296; EG-NEXT: BFE_INT T65.Y, PS, 0.0, literal.x,5297; EG-NEXT: LSHR T1.Z, T41.X, literal.x,5298; EG-NEXT: BFE_INT T47.W, T0.Z, 0.0, literal.x, BS:VEC_120/SCL_2125299; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5300; EG-NEXT: 16(2.242078e-44), 224(3.138909e-43)5301; EG-NEXT: LSHR T41.X, PS, literal.x,5302; EG-NEXT: BFE_INT T47.Y, PV.Z, 0.0, literal.y,5303; EG-NEXT: LSHR T0.Z, T41.Z, literal.y,5304; EG-NEXT: BFE_INT T66.W, T0.Y, 0.0, literal.y,5305; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,5306; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)5307; EG-NEXT: 240(3.363116e-43), 0(0.000000e+00)5308; EG-NEXT: LSHR T48.X, PS, literal.x,5309; EG-NEXT: BFE_INT * T66.Y, PV.Z, 0.0, literal.y,5310; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)5311;5312; GFX12-LABEL: constant_sextload_v64i16_to_v64i32:5313; GFX12: ; %bb.0:5314; GFX12-NEXT: s_load_b128 s[36:39], s[4:5], 0x245315; GFX12-NEXT: s_wait_kmcnt 0x05316; GFX12-NEXT: s_clause 0x15317; GFX12-NEXT: s_load_b512 s[0:15], s[38:39], 0x405318; GFX12-NEXT: s_load_b512 s[16:31], s[38:39], 0x05319; GFX12-NEXT: s_wait_kmcnt 0x05320; GFX12-NEXT: s_ashr_i32 s65, s15, 165321; GFX12-NEXT: s_ashr_i32 s66, s14, 165322; GFX12-NEXT: s_sext_i32_i16 s14, s145323; GFX12-NEXT: s_sext_i32_i16 s15, s155324; GFX12-NEXT: s_ashr_i32 s63, s13, 165325; GFX12-NEXT: s_ashr_i32 s64, s12, 165326; GFX12-NEXT: s_sext_i32_i16 s13, s135327; GFX12-NEXT: s_sext_i32_i16 s12, s125328; GFX12-NEXT: v_dual_mov_b32 v24, 0 :: v_dual_mov_b32 v1, s665329; GFX12-NEXT: s_ashr_i32 s61, s11, 165330; GFX12-NEXT: s_ashr_i32 s62, s10, 165331; GFX12-NEXT: s_sext_i32_i16 s11, s115332; GFX12-NEXT: s_sext_i32_i16 s10, s105333; GFX12-NEXT: v_dual_mov_b32 v0, s14 :: v_dual_mov_b32 v3, s655334; GFX12-NEXT: v_dual_mov_b32 v2, s15 :: v_dual_mov_b32 v5, s645335; GFX12-NEXT: s_ashr_i32 s59, s9, 165336; GFX12-NEXT: s_ashr_i32 s60, s8, 165337; GFX12-NEXT: s_sext_i32_i16 s9, s95338; GFX12-NEXT: s_sext_i32_i16 s8, s85339; GFX12-NEXT: v_dual_mov_b32 v4, s12 :: v_dual_mov_b32 v7, s635340; GFX12-NEXT: v_dual_mov_b32 v6, s13 :: v_dual_mov_b32 v9, s625341; GFX12-NEXT: v_dual_mov_b32 v8, s10 :: v_dual_mov_b32 v11, s615342; GFX12-NEXT: v_dual_mov_b32 v10, s11 :: v_dual_mov_b32 v13, s605343; GFX12-NEXT: s_ashr_i32 s57, s7, 165344; GFX12-NEXT: s_ashr_i32 s58, s6, 165345; GFX12-NEXT: s_sext_i32_i16 s7, s75346; GFX12-NEXT: v_dual_mov_b32 v12, s8 :: v_dual_mov_b32 v15, s595347; GFX12-NEXT: v_mov_b32_e32 v14, s95348; GFX12-NEXT: s_sext_i32_i16 s6, s65349; GFX12-NEXT: s_ashr_i32 s55, s5, 165350; GFX12-NEXT: s_ashr_i32 s56, s4, 165351; GFX12-NEXT: s_sext_i32_i16 s5, s55352; GFX12-NEXT: s_sext_i32_i16 s4, s45353; GFX12-NEXT: s_ashr_i32 s53, s3, 165354; GFX12-NEXT: s_ashr_i32 s54, s2, 165355; GFX12-NEXT: s_sext_i32_i16 s3, s35356; GFX12-NEXT: s_sext_i32_i16 s2, s25357; GFX12-NEXT: s_clause 0x35358; GFX12-NEXT: global_store_b128 v24, v[0:3], s[36:37] offset:2405359; GFX12-NEXT: global_store_b128 v24, v[4:7], s[36:37] offset:2245360; GFX12-NEXT: global_store_b128 v24, v[8:11], s[36:37] offset:2085361; GFX12-NEXT: global_store_b128 v24, v[12:15], s[36:37] offset:1925362; GFX12-NEXT: v_dual_mov_b32 v0, s6 :: v_dual_mov_b32 v3, s575363; GFX12-NEXT: v_dual_mov_b32 v1, s58 :: v_dual_mov_b32 v2, s75364; GFX12-NEXT: v_mov_b32_e32 v5, s565365; GFX12-NEXT: s_ashr_i32 s51, s1, 165366; GFX12-NEXT: s_ashr_i32 s52, s0, 165367; GFX12-NEXT: s_sext_i32_i16 s1, s15368; GFX12-NEXT: s_sext_i32_i16 s0, s05369; GFX12-NEXT: v_dual_mov_b32 v4, s4 :: v_dual_mov_b32 v7, s555370; GFX12-NEXT: v_dual_mov_b32 v6, s5 :: v_dual_mov_b32 v9, s545371; GFX12-NEXT: s_ashr_i32 s49, s31, 165372; GFX12-NEXT: s_ashr_i32 s50, s30, 165373; GFX12-NEXT: s_sext_i32_i16 s31, s315374; GFX12-NEXT: s_sext_i32_i16 s30, s305375; GFX12-NEXT: v_dual_mov_b32 v8, s2 :: v_dual_mov_b32 v11, s535376; GFX12-NEXT: v_dual_mov_b32 v10, s3 :: v_dual_mov_b32 v13, s525377; GFX12-NEXT: s_ashr_i32 s45, s27, 165378; GFX12-NEXT: s_ashr_i32 s46, s26, 165379; GFX12-NEXT: s_sext_i32_i16 s27, s275380; GFX12-NEXT: s_sext_i32_i16 s26, s265381; GFX12-NEXT: s_ashr_i32 s47, s29, 165382; GFX12-NEXT: s_ashr_i32 s48, s28, 165383; GFX12-NEXT: s_sext_i32_i16 s29, s295384; GFX12-NEXT: s_sext_i32_i16 s28, s285385; GFX12-NEXT: v_dual_mov_b32 v12, s0 :: v_dual_mov_b32 v15, s515386; GFX12-NEXT: v_dual_mov_b32 v14, s1 :: v_dual_mov_b32 v17, s505387; GFX12-NEXT: s_ashr_i32 s43, s25, 165388; GFX12-NEXT: s_ashr_i32 s44, s24, 165389; GFX12-NEXT: s_sext_i32_i16 s25, s255390; GFX12-NEXT: s_sext_i32_i16 s24, s245391; GFX12-NEXT: v_dual_mov_b32 v16, s30 :: v_dual_mov_b32 v19, s495392; GFX12-NEXT: v_dual_mov_b32 v18, s31 :: v_dual_mov_b32 v21, s485393; GFX12-NEXT: s_ashr_i32 s41, s23, 165394; GFX12-NEXT: s_ashr_i32 s42, s22, 165395; GFX12-NEXT: s_sext_i32_i16 s23, s235396; GFX12-NEXT: s_sext_i32_i16 s22, s225397; GFX12-NEXT: v_dual_mov_b32 v20, s28 :: v_dual_mov_b32 v23, s475398; GFX12-NEXT: v_mov_b32_e32 v22, s295399; GFX12-NEXT: s_clause 0x55400; GFX12-NEXT: global_store_b128 v24, v[0:3], s[36:37] offset:1765401; GFX12-NEXT: global_store_b128 v24, v[4:7], s[36:37] offset:1605402; GFX12-NEXT: global_store_b128 v24, v[8:11], s[36:37] offset:1445403; GFX12-NEXT: global_store_b128 v24, v[12:15], s[36:37] offset:1285404; GFX12-NEXT: global_store_b128 v24, v[16:19], s[36:37] offset:1125405; GFX12-NEXT: global_store_b128 v24, v[20:23], s[36:37] offset:965406; GFX12-NEXT: v_dual_mov_b32 v0, s26 :: v_dual_mov_b32 v3, s455407; GFX12-NEXT: v_dual_mov_b32 v1, s46 :: v_dual_mov_b32 v2, s275408; GFX12-NEXT: v_mov_b32_e32 v5, s445409; GFX12-NEXT: s_ashr_i32 s39, s21, 165410; GFX12-NEXT: s_ashr_i32 s40, s20, 165411; GFX12-NEXT: s_sext_i32_i16 s21, s215412; GFX12-NEXT: s_sext_i32_i16 s20, s205413; GFX12-NEXT: v_dual_mov_b32 v4, s24 :: v_dual_mov_b32 v7, s435414; GFX12-NEXT: v_dual_mov_b32 v6, s25 :: v_dual_mov_b32 v9, s425415; GFX12-NEXT: s_ashr_i32 s35, s19, 165416; GFX12-NEXT: s_ashr_i32 s38, s18, 165417; GFX12-NEXT: s_sext_i32_i16 s19, s195418; GFX12-NEXT: s_sext_i32_i16 s18, s185419; GFX12-NEXT: v_dual_mov_b32 v8, s22 :: v_dual_mov_b32 v11, s415420; GFX12-NEXT: v_dual_mov_b32 v10, s23 :: v_dual_mov_b32 v13, s405421; GFX12-NEXT: s_ashr_i32 s33, s17, 165422; GFX12-NEXT: s_ashr_i32 s34, s16, 165423; GFX12-NEXT: s_sext_i32_i16 s17, s175424; GFX12-NEXT: s_sext_i32_i16 s16, s165425; GFX12-NEXT: v_dual_mov_b32 v12, s20 :: v_dual_mov_b32 v15, s395426; GFX12-NEXT: v_dual_mov_b32 v14, s21 :: v_dual_mov_b32 v17, s385427; GFX12-NEXT: v_dual_mov_b32 v16, s18 :: v_dual_mov_b32 v19, s355428; GFX12-NEXT: v_dual_mov_b32 v18, s19 :: v_dual_mov_b32 v21, s345429; GFX12-NEXT: v_dual_mov_b32 v20, s16 :: v_dual_mov_b32 v23, s335430; GFX12-NEXT: v_mov_b32_e32 v22, s175431; GFX12-NEXT: s_clause 0x55432; GFX12-NEXT: global_store_b128 v24, v[0:3], s[36:37] offset:805433; GFX12-NEXT: global_store_b128 v24, v[4:7], s[36:37] offset:645434; GFX12-NEXT: global_store_b128 v24, v[8:11], s[36:37] offset:485435; GFX12-NEXT: global_store_b128 v24, v[12:15], s[36:37] offset:325436; GFX12-NEXT: global_store_b128 v24, v[16:19], s[36:37] offset:165437; GFX12-NEXT: global_store_b128 v24, v[20:23], s[36:37]5438; GFX12-NEXT: s_endpgm5439 %load = load <64 x i16>, ptr addrspace(4) %in5440 %ext = sext <64 x i16> %load to <64 x i32>5441 store <64 x i32> %ext, ptr addrspace(1) %out5442 ret void5443}5444 5445define amdgpu_kernel void @constant_zextload_i16_to_i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {5446; GCN-NOHSA-SI-LABEL: constant_zextload_i16_to_i64:5447; GCN-NOHSA-SI: ; %bb.0:5448; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95449; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005450; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15451; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65452; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75453; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5454; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25455; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35456; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 05457; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05458; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15459; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05460; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5461; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05462; GCN-NOHSA-SI-NEXT: s_endpgm5463;5464; GCN-HSA-LABEL: constant_zextload_i16_to_i64:5465; GCN-HSA: ; %bb.0:5466; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05467; GCN-HSA-NEXT: s_add_i32 s12, s12, s175468; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135469; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85470; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5471; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25472; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35473; GCN-HSA-NEXT: flat_load_ushort v0, v[0:1]5474; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05475; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15476; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05477; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5478; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5479; GCN-HSA-NEXT: s_endpgm5480;5481; GCN-NOHSA-VI-LABEL: constant_zextload_i16_to_i64:5482; GCN-NOHSA-VI: ; %bb.0:5483; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245484; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, 05485; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5486; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s25487; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s35488; GCN-NOHSA-VI-NEXT: flat_load_ushort v2, v[0:1]5489; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s05490; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s15491; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5492; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v2, 0xffff, v25493; GCN-NOHSA-VI-NEXT: flat_store_dwordx2 v[0:1], v[2:3]5494; GCN-NOHSA-VI-NEXT: s_endpgm5495;5496; EG-LABEL: constant_zextload_i16_to_i64:5497; EG: ; %bb.0:5498; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5499; EG-NEXT: TEX 0 @65500; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]5501; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15502; EG-NEXT: CF_END5503; EG-NEXT: PAD5504; EG-NEXT: Fetch clause starting at 6:5505; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15506; EG-NEXT: ALU clause starting at 8:5507; EG-NEXT: MOV * T0.X, KC0[2].Z,5508; EG-NEXT: ALU clause starting at 9:5509; EG-NEXT: MOV * T0.Y, 0.0,5510; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,5511; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)5512;5513; GFX12-TRUE16-LABEL: constant_zextload_i16_to_i64:5514; GFX12-TRUE16: ; %bb.0:5515; GFX12-TRUE16-NEXT: s_load_b128 s[0:3], s[4:5], 0x245516; GFX12-TRUE16-NEXT: v_mov_b32_e32 v1, 05517; GFX12-TRUE16-NEXT: s_wait_kmcnt 0x05518; GFX12-TRUE16-NEXT: global_load_d16_b16 v0, v1, s[2:3]5519; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x05520; GFX12-TRUE16-NEXT: v_and_b32_e32 v0, 0xffff, v05521; GFX12-TRUE16-NEXT: global_store_b64 v1, v[0:1], s[0:1]5522; GFX12-TRUE16-NEXT: s_endpgm5523;5524; GFX12-FAKE16-LABEL: constant_zextload_i16_to_i64:5525; GFX12-FAKE16: ; %bb.0:5526; GFX12-FAKE16-NEXT: s_load_b128 s[0:3], s[4:5], 0x245527; GFX12-FAKE16-NEXT: v_mov_b32_e32 v1, 05528; GFX12-FAKE16-NEXT: s_wait_kmcnt 0x05529; GFX12-FAKE16-NEXT: global_load_u16 v0, v1, s[2:3]5530; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x05531; GFX12-FAKE16-NEXT: v_and_b32_e32 v0, 0xffff, v05532; GFX12-FAKE16-NEXT: global_store_b64 v1, v[0:1], s[0:1]5533; GFX12-FAKE16-NEXT: s_endpgm5534 %a = load i16, ptr addrspace(4) %in5535 %ext = zext i16 %a to i645536 store i64 %ext, ptr addrspace(1) %out5537 ret void5538}5539 5540; FIXME: Need to optimize this sequence to avoid extra bfe:5541; t28: i32,ch = load<LD2[%in(addrspace=1)], anyext from i16> t12, t27, undef:i645542; t31: i64 = any_extend t285543; t33: i64 = sign_extend_inreg t31, ValueType:ch:i165544; TODO: These could be expanded earlier using ASHR 155545define amdgpu_kernel void @constant_sextload_i16_to_i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {5546; GCN-NOHSA-SI-LABEL: constant_sextload_i16_to_i64:5547; GCN-NOHSA-SI: ; %bb.0:5548; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95549; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005550; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15551; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65552; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75553; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5554; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25555; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35556; GCN-NOHSA-SI-NEXT: buffer_load_sshort v0, off, s[8:11], 05557; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05558; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15559; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5560; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v05561; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05562; GCN-NOHSA-SI-NEXT: s_endpgm5563;5564; GCN-HSA-LABEL: constant_sextload_i16_to_i64:5565; GCN-HSA: ; %bb.0:5566; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05567; GCN-HSA-NEXT: s_add_i32 s12, s12, s175568; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135569; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85570; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5571; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25572; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35573; GCN-HSA-NEXT: flat_load_sshort v0, v[0:1]5574; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05575; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15576; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5577; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v05578; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5579; GCN-HSA-NEXT: s_endpgm5580;5581; GCN-NOHSA-VI-LABEL: constant_sextload_i16_to_i64:5582; GCN-NOHSA-VI: ; %bb.0:5583; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245584; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5585; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s25586; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s35587; GCN-NOHSA-VI-NEXT: flat_load_ushort v2, v[0:1]5588; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s05589; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s15590; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5591; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v2, 0, 165592; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 31, v25593; GCN-NOHSA-VI-NEXT: flat_store_dwordx2 v[0:1], v[2:3]5594; GCN-NOHSA-VI-NEXT: s_endpgm5595;5596; EG-LABEL: constant_sextload_i16_to_i64:5597; EG: ; %bb.0:5598; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5599; EG-NEXT: TEX 0 @65600; EG-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]5601; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15602; EG-NEXT: CF_END5603; EG-NEXT: PAD5604; EG-NEXT: Fetch clause starting at 6:5605; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15606; EG-NEXT: ALU clause starting at 8:5607; EG-NEXT: MOV * T0.X, KC0[2].Z,5608; EG-NEXT: ALU clause starting at 9:5609; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,5610; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,5611; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)5612; EG-NEXT: ASHR * T0.Y, PV.X, literal.x,5613; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)5614;5615; GFX12-TRUE16-LABEL: constant_sextload_i16_to_i64:5616; GFX12-TRUE16: ; %bb.0:5617; GFX12-TRUE16-NEXT: s_load_b128 s[0:3], s[4:5], 0x245618; GFX12-TRUE16-NEXT: v_mov_b32_e32 v2, 05619; GFX12-TRUE16-NEXT: s_wait_kmcnt 0x05620; GFX12-TRUE16-NEXT: global_load_d16_b16 v0, v2, s[2:3]5621; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x05622; GFX12-TRUE16-NEXT: v_bfe_i32 v0, v0, 0, 165623; GFX12-TRUE16-NEXT: s_delay_alu instid0(VALU_DEP_1)5624; GFX12-TRUE16-NEXT: v_ashrrev_i32_e32 v1, 31, v05625; GFX12-TRUE16-NEXT: global_store_b64 v2, v[0:1], s[0:1]5626; GFX12-TRUE16-NEXT: s_endpgm5627;5628; GFX12-FAKE16-LABEL: constant_sextload_i16_to_i64:5629; GFX12-FAKE16: ; %bb.0:5630; GFX12-FAKE16-NEXT: s_load_b128 s[0:3], s[4:5], 0x245631; GFX12-FAKE16-NEXT: v_mov_b32_e32 v2, 05632; GFX12-FAKE16-NEXT: s_wait_kmcnt 0x05633; GFX12-FAKE16-NEXT: global_load_u16 v0, v2, s[2:3]5634; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x05635; GFX12-FAKE16-NEXT: v_bfe_i32 v0, v0, 0, 165636; GFX12-FAKE16-NEXT: s_delay_alu instid0(VALU_DEP_1)5637; GFX12-FAKE16-NEXT: v_ashrrev_i32_e32 v1, 31, v05638; GFX12-FAKE16-NEXT: global_store_b64 v2, v[0:1], s[0:1]5639; GFX12-FAKE16-NEXT: s_endpgm5640 %a = load i16, ptr addrspace(4) %in5641 %ext = sext i16 %a to i645642 store i64 %ext, ptr addrspace(1) %out5643 ret void5644}5645 5646define amdgpu_kernel void @constant_zextload_v1i16_to_v1i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {5647; GCN-NOHSA-SI-LABEL: constant_zextload_v1i16_to_v1i64:5648; GCN-NOHSA-SI: ; %bb.0:5649; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95650; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005651; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15652; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65653; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75654; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5655; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25656; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35657; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 05658; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05659; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15660; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05661; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5662; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05663; GCN-NOHSA-SI-NEXT: s_endpgm5664;5665; GCN-HSA-LABEL: constant_zextload_v1i16_to_v1i64:5666; GCN-HSA: ; %bb.0:5667; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05668; GCN-HSA-NEXT: s_add_i32 s12, s12, s175669; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135670; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85671; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5672; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25673; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35674; GCN-HSA-NEXT: flat_load_ushort v0, v[0:1]5675; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05676; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15677; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05678; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5679; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5680; GCN-HSA-NEXT: s_endpgm5681;5682; GCN-NOHSA-VI-LABEL: constant_zextload_v1i16_to_v1i64:5683; GCN-NOHSA-VI: ; %bb.0:5684; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245685; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, 05686; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5687; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s25688; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s35689; GCN-NOHSA-VI-NEXT: flat_load_ushort v2, v[0:1]5690; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s05691; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s15692; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5693; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v2, 0xffff, v25694; GCN-NOHSA-VI-NEXT: flat_store_dwordx2 v[0:1], v[2:3]5695; GCN-NOHSA-VI-NEXT: s_endpgm5696;5697; EG-LABEL: constant_zextload_v1i16_to_v1i64:5698; EG: ; %bb.0:5699; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5700; EG-NEXT: TEX 0 @65701; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]5702; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15703; EG-NEXT: CF_END5704; EG-NEXT: PAD5705; EG-NEXT: Fetch clause starting at 6:5706; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15707; EG-NEXT: ALU clause starting at 8:5708; EG-NEXT: MOV * T0.X, KC0[2].Z,5709; EG-NEXT: ALU clause starting at 9:5710; EG-NEXT: MOV * T0.Y, 0.0,5711; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,5712; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)5713;5714; GFX12-TRUE16-LABEL: constant_zextload_v1i16_to_v1i64:5715; GFX12-TRUE16: ; %bb.0:5716; GFX12-TRUE16-NEXT: s_load_b128 s[0:3], s[4:5], 0x245717; GFX12-TRUE16-NEXT: v_mov_b32_e32 v1, 05718; GFX12-TRUE16-NEXT: s_wait_kmcnt 0x05719; GFX12-TRUE16-NEXT: global_load_d16_b16 v0, v1, s[2:3]5720; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x05721; GFX12-TRUE16-NEXT: v_and_b32_e32 v0, 0xffff, v05722; GFX12-TRUE16-NEXT: global_store_b64 v1, v[0:1], s[0:1]5723; GFX12-TRUE16-NEXT: s_endpgm5724;5725; GFX12-FAKE16-LABEL: constant_zextload_v1i16_to_v1i64:5726; GFX12-FAKE16: ; %bb.0:5727; GFX12-FAKE16-NEXT: s_load_b128 s[0:3], s[4:5], 0x245728; GFX12-FAKE16-NEXT: v_mov_b32_e32 v1, 05729; GFX12-FAKE16-NEXT: s_wait_kmcnt 0x05730; GFX12-FAKE16-NEXT: global_load_u16 v0, v1, s[2:3]5731; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x05732; GFX12-FAKE16-NEXT: v_and_b32_e32 v0, 0xffff, v05733; GFX12-FAKE16-NEXT: global_store_b64 v1, v[0:1], s[0:1]5734; GFX12-FAKE16-NEXT: s_endpgm5735 %load = load <1 x i16>, ptr addrspace(4) %in5736 %ext = zext <1 x i16> %load to <1 x i64>5737 store <1 x i64> %ext, ptr addrspace(1) %out5738 ret void5739}5740 5741define amdgpu_kernel void @constant_sextload_v1i16_to_v1i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {5742; GCN-NOHSA-SI-LABEL: constant_sextload_v1i16_to_v1i64:5743; GCN-NOHSA-SI: ; %bb.0:5744; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95745; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005746; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15747; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65748; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75749; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5750; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25751; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35752; GCN-NOHSA-SI-NEXT: buffer_load_sshort v0, off, s[8:11], 05753; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05754; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15755; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5756; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v05757; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05758; GCN-NOHSA-SI-NEXT: s_endpgm5759;5760; GCN-HSA-LABEL: constant_sextload_v1i16_to_v1i64:5761; GCN-HSA: ; %bb.0:5762; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05763; GCN-HSA-NEXT: s_add_i32 s12, s12, s175764; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135765; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85766; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5767; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25768; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35769; GCN-HSA-NEXT: flat_load_sshort v0, v[0:1]5770; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05771; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15772; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5773; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v05774; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5775; GCN-HSA-NEXT: s_endpgm5776;5777; GCN-NOHSA-VI-LABEL: constant_sextload_v1i16_to_v1i64:5778; GCN-NOHSA-VI: ; %bb.0:5779; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245780; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5781; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s25782; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s35783; GCN-NOHSA-VI-NEXT: flat_load_ushort v2, v[0:1]5784; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s05785; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s15786; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5787; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v2, 0, 165788; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 31, v25789; GCN-NOHSA-VI-NEXT: flat_store_dwordx2 v[0:1], v[2:3]5790; GCN-NOHSA-VI-NEXT: s_endpgm5791;5792; EG-LABEL: constant_sextload_v1i16_to_v1i64:5793; EG: ; %bb.0:5794; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5795; EG-NEXT: TEX 0 @65796; EG-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]5797; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15798; EG-NEXT: CF_END5799; EG-NEXT: PAD5800; EG-NEXT: Fetch clause starting at 6:5801; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #15802; EG-NEXT: ALU clause starting at 8:5803; EG-NEXT: MOV * T0.X, KC0[2].Z,5804; EG-NEXT: ALU clause starting at 9:5805; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,5806; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,5807; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)5808; EG-NEXT: ASHR * T0.Y, PV.X, literal.x,5809; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)5810;5811; GFX12-TRUE16-LABEL: constant_sextload_v1i16_to_v1i64:5812; GFX12-TRUE16: ; %bb.0:5813; GFX12-TRUE16-NEXT: s_load_b128 s[0:3], s[4:5], 0x245814; GFX12-TRUE16-NEXT: v_mov_b32_e32 v2, 05815; GFX12-TRUE16-NEXT: s_wait_kmcnt 0x05816; GFX12-TRUE16-NEXT: global_load_d16_b16 v0, v2, s[2:3]5817; GFX12-TRUE16-NEXT: s_wait_loadcnt 0x05818; GFX12-TRUE16-NEXT: v_bfe_i32 v0, v0, 0, 165819; GFX12-TRUE16-NEXT: s_delay_alu instid0(VALU_DEP_1)5820; GFX12-TRUE16-NEXT: v_ashrrev_i32_e32 v1, 31, v05821; GFX12-TRUE16-NEXT: global_store_b64 v2, v[0:1], s[0:1]5822; GFX12-TRUE16-NEXT: s_endpgm5823;5824; GFX12-FAKE16-LABEL: constant_sextload_v1i16_to_v1i64:5825; GFX12-FAKE16: ; %bb.0:5826; GFX12-FAKE16-NEXT: s_load_b128 s[0:3], s[4:5], 0x245827; GFX12-FAKE16-NEXT: v_mov_b32_e32 v2, 05828; GFX12-FAKE16-NEXT: s_wait_kmcnt 0x05829; GFX12-FAKE16-NEXT: global_load_u16 v0, v2, s[2:3]5830; GFX12-FAKE16-NEXT: s_wait_loadcnt 0x05831; GFX12-FAKE16-NEXT: v_bfe_i32 v0, v0, 0, 165832; GFX12-FAKE16-NEXT: s_delay_alu instid0(VALU_DEP_1)5833; GFX12-FAKE16-NEXT: v_ashrrev_i32_e32 v1, 31, v05834; GFX12-FAKE16-NEXT: global_store_b64 v2, v[0:1], s[0:1]5835; GFX12-FAKE16-NEXT: s_endpgm5836 %load = load <1 x i16>, ptr addrspace(4) %in5837 %ext = sext <1 x i16> %load to <1 x i64>5838 store <1 x i64> %ext, ptr addrspace(1) %out5839 ret void5840}5841 5842define amdgpu_kernel void @constant_zextload_v2i16_to_v2i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {5843; GCN-NOHSA-SI-LABEL: constant_zextload_v2i16_to_v2i64:5844; GCN-NOHSA-SI: ; %bb.0:5845; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95846; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5847; GCN-NOHSA-SI-NEXT: s_load_dword s2, s[2:3], 0x05848; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0005849; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05850; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5851; GCN-NOHSA-SI-NEXT: s_lshr_b32 s4, s2, 165852; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s2, 0xffff5853; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -15854; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v15855; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s55856; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s45857; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 05858; GCN-NOHSA-SI-NEXT: s_endpgm5859;5860; GCN-HSA-LABEL: constant_zextload_v2i16_to_v2i64:5861; GCN-HSA: ; %bb.0:5862; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05863; GCN-HSA-NEXT: s_add_i32 s12, s12, s175864; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05865; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135866; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85867; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5868; GCN-HSA-NEXT: s_load_dword s2, s[2:3], 0x05869; GCN-HSA-NEXT: v_mov_b32_e32 v4, s05870; GCN-HSA-NEXT: v_mov_b32_e32 v5, s15871; GCN-HSA-NEXT: v_mov_b32_e32 v3, v15872; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5873; GCN-HSA-NEXT: s_lshr_b32 s0, s2, 165874; GCN-HSA-NEXT: s_and_b32 s1, s2, 0xffff5875; GCN-HSA-NEXT: v_mov_b32_e32 v0, s15876; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05877; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5878; GCN-HSA-NEXT: s_endpgm5879;5880; GCN-NOHSA-VI-LABEL: constant_zextload_v2i16_to_v2i64:5881; GCN-NOHSA-VI: ; %bb.0:5882; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245883; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 05884; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v15885; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5886; GCN-NOHSA-VI-NEXT: s_load_dword s2, s[2:3], 0x05887; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05888; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15889; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5890; GCN-NOHSA-VI-NEXT: s_lshr_b32 s0, s2, 165891; GCN-NOHSA-VI-NEXT: s_and_b32 s1, s2, 0xffff5892; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s15893; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s05894; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5895; GCN-NOHSA-VI-NEXT: s_endpgm5896;5897; EG-LABEL: constant_zextload_v2i16_to_v2i64:5898; EG: ; %bb.0:5899; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5900; EG-NEXT: TEX 0 @65901; EG-NEXT: ALU 6, @9, KC0[CB0:0-32], KC1[]5902; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T5.X, 15903; EG-NEXT: CF_END5904; EG-NEXT: PAD5905; EG-NEXT: Fetch clause starting at 6:5906; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #15907; EG-NEXT: ALU clause starting at 8:5908; EG-NEXT: MOV * T4.X, KC0[2].Z,5909; EG-NEXT: ALU clause starting at 9:5910; EG-NEXT: LSHR * T4.Z, T4.X, literal.x,5911; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)5912; EG-NEXT: AND_INT T4.X, T4.X, literal.x,5913; EG-NEXT: MOV T4.Y, 0.0,5914; EG-NEXT: MOV T4.W, 0.0,5915; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.y,5916; EG-NEXT: 65535(9.183409e-41), 2(2.802597e-45)5917;5918; GFX12-LABEL: constant_zextload_v2i16_to_v2i64:5919; GFX12: ; %bb.0:5920; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x245921; GFX12-NEXT: s_wait_kmcnt 0x05922; GFX12-NEXT: s_load_b32 s2, s[2:3], 0x05923; GFX12-NEXT: s_wait_kmcnt 0x05924; GFX12-NEXT: s_and_b32 s3, 0xffff, s25925; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_2) | instid1(VALU_DEP_1)5926; GFX12-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s35927; GFX12-NEXT: s_pack_hl_b32_b16 s2, s2, 05928; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)5929; GFX12-NEXT: v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, v15930; GFX12-NEXT: global_store_b128 v1, v[0:3], s[0:1]5931; GFX12-NEXT: s_endpgm5932 %load = load <2 x i16>, ptr addrspace(4) %in5933 %ext = zext <2 x i16> %load to <2 x i64>5934 store <2 x i64> %ext, ptr addrspace(1) %out5935 ret void5936}5937 5938define amdgpu_kernel void @constant_sextload_v2i16_to_v2i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {5939; GCN-NOHSA-SI-LABEL: constant_sextload_v2i16_to_v2i64:5940; GCN-NOHSA-SI: ; %bb.0:5941; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95942; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5943; GCN-NOHSA-SI-NEXT: s_load_dword s2, s[2:3], 0x05944; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0005945; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5946; GCN-NOHSA-SI-NEXT: s_lshr_b32 s4, s2, 165947; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[6:7], s[2:3], 0x1000005948; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x1000005949; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -15950; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s65951; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s75952; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s45953; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s55954; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 05955; GCN-NOHSA-SI-NEXT: s_endpgm5956;5957; GCN-HSA-LABEL: constant_sextload_v2i16_to_v2i64:5958; GCN-HSA: ; %bb.0:5959; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05960; GCN-HSA-NEXT: s_add_i32 s12, s12, s175961; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135962; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85963; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5964; GCN-HSA-NEXT: s_load_dword s2, s[2:3], 0x05965; GCN-HSA-NEXT: v_mov_b32_e32 v4, s05966; GCN-HSA-NEXT: v_mov_b32_e32 v5, s15967; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5968; GCN-HSA-NEXT: s_lshr_b32 s0, s2, 165969; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x1000005970; GCN-HSA-NEXT: s_bfe_i64 s[0:1], s[0:1], 0x1000005971; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25972; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35973; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05974; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15975; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5976; GCN-HSA-NEXT: s_endpgm5977;5978; GCN-NOHSA-VI-LABEL: constant_sextload_v2i16_to_v2i64:5979; GCN-NOHSA-VI: ; %bb.0:5980; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245981; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5982; GCN-NOHSA-VI-NEXT: s_load_dword s2, s[2:3], 0x05983; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s05984; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s15985; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5986; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[0:1], s[2:3], 0x1000005987; GCN-NOHSA-VI-NEXT: s_lshr_b32 s2, s2, 165988; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x1000005989; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s05990; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s15991; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s25992; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s35993; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5994; GCN-NOHSA-VI-NEXT: s_endpgm5995;5996; EG-LABEL: constant_sextload_v2i16_to_v2i64:5997; EG: ; %bb.0:5998; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5999; EG-NEXT: TEX 0 @66000; EG-NEXT: ALU 8, @9, KC0[CB0:0-32], KC1[]6001; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T5.X, 16002; EG-NEXT: CF_END6003; EG-NEXT: PAD6004; EG-NEXT: Fetch clause starting at 6:6005; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #16006; EG-NEXT: ALU clause starting at 8:6007; EG-NEXT: MOV * T4.X, KC0[2].Z,6008; EG-NEXT: ALU clause starting at 9:6009; EG-NEXT: ASHR * T4.W, T4.X, literal.x,6010; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6011; EG-NEXT: ASHR * T4.Z, T4.X, literal.x,6012; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6013; EG-NEXT: BFE_INT T4.X, T4.X, 0.0, literal.x,6014; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.y,6015; EG-NEXT: 16(2.242078e-44), 2(2.802597e-45)6016; EG-NEXT: ASHR * T4.Y, PV.X, literal.x,6017; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6018;6019; GFX12-LABEL: constant_sextload_v2i16_to_v2i64:6020; GFX12: ; %bb.0:6021; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x246022; GFX12-NEXT: s_wait_kmcnt 0x06023; GFX12-NEXT: s_load_b32 s2, s[2:3], 0x06024; GFX12-NEXT: s_wait_kmcnt 0x06025; GFX12-NEXT: s_lshr_b32 s4, s2, 166026; GFX12-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x1000006027; GFX12-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x1000006028; GFX12-NEXT: v_dual_mov_b32 v4, 0 :: v_dual_mov_b32 v1, s36029; GFX12-NEXT: v_dual_mov_b32 v0, s2 :: v_dual_mov_b32 v3, s56030; GFX12-NEXT: v_mov_b32_e32 v2, s46031; GFX12-NEXT: global_store_b128 v4, v[0:3], s[0:1]6032; GFX12-NEXT: s_endpgm6033 %load = load <2 x i16>, ptr addrspace(4) %in6034 %ext = sext <2 x i16> %load to <2 x i64>6035 store <2 x i64> %ext, ptr addrspace(1) %out6036 ret void6037}6038 6039define amdgpu_kernel void @constant_zextload_v4i16_to_v4i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {6040; GCN-NOHSA-SI-LABEL: constant_zextload_v4i16_to_v4i64:6041; GCN-NOHSA-SI: ; %bb.0:6042; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x96043; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6044; GCN-NOHSA-SI-NEXT: s_load_dwordx2 s[4:5], s[2:3], 0x06045; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006046; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 06047; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16048; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v16049; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6050; GCN-NOHSA-SI-NEXT: s_lshr_b32 s6, s5, 166051; GCN-NOHSA-SI-NEXT: s_lshr_b32 s7, s4, 166052; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff6053; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff6054; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s56055; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s66056; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:166057; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6058; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s46059; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s76060; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 06061; GCN-NOHSA-SI-NEXT: s_endpgm6062;6063; GCN-HSA-LABEL: constant_zextload_v4i16_to_v4i64:6064; GCN-HSA: ; %bb.0:6065; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06066; GCN-HSA-NEXT: s_add_i32 s12, s12, s176067; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86068; GCN-HSA-NEXT: v_mov_b32_e32 v1, 06069; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136070; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6071; GCN-HSA-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x06072; GCN-HSA-NEXT: v_mov_b32_e32 v3, v16073; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6074; GCN-HSA-NEXT: s_lshr_b32 s4, s3, 166075; GCN-HSA-NEXT: s_lshr_b32 s5, s2, 166076; GCN-HSA-NEXT: s_and_b32 s6, s2, 0xffff6077; GCN-HSA-NEXT: s_and_b32 s2, s3, 0xffff6078; GCN-HSA-NEXT: v_mov_b32_e32 v0, s26079; GCN-HSA-NEXT: s_add_u32 s2, s0, 166080; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06081; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36082; GCN-HSA-NEXT: v_mov_b32_e32 v2, s46083; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26084; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6085; GCN-HSA-NEXT: v_mov_b32_e32 v5, s16086; GCN-HSA-NEXT: v_mov_b32_e32 v0, s66087; GCN-HSA-NEXT: v_mov_b32_e32 v2, s56088; GCN-HSA-NEXT: v_mov_b32_e32 v4, s06089; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6090; GCN-HSA-NEXT: s_endpgm6091;6092; GCN-NOHSA-VI-LABEL: constant_zextload_v4i16_to_v4i64:6093; GCN-NOHSA-VI: ; %bb.0:6094; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x246095; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 06096; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v16097; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6098; GCN-NOHSA-VI-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x06099; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6100; GCN-NOHSA-VI-NEXT: s_lshr_b32 s4, s2, 166101; GCN-NOHSA-VI-NEXT: s_and_b32 s5, s2, 0xffff6102; GCN-NOHSA-VI-NEXT: s_lshr_b32 s2, s3, 166103; GCN-NOHSA-VI-NEXT: s_and_b32 s3, s3, 0xffff6104; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s26105; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 166106; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s36107; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 06108; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s36109; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s26110; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6111; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s16112; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s56113; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s46114; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s06115; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6116; GCN-NOHSA-VI-NEXT: s_endpgm6117;6118; EG-LABEL: constant_zextload_v4i16_to_v4i64:6119; EG: ; %bb.0:6120; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]6121; EG-NEXT: TEX 0 @66122; EG-NEXT: ALU 14, @9, KC0[CB0:0-32], KC1[]6123; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T8.X, 06124; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T7.X, 16125; EG-NEXT: CF_END6126; EG-NEXT: Fetch clause starting at 6:6127; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #16128; EG-NEXT: ALU clause starting at 8:6129; EG-NEXT: MOV * T5.X, KC0[2].Z,6130; EG-NEXT: ALU clause starting at 9:6131; EG-NEXT: LSHR * T6.Z, T5.Y, literal.x,6132; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6133; EG-NEXT: AND_INT T6.X, T5.Y, literal.x,6134; EG-NEXT: MOV T6.Y, 0.0,6135; EG-NEXT: LSHR T5.Z, T5.X, literal.y,6136; EG-NEXT: AND_INT * T5.X, T5.X, literal.x,6137; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6138; EG-NEXT: MOV T5.Y, 0.0,6139; EG-NEXT: MOV T6.W, 0.0,6140; EG-NEXT: MOV * T5.W, 0.0,6141; EG-NEXT: LSHR T7.X, KC0[2].Y, literal.x,6142; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6143; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6144; EG-NEXT: LSHR * T8.X, PV.W, literal.x,6145; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)6146;6147; GFX12-LABEL: constant_zextload_v4i16_to_v4i64:6148; GFX12: ; %bb.0:6149; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x246150; GFX12-NEXT: s_wait_kmcnt 0x06151; GFX12-NEXT: s_load_b64 s[2:3], s[2:3], 0x06152; GFX12-NEXT: s_wait_kmcnt 0x06153; GFX12-NEXT: s_and_b32 s4, 0xffff, s26154; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1)6155; GFX12-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s46156; GFX12-NEXT: s_pack_hl_b32_b16 s2, s2, 06157; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1) | instid1(SALU_CYCLE_1)6158; GFX12-NEXT: v_dual_mov_b32 v2, s2 :: v_dual_mov_b32 v3, v16159; GFX12-NEXT: s_pack_hl_b32_b16 s2, s3, 06160; GFX12-NEXT: s_and_b32 s3, 0xffff, s36161; GFX12-NEXT: global_store_b128 v1, v[0:3], s[0:1]6162; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)6163; GFX12-NEXT: v_mov_b32_e32 v0, s36164; GFX12-NEXT: v_mov_b32_e32 v2, s26165; GFX12-NEXT: global_store_b128 v1, v[0:3], s[0:1] offset:166166; GFX12-NEXT: s_endpgm6167 %load = load <4 x i16>, ptr addrspace(4) %in6168 %ext = zext <4 x i16> %load to <4 x i64>6169 store <4 x i64> %ext, ptr addrspace(1) %out6170 ret void6171}6172 6173define amdgpu_kernel void @constant_sextload_v4i16_to_v4i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {6174; GCN-NOHSA-SI-LABEL: constant_sextload_v4i16_to_v4i64:6175; GCN-NOHSA-SI: ; %bb.0:6176; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x96177; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6178; GCN-NOHSA-SI-NEXT: s_load_dwordx2 s[4:5], s[2:3], 0x06179; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006180; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16181; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6182; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, s56183; GCN-NOHSA-SI-NEXT: s_lshr_b32 s8, s4, 166184; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[10:11], s[4:5], 0x1000006185; GCN-NOHSA-SI-NEXT: s_ashr_i32 s9, s5, 316186; GCN-NOHSA-SI-NEXT: s_ashr_i32 s12, s5, 166187; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[4:5], s[6:7], 0x1000006188; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[6:7], s[8:9], 0x1000006189; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s46190; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s56191; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s126192; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s96193; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:166194; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6195; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s106196; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s116197; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s66198; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s76199; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 06200; GCN-NOHSA-SI-NEXT: s_endpgm6201;6202; GCN-HSA-LABEL: constant_sextload_v4i16_to_v4i64:6203; GCN-HSA: ; %bb.0:6204; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06205; GCN-HSA-NEXT: s_add_i32 s12, s12, s176206; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86207; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136208; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6209; GCN-HSA-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x06210; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6211; GCN-HSA-NEXT: s_mov_b32 s4, s36212; GCN-HSA-NEXT: s_lshr_b32 s6, s2, 166213; GCN-HSA-NEXT: s_ashr_i32 s7, s3, 316214; GCN-HSA-NEXT: s_bfe_i64 s[8:9], s[2:3], 0x1000006215; GCN-HSA-NEXT: s_ashr_i32 s10, s3, 166216; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[6:7], 0x1000006217; GCN-HSA-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x1000006218; GCN-HSA-NEXT: v_mov_b32_e32 v0, s46219; GCN-HSA-NEXT: s_add_u32 s4, s0, 166220; GCN-HSA-NEXT: v_mov_b32_e32 v1, s56221; GCN-HSA-NEXT: s_addc_u32 s5, s1, 06222; GCN-HSA-NEXT: v_mov_b32_e32 v4, s46223; GCN-HSA-NEXT: v_mov_b32_e32 v2, s106224; GCN-HSA-NEXT: v_mov_b32_e32 v3, s76225; GCN-HSA-NEXT: v_mov_b32_e32 v5, s56226; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6227; GCN-HSA-NEXT: v_mov_b32_e32 v5, s16228; GCN-HSA-NEXT: v_mov_b32_e32 v0, s86229; GCN-HSA-NEXT: v_mov_b32_e32 v1, s96230; GCN-HSA-NEXT: v_mov_b32_e32 v2, s26231; GCN-HSA-NEXT: v_mov_b32_e32 v3, s36232; GCN-HSA-NEXT: v_mov_b32_e32 v4, s06233; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6234; GCN-HSA-NEXT: s_endpgm6235;6236; GCN-NOHSA-VI-LABEL: constant_sextload_v4i16_to_v4i64:6237; GCN-NOHSA-VI: ; %bb.0:6238; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x246239; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6240; GCN-NOHSA-VI-NEXT: s_load_dwordx2 s[2:3], s[2:3], 0x06241; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6242; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[4:5], s[2:3], 0x1000006243; GCN-NOHSA-VI-NEXT: s_lshr_b32 s2, s2, 166244; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, s36245; GCN-NOHSA-VI-NEXT: s_lshr_b32 s8, s3, 166246; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x1000006247; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x1000006248; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x1000006249; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s66250; GCN-NOHSA-VI-NEXT: s_add_u32 s6, s0, 166251; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s76252; GCN-NOHSA-VI-NEXT: s_addc_u32 s7, s1, 06253; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s66254; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s86255; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s96256; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s76257; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6258; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s16259; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s46260; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s56261; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s26262; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s36263; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s06264; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6265; GCN-NOHSA-VI-NEXT: s_endpgm6266;6267; EG-LABEL: constant_sextload_v4i16_to_v4i64:6268; EG: ; %bb.0:6269; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]6270; EG-NEXT: TEX 0 @66271; EG-NEXT: ALU 16, @9, KC0[CB0:0-32], KC1[]6272; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T8.X, 06273; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T6.X, 16274; EG-NEXT: CF_END6275; EG-NEXT: Fetch clause starting at 6:6276; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #16277; EG-NEXT: ALU clause starting at 8:6278; EG-NEXT: MOV * T5.X, KC0[2].Z,6279; EG-NEXT: ALU clause starting at 9:6280; EG-NEXT: ASHR * T5.W, T5.X, literal.x,6281; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6282; EG-NEXT: LSHR T6.X, KC0[2].Y, literal.x,6283; EG-NEXT: ASHR T5.Z, T5.X, literal.y,6284; EG-NEXT: ASHR * T7.W, T5.Y, literal.z,6285; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6286; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6287; EG-NEXT: BFE_INT T5.X, T5.X, 0.0, literal.x,6288; EG-NEXT: ASHR * T7.Z, T5.Y, literal.x,6289; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6290; EG-NEXT: BFE_INT T7.X, T5.Y, 0.0, literal.x,6291; EG-NEXT: ASHR T5.Y, PV.X, literal.y,6292; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,6293; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6294; EG-NEXT: LSHR T8.X, PV.W, literal.x,6295; EG-NEXT: ASHR * T7.Y, PV.X, literal.y,6296; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)6297;6298; GFX12-LABEL: constant_sextload_v4i16_to_v4i64:6299; GFX12: ; %bb.0:6300; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x246301; GFX12-NEXT: s_wait_kmcnt 0x06302; GFX12-NEXT: s_load_b64 s[2:3], s[2:3], 0x06303; GFX12-NEXT: s_wait_kmcnt 0x06304; GFX12-NEXT: s_mov_b32 s6, s36305; GFX12-NEXT: s_lshr_b32 s8, s3, 166306; GFX12-NEXT: s_bfe_i64 s[4:5], s[2:3], 0x1000006307; GFX12-NEXT: s_lshr_b32 s2, s2, 166308; GFX12-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x1000006309; GFX12-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x1000006310; GFX12-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x1000006311; GFX12-NEXT: v_dual_mov_b32 v8, 0 :: v_dual_mov_b32 v1, s56312; GFX12-NEXT: v_dual_mov_b32 v0, s4 :: v_dual_mov_b32 v5, s76313; GFX12-NEXT: v_dual_mov_b32 v4, s6 :: v_dual_mov_b32 v7, s96314; GFX12-NEXT: v_dual_mov_b32 v6, s8 :: v_dual_mov_b32 v3, s36315; GFX12-NEXT: v_mov_b32_e32 v2, s26316; GFX12-NEXT: s_clause 0x16317; GFX12-NEXT: global_store_b128 v8, v[4:7], s[0:1] offset:166318; GFX12-NEXT: global_store_b128 v8, v[0:3], s[0:1]6319; GFX12-NEXT: s_endpgm6320 %load = load <4 x i16>, ptr addrspace(4) %in6321 %ext = sext <4 x i16> %load to <4 x i64>6322 store <4 x i64> %ext, ptr addrspace(1) %out6323 ret void6324}6325 6326define amdgpu_kernel void @constant_zextload_v8i16_to_v8i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {6327; GCN-NOHSA-SI-LABEL: constant_zextload_v8i16_to_v8i64:6328; GCN-NOHSA-SI: ; %bb.0:6329; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x96330; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6331; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x06332; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006333; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 06334; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16335; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v16336; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6337; GCN-NOHSA-SI-NEXT: s_lshr_b32 s8, s5, 166338; GCN-NOHSA-SI-NEXT: s_lshr_b32 s9, s7, 166339; GCN-NOHSA-SI-NEXT: s_lshr_b32 s10, s6, 166340; GCN-NOHSA-SI-NEXT: s_lshr_b32 s11, s4, 166341; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff6342; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xffff6343; GCN-NOHSA-SI-NEXT: s_and_b32 s7, s7, 0xffff6344; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff6345; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s76346; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s96347; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:486348; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6349; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s56350; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s86351; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:166352; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6353; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s66354; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s106355; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:326356; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6357; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s46358; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s116359; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 06360; GCN-NOHSA-SI-NEXT: s_endpgm6361;6362; GCN-HSA-LABEL: constant_zextload_v8i16_to_v8i64:6363; GCN-HSA: ; %bb.0:6364; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06365; GCN-HSA-NEXT: s_add_i32 s12, s12, s176366; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86367; GCN-HSA-NEXT: v_mov_b32_e32 v1, 06368; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136369; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6370; GCN-HSA-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x06371; GCN-HSA-NEXT: v_mov_b32_e32 v3, v16372; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6373; GCN-HSA-NEXT: s_lshr_b32 s8, s5, 166374; GCN-HSA-NEXT: s_lshr_b32 s2, s7, 166375; GCN-HSA-NEXT: s_lshr_b32 s9, s6, 166376; GCN-HSA-NEXT: s_lshr_b32 s10, s4, 166377; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xffff6378; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xffff6379; GCN-HSA-NEXT: s_and_b32 s5, s5, 0xffff6380; GCN-HSA-NEXT: s_and_b32 s3, s7, 0xffff6381; GCN-HSA-NEXT: v_mov_b32_e32 v2, s26382; GCN-HSA-NEXT: s_add_u32 s2, s0, 486383; GCN-HSA-NEXT: v_mov_b32_e32 v0, s36384; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06385; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36386; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26387; GCN-HSA-NEXT: s_add_u32 s2, s0, 166388; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06389; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6390; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36391; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26392; GCN-HSA-NEXT: s_add_u32 s2, s0, 326393; GCN-HSA-NEXT: v_mov_b32_e32 v0, s56394; GCN-HSA-NEXT: v_mov_b32_e32 v2, s86395; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06396; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6397; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36398; GCN-HSA-NEXT: v_mov_b32_e32 v0, s66399; GCN-HSA-NEXT: v_mov_b32_e32 v2, s96400; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26401; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6402; GCN-HSA-NEXT: v_mov_b32_e32 v5, s16403; GCN-HSA-NEXT: v_mov_b32_e32 v0, s46404; GCN-HSA-NEXT: v_mov_b32_e32 v2, s106405; GCN-HSA-NEXT: v_mov_b32_e32 v4, s06406; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6407; GCN-HSA-NEXT: s_endpgm6408;6409; GCN-NOHSA-VI-LABEL: constant_zextload_v8i16_to_v8i64:6410; GCN-NOHSA-VI: ; %bb.0:6411; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x246412; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 06413; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v16414; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6415; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x06416; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6417; GCN-NOHSA-VI-NEXT: s_lshr_b32 s8, s4, 166418; GCN-NOHSA-VI-NEXT: s_and_b32 s4, s4, 0xffff6419; GCN-NOHSA-VI-NEXT: s_lshr_b32 s9, s5, 166420; GCN-NOHSA-VI-NEXT: s_and_b32 s5, s5, 0xffff6421; GCN-NOHSA-VI-NEXT: s_lshr_b32 s10, s6, 166422; GCN-NOHSA-VI-NEXT: s_and_b32 s6, s6, 0xffff6423; GCN-NOHSA-VI-NEXT: s_lshr_b32 s2, s7, 166424; GCN-NOHSA-VI-NEXT: s_and_b32 s3, s7, 0xffff6425; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s26426; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 486427; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s36428; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 06429; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s36430; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s26431; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 326432; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 06433; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6434; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s36435; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s26436; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 166437; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s66438; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s106439; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 06440; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6441; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s36442; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s56443; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s96444; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s26445; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6446; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s16447; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s46448; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s86449; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s06450; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6451; GCN-NOHSA-VI-NEXT: s_endpgm6452;6453; EG-LABEL: constant_zextload_v8i16_to_v8i64:6454; EG: ; %bb.0:6455; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]6456; EG-NEXT: TEX 0 @86457; EG-NEXT: ALU 30, @11, KC0[CB0:0-32], KC1[]6458; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T14.X, 06459; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T13.X, 06460; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T12.X, 06461; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T11.X, 16462; EG-NEXT: CF_END6463; EG-NEXT: Fetch clause starting at 8:6464; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #16465; EG-NEXT: ALU clause starting at 10:6466; EG-NEXT: MOV * T7.X, KC0[2].Z,6467; EG-NEXT: ALU clause starting at 11:6468; EG-NEXT: LSHR * T8.Z, T7.W, literal.x,6469; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6470; EG-NEXT: AND_INT T8.X, T7.W, literal.x,6471; EG-NEXT: MOV T8.Y, 0.0,6472; EG-NEXT: LSHR T9.Z, T7.Z, literal.y,6473; EG-NEXT: AND_INT * T9.X, T7.Z, literal.x,6474; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6475; EG-NEXT: MOV T9.Y, 0.0,6476; EG-NEXT: LSHR * T10.Z, T7.Y, literal.x,6477; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)6478; EG-NEXT: AND_INT T10.X, T7.Y, literal.x,6479; EG-NEXT: MOV T10.Y, 0.0,6480; EG-NEXT: LSHR T7.Z, T7.X, literal.y,6481; EG-NEXT: AND_INT * T7.X, T7.X, literal.x,6482; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)6483; EG-NEXT: MOV T7.Y, 0.0,6484; EG-NEXT: MOV T8.W, 0.0,6485; EG-NEXT: MOV * T9.W, 0.0,6486; EG-NEXT: MOV T10.W, 0.0,6487; EG-NEXT: MOV * T7.W, 0.0,6488; EG-NEXT: LSHR T11.X, KC0[2].Y, literal.x,6489; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6490; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6491; EG-NEXT: LSHR T12.X, PV.W, literal.x,6492; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6493; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)6494; EG-NEXT: LSHR T13.X, PV.W, literal.x,6495; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6496; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)6497; EG-NEXT: LSHR * T14.X, PV.W, literal.x,6498; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)6499;6500; GFX12-LABEL: constant_zextload_v8i16_to_v8i64:6501; GFX12: ; %bb.0:6502; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x246503; GFX12-NEXT: s_wait_kmcnt 0x06504; GFX12-NEXT: s_load_b128 s[4:7], s[2:3], 0x06505; GFX12-NEXT: s_wait_kmcnt 0x06506; GFX12-NEXT: s_and_b32 s2, 0xffff, s76507; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_3) | instid1(VALU_DEP_1)6508; GFX12-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s26509; GFX12-NEXT: s_pack_hl_b32_b16 s3, s7, 06510; GFX12-NEXT: s_pack_hl_b32_b16 s2, s6, 06511; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)6512; GFX12-NEXT: v_dual_mov_b32 v2, s3 :: v_dual_mov_b32 v3, v16513; GFX12-NEXT: s_and_b32 s3, 0xffff, s66514; GFX12-NEXT: global_store_b128 v1, v[0:3], s[0:1] offset:486515; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)6516; GFX12-NEXT: v_mov_b32_e32 v0, s36517; GFX12-NEXT: v_mov_b32_e32 v2, s26518; GFX12-NEXT: s_pack_hl_b32_b16 s2, s5, 06519; GFX12-NEXT: s_and_b32 s3, 0xffff, s56520; GFX12-NEXT: global_store_b128 v1, v[0:3], s[0:1] offset:326521; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)6522; GFX12-NEXT: v_mov_b32_e32 v0, s36523; GFX12-NEXT: v_mov_b32_e32 v2, s26524; GFX12-NEXT: s_pack_hl_b32_b16 s2, s4, 06525; GFX12-NEXT: s_and_b32 s3, 0xffff, s46526; GFX12-NEXT: global_store_b128 v1, v[0:3], s[0:1] offset:166527; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)6528; GFX12-NEXT: v_mov_b32_e32 v0, s36529; GFX12-NEXT: v_mov_b32_e32 v2, s26530; GFX12-NEXT: global_store_b128 v1, v[0:3], s[0:1]6531; GFX12-NEXT: s_endpgm6532 %load = load <8 x i16>, ptr addrspace(4) %in6533 %ext = zext <8 x i16> %load to <8 x i64>6534 store <8 x i64> %ext, ptr addrspace(1) %out6535 ret void6536}6537 6538define amdgpu_kernel void @constant_sextload_v8i16_to_v8i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {6539; GCN-NOHSA-SI-LABEL: constant_sextload_v8i16_to_v8i64:6540; GCN-NOHSA-SI: ; %bb.0:6541; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x96542; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6543; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x06544; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006545; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16546; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6547; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s76548; GCN-NOHSA-SI-NEXT: s_lshr_b32 s10, s6, 166549; GCN-NOHSA-SI-NEXT: s_mov_b32 s12, s56550; GCN-NOHSA-SI-NEXT: s_lshr_b32 s14, s4, 166551; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[16:17], s[4:5], 0x1000006552; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[18:19], s[6:7], 0x1000006553; GCN-NOHSA-SI-NEXT: s_ashr_i32 s13, s5, 316554; GCN-NOHSA-SI-NEXT: s_ashr_i32 s15, s5, 166555; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[4:5], s[12:13], 0x1000006556; GCN-NOHSA-SI-NEXT: s_ashr_i32 s12, s7, 316557; GCN-NOHSA-SI-NEXT: s_ashr_i32 s20, s7, 166558; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[6:7], s[8:9], 0x1000006559; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[8:9], s[14:15], 0x1000006560; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x1000006561; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s66562; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s76563; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s206564; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s126565; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:486566; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6567; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s186568; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s196569; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s46570; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s56571; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s156572; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s136573; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[2:5], off, s[0:3], 0 offset:166574; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6575; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s166576; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s176577; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s106578; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s116579; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:326580; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s86581; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s96582; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 06583; GCN-NOHSA-SI-NEXT: s_endpgm6584;6585; GCN-HSA-LABEL: constant_sextload_v8i16_to_v8i64:6586; GCN-HSA: ; %bb.0:6587; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06588; GCN-HSA-NEXT: s_add_i32 s12, s12, s176589; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136590; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86591; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6592; GCN-HSA-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x06593; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6594; GCN-HSA-NEXT: s_mov_b32 s2, s76595; GCN-HSA-NEXT: s_lshr_b32 s8, s6, 166596; GCN-HSA-NEXT: s_mov_b32 s10, s56597; GCN-HSA-NEXT: s_lshr_b32 s12, s4, 166598; GCN-HSA-NEXT: s_ashr_i32 s13, s5, 166599; GCN-HSA-NEXT: s_bfe_i64 s[14:15], s[4:5], 0x1000006600; GCN-HSA-NEXT: s_bfe_i64 s[16:17], s[6:7], 0x1000006601; GCN-HSA-NEXT: s_ashr_i32 s6, s5, 316602; GCN-HSA-NEXT: s_bfe_i64 s[4:5], s[12:13], 0x1000006603; GCN-HSA-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x1000006604; GCN-HSA-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x1000006605; GCN-HSA-NEXT: s_ashr_i32 s12, s7, 316606; GCN-HSA-NEXT: s_ashr_i32 s7, s7, 166607; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x1000006608; GCN-HSA-NEXT: v_mov_b32_e32 v0, s26609; GCN-HSA-NEXT: s_add_u32 s2, s0, 486610; GCN-HSA-NEXT: v_mov_b32_e32 v1, s36611; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06612; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36613; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26614; GCN-HSA-NEXT: s_add_u32 s2, s0, 326615; GCN-HSA-NEXT: v_mov_b32_e32 v2, s76616; GCN-HSA-NEXT: v_mov_b32_e32 v3, s126617; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06618; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6619; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36620; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26621; GCN-HSA-NEXT: s_add_u32 s2, s0, 166622; GCN-HSA-NEXT: v_mov_b32_e32 v0, s166623; GCN-HSA-NEXT: v_mov_b32_e32 v1, s176624; GCN-HSA-NEXT: v_mov_b32_e32 v2, s86625; GCN-HSA-NEXT: v_mov_b32_e32 v3, s96626; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06627; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6628; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36629; GCN-HSA-NEXT: v_mov_b32_e32 v0, s106630; GCN-HSA-NEXT: v_mov_b32_e32 v1, s116631; GCN-HSA-NEXT: v_mov_b32_e32 v2, s136632; GCN-HSA-NEXT: v_mov_b32_e32 v3, s66633; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26634; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6635; GCN-HSA-NEXT: v_mov_b32_e32 v5, s16636; GCN-HSA-NEXT: v_mov_b32_e32 v0, s146637; GCN-HSA-NEXT: v_mov_b32_e32 v1, s156638; GCN-HSA-NEXT: v_mov_b32_e32 v2, s46639; GCN-HSA-NEXT: v_mov_b32_e32 v3, s56640; GCN-HSA-NEXT: v_mov_b32_e32 v4, s06641; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6642; GCN-HSA-NEXT: s_endpgm6643;6644; GCN-NOHSA-VI-LABEL: constant_sextload_v8i16_to_v8i64:6645; GCN-NOHSA-VI: ; %bb.0:6646; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x246647; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6648; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[2:3], 0x06649; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6650; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[12:13], s[6:7], 0x1000006651; GCN-NOHSA-VI-NEXT: s_lshr_b32 s6, s6, 166652; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[14:15], s[6:7], 0x1000006653; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, s76654; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[2:3], s[4:5], 0x1000006655; GCN-NOHSA-VI-NEXT: s_lshr_b32 s4, s4, 166656; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s56657; GCN-NOHSA-VI-NEXT: s_lshr_b32 s10, s5, 166658; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[16:17], s[6:7], 0x1000006659; GCN-NOHSA-VI-NEXT: s_lshr_b32 s6, s7, 166660; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x1000006661; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x1000006662; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x1000006663; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x1000006664; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s66665; GCN-NOHSA-VI-NEXT: s_add_u32 s6, s0, 486666; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s76667; GCN-NOHSA-VI-NEXT: s_addc_u32 s7, s1, 06668; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s66669; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s166670; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s176671; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s76672; GCN-NOHSA-VI-NEXT: s_add_u32 s6, s0, 326673; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6674; GCN-NOHSA-VI-NEXT: s_addc_u32 s7, s1, 06675; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s66676; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s126677; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s136678; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s146679; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s156680; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s76681; GCN-NOHSA-VI-NEXT: s_add_u32 s6, s0, 166682; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6683; GCN-NOHSA-VI-NEXT: s_addc_u32 s7, s1, 06684; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s66685; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s86686; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s96687; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s106688; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s116689; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s76690; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6691; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s16692; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s26693; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s36694; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s46695; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s56696; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s06697; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6698; GCN-NOHSA-VI-NEXT: s_endpgm6699;6700; EG-LABEL: constant_sextload_v8i16_to_v8i64:6701; EG: ; %bb.0:6702; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]6703; EG-NEXT: TEX 0 @86704; EG-NEXT: ALU 33, @11, KC0[CB0:0-32], KC1[]6705; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T7.X, 06706; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T11.X, 06707; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T9.X, 06708; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T8.X, 16709; EG-NEXT: CF_END6710; EG-NEXT: Fetch clause starting at 8:6711; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #16712; EG-NEXT: ALU clause starting at 10:6713; EG-NEXT: MOV * T7.X, KC0[2].Z,6714; EG-NEXT: ALU clause starting at 11:6715; EG-NEXT: LSHR T8.X, KC0[2].Y, literal.x,6716; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6717; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6718; EG-NEXT: LSHR T9.X, PV.W, literal.x,6719; EG-NEXT: ADD_INT T0.W, KC0[2].Y, literal.y,6720; EG-NEXT: ASHR * T10.W, T7.X, literal.z,6721; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)6722; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6723; EG-NEXT: LSHR T11.X, PV.W, literal.x,6724; EG-NEXT: ASHR T10.Z, T7.X, literal.y,6725; EG-NEXT: ASHR * T12.W, T7.Y, literal.z,6726; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6727; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6728; EG-NEXT: BFE_INT T10.X, T7.X, 0.0, literal.x,6729; EG-NEXT: ASHR T12.Z, T7.Y, literal.x,6730; EG-NEXT: ASHR * T13.W, T7.Z, literal.y,6731; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6732; EG-NEXT: BFE_INT T12.X, T7.Y, 0.0, literal.x,6733; EG-NEXT: ASHR T10.Y, PV.X, literal.y,6734; EG-NEXT: ASHR T13.Z, T7.Z, literal.x,6735; EG-NEXT: ASHR * T14.W, T7.W, literal.y,6736; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6737; EG-NEXT: BFE_INT T13.X, T7.Z, 0.0, literal.x,6738; EG-NEXT: ASHR T12.Y, PV.X, literal.y,6739; EG-NEXT: ASHR * T14.Z, T7.W, literal.x,6740; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6741; EG-NEXT: BFE_INT T14.X, T7.W, 0.0, literal.x,6742; EG-NEXT: ASHR T13.Y, PV.X, literal.y,6743; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,6744; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6745; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)6746; EG-NEXT: LSHR T7.X, PV.W, literal.x,6747; EG-NEXT: ASHR * T14.Y, PV.X, literal.y,6748; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)6749;6750; GFX12-LABEL: constant_sextload_v8i16_to_v8i64:6751; GFX12: ; %bb.0:6752; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x246753; GFX12-NEXT: s_wait_kmcnt 0x06754; GFX12-NEXT: s_load_b128 s[4:7], s[2:3], 0x06755; GFX12-NEXT: s_wait_kmcnt 0x06756; GFX12-NEXT: s_mov_b32 s14, s76757; GFX12-NEXT: s_lshr_b32 s16, s7, 166758; GFX12-NEXT: s_bfe_i64 s[12:13], s[6:7], 0x1000006759; GFX12-NEXT: s_lshr_b32 s6, s6, 166760; GFX12-NEXT: s_bfe_i64 s[2:3], s[4:5], 0x1000006761; GFX12-NEXT: s_mov_b32 s8, s56762; GFX12-NEXT: s_lshr_b32 s10, s5, 166763; GFX12-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x1000006764; GFX12-NEXT: s_bfe_i64 s[16:17], s[16:17], 0x1000006765; GFX12-NEXT: s_lshr_b32 s4, s4, 166766; GFX12-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x1000006767; GFX12-NEXT: v_dual_mov_b32 v16, 0 :: v_dual_mov_b32 v1, s136768; GFX12-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x1000006769; GFX12-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x1000006770; GFX12-NEXT: v_dual_mov_b32 v4, s2 :: v_dual_mov_b32 v9, s156771; GFX12-NEXT: v_dual_mov_b32 v8, s14 :: v_dual_mov_b32 v11, s176772; GFX12-NEXT: v_dual_mov_b32 v10, s16 :: v_dual_mov_b32 v3, s76773; GFX12-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x1000006774; GFX12-NEXT: v_dual_mov_b32 v0, s12 :: v_dual_mov_b32 v5, s36775; GFX12-NEXT: v_dual_mov_b32 v2, s6 :: v_dual_mov_b32 v13, s96776; GFX12-NEXT: v_dual_mov_b32 v12, s8 :: v_dual_mov_b32 v15, s116777; GFX12-NEXT: v_dual_mov_b32 v14, s10 :: v_dual_mov_b32 v7, s56778; GFX12-NEXT: v_mov_b32_e32 v6, s46779; GFX12-NEXT: s_clause 0x36780; GFX12-NEXT: global_store_b128 v16, v[8:11], s[0:1] offset:486781; GFX12-NEXT: global_store_b128 v16, v[0:3], s[0:1] offset:326782; GFX12-NEXT: global_store_b128 v16, v[12:15], s[0:1] offset:166783; GFX12-NEXT: global_store_b128 v16, v[4:7], s[0:1]6784; GFX12-NEXT: s_endpgm6785 %load = load <8 x i16>, ptr addrspace(4) %in6786 %ext = sext <8 x i16> %load to <8 x i64>6787 store <8 x i64> %ext, ptr addrspace(1) %out6788 ret void6789}6790 6791define amdgpu_kernel void @constant_zextload_v16i16_to_v16i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {6792; GCN-NOHSA-SI-LABEL: constant_zextload_v16i16_to_v16i64:6793; GCN-NOHSA-SI: ; %bb.0:6794; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x96795; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6796; GCN-NOHSA-SI-NEXT: s_load_dwordx8 s[0:7], s[10:11], 0x06797; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, 0xf0006798; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 06799; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, -16800; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v16801; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6802; GCN-NOHSA-SI-NEXT: s_lshr_b32 s12, s1, 166803; GCN-NOHSA-SI-NEXT: s_lshr_b32 s13, s3, 166804; GCN-NOHSA-SI-NEXT: s_lshr_b32 s14, s7, 166805; GCN-NOHSA-SI-NEXT: s_lshr_b32 s15, s5, 166806; GCN-NOHSA-SI-NEXT: s_lshr_b32 s16, s4, 166807; GCN-NOHSA-SI-NEXT: s_lshr_b32 s17, s6, 166808; GCN-NOHSA-SI-NEXT: s_lshr_b32 s18, s2, 166809; GCN-NOHSA-SI-NEXT: s_lshr_b32 s19, s0, 166810; GCN-NOHSA-SI-NEXT: s_and_b32 s0, s0, 0xffff6811; GCN-NOHSA-SI-NEXT: s_and_b32 s2, s2, 0xffff6812; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xffff6813; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff6814; GCN-NOHSA-SI-NEXT: s_and_b32 s1, s1, 0xffff6815; GCN-NOHSA-SI-NEXT: s_and_b32 s3, s3, 0xffff6816; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff6817; GCN-NOHSA-SI-NEXT: s_and_b32 s7, s7, 0xffff6818; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s56819; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s156820; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0 offset:806821; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6822; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s76823; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s146824; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0 offset:1126825; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6826; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s36827; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s136828; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0 offset:486829; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6830; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s16831; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s126832; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0 offset:166833; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6834; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s46835; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s166836; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0 offset:646837; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6838; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s66839; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s176840; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0 offset:966841; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6842; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s26843; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s186844; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0 offset:326845; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6846; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s06847; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s196848; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 06849; GCN-NOHSA-SI-NEXT: s_endpgm6850;6851; GCN-HSA-LABEL: constant_zextload_v16i16_to_v16i64:6852; GCN-HSA: ; %bb.0:6853; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06854; GCN-HSA-NEXT: s_add_i32 s12, s12, s176855; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136856; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86857; GCN-HSA-NEXT: v_mov_b32_e32 v1, 06858; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6859; GCN-HSA-NEXT: s_load_dwordx8 s[4:11], s[2:3], 0x06860; GCN-HSA-NEXT: v_mov_b32_e32 v3, v16861; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6862; GCN-HSA-NEXT: s_lshr_b32 s12, s5, 166863; GCN-HSA-NEXT: s_lshr_b32 s13, s7, 166864; GCN-HSA-NEXT: s_lshr_b32 s14, s11, 166865; GCN-HSA-NEXT: s_lshr_b32 s2, s9, 166866; GCN-HSA-NEXT: s_lshr_b32 s15, s8, 166867; GCN-HSA-NEXT: s_lshr_b32 s16, s10, 166868; GCN-HSA-NEXT: s_lshr_b32 s17, s6, 166869; GCN-HSA-NEXT: s_lshr_b32 s18, s4, 166870; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xffff6871; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xffff6872; GCN-HSA-NEXT: s_and_b32 s10, s10, 0xffff6873; GCN-HSA-NEXT: s_and_b32 s8, s8, 0xffff6874; GCN-HSA-NEXT: s_and_b32 s5, s5, 0xffff6875; GCN-HSA-NEXT: s_and_b32 s7, s7, 0xffff6876; GCN-HSA-NEXT: s_and_b32 s11, s11, 0xffff6877; GCN-HSA-NEXT: s_and_b32 s3, s9, 0xffff6878; GCN-HSA-NEXT: v_mov_b32_e32 v2, s26879; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x506880; GCN-HSA-NEXT: v_mov_b32_e32 v0, s36881; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06882; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36883; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26884; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x706885; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06886; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6887; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36888; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26889; GCN-HSA-NEXT: s_add_u32 s2, s0, 486890; GCN-HSA-NEXT: v_mov_b32_e32 v0, s116891; GCN-HSA-NEXT: v_mov_b32_e32 v2, s146892; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06893; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6894; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36895; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26896; GCN-HSA-NEXT: s_add_u32 s2, s0, 166897; GCN-HSA-NEXT: v_mov_b32_e32 v0, s76898; GCN-HSA-NEXT: v_mov_b32_e32 v2, s136899; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06900; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6901; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36902; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26903; GCN-HSA-NEXT: s_add_u32 s2, s0, 646904; GCN-HSA-NEXT: v_mov_b32_e32 v0, s56905; GCN-HSA-NEXT: v_mov_b32_e32 v2, s126906; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06907; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6908; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36909; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26910; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x606911; GCN-HSA-NEXT: v_mov_b32_e32 v0, s86912; GCN-HSA-NEXT: v_mov_b32_e32 v2, s156913; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06914; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6915; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36916; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26917; GCN-HSA-NEXT: s_add_u32 s2, s0, 326918; GCN-HSA-NEXT: v_mov_b32_e32 v0, s106919; GCN-HSA-NEXT: v_mov_b32_e32 v2, s166920; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06921; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6922; GCN-HSA-NEXT: v_mov_b32_e32 v5, s36923; GCN-HSA-NEXT: v_mov_b32_e32 v0, s66924; GCN-HSA-NEXT: v_mov_b32_e32 v2, s176925; GCN-HSA-NEXT: v_mov_b32_e32 v4, s26926; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6927; GCN-HSA-NEXT: v_mov_b32_e32 v5, s16928; GCN-HSA-NEXT: v_mov_b32_e32 v0, s46929; GCN-HSA-NEXT: v_mov_b32_e32 v2, s186930; GCN-HSA-NEXT: v_mov_b32_e32 v4, s06931; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6932; GCN-HSA-NEXT: s_endpgm6933;6934; GCN-NOHSA-VI-LABEL: constant_zextload_v16i16_to_v16i64:6935; GCN-NOHSA-VI: ; %bb.0:6936; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x246937; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 06938; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v16939; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6940; GCN-NOHSA-VI-NEXT: s_load_dwordx8 s[4:11], s[2:3], 0x06941; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6942; GCN-NOHSA-VI-NEXT: s_lshr_b32 s12, s4, 166943; GCN-NOHSA-VI-NEXT: s_and_b32 s4, s4, 0xffff6944; GCN-NOHSA-VI-NEXT: s_lshr_b32 s13, s5, 166945; GCN-NOHSA-VI-NEXT: s_and_b32 s5, s5, 0xffff6946; GCN-NOHSA-VI-NEXT: s_lshr_b32 s14, s6, 166947; GCN-NOHSA-VI-NEXT: s_and_b32 s6, s6, 0xffff6948; GCN-NOHSA-VI-NEXT: s_lshr_b32 s15, s7, 166949; GCN-NOHSA-VI-NEXT: s_and_b32 s7, s7, 0xffff6950; GCN-NOHSA-VI-NEXT: s_lshr_b32 s16, s10, 166951; GCN-NOHSA-VI-NEXT: s_and_b32 s10, s10, 0xffff6952; GCN-NOHSA-VI-NEXT: s_lshr_b32 s17, s11, 166953; GCN-NOHSA-VI-NEXT: s_and_b32 s11, s11, 0xffff6954; GCN-NOHSA-VI-NEXT: s_lshr_b32 s18, s8, 166955; GCN-NOHSA-VI-NEXT: s_and_b32 s8, s8, 0xffff6956; GCN-NOHSA-VI-NEXT: s_lshr_b32 s2, s9, 166957; GCN-NOHSA-VI-NEXT: s_and_b32 s3, s9, 0xffff6958; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s26959; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 0x506960; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s36961; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 06962; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s36963; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s26964; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 646965; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 06966; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6967; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s36968; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s26969; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 0x706970; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s86971; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s186972; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 06973; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6974; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s36975; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s26976; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 0x606977; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s116978; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s176979; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 06980; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6981; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s36982; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s26983; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 486984; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s106985; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s166986; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 06987; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6988; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s36989; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s26990; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 326991; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s76992; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s156993; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 06994; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]6995; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s36996; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s26997; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s0, 166998; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s66999; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s147000; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s1, 07001; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7002; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s37003; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s57004; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s137005; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s27006; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7007; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s17008; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s47009; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s127010; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s07011; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7012; GCN-NOHSA-VI-NEXT: s_endpgm7013;7014; EG-LABEL: constant_zextload_v16i16_to_v16i64:7015; EG: ; %bb.0:7016; EG-NEXT: ALU 0, @16, KC0[CB0:0-32], KC1[]7017; EG-NEXT: TEX 1 @127018; EG-NEXT: ALU 62, @17, KC0[CB0:0-32], KC1[]7019; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T26.X, 07020; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T25.X, 07021; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T24.X, 07022; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T23.X, 07023; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T16.XYZW, T22.X, 07024; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T21.X, 07025; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T18.XYZW, T20.X, 07026; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T19.X, 17027; EG-NEXT: CF_END7028; EG-NEXT: Fetch clause starting at 12:7029; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #17030; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #17031; EG-NEXT: ALU clause starting at 16:7032; EG-NEXT: MOV * T11.X, KC0[2].Z,7033; EG-NEXT: ALU clause starting at 17:7034; EG-NEXT: LSHR * T13.Z, T12.W, literal.x,7035; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7036; EG-NEXT: AND_INT T13.X, T12.W, literal.x,7037; EG-NEXT: MOV T13.Y, 0.0,7038; EG-NEXT: LSHR T14.Z, T12.Z, literal.y,7039; EG-NEXT: AND_INT * T14.X, T12.Z, literal.x,7040; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7041; EG-NEXT: MOV T14.Y, 0.0,7042; EG-NEXT: LSHR * T15.Z, T12.Y, literal.x,7043; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7044; EG-NEXT: AND_INT T15.X, T12.Y, literal.x,7045; EG-NEXT: MOV T15.Y, 0.0,7046; EG-NEXT: LSHR T12.Z, T12.X, literal.y,7047; EG-NEXT: AND_INT * T12.X, T12.X, literal.x,7048; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7049; EG-NEXT: MOV T12.Y, 0.0,7050; EG-NEXT: LSHR * T16.Z, T11.W, literal.x,7051; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7052; EG-NEXT: AND_INT T16.X, T11.W, literal.x,7053; EG-NEXT: MOV T16.Y, 0.0,7054; EG-NEXT: LSHR T17.Z, T11.Z, literal.y,7055; EG-NEXT: AND_INT * T17.X, T11.Z, literal.x,7056; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7057; EG-NEXT: MOV T17.Y, 0.0,7058; EG-NEXT: LSHR * T18.Z, T11.Y, literal.x,7059; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)7060; EG-NEXT: AND_INT T18.X, T11.Y, literal.x,7061; EG-NEXT: MOV T18.Y, 0.0,7062; EG-NEXT: LSHR T11.Z, T11.X, literal.y,7063; EG-NEXT: AND_INT * T11.X, T11.X, literal.x,7064; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)7065; EG-NEXT: MOV T11.Y, 0.0,7066; EG-NEXT: MOV T13.W, 0.0,7067; EG-NEXT: MOV * T14.W, 0.0,7068; EG-NEXT: MOV T15.W, 0.0,7069; EG-NEXT: MOV * T12.W, 0.0,7070; EG-NEXT: MOV T16.W, 0.0,7071; EG-NEXT: MOV * T17.W, 0.0,7072; EG-NEXT: MOV T18.W, 0.0,7073; EG-NEXT: MOV * T11.W, 0.0,7074; EG-NEXT: LSHR T19.X, KC0[2].Y, literal.x,7075; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7076; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)7077; EG-NEXT: LSHR T20.X, PV.W, literal.x,7078; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7079; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)7080; EG-NEXT: LSHR T21.X, PV.W, literal.x,7081; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7082; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)7083; EG-NEXT: LSHR T22.X, PV.W, literal.x,7084; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7085; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)7086; EG-NEXT: LSHR T23.X, PV.W, literal.x,7087; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7088; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)7089; EG-NEXT: LSHR T24.X, PV.W, literal.x,7090; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7091; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)7092; EG-NEXT: LSHR T25.X, PV.W, literal.x,7093; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7094; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)7095; EG-NEXT: LSHR * T26.X, PV.W, literal.x,7096; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)7097;7098; GFX12-LABEL: constant_zextload_v16i16_to_v16i64:7099; GFX12: ; %bb.0:7100; GFX12-NEXT: s_load_b128 s[8:11], s[4:5], 0x247101; GFX12-NEXT: s_wait_kmcnt 0x07102; GFX12-NEXT: s_load_b256 s[0:7], s[10:11], 0x07103; GFX12-NEXT: s_wait_kmcnt 0x07104; GFX12-NEXT: s_and_b32 s10, s5, 0xffff7105; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1)7106; GFX12-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s107107; GFX12-NEXT: s_lshr_b32 s5, s5, 167108; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1) | instid1(SALU_CYCLE_1)7109; GFX12-NEXT: v_dual_mov_b32 v2, s5 :: v_dual_mov_b32 v3, v17110; GFX12-NEXT: s_lshr_b32 s5, s4, 167111; GFX12-NEXT: s_and_b32 s4, s4, 0xffff7112; GFX12-NEXT: global_store_b128 v1, v[0:3], s[8:9] offset:807113; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)7114; GFX12-NEXT: v_mov_b32_e32 v0, s47115; GFX12-NEXT: v_mov_b32_e32 v2, s57116; GFX12-NEXT: s_lshr_b32 s4, s7, 167117; GFX12-NEXT: s_and_b32 s5, s7, 0xffff7118; GFX12-NEXT: global_store_b128 v1, v[0:3], s[8:9] offset:647119; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)7120; GFX12-NEXT: v_mov_b32_e32 v0, s57121; GFX12-NEXT: v_mov_b32_e32 v2, s47122; GFX12-NEXT: s_lshr_b32 s4, s6, 167123; GFX12-NEXT: s_and_b32 s5, s6, 0xffff7124; GFX12-NEXT: global_store_b128 v1, v[0:3], s[8:9] offset:1127125; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)7126; GFX12-NEXT: v_mov_b32_e32 v0, s57127; GFX12-NEXT: v_mov_b32_e32 v2, s47128; GFX12-NEXT: s_lshr_b32 s4, s3, 167129; GFX12-NEXT: s_and_b32 s3, s3, 0xffff7130; GFX12-NEXT: global_store_b128 v1, v[0:3], s[8:9] offset:967131; GFX12-NEXT: v_mov_b32_e32 v0, s37132; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)7133; GFX12-NEXT: v_mov_b32_e32 v2, s47134; GFX12-NEXT: s_lshr_b32 s3, s2, 167135; GFX12-NEXT: s_and_b32 s2, s2, 0xffff7136; GFX12-NEXT: global_store_b128 v1, v[0:3], s[8:9] offset:487137; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)7138; GFX12-NEXT: v_mov_b32_e32 v0, s27139; GFX12-NEXT: v_mov_b32_e32 v2, s37140; GFX12-NEXT: s_lshr_b32 s2, s1, 167141; GFX12-NEXT: s_and_b32 s1, s1, 0xffff7142; GFX12-NEXT: global_store_b128 v1, v[0:3], s[8:9] offset:327143; GFX12-NEXT: v_mov_b32_e32 v0, s17144; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)7145; GFX12-NEXT: v_mov_b32_e32 v2, s27146; GFX12-NEXT: s_lshr_b32 s1, s0, 167147; GFX12-NEXT: s_and_b32 s0, s0, 0xffff7148; GFX12-NEXT: global_store_b128 v1, v[0:3], s[8:9] offset:167149; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)7150; GFX12-NEXT: v_mov_b32_e32 v0, s07151; GFX12-NEXT: v_mov_b32_e32 v2, s17152; GFX12-NEXT: global_store_b128 v1, v[0:3], s[8:9]7153; GFX12-NEXT: s_endpgm7154 %load = load <16 x i16>, ptr addrspace(4) %in7155 %ext = zext <16 x i16> %load to <16 x i64>7156 store <16 x i64> %ext, ptr addrspace(1) %out7157 ret void7158}7159 7160define amdgpu_kernel void @constant_sextload_v16i16_to_v16i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {7161; GCN-NOHSA-SI-LABEL: constant_sextload_v16i16_to_v16i64:7162; GCN-NOHSA-SI: ; %bb.0:7163; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x97164; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)7165; GCN-NOHSA-SI-NEXT: s_load_dwordx8 s[0:7], s[10:11], 0x07166; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, 0xf0007167; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, -17168; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)7169; GCN-NOHSA-SI-NEXT: s_mov_b32 s12, s77170; GCN-NOHSA-SI-NEXT: s_lshr_b32 s14, s6, 167171; GCN-NOHSA-SI-NEXT: s_mov_b32 s16, s57172; GCN-NOHSA-SI-NEXT: s_lshr_b32 s18, s4, 167173; GCN-NOHSA-SI-NEXT: s_mov_b32 s20, s37174; GCN-NOHSA-SI-NEXT: s_lshr_b32 s22, s2, 167175; GCN-NOHSA-SI-NEXT: s_mov_b32 s24, s17176; GCN-NOHSA-SI-NEXT: s_lshr_b32 s26, s0, 167177; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[28:29], s[0:1], 0x1000007178; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[30:31], s[2:3], 0x1000007179; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[34:35], s[4:5], 0x1000007180; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[36:37], s[6:7], 0x1000007181; GCN-NOHSA-SI-NEXT: s_ashr_i32 s21, s1, 317182; GCN-NOHSA-SI-NEXT: s_ashr_i32 s23, s1, 167183; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[0:1], s[24:25], 0x1000007184; GCN-NOHSA-SI-NEXT: s_ashr_i32 s24, s3, 317185; GCN-NOHSA-SI-NEXT: s_ashr_i32 s25, s3, 167186; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[2:3], s[20:21], 0x1000007187; GCN-NOHSA-SI-NEXT: s_ashr_i32 s20, s5, 317188; GCN-NOHSA-SI-NEXT: s_ashr_i32 s27, s5, 167189; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[4:5], s[16:17], 0x1000007190; GCN-NOHSA-SI-NEXT: s_ashr_i32 s33, s7, 317191; GCN-NOHSA-SI-NEXT: s_ashr_i32 s38, s7, 167192; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[6:7], s[12:13], 0x1000007193; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[12:13], s[26:27], 0x1000007194; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[16:17], s[22:23], 0x1000007195; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[18:19], s[18:19], 0x1000007196; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x1000007197; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s67198; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s77199; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s387200; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s337201; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0 offset:1127202; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7203; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s367204; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s377205; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s47206; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s57207; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s277208; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s207209; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[2:5], off, s[8:11], 0 offset:807210; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7211; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s347212; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s357213; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s27214; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s37215; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s257216; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s247217; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[6:9], off, s[8:11], 0 offset:487218; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7219; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s307220; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s317221; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s07222; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s17223; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s237224; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s217225; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[10:13], off, s[8:11], 0 offset:167226; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7227; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s287228; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s297229; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s147230; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s157231; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[8:11], 0 offset:967232; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s187233; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s197234; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[8:11], 0 offset:647235; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s167236; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s177237; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[8:11], 0 offset:327238; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, s127239; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, s137240; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[8:11], 07241; GCN-NOHSA-SI-NEXT: s_endpgm7242;7243; GCN-HSA-LABEL: constant_sextload_v16i16_to_v16i64:7244; GCN-HSA: ; %bb.0:7245; GCN-HSA-NEXT: s_load_dwordx4 s[8:11], s[8:9], 0x07246; GCN-HSA-NEXT: s_add_i32 s12, s12, s177247; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 87248; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s137249; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)7250; GCN-HSA-NEXT: s_load_dwordx8 s[0:7], s[10:11], 0x07251; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)7252; GCN-HSA-NEXT: s_mov_b32 s10, s77253; GCN-HSA-NEXT: s_lshr_b32 s12, s6, 167254; GCN-HSA-NEXT: s_mov_b32 s14, s57255; GCN-HSA-NEXT: s_lshr_b32 s16, s4, 167256; GCN-HSA-NEXT: s_ashr_i32 s25, s1, 317257; GCN-HSA-NEXT: s_ashr_i32 s29, s3, 317258; GCN-HSA-NEXT: s_ashr_i32 s30, s3, 167259; GCN-HSA-NEXT: s_mov_b32 s18, s37260; GCN-HSA-NEXT: s_lshr_b32 s20, s2, 167261; GCN-HSA-NEXT: s_mov_b32 s22, s17262; GCN-HSA-NEXT: s_lshr_b32 s24, s0, 167263; GCN-HSA-NEXT: s_bfe_i64 s[26:27], s[2:3], 0x1000007264; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[10:11], 0x1000007265; GCN-HSA-NEXT: s_ashr_i32 s28, s1, 167266; GCN-HSA-NEXT: s_ashr_i32 s31, s5, 317267; GCN-HSA-NEXT: s_ashr_i32 s33, s5, 167268; GCN-HSA-NEXT: s_ashr_i32 s34, s7, 317269; GCN-HSA-NEXT: s_ashr_i32 s35, s7, 167270; GCN-HSA-NEXT: s_bfe_i64 s[0:1], s[0:1], 0x1000007271; GCN-HSA-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x1000007272; GCN-HSA-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x1000007273; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27274; GCN-HSA-NEXT: v_mov_b32_e32 v1, s37275; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[24:25], 0x1000007276; GCN-HSA-NEXT: s_bfe_i64 s[10:11], s[22:23], 0x1000007277; GCN-HSA-NEXT: s_bfe_i64 s[20:21], s[20:21], 0x1000007278; GCN-HSA-NEXT: s_bfe_i64 s[18:19], s[18:19], 0x1000007279; GCN-HSA-NEXT: s_bfe_i64 s[16:17], s[16:17], 0x1000007280; GCN-HSA-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x1000007281; GCN-HSA-NEXT: s_bfe_i64 s[12:13], s[12:13], 0x1000007282; GCN-HSA-NEXT: s_add_u32 s22, s8, 0x707283; GCN-HSA-NEXT: s_addc_u32 s23, s9, 07284; GCN-HSA-NEXT: v_mov_b32_e32 v4, s67285; GCN-HSA-NEXT: s_add_u32 s6, s8, 0x607286; GCN-HSA-NEXT: v_mov_b32_e32 v5, s77287; GCN-HSA-NEXT: s_addc_u32 s7, s9, 07288; GCN-HSA-NEXT: v_mov_b32_e32 v8, s227289; GCN-HSA-NEXT: v_mov_b32_e32 v11, s77290; GCN-HSA-NEXT: v_mov_b32_e32 v9, s237291; GCN-HSA-NEXT: v_mov_b32_e32 v10, s67292; GCN-HSA-NEXT: v_mov_b32_e32 v2, s357293; GCN-HSA-NEXT: v_mov_b32_e32 v3, s347294; GCN-HSA-NEXT: s_add_u32 s6, s8, 0x507295; GCN-HSA-NEXT: v_mov_b32_e32 v6, s127296; GCN-HSA-NEXT: v_mov_b32_e32 v7, s137297; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[0:3]7298; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[4:7]7299; GCN-HSA-NEXT: s_addc_u32 s7, s9, 07300; GCN-HSA-NEXT: v_mov_b32_e32 v4, s67301; GCN-HSA-NEXT: v_mov_b32_e32 v0, s147302; GCN-HSA-NEXT: v_mov_b32_e32 v1, s157303; GCN-HSA-NEXT: v_mov_b32_e32 v2, s337304; GCN-HSA-NEXT: v_mov_b32_e32 v3, s317305; GCN-HSA-NEXT: v_mov_b32_e32 v5, s77306; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7307; GCN-HSA-NEXT: s_nop 07308; GCN-HSA-NEXT: v_mov_b32_e32 v0, s47309; GCN-HSA-NEXT: s_add_u32 s4, s8, 647310; GCN-HSA-NEXT: v_mov_b32_e32 v1, s57311; GCN-HSA-NEXT: s_addc_u32 s5, s9, 07312; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47313; GCN-HSA-NEXT: v_mov_b32_e32 v2, s167314; GCN-HSA-NEXT: v_mov_b32_e32 v3, s177315; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57316; GCN-HSA-NEXT: s_add_u32 s4, s8, 487317; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7318; GCN-HSA-NEXT: s_addc_u32 s5, s9, 07319; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47320; GCN-HSA-NEXT: v_mov_b32_e32 v0, s187321; GCN-HSA-NEXT: v_mov_b32_e32 v1, s197322; GCN-HSA-NEXT: v_mov_b32_e32 v2, s307323; GCN-HSA-NEXT: v_mov_b32_e32 v3, s297324; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57325; GCN-HSA-NEXT: s_add_u32 s4, s8, 327326; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7327; GCN-HSA-NEXT: s_addc_u32 s5, s9, 07328; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47329; GCN-HSA-NEXT: v_mov_b32_e32 v0, s267330; GCN-HSA-NEXT: v_mov_b32_e32 v1, s277331; GCN-HSA-NEXT: v_mov_b32_e32 v2, s207332; GCN-HSA-NEXT: v_mov_b32_e32 v3, s217333; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57334; GCN-HSA-NEXT: s_add_u32 s4, s8, 167335; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7336; GCN-HSA-NEXT: s_addc_u32 s5, s9, 07337; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47338; GCN-HSA-NEXT: v_mov_b32_e32 v0, s107339; GCN-HSA-NEXT: v_mov_b32_e32 v1, s117340; GCN-HSA-NEXT: v_mov_b32_e32 v2, s287341; GCN-HSA-NEXT: v_mov_b32_e32 v3, s257342; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57343; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7344; GCN-HSA-NEXT: v_mov_b32_e32 v4, s87345; GCN-HSA-NEXT: v_mov_b32_e32 v0, s07346; GCN-HSA-NEXT: v_mov_b32_e32 v1, s17347; GCN-HSA-NEXT: v_mov_b32_e32 v2, s27348; GCN-HSA-NEXT: v_mov_b32_e32 v3, s37349; GCN-HSA-NEXT: v_mov_b32_e32 v5, s97350; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7351; GCN-HSA-NEXT: s_endpgm7352;7353; GCN-NOHSA-VI-LABEL: constant_sextload_v16i16_to_v16i64:7354; GCN-NOHSA-VI: ; %bb.0:7355; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x247356; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)7357; GCN-NOHSA-VI-NEXT: s_load_dwordx8 s[0:7], s[10:11], 0x07358; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)7359; GCN-NOHSA-VI-NEXT: s_mov_b32 s12, s17360; GCN-NOHSA-VI-NEXT: s_lshr_b32 s18, s1, 167361; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[16:17], s[2:3], 0x1000007362; GCN-NOHSA-VI-NEXT: s_lshr_b32 s2, s2, 167363; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[22:23], s[6:7], 0x1000007364; GCN-NOHSA-VI-NEXT: s_lshr_b32 s6, s6, 167365; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[28:29], s[4:5], 0x1000007366; GCN-NOHSA-VI-NEXT: s_lshr_b32 s4, s4, 167367; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[14:15], s[12:13], 0x1000007368; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[12:13], s[18:19], 0x1000007369; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[18:19], s[2:3], 0x1000007370; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, s37371; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[24:25], s[6:7], 0x1000007372; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, s77373; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[30:31], s[4:5], 0x1000007374; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s57375; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[10:11], s[0:1], 0x1000007376; GCN-NOHSA-VI-NEXT: s_lshr_b32 s0, s0, 167377; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[20:21], s[2:3], 0x1000007378; GCN-NOHSA-VI-NEXT: s_lshr_b32 s2, s3, 167379; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[26:27], s[6:7], 0x1000007380; GCN-NOHSA-VI-NEXT: s_lshr_b32 s6, s7, 167381; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[34:35], s[4:5], 0x1000007382; GCN-NOHSA-VI-NEXT: s_lshr_b32 s4, s5, 167383; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[0:1], s[0:1], 0x1000007384; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x1000007385; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x1000007386; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x1000007387; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s47388; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s8, 0x507389; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s57390; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s9, 07391; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47392; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s347393; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s357394; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57395; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s8, 647396; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7397; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s9, 07398; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47399; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s287400; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s297401; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s307402; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s317403; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57404; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s8, 0x707405; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7406; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s9, 07407; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47408; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s267409; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s277410; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s67411; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s77412; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57413; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s8, 0x607414; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7415; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s9, 07416; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47417; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s227418; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s237419; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s247420; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s257421; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57422; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7423; GCN-NOHSA-VI-NEXT: s_nop 07424; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s27425; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s8, 487426; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s37427; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s9, 07428; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s37429; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s27430; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s8, 327431; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s207432; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s217433; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s9, 07434; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7435; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s37436; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s27437; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s8, 167438; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s167439; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s177440; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s187441; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s197442; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s9, 07443; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7444; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s37445; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s147446; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s157447; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s127448; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s137449; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s27450; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7451; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s87452; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s107453; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s117454; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s07455; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s17456; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s97457; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7458; GCN-NOHSA-VI-NEXT: s_endpgm7459;7460; EG-LABEL: constant_sextload_v16i16_to_v16i64:7461; EG: ; %bb.0:7462; EG-NEXT: ALU 0, @16, KC0[CB0:0-32], KC1[]7463; EG-NEXT: TEX 1 @127464; EG-NEXT: ALU 65, @17, KC0[CB0:0-32], KC1[]7465; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T26.XYZW, T12.X, 07466; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T20.X, 07467; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T18.X, 07468; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T24.XYZW, T17.X, 07469; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T16.X, 07470; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T22.XYZW, T15.X, 07471; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T14.X, 07472; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T13.X, 17473; EG-NEXT: CF_END7474; EG-NEXT: Fetch clause starting at 12:7475; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #17476; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #17477; EG-NEXT: ALU clause starting at 16:7478; EG-NEXT: MOV * T11.X, KC0[2].Z,7479; EG-NEXT: ALU clause starting at 17:7480; EG-NEXT: LSHR T13.X, KC0[2].Y, literal.x,7481; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7482; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)7483; EG-NEXT: LSHR T14.X, PV.W, literal.x,7484; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7485; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)7486; EG-NEXT: LSHR T15.X, PV.W, literal.x,7487; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7488; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)7489; EG-NEXT: LSHR T16.X, PV.W, literal.x,7490; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7491; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)7492; EG-NEXT: LSHR T17.X, PV.W, literal.x,7493; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7494; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)7495; EG-NEXT: LSHR T18.X, PV.W, literal.x,7496; EG-NEXT: ADD_INT T0.W, KC0[2].Y, literal.y,7497; EG-NEXT: ASHR * T19.W, T11.X, literal.z,7498; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)7499; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)7500; EG-NEXT: LSHR T20.X, PV.W, literal.x,7501; EG-NEXT: ASHR T19.Z, T11.X, literal.y,7502; EG-NEXT: ASHR * T21.W, T11.Y, literal.z,7503; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)7504; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)7505; EG-NEXT: BFE_INT T19.X, T11.X, 0.0, literal.x,7506; EG-NEXT: ASHR T21.Z, T11.Y, literal.x,7507; EG-NEXT: ASHR * T22.W, T11.Z, literal.y,7508; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7509; EG-NEXT: BFE_INT T21.X, T11.Y, 0.0, literal.x,7510; EG-NEXT: ASHR T19.Y, PV.X, literal.y,7511; EG-NEXT: ASHR T22.Z, T11.Z, literal.x,7512; EG-NEXT: ASHR * T23.W, T11.W, literal.y,7513; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7514; EG-NEXT: BFE_INT T22.X, T11.Z, 0.0, literal.x,7515; EG-NEXT: ASHR T21.Y, PV.X, literal.y,7516; EG-NEXT: ASHR T23.Z, T11.W, literal.x,7517; EG-NEXT: ASHR * T24.W, T12.X, literal.y,7518; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7519; EG-NEXT: BFE_INT T23.X, T11.W, 0.0, literal.x,7520; EG-NEXT: ASHR T22.Y, PV.X, literal.y,7521; EG-NEXT: ASHR T24.Z, T12.X, literal.x,7522; EG-NEXT: ASHR * T11.W, T12.Y, literal.y,7523; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7524; EG-NEXT: BFE_INT T24.X, T12.X, 0.0, literal.x,7525; EG-NEXT: ASHR T23.Y, PV.X, literal.y,7526; EG-NEXT: ASHR T11.Z, T12.Y, literal.x,7527; EG-NEXT: ASHR * T25.W, T12.Z, literal.y,7528; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7529; EG-NEXT: BFE_INT T11.X, T12.Y, 0.0, literal.x,7530; EG-NEXT: ASHR T24.Y, PV.X, literal.y,7531; EG-NEXT: ASHR T25.Z, T12.Z, literal.x,7532; EG-NEXT: ASHR * T26.W, T12.W, literal.y,7533; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7534; EG-NEXT: BFE_INT T25.X, T12.Z, 0.0, literal.x,7535; EG-NEXT: ASHR T11.Y, PV.X, literal.y,7536; EG-NEXT: ASHR * T26.Z, T12.W, literal.x,7537; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7538; EG-NEXT: BFE_INT T26.X, T12.W, 0.0, literal.x,7539; EG-NEXT: ASHR T25.Y, PV.X, literal.y,7540; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,7541; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7542; EG-NEXT: 112(1.569454e-43), 0(0.000000e+00)7543; EG-NEXT: LSHR T12.X, PV.W, literal.x,7544; EG-NEXT: ASHR * T26.Y, PV.X, literal.y,7545; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)7546;7547; GFX12-LABEL: constant_sextload_v16i16_to_v16i64:7548; GFX12: ; %bb.0:7549; GFX12-NEXT: s_load_b128 s[0:3], s[4:5], 0x247550; GFX12-NEXT: s_wait_kmcnt 0x07551; GFX12-NEXT: s_load_b256 s[4:11], s[2:3], 0x07552; GFX12-NEXT: s_wait_kmcnt 0x07553; GFX12-NEXT: s_mov_b32 s30, s97554; GFX12-NEXT: s_lshr_b32 s34, s9, 167555; GFX12-NEXT: s_bfe_i64 s[28:29], s[8:9], 0x1000007556; GFX12-NEXT: s_lshr_b32 s8, s8, 167557; GFX12-NEXT: s_bfe_i64 s[22:23], s[10:11], 0x1000007558; GFX12-NEXT: s_mov_b32 s24, s117559; GFX12-NEXT: s_lshr_b32 s26, s11, 167560; GFX12-NEXT: s_bfe_i64 s[30:31], s[30:31], 0x1000007561; GFX12-NEXT: s_bfe_i64 s[34:35], s[34:35], 0x1000007562; GFX12-NEXT: s_lshr_b32 s10, s10, 167563; GFX12-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x1000007564; GFX12-NEXT: v_dual_mov_b32 v24, 0 :: v_dual_mov_b32 v1, s297565; GFX12-NEXT: s_mov_b32 s18, s77566; GFX12-NEXT: s_lshr_b32 s20, s7, 167567; GFX12-NEXT: s_bfe_i64 s[24:25], s[24:25], 0x1000007568; GFX12-NEXT: s_bfe_i64 s[26:27], s[26:27], 0x1000007569; GFX12-NEXT: v_dual_mov_b32 v4, s22 :: v_dual_mov_b32 v9, s317570; GFX12-NEXT: v_dual_mov_b32 v8, s30 :: v_dual_mov_b32 v11, s357571; GFX12-NEXT: v_dual_mov_b32 v10, s34 :: v_dual_mov_b32 v3, s97572; GFX12-NEXT: s_bfe_i64 s[16:17], s[6:7], 0x1000007573; GFX12-NEXT: s_lshr_b32 s6, s6, 167574; GFX12-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x1000007575; GFX12-NEXT: v_dual_mov_b32 v0, s28 :: v_dual_mov_b32 v5, s237576; GFX12-NEXT: v_dual_mov_b32 v2, s8 :: v_dual_mov_b32 v13, s257577; GFX12-NEXT: s_mov_b32 s12, s57578; GFX12-NEXT: s_lshr_b32 s14, s5, 167579; GFX12-NEXT: s_bfe_i64 s[18:19], s[18:19], 0x1000007580; GFX12-NEXT: s_bfe_i64 s[20:21], s[20:21], 0x1000007581; GFX12-NEXT: v_dual_mov_b32 v12, s24 :: v_dual_mov_b32 v15, s277582; GFX12-NEXT: v_dual_mov_b32 v14, s26 :: v_dual_mov_b32 v7, s117583; GFX12-NEXT: s_bfe_i64 s[2:3], s[4:5], 0x1000007584; GFX12-NEXT: s_lshr_b32 s4, s4, 167585; GFX12-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x1000007586; GFX12-NEXT: v_dual_mov_b32 v6, s10 :: v_dual_mov_b32 v17, s197587; GFX12-NEXT: s_bfe_i64 s[12:13], s[12:13], 0x1000007588; GFX12-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x1000007589; GFX12-NEXT: v_dual_mov_b32 v16, s18 :: v_dual_mov_b32 v19, s217590; GFX12-NEXT: v_mov_b32_e32 v18, s207591; GFX12-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x1000007592; GFX12-NEXT: s_clause 0x17593; GFX12-NEXT: global_store_b128 v24, v[8:11], s[0:1] offset:807594; GFX12-NEXT: global_store_b128 v24, v[0:3], s[0:1] offset:647595; GFX12-NEXT: v_dual_mov_b32 v0, s16 :: v_dual_mov_b32 v3, s77596; GFX12-NEXT: v_dual_mov_b32 v1, s17 :: v_dual_mov_b32 v2, s67597; GFX12-NEXT: v_dual_mov_b32 v9, s13 :: v_dual_mov_b32 v8, s127598; GFX12-NEXT: v_dual_mov_b32 v11, s15 :: v_dual_mov_b32 v10, s147599; GFX12-NEXT: v_dual_mov_b32 v21, s3 :: v_dual_mov_b32 v20, s27600; GFX12-NEXT: v_dual_mov_b32 v23, s5 :: v_dual_mov_b32 v22, s47601; GFX12-NEXT: s_clause 0x57602; GFX12-NEXT: global_store_b128 v24, v[12:15], s[0:1] offset:1127603; GFX12-NEXT: global_store_b128 v24, v[4:7], s[0:1] offset:967604; GFX12-NEXT: global_store_b128 v24, v[16:19], s[0:1] offset:487605; GFX12-NEXT: global_store_b128 v24, v[0:3], s[0:1] offset:327606; GFX12-NEXT: global_store_b128 v24, v[8:11], s[0:1] offset:167607; GFX12-NEXT: global_store_b128 v24, v[20:23], s[0:1]7608; GFX12-NEXT: s_endpgm7609 %load = load <16 x i16>, ptr addrspace(4) %in7610 %ext = sext <16 x i16> %load to <16 x i64>7611 store <16 x i64> %ext, ptr addrspace(1) %out7612 ret void7613}7614 7615define amdgpu_kernel void @constant_zextload_v32i16_to_v32i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {7616; GCN-NOHSA-SI-LABEL: constant_zextload_v32i16_to_v32i64:7617; GCN-NOHSA-SI: ; %bb.0:7618; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x97619; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)7620; GCN-NOHSA-SI-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x07621; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)7622; GCN-NOHSA-SI-NEXT: s_lshr_b32 s18, s1, 167623; GCN-NOHSA-SI-NEXT: s_lshr_b32 s19, s3, 167624; GCN-NOHSA-SI-NEXT: s_lshr_b32 s20, s5, 167625; GCN-NOHSA-SI-NEXT: s_lshr_b32 s21, s7, 167626; GCN-NOHSA-SI-NEXT: s_lshr_b32 s22, s9, 167627; GCN-NOHSA-SI-NEXT: s_lshr_b32 s23, s11, 167628; GCN-NOHSA-SI-NEXT: s_lshr_b32 s24, s13, 167629; GCN-NOHSA-SI-NEXT: s_lshr_b32 s25, s15, 167630; GCN-NOHSA-SI-NEXT: s_lshr_b32 s26, s14, 167631; GCN-NOHSA-SI-NEXT: s_lshr_b32 s27, s12, 167632; GCN-NOHSA-SI-NEXT: s_lshr_b32 s28, s10, 167633; GCN-NOHSA-SI-NEXT: s_lshr_b32 s29, s8, 167634; GCN-NOHSA-SI-NEXT: s_lshr_b32 s30, s6, 167635; GCN-NOHSA-SI-NEXT: s_lshr_b32 s31, s4, 167636; GCN-NOHSA-SI-NEXT: s_lshr_b32 s33, s2, 167637; GCN-NOHSA-SI-NEXT: s_lshr_b32 s34, s0, 167638; GCN-NOHSA-SI-NEXT: s_and_b32 s35, s0, 0xffff7639; GCN-NOHSA-SI-NEXT: s_and_b32 s36, s2, 0xffff7640; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff7641; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xffff7642; GCN-NOHSA-SI-NEXT: s_and_b32 s8, s8, 0xffff7643; GCN-NOHSA-SI-NEXT: s_and_b32 s10, s10, 0xffff7644; GCN-NOHSA-SI-NEXT: s_and_b32 s12, s12, 0xffff7645; GCN-NOHSA-SI-NEXT: s_and_b32 s14, s14, 0xffff7646; GCN-NOHSA-SI-NEXT: s_and_b32 s37, s1, 0xffff7647; GCN-NOHSA-SI-NEXT: s_and_b32 s38, s3, 0xffff7648; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff7649; GCN-NOHSA-SI-NEXT: s_and_b32 s7, s7, 0xffff7650; GCN-NOHSA-SI-NEXT: s_and_b32 s9, s9, 0xffff7651; GCN-NOHSA-SI-NEXT: s_and_b32 s11, s11, 0xffff7652; GCN-NOHSA-SI-NEXT: s_and_b32 s13, s13, 0xffff7653; GCN-NOHSA-SI-NEXT: s_and_b32 s15, s15, 0xffff7654; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0007655; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 07656; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -17657; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v17658; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s167659; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s177660; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s157661; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s257662; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2407663; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7664; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s137665; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s247666; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2087667; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7668; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s117669; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s237670; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1767671; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7672; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s97673; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s227674; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1447675; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7676; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s77677; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s217678; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1127679; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7680; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s57681; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s207682; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:807683; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7684; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s387685; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s197686; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:487687; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7688; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s377689; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s187690; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:167691; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7692; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s147693; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s267694; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2247695; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7696; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s127697; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s277698; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1927699; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7700; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s107701; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s287702; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1607703; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7704; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s87705; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s297706; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1287707; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7708; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s67709; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s307710; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:967711; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7712; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s47713; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s317714; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:647715; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7716; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s367717; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s337718; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:327719; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7720; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s357721; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s347722; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 07723; GCN-NOHSA-SI-NEXT: s_endpgm7724;7725; GCN-HSA-LABEL: constant_zextload_v32i16_to_v32i64:7726; GCN-HSA: ; %bb.0:7727; GCN-HSA-NEXT: s_add_i32 s12, s12, s177728; GCN-HSA-NEXT: s_load_dwordx4 s[16:19], s[8:9], 0x07729; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s137730; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 87731; GCN-HSA-NEXT: v_mov_b32_e32 v1, 07732; GCN-HSA-NEXT: v_mov_b32_e32 v3, v17733; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)7734; GCN-HSA-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x07735; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)7736; GCN-HSA-NEXT: s_lshr_b32 s20, s1, 167737; GCN-HSA-NEXT: s_lshr_b32 s21, s3, 167738; GCN-HSA-NEXT: s_lshr_b32 s22, s5, 167739; GCN-HSA-NEXT: s_lshr_b32 s23, s7, 167740; GCN-HSA-NEXT: s_lshr_b32 s24, s9, 167741; GCN-HSA-NEXT: s_lshr_b32 s25, s11, 167742; GCN-HSA-NEXT: s_lshr_b32 s26, s13, 167743; GCN-HSA-NEXT: s_lshr_b32 s27, s15, 167744; GCN-HSA-NEXT: s_lshr_b32 s28, s14, 167745; GCN-HSA-NEXT: s_lshr_b32 s29, s12, 167746; GCN-HSA-NEXT: s_lshr_b32 s30, s10, 167747; GCN-HSA-NEXT: s_lshr_b32 s31, s8, 167748; GCN-HSA-NEXT: s_lshr_b32 s33, s6, 167749; GCN-HSA-NEXT: s_lshr_b32 s34, s4, 167750; GCN-HSA-NEXT: s_lshr_b32 s19, s2, 167751; GCN-HSA-NEXT: s_lshr_b32 s18, s0, 167752; GCN-HSA-NEXT: s_and_b32 s0, s0, 0xffff7753; GCN-HSA-NEXT: s_and_b32 s2, s2, 0xffff7754; GCN-HSA-NEXT: s_and_b32 s35, s4, 0xffff7755; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xffff7756; GCN-HSA-NEXT: s_and_b32 s8, s8, 0xffff7757; GCN-HSA-NEXT: s_and_b32 s10, s10, 0xffff7758; GCN-HSA-NEXT: s_and_b32 s12, s12, 0xffff7759; GCN-HSA-NEXT: s_and_b32 s14, s14, 0xffff7760; GCN-HSA-NEXT: s_and_b32 s1, s1, 0xffff7761; GCN-HSA-NEXT: s_and_b32 s3, s3, 0xffff7762; GCN-HSA-NEXT: s_and_b32 s36, s5, 0xffff7763; GCN-HSA-NEXT: s_and_b32 s7, s7, 0xffff7764; GCN-HSA-NEXT: s_and_b32 s9, s9, 0xffff7765; GCN-HSA-NEXT: s_and_b32 s11, s11, 0xffff7766; GCN-HSA-NEXT: s_and_b32 s13, s13, 0xffff7767; GCN-HSA-NEXT: s_and_b32 s15, s15, 0xffff7768; GCN-HSA-NEXT: s_add_u32 s4, s16, 0xf07769; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07770; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47771; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57772; GCN-HSA-NEXT: s_add_u32 s4, s16, 0xd07773; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07774; GCN-HSA-NEXT: v_mov_b32_e32 v7, s57775; GCN-HSA-NEXT: v_mov_b32_e32 v6, s47776; GCN-HSA-NEXT: s_add_u32 s4, s16, 0xb07777; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07778; GCN-HSA-NEXT: v_mov_b32_e32 v9, s57779; GCN-HSA-NEXT: v_mov_b32_e32 v8, s47780; GCN-HSA-NEXT: s_add_u32 s4, s16, 0x907781; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07782; GCN-HSA-NEXT: v_mov_b32_e32 v0, s157783; GCN-HSA-NEXT: v_mov_b32_e32 v2, s277784; GCN-HSA-NEXT: v_mov_b32_e32 v11, s57785; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7786; GCN-HSA-NEXT: v_mov_b32_e32 v10, s47787; GCN-HSA-NEXT: v_mov_b32_e32 v0, s137788; GCN-HSA-NEXT: v_mov_b32_e32 v2, s267789; GCN-HSA-NEXT: flat_store_dwordx4 v[6:7], v[0:3]7790; GCN-HSA-NEXT: s_add_u32 s4, s16, 0x707791; GCN-HSA-NEXT: v_mov_b32_e32 v0, s117792; GCN-HSA-NEXT: v_mov_b32_e32 v2, s257793; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[0:3]7794; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07795; GCN-HSA-NEXT: v_mov_b32_e32 v0, s97796; GCN-HSA-NEXT: v_mov_b32_e32 v2, s247797; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47798; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[0:3]7799; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57800; GCN-HSA-NEXT: v_mov_b32_e32 v0, s77801; GCN-HSA-NEXT: v_mov_b32_e32 v2, s237802; GCN-HSA-NEXT: s_add_u32 s4, s16, 0x507803; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7804; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07805; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47806; GCN-HSA-NEXT: v_mov_b32_e32 v0, s367807; GCN-HSA-NEXT: v_mov_b32_e32 v2, s227808; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57809; GCN-HSA-NEXT: s_add_u32 s4, s16, 487810; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7811; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07812; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47813; GCN-HSA-NEXT: v_mov_b32_e32 v0, s37814; GCN-HSA-NEXT: v_mov_b32_e32 v2, s217815; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57816; GCN-HSA-NEXT: s_add_u32 s4, s16, 167817; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7818; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07819; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47820; GCN-HSA-NEXT: v_mov_b32_e32 v0, s17821; GCN-HSA-NEXT: v_mov_b32_e32 v2, s207822; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57823; GCN-HSA-NEXT: s_add_u32 s4, s16, 0xe07824; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7825; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07826; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47827; GCN-HSA-NEXT: v_mov_b32_e32 v0, s147828; GCN-HSA-NEXT: v_mov_b32_e32 v2, s287829; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57830; GCN-HSA-NEXT: s_add_u32 s4, s16, 0xc07831; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7832; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07833; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47834; GCN-HSA-NEXT: v_mov_b32_e32 v0, s127835; GCN-HSA-NEXT: v_mov_b32_e32 v2, s297836; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57837; GCN-HSA-NEXT: s_add_u32 s4, s16, 0xa07838; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7839; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07840; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47841; GCN-HSA-NEXT: v_mov_b32_e32 v0, s107842; GCN-HSA-NEXT: v_mov_b32_e32 v2, s307843; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57844; GCN-HSA-NEXT: s_add_u32 s4, s16, 0x807845; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7846; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07847; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47848; GCN-HSA-NEXT: v_mov_b32_e32 v0, s87849; GCN-HSA-NEXT: v_mov_b32_e32 v2, s317850; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57851; GCN-HSA-NEXT: s_add_u32 s4, s16, 0x607852; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7853; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07854; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47855; GCN-HSA-NEXT: v_mov_b32_e32 v0, s67856; GCN-HSA-NEXT: v_mov_b32_e32 v2, s337857; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57858; GCN-HSA-NEXT: s_add_u32 s4, s16, 647859; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7860; GCN-HSA-NEXT: s_addc_u32 s5, s17, 07861; GCN-HSA-NEXT: v_mov_b32_e32 v4, s47862; GCN-HSA-NEXT: v_mov_b32_e32 v0, s357863; GCN-HSA-NEXT: v_mov_b32_e32 v2, s347864; GCN-HSA-NEXT: v_mov_b32_e32 v5, s57865; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7866; GCN-HSA-NEXT: s_nop 07867; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27868; GCN-HSA-NEXT: s_add_u32 s2, s16, 327869; GCN-HSA-NEXT: s_addc_u32 s3, s17, 07870; GCN-HSA-NEXT: v_mov_b32_e32 v5, s37871; GCN-HSA-NEXT: v_mov_b32_e32 v2, s197872; GCN-HSA-NEXT: v_mov_b32_e32 v4, s27873; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7874; GCN-HSA-NEXT: v_mov_b32_e32 v4, s167875; GCN-HSA-NEXT: v_mov_b32_e32 v0, s07876; GCN-HSA-NEXT: v_mov_b32_e32 v2, s187877; GCN-HSA-NEXT: v_mov_b32_e32 v5, s177878; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7879; GCN-HSA-NEXT: s_endpgm7880;7881; GCN-NOHSA-VI-LABEL: constant_zextload_v32i16_to_v32i64:7882; GCN-NOHSA-VI: ; %bb.0:7883; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x247884; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 07885; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v17886; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)7887; GCN-NOHSA-VI-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x07888; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)7889; GCN-NOHSA-VI-NEXT: s_lshr_b32 s18, s0, 167890; GCN-NOHSA-VI-NEXT: s_and_b32 s0, s0, 0xffff7891; GCN-NOHSA-VI-NEXT: s_lshr_b32 s19, s1, 167892; GCN-NOHSA-VI-NEXT: s_and_b32 s1, s1, 0xffff7893; GCN-NOHSA-VI-NEXT: s_lshr_b32 s20, s2, 167894; GCN-NOHSA-VI-NEXT: s_and_b32 s2, s2, 0xffff7895; GCN-NOHSA-VI-NEXT: s_lshr_b32 s21, s3, 167896; GCN-NOHSA-VI-NEXT: s_and_b32 s3, s3, 0xffff7897; GCN-NOHSA-VI-NEXT: s_lshr_b32 s22, s4, 167898; GCN-NOHSA-VI-NEXT: s_and_b32 s23, s4, 0xffff7899; GCN-NOHSA-VI-NEXT: s_lshr_b32 s24, s5, 167900; GCN-NOHSA-VI-NEXT: s_and_b32 s25, s5, 0xffff7901; GCN-NOHSA-VI-NEXT: s_lshr_b32 s26, s6, 167902; GCN-NOHSA-VI-NEXT: s_and_b32 s6, s6, 0xffff7903; GCN-NOHSA-VI-NEXT: s_lshr_b32 s27, s7, 167904; GCN-NOHSA-VI-NEXT: s_and_b32 s7, s7, 0xffff7905; GCN-NOHSA-VI-NEXT: s_lshr_b32 s28, s8, 167906; GCN-NOHSA-VI-NEXT: s_and_b32 s8, s8, 0xffff7907; GCN-NOHSA-VI-NEXT: s_lshr_b32 s29, s9, 167908; GCN-NOHSA-VI-NEXT: s_and_b32 s9, s9, 0xffff7909; GCN-NOHSA-VI-NEXT: s_lshr_b32 s30, s10, 167910; GCN-NOHSA-VI-NEXT: s_and_b32 s10, s10, 0xffff7911; GCN-NOHSA-VI-NEXT: s_lshr_b32 s31, s11, 167912; GCN-NOHSA-VI-NEXT: s_and_b32 s11, s11, 0xffff7913; GCN-NOHSA-VI-NEXT: s_lshr_b32 s33, s12, 167914; GCN-NOHSA-VI-NEXT: s_and_b32 s12, s12, 0xffff7915; GCN-NOHSA-VI-NEXT: s_lshr_b32 s34, s13, 167916; GCN-NOHSA-VI-NEXT: s_and_b32 s13, s13, 0xffff7917; GCN-NOHSA-VI-NEXT: s_lshr_b32 s35, s14, 167918; GCN-NOHSA-VI-NEXT: s_and_b32 s14, s14, 0xffff7919; GCN-NOHSA-VI-NEXT: s_lshr_b32 s4, s15, 167920; GCN-NOHSA-VI-NEXT: s_and_b32 s5, s15, 0xffff7921; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s47922; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0xf07923; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s57924; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07925; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47926; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57927; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0xe07928; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7929; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07930; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47931; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s147932; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s357933; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57934; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0xd07935; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7936; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07937; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47938; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s137939; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s347940; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57941; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0xc07942; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7943; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07944; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47945; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s127946; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s337947; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57948; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0xb07949; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7950; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07951; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47952; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s117953; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s317954; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57955; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0xa07956; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7957; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07958; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47959; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s107960; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s307961; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57962; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0x907963; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7964; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07965; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47966; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s97967; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s297968; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57969; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0x807970; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7971; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07972; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47973; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s87974; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s287975; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57976; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0x707977; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7978; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07979; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47980; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s77981; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s277982; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57983; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0x607984; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7985; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07986; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47987; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s67988; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s267989; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57990; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 0x507991; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7992; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 07993; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s47994; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s257995; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s247996; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s57997; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 647998; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7999; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 08000; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s48001; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s238002; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s228003; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s58004; GCN-NOHSA-VI-NEXT: s_add_u32 s4, s16, 488005; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8006; GCN-NOHSA-VI-NEXT: s_addc_u32 s5, s17, 08007; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s48008; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s38009; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s218010; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s58011; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8012; GCN-NOHSA-VI-NEXT: s_nop 08013; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s28014; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s16, 328015; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s17, 08016; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s38017; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s28018; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s16, 168019; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s208020; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s17, 08021; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8022; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s38023; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s18024; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s198025; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s28026; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8027; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s168028; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s08029; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s188030; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s178031; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8032; GCN-NOHSA-VI-NEXT: s_endpgm8033;8034; EG-LABEL: constant_zextload_v32i16_to_v32i64:8035; EG: ; %bb.0:8036; EG-NEXT: ALU 0, @30, KC0[CB0:0-32], KC1[]8037; EG-NEXT: TEX 2 @228038; EG-NEXT: ALU 33, @31, KC0[], KC1[]8039; EG-NEXT: TEX 0 @288040; EG-NEXT: ALU 92, @65, KC0[CB0:0-32], KC1[]8041; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T50.X, 08042; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T24.XYZW, T49.X, 08043; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T48.X, 08044; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T47.X, 08045; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T26.XYZW, T46.X, 08046; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T27.XYZW, T45.X, 08047; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T28.XYZW, T44.X, 08048; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T22.XYZW, T43.X, 08049; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T42.X, 08050; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T30.XYZW, T41.X, 08051; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T31.XYZW, T40.X, 08052; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T39.X, 08053; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T32.XYZW, T38.X, 08054; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T33.XYZW, T37.X, 08055; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T34.XYZW, T36.X, 08056; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T29.XYZW, T35.X, 18057; EG-NEXT: CF_END8058; EG-NEXT: Fetch clause starting at 22:8059; EG-NEXT: VTX_READ_128 T20.XYZW, T19.X, 48, #18060; EG-NEXT: VTX_READ_128 T21.XYZW, T19.X, 16, #18061; EG-NEXT: VTX_READ_128 T22.XYZW, T19.X, 32, #18062; EG-NEXT: Fetch clause starting at 28:8063; EG-NEXT: VTX_READ_128 T29.XYZW, T19.X, 0, #18064; EG-NEXT: ALU clause starting at 30:8065; EG-NEXT: MOV * T19.X, KC0[2].Z,8066; EG-NEXT: ALU clause starting at 31:8067; EG-NEXT: LSHR * T23.Z, T20.W, literal.x,8068; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8069; EG-NEXT: AND_INT T23.X, T20.W, literal.x,8070; EG-NEXT: MOV T23.Y, 0.0,8071; EG-NEXT: LSHR T24.Z, T20.Z, literal.y,8072; EG-NEXT: AND_INT * T24.X, T20.Z, literal.x,8073; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8074; EG-NEXT: MOV T24.Y, 0.0,8075; EG-NEXT: LSHR * T25.Z, T20.Y, literal.x,8076; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8077; EG-NEXT: AND_INT T25.X, T20.Y, literal.x,8078; EG-NEXT: MOV T25.Y, 0.0,8079; EG-NEXT: LSHR T20.Z, T20.X, literal.y,8080; EG-NEXT: AND_INT * T20.X, T20.X, literal.x,8081; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8082; EG-NEXT: MOV T20.Y, 0.0,8083; EG-NEXT: LSHR * T26.Z, T22.W, literal.x,8084; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8085; EG-NEXT: AND_INT T26.X, T22.W, literal.x,8086; EG-NEXT: MOV T26.Y, 0.0,8087; EG-NEXT: LSHR T27.Z, T22.Z, literal.y,8088; EG-NEXT: AND_INT * T27.X, T22.Z, literal.x,8089; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8090; EG-NEXT: MOV T27.Y, 0.0,8091; EG-NEXT: LSHR * T28.Z, T22.Y, literal.x,8092; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8093; EG-NEXT: AND_INT T28.X, T22.Y, literal.x,8094; EG-NEXT: MOV T28.Y, 0.0,8095; EG-NEXT: LSHR T22.Z, T22.X, literal.y,8096; EG-NEXT: AND_INT * T22.X, T22.X, literal.x,8097; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8098; EG-NEXT: MOV T22.Y, 0.0,8099; EG-NEXT: LSHR * T19.Z, T21.W, literal.x,8100; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8101; EG-NEXT: ALU clause starting at 65:8102; EG-NEXT: AND_INT T19.X, T21.W, literal.x,8103; EG-NEXT: MOV T19.Y, 0.0,8104; EG-NEXT: LSHR T30.Z, T21.Z, literal.y,8105; EG-NEXT: AND_INT * T30.X, T21.Z, literal.x,8106; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8107; EG-NEXT: MOV T30.Y, 0.0,8108; EG-NEXT: LSHR * T31.Z, T21.Y, literal.x,8109; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8110; EG-NEXT: AND_INT T31.X, T21.Y, literal.x,8111; EG-NEXT: MOV T31.Y, 0.0,8112; EG-NEXT: LSHR T21.Z, T21.X, literal.y,8113; EG-NEXT: AND_INT * T21.X, T21.X, literal.x,8114; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8115; EG-NEXT: MOV T21.Y, 0.0,8116; EG-NEXT: LSHR * T32.Z, T29.W, literal.x,8117; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8118; EG-NEXT: AND_INT T32.X, T29.W, literal.x,8119; EG-NEXT: MOV T32.Y, 0.0,8120; EG-NEXT: LSHR T33.Z, T29.Z, literal.y,8121; EG-NEXT: AND_INT * T33.X, T29.Z, literal.x,8122; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8123; EG-NEXT: MOV T33.Y, 0.0,8124; EG-NEXT: LSHR * T34.Z, T29.Y, literal.x,8125; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8126; EG-NEXT: AND_INT T34.X, T29.Y, literal.x,8127; EG-NEXT: MOV T34.Y, 0.0,8128; EG-NEXT: LSHR T29.Z, T29.X, literal.y,8129; EG-NEXT: AND_INT * T29.X, T29.X, literal.x,8130; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)8131; EG-NEXT: MOV T29.Y, 0.0,8132; EG-NEXT: MOV T23.W, 0.0,8133; EG-NEXT: MOV * T24.W, 0.0,8134; EG-NEXT: MOV T25.W, 0.0,8135; EG-NEXT: MOV * T20.W, 0.0,8136; EG-NEXT: MOV T26.W, 0.0,8137; EG-NEXT: MOV * T27.W, 0.0,8138; EG-NEXT: MOV T28.W, 0.0,8139; EG-NEXT: MOV * T22.W, 0.0,8140; EG-NEXT: MOV T19.W, 0.0,8141; EG-NEXT: MOV * T30.W, 0.0,8142; EG-NEXT: MOV T31.W, 0.0,8143; EG-NEXT: MOV * T21.W, 0.0,8144; EG-NEXT: MOV T32.W, 0.0,8145; EG-NEXT: MOV * T33.W, 0.0,8146; EG-NEXT: MOV T34.W, 0.0,8147; EG-NEXT: MOV * T29.W, 0.0,8148; EG-NEXT: LSHR T35.X, KC0[2].Y, literal.x,8149; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8150; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)8151; EG-NEXT: LSHR T36.X, PV.W, literal.x,8152; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8153; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)8154; EG-NEXT: LSHR T37.X, PV.W, literal.x,8155; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8156; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)8157; EG-NEXT: LSHR T38.X, PV.W, literal.x,8158; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8159; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)8160; EG-NEXT: LSHR T39.X, PV.W, literal.x,8161; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8162; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)8163; EG-NEXT: LSHR T40.X, PV.W, literal.x,8164; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8165; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)8166; EG-NEXT: LSHR T41.X, PV.W, literal.x,8167; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8168; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)8169; EG-NEXT: LSHR T42.X, PV.W, literal.x,8170; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8171; EG-NEXT: 2(2.802597e-45), 128(1.793662e-43)8172; EG-NEXT: LSHR T43.X, PV.W, literal.x,8173; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8174; EG-NEXT: 2(2.802597e-45), 144(2.017870e-43)8175; EG-NEXT: LSHR T44.X, PV.W, literal.x,8176; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8177; EG-NEXT: 2(2.802597e-45), 160(2.242078e-43)8178; EG-NEXT: LSHR T45.X, PV.W, literal.x,8179; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8180; EG-NEXT: 2(2.802597e-45), 176(2.466285e-43)8181; EG-NEXT: LSHR T46.X, PV.W, literal.x,8182; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8183; EG-NEXT: 2(2.802597e-45), 192(2.690493e-43)8184; EG-NEXT: LSHR T47.X, PV.W, literal.x,8185; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8186; EG-NEXT: 2(2.802597e-45), 208(2.914701e-43)8187; EG-NEXT: LSHR T48.X, PV.W, literal.x,8188; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8189; EG-NEXT: 2(2.802597e-45), 224(3.138909e-43)8190; EG-NEXT: LSHR T49.X, PV.W, literal.x,8191; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8192; EG-NEXT: 2(2.802597e-45), 240(3.363116e-43)8193; EG-NEXT: LSHR * T50.X, PV.W, literal.x,8194; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)8195;8196; GFX12-LABEL: constant_zextload_v32i16_to_v32i64:8197; GFX12: ; %bb.0:8198; GFX12-NEXT: s_load_b128 s[16:19], s[4:5], 0x248199; GFX12-NEXT: s_wait_kmcnt 0x08200; GFX12-NEXT: s_load_b512 s[0:15], s[18:19], 0x08201; GFX12-NEXT: s_wait_kmcnt 0x08202; GFX12-NEXT: s_and_b32 s18, s15, 0xffff8203; GFX12-NEXT: s_delay_alu instid0(SALU_CYCLE_1)8204; GFX12-NEXT: v_dual_mov_b32 v1, 0 :: v_dual_mov_b32 v0, s188205; GFX12-NEXT: s_lshr_b32 s15, s15, 168206; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1) | instid1(SALU_CYCLE_1)8207; GFX12-NEXT: v_dual_mov_b32 v2, s15 :: v_dual_mov_b32 v3, v18208; GFX12-NEXT: s_lshr_b32 s15, s14, 168209; GFX12-NEXT: s_and_b32 s14, s14, 0xffff8210; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:2408211; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8212; GFX12-NEXT: v_mov_b32_e32 v0, s148213; GFX12-NEXT: v_mov_b32_e32 v2, s158214; GFX12-NEXT: s_lshr_b32 s14, s13, 168215; GFX12-NEXT: s_and_b32 s13, s13, 0xffff8216; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:2248217; GFX12-NEXT: v_mov_b32_e32 v0, s138218; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8219; GFX12-NEXT: v_mov_b32_e32 v2, s148220; GFX12-NEXT: s_lshr_b32 s13, s12, 168221; GFX12-NEXT: s_and_b32 s12, s12, 0xffff8222; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:2088223; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8224; GFX12-NEXT: v_mov_b32_e32 v0, s128225; GFX12-NEXT: v_mov_b32_e32 v2, s138226; GFX12-NEXT: s_lshr_b32 s12, s11, 168227; GFX12-NEXT: s_and_b32 s11, s11, 0xffff8228; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:1928229; GFX12-NEXT: v_mov_b32_e32 v0, s118230; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8231; GFX12-NEXT: v_mov_b32_e32 v2, s128232; GFX12-NEXT: s_lshr_b32 s11, s10, 168233; GFX12-NEXT: s_and_b32 s10, s10, 0xffff8234; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:1768235; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8236; GFX12-NEXT: v_mov_b32_e32 v0, s108237; GFX12-NEXT: v_mov_b32_e32 v2, s118238; GFX12-NEXT: s_lshr_b32 s10, s9, 168239; GFX12-NEXT: s_and_b32 s9, s9, 0xffff8240; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:1608241; GFX12-NEXT: v_mov_b32_e32 v0, s98242; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8243; GFX12-NEXT: v_mov_b32_e32 v2, s108244; GFX12-NEXT: s_lshr_b32 s9, s8, 168245; GFX12-NEXT: s_and_b32 s8, s8, 0xffff8246; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:1448247; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8248; GFX12-NEXT: v_mov_b32_e32 v0, s88249; GFX12-NEXT: v_mov_b32_e32 v2, s98250; GFX12-NEXT: s_lshr_b32 s8, s7, 168251; GFX12-NEXT: s_and_b32 s7, s7, 0xffff8252; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:1288253; GFX12-NEXT: v_mov_b32_e32 v0, s78254; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8255; GFX12-NEXT: v_mov_b32_e32 v2, s88256; GFX12-NEXT: s_lshr_b32 s7, s6, 168257; GFX12-NEXT: s_and_b32 s6, s6, 0xffff8258; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:1128259; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8260; GFX12-NEXT: v_mov_b32_e32 v0, s68261; GFX12-NEXT: v_mov_b32_e32 v2, s78262; GFX12-NEXT: s_lshr_b32 s6, s5, 168263; GFX12-NEXT: s_and_b32 s5, s5, 0xffff8264; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:968265; GFX12-NEXT: v_mov_b32_e32 v0, s58266; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8267; GFX12-NEXT: v_mov_b32_e32 v2, s68268; GFX12-NEXT: s_lshr_b32 s5, s4, 168269; GFX12-NEXT: s_and_b32 s4, s4, 0xffff8270; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:808271; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8272; GFX12-NEXT: v_mov_b32_e32 v0, s48273; GFX12-NEXT: v_mov_b32_e32 v2, s58274; GFX12-NEXT: s_lshr_b32 s4, s3, 168275; GFX12-NEXT: s_and_b32 s3, s3, 0xffff8276; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:648277; GFX12-NEXT: v_mov_b32_e32 v0, s38278; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8279; GFX12-NEXT: v_mov_b32_e32 v2, s48280; GFX12-NEXT: s_lshr_b32 s3, s2, 168281; GFX12-NEXT: s_and_b32 s2, s2, 0xffff8282; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:488283; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8284; GFX12-NEXT: v_mov_b32_e32 v0, s28285; GFX12-NEXT: v_mov_b32_e32 v2, s38286; GFX12-NEXT: s_lshr_b32 s2, s1, 168287; GFX12-NEXT: s_and_b32 s1, s1, 0xffff8288; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:328289; GFX12-NEXT: v_mov_b32_e32 v0, s18290; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8291; GFX12-NEXT: v_mov_b32_e32 v2, s28292; GFX12-NEXT: s_lshr_b32 s1, s0, 168293; GFX12-NEXT: s_and_b32 s0, s0, 0xffff8294; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17] offset:168295; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)8296; GFX12-NEXT: v_mov_b32_e32 v0, s08297; GFX12-NEXT: v_mov_b32_e32 v2, s18298; GFX12-NEXT: global_store_b128 v1, v[0:3], s[16:17]8299; GFX12-NEXT: s_endpgm8300 %load = load <32 x i16>, ptr addrspace(4) %in8301 %ext = zext <32 x i16> %load to <32 x i64>8302 store <32 x i64> %ext, ptr addrspace(1) %out8303 ret void8304}8305 8306define amdgpu_kernel void @constant_sextload_v32i16_to_v32i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {8307; GCN-NOHSA-SI-LABEL: constant_sextload_v32i16_to_v32i64:8308; GCN-NOHSA-SI: ; %bb.0:8309; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x98310; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)8311; GCN-NOHSA-SI-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x08312; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)8313; GCN-NOHSA-SI-NEXT: s_mov_b32 s18, s158314; GCN-NOHSA-SI-NEXT: s_mov_b32 s20, s138315; GCN-NOHSA-SI-NEXT: s_mov_b32 s22, s118316; GCN-NOHSA-SI-NEXT: s_mov_b32 s24, s98317; GCN-NOHSA-SI-NEXT: s_ashr_i32 s23, s1, 318318; GCN-NOHSA-SI-NEXT: s_ashr_i32 s25, s1, 168319; GCN-NOHSA-SI-NEXT: s_ashr_i32 s27, s3, 318320; GCN-NOHSA-SI-NEXT: s_ashr_i32 s29, s3, 168321; GCN-NOHSA-SI-NEXT: s_ashr_i32 s31, s5, 318322; GCN-NOHSA-SI-NEXT: s_ashr_i32 s33, s5, 168323; GCN-NOHSA-SI-NEXT: s_ashr_i32 s35, s7, 318324; GCN-NOHSA-SI-NEXT: s_ashr_i32 s37, s7, 168325; GCN-NOHSA-SI-NEXT: s_ashr_i32 s39, s9, 318326; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[48:49], s[24:25], 0x1000008327; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[50:51], s[22:23], 0x1000008328; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[52:53], s[20:21], 0x1000008329; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[54:55], s[18:19], 0x1000008330; GCN-NOHSA-SI-NEXT: s_ashr_i32 s43, s9, 168331; GCN-NOHSA-SI-NEXT: s_ashr_i32 s45, s11, 318332; GCN-NOHSA-SI-NEXT: s_ashr_i32 s47, s11, 168333; GCN-NOHSA-SI-NEXT: s_ashr_i32 s41, s13, 318334; GCN-NOHSA-SI-NEXT: s_ashr_i32 s56, s13, 168335; GCN-NOHSA-SI-NEXT: s_ashr_i32 s57, s15, 318336; GCN-NOHSA-SI-NEXT: s_ashr_i32 s58, s15, 168337; GCN-NOHSA-SI-NEXT: s_lshr_b32 s38, s14, 168338; GCN-NOHSA-SI-NEXT: s_lshr_b32 s24, s12, 168339; GCN-NOHSA-SI-NEXT: s_lshr_b32 s22, s10, 168340; GCN-NOHSA-SI-NEXT: s_lshr_b32 s26, s8, 168341; GCN-NOHSA-SI-NEXT: s_mov_b32 s46, s78342; GCN-NOHSA-SI-NEXT: s_lshr_b32 s28, s6, 168343; GCN-NOHSA-SI-NEXT: s_mov_b32 s44, s58344; GCN-NOHSA-SI-NEXT: s_lshr_b32 s30, s4, 168345; GCN-NOHSA-SI-NEXT: s_mov_b32 s42, s38346; GCN-NOHSA-SI-NEXT: s_lshr_b32 s34, s2, 168347; GCN-NOHSA-SI-NEXT: s_mov_b32 s40, s18348; GCN-NOHSA-SI-NEXT: s_lshr_b32 s36, s0, 168349; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[18:19], s[0:1], 0x1000008350; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[20:21], s[2:3], 0x1000008351; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x1000008352; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x1000008353; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x1000008354; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[2:3], s[12:13], 0x1000008355; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[12:13], s[14:15], 0x1000008356; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x1000008357; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s168358; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s178359; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s548360; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s558361; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s128362; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s138363; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s528364; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s538365; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s28366; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s38367; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, s508368; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, s518369; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v18, s488370; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v19, s498371; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s588372; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s578373; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s568374; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s418375; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0008376; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -18377; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[12:13], s[46:47], 0x1000008378; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[14:15], s[44:45], 0x1000008379; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[16:17], s[42:43], 0x1000008380; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[40:41], s[40:41], 0x1000008381; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, s478382; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v17, s458383; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v20, s438384; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v21, s398385; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:2408386; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8387; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s128388; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s138389; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s378390; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s358391; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[10:13], off, s[0:3], 0 offset:2088392; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8393; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s148394; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[14:17], off, s[0:3], 0 offset:1768395; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s158396; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s338397; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s318398; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[18:21], off, s[0:3], 0 offset:1448399; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(1)8400; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, s168401; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:1128402; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, s178403; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, s298404; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[10:13], off, s[0:3], 0 offset:808405; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[12:13], s[38:39], 0x1000008406; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v17, s278407; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[14:17], off, s[0:3], 0 offset:488408; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(2)8409; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s408410; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s418411; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s258412; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s238413; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:168414; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8415; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s108416; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s118417; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s88418; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s98419; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[8:9], s[36:37], 0x1000008420; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[10:11], s[34:35], 0x1000008421; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[14:15], s[30:31], 0x1000008422; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[16:17], s[28:29], 0x1000008423; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[26:27], s[26:27], 0x1000008424; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[24:25], s[24:25], 0x1000008425; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[22:23], s[22:23], 0x1000008426; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, s68427; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v17, s78428; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v20, s48429; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v21, s58430; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s128431; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s138432; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2248433; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8434; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s208435; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s218436; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s248437; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s258438; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1928439; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8440; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s188441; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s198442; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s228443; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s238444; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1608445; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, s268446; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, s278447; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:1288448; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v18, s168449; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v19, s178450; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:968451; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v22, s148452; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v23, s158453; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:648454; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s108455; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s118456; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:328457; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s88458; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s98459; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 08460; GCN-NOHSA-SI-NEXT: s_endpgm8461;8462; GCN-HSA-LABEL: constant_sextload_v32i16_to_v32i64:8463; GCN-HSA: ; %bb.0:8464; GCN-HSA-NEXT: s_add_i32 s12, s12, s178465; GCN-HSA-NEXT: s_load_dwordx4 s[16:19], s[8:9], 0x08466; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s138467; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 88468; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)8469; GCN-HSA-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x08470; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)8471; GCN-HSA-NEXT: s_mov_b32 s24, s158472; GCN-HSA-NEXT: s_ashr_i32 s37, s3, 318473; GCN-HSA-NEXT: s_ashr_i32 s38, s3, 168474; GCN-HSA-NEXT: s_ashr_i32 s57, s11, 168475; GCN-HSA-NEXT: s_ashr_i32 s59, s13, 318476; GCN-HSA-NEXT: s_ashr_i32 s61, s13, 168477; GCN-HSA-NEXT: s_ashr_i32 s63, s15, 318478; GCN-HSA-NEXT: s_ashr_i32 s65, s15, 168479; GCN-HSA-NEXT: s_lshr_b32 s46, s14, 168480; GCN-HSA-NEXT: s_mov_b32 s48, s138481; GCN-HSA-NEXT: s_lshr_b32 s50, s12, 168482; GCN-HSA-NEXT: s_mov_b32 s52, s118483; GCN-HSA-NEXT: s_lshr_b32 s34, s10, 168484; GCN-HSA-NEXT: s_mov_b32 s30, s98485; GCN-HSA-NEXT: s_lshr_b32 s28, s8, 168486; GCN-HSA-NEXT: s_mov_b32 s54, s78487; GCN-HSA-NEXT: s_lshr_b32 s56, s6, 168488; GCN-HSA-NEXT: s_mov_b32 s58, s58489; GCN-HSA-NEXT: s_lshr_b32 s60, s4, 168490; GCN-HSA-NEXT: s_mov_b32 s62, s38491; GCN-HSA-NEXT: s_lshr_b32 s64, s2, 168492; GCN-HSA-NEXT: s_mov_b32 s66, s18493; GCN-HSA-NEXT: s_lshr_b32 s68, s0, 168494; GCN-HSA-NEXT: s_bfe_i64 s[18:19], s[2:3], 0x1000008495; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[24:25], 0x1000008496; GCN-HSA-NEXT: s_ashr_i32 s33, s1, 318497; GCN-HSA-NEXT: s_ashr_i32 s36, s1, 168498; GCN-HSA-NEXT: s_ashr_i32 s39, s5, 318499; GCN-HSA-NEXT: s_ashr_i32 s40, s5, 168500; GCN-HSA-NEXT: s_ashr_i32 s41, s7, 318501; GCN-HSA-NEXT: s_ashr_i32 s42, s7, 168502; GCN-HSA-NEXT: s_ashr_i32 s43, s9, 318503; GCN-HSA-NEXT: s_ashr_i32 s44, s9, 168504; GCN-HSA-NEXT: s_ashr_i32 s45, s11, 318505; GCN-HSA-NEXT: s_bfe_i64 s[0:1], s[0:1], 0x1000008506; GCN-HSA-NEXT: s_bfe_i64 s[20:21], s[4:5], 0x1000008507; GCN-HSA-NEXT: s_bfe_i64 s[22:23], s[6:7], 0x1000008508; GCN-HSA-NEXT: s_bfe_i64 s[26:27], s[8:9], 0x1000008509; GCN-HSA-NEXT: s_bfe_i64 s[70:71], s[10:11], 0x1000008510; GCN-HSA-NEXT: s_bfe_i64 s[72:73], s[12:13], 0x1000008511; GCN-HSA-NEXT: s_bfe_i64 s[74:75], s[14:15], 0x1000008512; GCN-HSA-NEXT: v_mov_b32_e32 v0, s28513; GCN-HSA-NEXT: v_mov_b32_e32 v1, s38514; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[68:69], 0x1000008515; GCN-HSA-NEXT: s_bfe_i64 s[4:5], s[66:67], 0x1000008516; GCN-HSA-NEXT: s_bfe_i64 s[6:7], s[64:65], 0x1000008517; GCN-HSA-NEXT: s_bfe_i64 s[8:9], s[62:63], 0x1000008518; GCN-HSA-NEXT: s_bfe_i64 s[10:11], s[60:61], 0x1000008519; GCN-HSA-NEXT: s_bfe_i64 s[12:13], s[58:59], 0x1000008520; GCN-HSA-NEXT: s_bfe_i64 s[14:15], s[56:57], 0x1000008521; GCN-HSA-NEXT: s_bfe_i64 s[24:25], s[54:55], 0x1000008522; GCN-HSA-NEXT: s_bfe_i64 s[28:29], s[28:29], 0x1000008523; GCN-HSA-NEXT: s_bfe_i64 s[30:31], s[30:31], 0x1000008524; GCN-HSA-NEXT: s_bfe_i64 s[34:35], s[34:35], 0x1000008525; GCN-HSA-NEXT: s_bfe_i64 s[52:53], s[52:53], 0x1000008526; GCN-HSA-NEXT: s_bfe_i64 s[50:51], s[50:51], 0x1000008527; GCN-HSA-NEXT: s_bfe_i64 s[48:49], s[48:49], 0x1000008528; GCN-HSA-NEXT: s_bfe_i64 s[46:47], s[46:47], 0x1000008529; GCN-HSA-NEXT: s_add_u32 s54, s16, 0xf08530; GCN-HSA-NEXT: s_addc_u32 s55, s17, 08531; GCN-HSA-NEXT: v_mov_b32_e32 v6, s468532; GCN-HSA-NEXT: s_add_u32 s46, s16, 0xe08533; GCN-HSA-NEXT: v_mov_b32_e32 v7, s478534; GCN-HSA-NEXT: s_addc_u32 s47, s17, 08535; GCN-HSA-NEXT: v_mov_b32_e32 v24, s468536; GCN-HSA-NEXT: v_mov_b32_e32 v25, s478537; GCN-HSA-NEXT: s_add_u32 s46, s16, 0xd08538; GCN-HSA-NEXT: s_addc_u32 s47, s17, 08539; GCN-HSA-NEXT: v_mov_b32_e32 v26, s468540; GCN-HSA-NEXT: v_mov_b32_e32 v27, s478541; GCN-HSA-NEXT: s_add_u32 s46, s16, 0xc08542; GCN-HSA-NEXT: s_addc_u32 s47, s17, 08543; GCN-HSA-NEXT: v_mov_b32_e32 v28, s468544; GCN-HSA-NEXT: v_mov_b32_e32 v18, s548545; GCN-HSA-NEXT: v_mov_b32_e32 v29, s478546; GCN-HSA-NEXT: s_add_u32 s46, s16, 0xb08547; GCN-HSA-NEXT: v_mov_b32_e32 v19, s558548; GCN-HSA-NEXT: v_mov_b32_e32 v2, s658549; GCN-HSA-NEXT: v_mov_b32_e32 v3, s638550; GCN-HSA-NEXT: s_addc_u32 s47, s17, 08551; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[0:3]8552; GCN-HSA-NEXT: v_mov_b32_e32 v4, s748553; GCN-HSA-NEXT: v_mov_b32_e32 v0, s308554; GCN-HSA-NEXT: s_add_u32 s30, s16, 0xa08555; GCN-HSA-NEXT: v_mov_b32_e32 v5, s758556; GCN-HSA-NEXT: v_mov_b32_e32 v1, s318557; GCN-HSA-NEXT: s_addc_u32 s31, s17, 08558; GCN-HSA-NEXT: flat_store_dwordx4 v[24:25], v[4:7]8559; GCN-HSA-NEXT: v_mov_b32_e32 v8, s488560; GCN-HSA-NEXT: v_mov_b32_e32 v4, s268561; GCN-HSA-NEXT: s_add_u32 s26, s16, 0x908562; GCN-HSA-NEXT: v_mov_b32_e32 v5, s278563; GCN-HSA-NEXT: s_addc_u32 s27, s17, 08564; GCN-HSA-NEXT: v_mov_b32_e32 v24, s268565; GCN-HSA-NEXT: v_mov_b32_e32 v25, s278566; GCN-HSA-NEXT: s_add_u32 s26, s16, 0x808567; GCN-HSA-NEXT: v_mov_b32_e32 v9, s498568; GCN-HSA-NEXT: v_mov_b32_e32 v10, s618569; GCN-HSA-NEXT: v_mov_b32_e32 v11, s598570; GCN-HSA-NEXT: s_addc_u32 s27, s17, 08571; GCN-HSA-NEXT: flat_store_dwordx4 v[26:27], v[8:11]8572; GCN-HSA-NEXT: v_mov_b32_e32 v12, s728573; GCN-HSA-NEXT: v_mov_b32_e32 v8, s248574; GCN-HSA-NEXT: s_add_u32 s24, s16, 0x708575; GCN-HSA-NEXT: v_mov_b32_e32 v13, s738576; GCN-HSA-NEXT: v_mov_b32_e32 v14, s508577; GCN-HSA-NEXT: v_mov_b32_e32 v15, s518578; GCN-HSA-NEXT: v_mov_b32_e32 v9, s258579; GCN-HSA-NEXT: s_addc_u32 s25, s17, 08580; GCN-HSA-NEXT: v_mov_b32_e32 v30, s468581; GCN-HSA-NEXT: flat_store_dwordx4 v[28:29], v[12:15]8582; GCN-HSA-NEXT: v_mov_b32_e32 v16, s528583; GCN-HSA-NEXT: v_mov_b32_e32 v14, s148584; GCN-HSA-NEXT: s_add_u32 s14, s16, 0x608585; GCN-HSA-NEXT: v_mov_b32_e32 v17, s538586; GCN-HSA-NEXT: v_mov_b32_e32 v31, s478587; GCN-HSA-NEXT: v_mov_b32_e32 v18, s578588; GCN-HSA-NEXT: v_mov_b32_e32 v19, s458589; GCN-HSA-NEXT: v_mov_b32_e32 v10, s308590; GCN-HSA-NEXT: v_mov_b32_e32 v15, s158591; GCN-HSA-NEXT: s_addc_u32 s15, s17, 08592; GCN-HSA-NEXT: v_mov_b32_e32 v20, s708593; GCN-HSA-NEXT: v_mov_b32_e32 v21, s718594; GCN-HSA-NEXT: v_mov_b32_e32 v22, s348595; GCN-HSA-NEXT: v_mov_b32_e32 v23, s358596; GCN-HSA-NEXT: v_mov_b32_e32 v11, s318597; GCN-HSA-NEXT: v_mov_b32_e32 v2, s448598; GCN-HSA-NEXT: v_mov_b32_e32 v3, s438599; GCN-HSA-NEXT: v_mov_b32_e32 v26, s268600; GCN-HSA-NEXT: flat_store_dwordx4 v[30:31], v[16:19]8601; GCN-HSA-NEXT: v_mov_b32_e32 v27, s278602; GCN-HSA-NEXT: v_mov_b32_e32 v16, s248603; GCN-HSA-NEXT: v_mov_b32_e32 v19, s158604; GCN-HSA-NEXT: v_mov_b32_e32 v6, s288605; GCN-HSA-NEXT: v_mov_b32_e32 v7, s298606; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[20:23]8607; GCN-HSA-NEXT: v_mov_b32_e32 v12, s228608; GCN-HSA-NEXT: v_mov_b32_e32 v10, s428609; GCN-HSA-NEXT: v_mov_b32_e32 v11, s418610; GCN-HSA-NEXT: v_mov_b32_e32 v13, s238611; GCN-HSA-NEXT: v_mov_b32_e32 v17, s258612; GCN-HSA-NEXT: v_mov_b32_e32 v18, s148613; GCN-HSA-NEXT: flat_store_dwordx4 v[24:25], v[0:3]8614; GCN-HSA-NEXT: flat_store_dwordx4 v[26:27], v[4:7]8615; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[8:11]8616; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[12:15]8617; GCN-HSA-NEXT: v_mov_b32_e32 v0, s128618; GCN-HSA-NEXT: s_add_u32 s12, s16, 0x508619; GCN-HSA-NEXT: v_mov_b32_e32 v1, s138620; GCN-HSA-NEXT: s_addc_u32 s13, s17, 08621; GCN-HSA-NEXT: v_mov_b32_e32 v4, s128622; GCN-HSA-NEXT: v_mov_b32_e32 v2, s408623; GCN-HSA-NEXT: v_mov_b32_e32 v3, s398624; GCN-HSA-NEXT: v_mov_b32_e32 v5, s138625; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8626; GCN-HSA-NEXT: s_nop 08627; GCN-HSA-NEXT: v_mov_b32_e32 v2, s108628; GCN-HSA-NEXT: s_add_u32 s10, s16, 648629; GCN-HSA-NEXT: v_mov_b32_e32 v3, s118630; GCN-HSA-NEXT: s_addc_u32 s11, s17, 08631; GCN-HSA-NEXT: v_mov_b32_e32 v4, s108632; GCN-HSA-NEXT: v_mov_b32_e32 v0, s208633; GCN-HSA-NEXT: v_mov_b32_e32 v1, s218634; GCN-HSA-NEXT: v_mov_b32_e32 v5, s118635; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8636; GCN-HSA-NEXT: s_nop 08637; GCN-HSA-NEXT: v_mov_b32_e32 v0, s88638; GCN-HSA-NEXT: s_add_u32 s8, s16, 488639; GCN-HSA-NEXT: v_mov_b32_e32 v1, s98640; GCN-HSA-NEXT: s_addc_u32 s9, s17, 08641; GCN-HSA-NEXT: v_mov_b32_e32 v4, s88642; GCN-HSA-NEXT: v_mov_b32_e32 v2, s388643; GCN-HSA-NEXT: v_mov_b32_e32 v3, s378644; GCN-HSA-NEXT: v_mov_b32_e32 v5, s98645; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8646; GCN-HSA-NEXT: s_nop 08647; GCN-HSA-NEXT: v_mov_b32_e32 v2, s68648; GCN-HSA-NEXT: s_add_u32 s6, s16, 328649; GCN-HSA-NEXT: v_mov_b32_e32 v3, s78650; GCN-HSA-NEXT: s_addc_u32 s7, s17, 08651; GCN-HSA-NEXT: v_mov_b32_e32 v4, s68652; GCN-HSA-NEXT: v_mov_b32_e32 v0, s188653; GCN-HSA-NEXT: v_mov_b32_e32 v1, s198654; GCN-HSA-NEXT: v_mov_b32_e32 v5, s78655; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8656; GCN-HSA-NEXT: s_nop 08657; GCN-HSA-NEXT: v_mov_b32_e32 v0, s48658; GCN-HSA-NEXT: s_add_u32 s4, s16, 168659; GCN-HSA-NEXT: v_mov_b32_e32 v1, s58660; GCN-HSA-NEXT: s_addc_u32 s5, s17, 08661; GCN-HSA-NEXT: v_mov_b32_e32 v4, s48662; GCN-HSA-NEXT: v_mov_b32_e32 v2, s368663; GCN-HSA-NEXT: v_mov_b32_e32 v3, s338664; GCN-HSA-NEXT: v_mov_b32_e32 v5, s58665; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8666; GCN-HSA-NEXT: v_mov_b32_e32 v4, s168667; GCN-HSA-NEXT: v_mov_b32_e32 v0, s08668; GCN-HSA-NEXT: v_mov_b32_e32 v1, s18669; GCN-HSA-NEXT: v_mov_b32_e32 v2, s28670; GCN-HSA-NEXT: v_mov_b32_e32 v3, s38671; GCN-HSA-NEXT: v_mov_b32_e32 v5, s178672; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8673; GCN-HSA-NEXT: s_endpgm8674;8675; GCN-NOHSA-VI-LABEL: constant_sextload_v32i16_to_v32i64:8676; GCN-NOHSA-VI: ; %bb.0:8677; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x248678; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)8679; GCN-NOHSA-VI-NEXT: s_load_dwordx16 s[0:15], s[18:19], 0x08680; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)8681; GCN-NOHSA-VI-NEXT: s_lshr_b32 s22, s0, 168682; GCN-NOHSA-VI-NEXT: s_mov_b32 s26, s18683; GCN-NOHSA-VI-NEXT: s_lshr_b32 s28, s1, 168684; GCN-NOHSA-VI-NEXT: s_lshr_b32 s30, s2, 168685; GCN-NOHSA-VI-NEXT: s_mov_b32 s34, s38686; GCN-NOHSA-VI-NEXT: s_lshr_b32 s36, s3, 168687; GCN-NOHSA-VI-NEXT: s_lshr_b32 s40, s4, 168688; GCN-NOHSA-VI-NEXT: s_mov_b32 s42, s58689; GCN-NOHSA-VI-NEXT: s_lshr_b32 s44, s5, 168690; GCN-NOHSA-VI-NEXT: s_lshr_b32 s46, s6, 168691; GCN-NOHSA-VI-NEXT: s_mov_b32 s48, s78692; GCN-NOHSA-VI-NEXT: s_lshr_b32 s50, s7, 168693; GCN-NOHSA-VI-NEXT: s_lshr_b32 s52, s8, 168694; GCN-NOHSA-VI-NEXT: s_mov_b32 s54, s98695; GCN-NOHSA-VI-NEXT: s_lshr_b32 s56, s9, 168696; GCN-NOHSA-VI-NEXT: s_lshr_b32 s58, s10, 168697; GCN-NOHSA-VI-NEXT: s_mov_b32 s60, s118698; GCN-NOHSA-VI-NEXT: s_lshr_b32 s62, s11, 168699; GCN-NOHSA-VI-NEXT: s_lshr_b32 s66, s12, 168700; GCN-NOHSA-VI-NEXT: s_mov_b32 s68, s138701; GCN-NOHSA-VI-NEXT: s_lshr_b32 s70, s13, 168702; GCN-NOHSA-VI-NEXT: s_lshr_b32 s74, s14, 168703; GCN-NOHSA-VI-NEXT: s_mov_b32 s76, s158704; GCN-NOHSA-VI-NEXT: s_lshr_b32 s78, s15, 168705; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[18:19], s[0:1], 0x1000008706; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[0:1], s[2:3], 0x1000008707; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[2:3], s[4:5], 0x1000008708; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[20:21], s[6:7], 0x1000008709; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[24:25], s[8:9], 0x1000008710; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[38:39], s[10:11], 0x1000008711; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[64:65], s[12:13], 0x1000008712; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[72:73], s[14:15], 0x1000008713; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[4:5], s[22:23], 0x1000008714; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[8:9], s[26:27], 0x1000008715; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[6:7], s[28:29], 0x1000008716; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[10:11], s[30:31], 0x1000008717; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[14:15], s[34:35], 0x1000008718; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[12:13], s[36:37], 0x1000008719; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[22:23], s[40:41], 0x1000008720; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[28:29], s[42:43], 0x1000008721; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[26:27], s[44:45], 0x1000008722; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[30:31], s[46:47], 0x1000008723; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[36:37], s[48:49], 0x1000008724; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[34:35], s[50:51], 0x1000008725; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[40:41], s[52:53], 0x1000008726; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[44:45], s[54:55], 0x1000008727; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[42:43], s[56:57], 0x1000008728; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[46:47], s[58:59], 0x1000008729; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[48:49], s[60:61], 0x1000008730; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[50:51], s[62:63], 0x1000008731; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[52:53], s[66:67], 0x1000008732; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[54:55], s[68:69], 0x1000008733; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[56:57], s[70:71], 0x1000008734; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[58:59], s[74:75], 0x1000008735; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[60:61], s[76:77], 0x1000008736; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[62:63], s[78:79], 0x1000008737; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s608738; GCN-NOHSA-VI-NEXT: s_add_u32 s60, s16, 0xf08739; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s618740; GCN-NOHSA-VI-NEXT: s_addc_u32 s61, s17, 08741; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s608742; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s628743; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s638744; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s618745; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8746; GCN-NOHSA-VI-NEXT: s_nop 08747; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s588748; GCN-NOHSA-VI-NEXT: s_add_u32 s58, s16, 0xe08749; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s598750; GCN-NOHSA-VI-NEXT: s_addc_u32 s59, s17, 08751; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s588752; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s728753; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s738754; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s598755; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8756; GCN-NOHSA-VI-NEXT: s_nop 08757; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s548758; GCN-NOHSA-VI-NEXT: s_add_u32 s54, s16, 0xd08759; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s558760; GCN-NOHSA-VI-NEXT: s_addc_u32 s55, s17, 08761; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s548762; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s568763; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s578764; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s558765; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8766; GCN-NOHSA-VI-NEXT: s_nop 08767; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s528768; GCN-NOHSA-VI-NEXT: s_add_u32 s52, s16, 0xc08769; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s538770; GCN-NOHSA-VI-NEXT: s_addc_u32 s53, s17, 08771; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s528772; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s648773; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s658774; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s538775; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8776; GCN-NOHSA-VI-NEXT: s_nop 08777; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s488778; GCN-NOHSA-VI-NEXT: s_add_u32 s48, s16, 0xb08779; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s498780; GCN-NOHSA-VI-NEXT: s_addc_u32 s49, s17, 08781; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s488782; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s508783; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s518784; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s498785; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8786; GCN-NOHSA-VI-NEXT: s_nop 08787; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s388788; GCN-NOHSA-VI-NEXT: s_add_u32 s38, s16, 0xa08789; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s398790; GCN-NOHSA-VI-NEXT: s_addc_u32 s39, s17, 08791; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s388792; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s468793; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s478794; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s398795; GCN-NOHSA-VI-NEXT: s_add_u32 s38, s16, 0x908796; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8797; GCN-NOHSA-VI-NEXT: s_addc_u32 s39, s17, 08798; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s388799; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s448800; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s458801; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s428802; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s438803; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s398804; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8805; GCN-NOHSA-VI-NEXT: s_nop 08806; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s248807; GCN-NOHSA-VI-NEXT: s_add_u32 s24, s16, 0x808808; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s258809; GCN-NOHSA-VI-NEXT: s_addc_u32 s25, s17, 08810; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s248811; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s408812; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s418813; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s258814; GCN-NOHSA-VI-NEXT: s_add_u32 s24, s16, 0x708815; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8816; GCN-NOHSA-VI-NEXT: s_addc_u32 s25, s17, 08817; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s248818; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s368819; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s378820; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s348821; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s358822; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s258823; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8824; GCN-NOHSA-VI-NEXT: s_nop 08825; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s208826; GCN-NOHSA-VI-NEXT: s_add_u32 s20, s16, 0x608827; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s218828; GCN-NOHSA-VI-NEXT: s_addc_u32 s21, s17, 08829; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s208830; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s308831; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s318832; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s218833; GCN-NOHSA-VI-NEXT: s_add_u32 s20, s16, 0x508834; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8835; GCN-NOHSA-VI-NEXT: s_addc_u32 s21, s17, 08836; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s208837; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s288838; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s298839; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s268840; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s278841; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s218842; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8843; GCN-NOHSA-VI-NEXT: s_nop 08844; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s28845; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s16, 648846; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s38847; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s17, 08848; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s38849; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s28850; GCN-NOHSA-VI-NEXT: s_add_u32 s2, s16, 488851; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s228852; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s238853; GCN-NOHSA-VI-NEXT: s_addc_u32 s3, s17, 08854; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8855; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s38856; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s148857; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s158858; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s128859; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s138860; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s28861; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8862; GCN-NOHSA-VI-NEXT: s_nop 08863; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s08864; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 328865; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s18866; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 08867; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s18868; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s08869; GCN-NOHSA-VI-NEXT: s_add_u32 s0, s16, 168870; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s108871; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s118872; GCN-NOHSA-VI-NEXT: s_addc_u32 s1, s17, 08873; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8874; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s18875; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s88876; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s98877; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s68878; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s78879; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s08880; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8881; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s168882; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s188883; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s198884; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s48885; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s58886; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s178887; GCN-NOHSA-VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8888; GCN-NOHSA-VI-NEXT: s_endpgm8889;8890; EG-LABEL: constant_sextload_v32i16_to_v32i64:8891; EG: ; %bb.0:8892; EG-NEXT: ALU 0, @30, KC0[CB0:0-32], KC1[]8893; EG-NEXT: TEX 0 @228894; EG-NEXT: ALU 55, @31, KC0[CB0:0-32], KC1[]8895; EG-NEXT: TEX 2 @248896; EG-NEXT: ALU 74, @87, KC0[CB0:0-32], KC1[]8897; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T50.XYZW, T38.X, 08898; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T49.XYZW, T36.X, 08899; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T39.XYZW, T34.X, 08900; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T48.XYZW, T33.X, 08901; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T47.XYZW, T32.X, 08902; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T46.XYZW, T31.X, 08903; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T40.XYZW, T30.X, 08904; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T45.XYZW, T29.X, 08905; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T44.XYZW, T28.X, 08906; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T43.XYZW, T27.X, 08907; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T26.X, 08908; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T42.XYZW, T25.X, 08909; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T41.XYZW, T24.X, 08910; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T23.X, 08911; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T37.XYZW, T22.X, 08912; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T35.XYZW, T21.X, 18913; EG-NEXT: CF_END8914; EG-NEXT: Fetch clause starting at 22:8915; EG-NEXT: VTX_READ_128 T20.XYZW, T19.X, 0, #18916; EG-NEXT: Fetch clause starting at 24:8917; EG-NEXT: VTX_READ_128 T38.XYZW, T19.X, 48, #18918; EG-NEXT: VTX_READ_128 T39.XYZW, T19.X, 32, #18919; EG-NEXT: VTX_READ_128 T40.XYZW, T19.X, 16, #18920; EG-NEXT: ALU clause starting at 30:8921; EG-NEXT: MOV * T19.X, KC0[2].Z,8922; EG-NEXT: ALU clause starting at 31:8923; EG-NEXT: LSHR T21.X, KC0[2].Y, literal.x,8924; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8925; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)8926; EG-NEXT: LSHR T22.X, PV.W, literal.x,8927; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8928; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)8929; EG-NEXT: LSHR T23.X, PV.W, literal.x,8930; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8931; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)8932; EG-NEXT: LSHR T24.X, PV.W, literal.x,8933; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8934; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)8935; EG-NEXT: LSHR T25.X, PV.W, literal.x,8936; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8937; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)8938; EG-NEXT: LSHR T26.X, PV.W, literal.x,8939; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8940; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)8941; EG-NEXT: LSHR T27.X, PV.W, literal.x,8942; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8943; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)8944; EG-NEXT: LSHR T28.X, PV.W, literal.x,8945; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8946; EG-NEXT: 2(2.802597e-45), 128(1.793662e-43)8947; EG-NEXT: LSHR T29.X, PV.W, literal.x,8948; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8949; EG-NEXT: 2(2.802597e-45), 144(2.017870e-43)8950; EG-NEXT: LSHR T30.X, PV.W, literal.x,8951; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8952; EG-NEXT: 2(2.802597e-45), 160(2.242078e-43)8953; EG-NEXT: LSHR T31.X, PV.W, literal.x,8954; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8955; EG-NEXT: 2(2.802597e-45), 176(2.466285e-43)8956; EG-NEXT: LSHR T32.X, PV.W, literal.x,8957; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8958; EG-NEXT: 2(2.802597e-45), 192(2.690493e-43)8959; EG-NEXT: LSHR T33.X, PV.W, literal.x,8960; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8961; EG-NEXT: 2(2.802597e-45), 208(2.914701e-43)8962; EG-NEXT: LSHR T34.X, PV.W, literal.x,8963; EG-NEXT: ADD_INT T0.W, KC0[2].Y, literal.y,8964; EG-NEXT: ASHR * T35.W, T20.X, literal.z,8965; EG-NEXT: 2(2.802597e-45), 224(3.138909e-43)8966; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)8967; EG-NEXT: LSHR T36.X, PV.W, literal.x,8968; EG-NEXT: ASHR T35.Z, T20.X, literal.y,8969; EG-NEXT: ASHR * T37.W, T20.Y, literal.z,8970; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)8971; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)8972; EG-NEXT: BFE_INT T35.X, T20.X, 0.0, literal.x,8973; EG-NEXT: ASHR * T37.Z, T20.Y, literal.x,8974; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8975; EG-NEXT: BFE_INT T37.X, T20.Y, 0.0, literal.x,8976; EG-NEXT: ASHR T35.Y, PV.X, literal.y,8977; EG-NEXT: ASHR * T19.W, T20.Z, literal.y,8978; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8979; EG-NEXT: ALU clause starting at 87:8980; EG-NEXT: ASHR T19.Z, T20.Z, literal.x,8981; EG-NEXT: ASHR * T41.W, T20.W, literal.y,8982; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8983; EG-NEXT: BFE_INT T19.X, T20.Z, 0.0, literal.x,8984; EG-NEXT: ASHR T37.Y, T37.X, literal.y,8985; EG-NEXT: ASHR T41.Z, T20.W, literal.x,8986; EG-NEXT: ASHR * T42.W, T40.X, literal.y, BS:VEC_120/SCL_2128987; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8988; EG-NEXT: BFE_INT T41.X, T20.W, 0.0, literal.x,8989; EG-NEXT: ASHR T19.Y, PV.X, literal.y,8990; EG-NEXT: ASHR T42.Z, T40.X, literal.x,8991; EG-NEXT: ASHR * T20.W, T40.Y, literal.y,8992; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8993; EG-NEXT: BFE_INT T42.X, T40.X, 0.0, literal.x,8994; EG-NEXT: ASHR T41.Y, PV.X, literal.y,8995; EG-NEXT: ASHR T20.Z, T40.Y, literal.x,8996; EG-NEXT: ASHR * T43.W, T40.Z, literal.y,8997; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8998; EG-NEXT: BFE_INT T20.X, T40.Y, 0.0, literal.x,8999; EG-NEXT: ASHR T42.Y, PV.X, literal.y,9000; EG-NEXT: ASHR T43.Z, T40.Z, literal.x,9001; EG-NEXT: ASHR * T44.W, T40.W, literal.y,9002; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9003; EG-NEXT: BFE_INT T43.X, T40.Z, 0.0, literal.x,9004; EG-NEXT: ASHR T20.Y, PV.X, literal.y,9005; EG-NEXT: ASHR T44.Z, T40.W, literal.x,9006; EG-NEXT: ASHR * T45.W, T39.X, literal.y,9007; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9008; EG-NEXT: BFE_INT T44.X, T40.W, 0.0, literal.x,9009; EG-NEXT: ASHR T43.Y, PV.X, literal.y,9010; EG-NEXT: ASHR T45.Z, T39.X, literal.x,9011; EG-NEXT: ASHR * T40.W, T39.Y, literal.y,9012; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9013; EG-NEXT: BFE_INT T45.X, T39.X, 0.0, literal.x,9014; EG-NEXT: ASHR T44.Y, PV.X, literal.y,9015; EG-NEXT: ASHR T40.Z, T39.Y, literal.x,9016; EG-NEXT: ASHR * T46.W, T39.Z, literal.y,9017; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9018; EG-NEXT: BFE_INT T40.X, T39.Y, 0.0, literal.x,9019; EG-NEXT: ASHR T45.Y, PV.X, literal.y,9020; EG-NEXT: ASHR T46.Z, T39.Z, literal.x,9021; EG-NEXT: ASHR * T47.W, T39.W, literal.y,9022; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9023; EG-NEXT: BFE_INT T46.X, T39.Z, 0.0, literal.x,9024; EG-NEXT: ASHR T40.Y, PV.X, literal.y,9025; EG-NEXT: ASHR T47.Z, T39.W, literal.x,9026; EG-NEXT: ASHR * T48.W, T38.X, literal.y,9027; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9028; EG-NEXT: BFE_INT T47.X, T39.W, 0.0, literal.x,9029; EG-NEXT: ASHR T46.Y, PV.X, literal.y,9030; EG-NEXT: ASHR T48.Z, T38.X, literal.x,9031; EG-NEXT: ASHR * T39.W, T38.Y, literal.y,9032; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9033; EG-NEXT: BFE_INT T48.X, T38.X, 0.0, literal.x,9034; EG-NEXT: ASHR T47.Y, PV.X, literal.y,9035; EG-NEXT: ASHR T39.Z, T38.Y, literal.x,9036; EG-NEXT: ASHR * T49.W, T38.Z, literal.y,9037; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9038; EG-NEXT: BFE_INT T39.X, T38.Y, 0.0, literal.x,9039; EG-NEXT: ASHR T48.Y, PV.X, literal.y,9040; EG-NEXT: ASHR T49.Z, T38.Z, literal.x,9041; EG-NEXT: ASHR * T50.W, T38.W, literal.y,9042; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9043; EG-NEXT: BFE_INT T49.X, T38.Z, 0.0, literal.x,9044; EG-NEXT: ASHR T39.Y, PV.X, literal.y,9045; EG-NEXT: ASHR * T50.Z, T38.W, literal.x,9046; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9047; EG-NEXT: BFE_INT T50.X, T38.W, 0.0, literal.x,9048; EG-NEXT: ASHR T49.Y, PV.X, literal.y,9049; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,9050; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)9051; EG-NEXT: 240(3.363116e-43), 0(0.000000e+00)9052; EG-NEXT: LSHR T38.X, PV.W, literal.x,9053; EG-NEXT: ASHR * T50.Y, PV.X, literal.y,9054; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)9055;9056; GFX12-LABEL: constant_sextload_v32i16_to_v32i64:9057; GFX12: ; %bb.0:9058; GFX12-NEXT: s_load_b128 s[16:19], s[4:5], 0x249059; GFX12-NEXT: s_wait_kmcnt 0x09060; GFX12-NEXT: s_load_b512 s[0:15], s[18:19], 0x09061; GFX12-NEXT: s_wait_kmcnt 0x09062; GFX12-NEXT: s_lshr_b32 s28, s2, 169063; GFX12-NEXT: s_lshr_b32 s42, s5, 169064; GFX12-NEXT: s_lshr_b32 s50, s8, 169065; GFX12-NEXT: s_mov_b32 s60, s119066; GFX12-NEXT: s_lshr_b32 s22, s0, 169067; GFX12-NEXT: s_mov_b32 s24, s19068; GFX12-NEXT: s_lshr_b32 s26, s1, 169069; GFX12-NEXT: s_mov_b32 s30, s39070; GFX12-NEXT: s_lshr_b32 s36, s3, 169071; GFX12-NEXT: s_lshr_b32 s38, s4, 169072; GFX12-NEXT: s_mov_b32 s40, s59073; GFX12-NEXT: s_lshr_b32 s44, s6, 169074; GFX12-NEXT: s_mov_b32 s46, s79075; GFX12-NEXT: s_lshr_b32 s48, s7, 169076; GFX12-NEXT: s_mov_b32 s52, s99077; GFX12-NEXT: s_lshr_b32 s54, s9, 169078; GFX12-NEXT: s_bfe_i64 s[56:57], s[10:11], 0x1000009079; GFX12-NEXT: s_lshr_b32 s58, s10, 169080; GFX12-NEXT: s_lshr_b32 s62, s11, 169081; GFX12-NEXT: s_bfe_i64 s[10:11], s[28:29], 0x1000009082; GFX12-NEXT: s_bfe_i64 s[28:29], s[42:43], 0x1000009083; GFX12-NEXT: s_bfe_i64 s[42:43], s[50:51], 0x1000009084; GFX12-NEXT: s_bfe_i64 s[50:51], s[60:61], 0x1000009085; GFX12-NEXT: s_lshr_b32 s60, s14, 169086; GFX12-NEXT: s_bfe_i64 s[64:65], s[14:15], 0x1000009087; GFX12-NEXT: s_mov_b32 s14, s159088; GFX12-NEXT: s_lshr_b32 s66, s15, 169089; GFX12-NEXT: s_bfe_i64 s[18:19], s[0:1], 0x1000009090; GFX12-NEXT: s_bfe_i64 s[0:1], s[2:3], 0x1000009091; GFX12-NEXT: s_bfe_i64 s[2:3], s[4:5], 0x1000009092; GFX12-NEXT: s_bfe_i64 s[20:21], s[6:7], 0x1000009093; GFX12-NEXT: s_bfe_i64 s[34:35], s[8:9], 0x1000009094; GFX12-NEXT: s_bfe_i64 s[4:5], s[22:23], 0x1000009095; GFX12-NEXT: s_bfe_i64 s[8:9], s[24:25], 0x1000009096; GFX12-NEXT: s_bfe_i64 s[6:7], s[26:27], 0x1000009097; GFX12-NEXT: s_bfe_i64 s[24:25], s[30:31], 0x1000009098; GFX12-NEXT: s_bfe_i64 s[22:23], s[36:37], 0x1000009099; GFX12-NEXT: s_bfe_i64 s[26:27], s[38:39], 0x1000009100; GFX12-NEXT: s_bfe_i64 s[30:31], s[40:41], 0x1000009101; GFX12-NEXT: s_bfe_i64 s[36:37], s[44:45], 0x1000009102; GFX12-NEXT: s_bfe_i64 s[40:41], s[46:47], 0x1000009103; GFX12-NEXT: s_bfe_i64 s[38:39], s[48:49], 0x1000009104; GFX12-NEXT: s_bfe_i64 s[44:45], s[52:53], 0x1000009105; GFX12-NEXT: s_bfe_i64 s[46:47], s[54:55], 0x1000009106; GFX12-NEXT: s_bfe_i64 s[48:49], s[58:59], 0x1000009107; GFX12-NEXT: s_lshr_b32 s52, s12, 169108; GFX12-NEXT: s_bfe_i64 s[54:55], s[12:13], 0x1000009109; GFX12-NEXT: s_mov_b32 s12, s139110; GFX12-NEXT: s_lshr_b32 s58, s13, 169111; GFX12-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x1000009112; GFX12-NEXT: s_bfe_i64 s[66:67], s[66:67], 0x1000009113; GFX12-NEXT: s_bfe_i64 s[60:61], s[60:61], 0x1000009114; GFX12-NEXT: v_dual_mov_b32 v24, 0 :: v_dual_mov_b32 v1, s159115; GFX12-NEXT: s_bfe_i64 s[12:13], s[12:13], 0x1000009116; GFX12-NEXT: s_bfe_i64 s[58:59], s[58:59], 0x1000009117; GFX12-NEXT: v_dual_mov_b32 v0, s14 :: v_dual_mov_b32 v3, s679118; GFX12-NEXT: v_dual_mov_b32 v2, s66 :: v_dual_mov_b32 v5, s659119; GFX12-NEXT: s_bfe_i64 s[52:53], s[52:53], 0x1000009120; GFX12-NEXT: v_dual_mov_b32 v4, s64 :: v_dual_mov_b32 v7, s619121; GFX12-NEXT: v_dual_mov_b32 v6, s60 :: v_dual_mov_b32 v9, s139122; GFX12-NEXT: v_dual_mov_b32 v8, s12 :: v_dual_mov_b32 v11, s599123; GFX12-NEXT: v_dual_mov_b32 v10, s58 :: v_dual_mov_b32 v13, s559124; GFX12-NEXT: v_dual_mov_b32 v12, s54 :: v_dual_mov_b32 v15, s539125; GFX12-NEXT: v_mov_b32_e32 v14, s529126; GFX12-NEXT: s_bfe_i64 s[12:13], s[62:63], 0x1000009127; GFX12-NEXT: s_clause 0x39128; GFX12-NEXT: global_store_b128 v24, v[0:3], s[16:17] offset:2409129; GFX12-NEXT: global_store_b128 v24, v[4:7], s[16:17] offset:2249130; GFX12-NEXT: global_store_b128 v24, v[8:11], s[16:17] offset:2089131; GFX12-NEXT: global_store_b128 v24, v[12:15], s[16:17] offset:1929132; GFX12-NEXT: s_wait_alu depctr_sa_sdst(0)9133; GFX12-NEXT: v_dual_mov_b32 v0, s50 :: v_dual_mov_b32 v3, s139134; GFX12-NEXT: v_dual_mov_b32 v1, s51 :: v_dual_mov_b32 v2, s129135; GFX12-NEXT: v_dual_mov_b32 v5, s57 :: v_dual_mov_b32 v4, s569136; GFX12-NEXT: v_dual_mov_b32 v7, s49 :: v_dual_mov_b32 v6, s489137; GFX12-NEXT: v_dual_mov_b32 v9, s45 :: v_dual_mov_b32 v8, s449138; GFX12-NEXT: v_dual_mov_b32 v11, s47 :: v_dual_mov_b32 v10, s469139; GFX12-NEXT: v_dual_mov_b32 v13, s35 :: v_dual_mov_b32 v12, s349140; GFX12-NEXT: v_dual_mov_b32 v15, s43 :: v_dual_mov_b32 v14, s429141; GFX12-NEXT: v_dual_mov_b32 v17, s41 :: v_dual_mov_b32 v16, s409142; GFX12-NEXT: v_dual_mov_b32 v19, s39 :: v_dual_mov_b32 v18, s389143; GFX12-NEXT: v_dual_mov_b32 v21, s21 :: v_dual_mov_b32 v20, s209144; GFX12-NEXT: v_dual_mov_b32 v23, s37 :: v_dual_mov_b32 v22, s369145; GFX12-NEXT: s_clause 0x59146; GFX12-NEXT: global_store_b128 v24, v[0:3], s[16:17] offset:1769147; GFX12-NEXT: global_store_b128 v24, v[4:7], s[16:17] offset:1609148; GFX12-NEXT: global_store_b128 v24, v[8:11], s[16:17] offset:1449149; GFX12-NEXT: global_store_b128 v24, v[12:15], s[16:17] offset:1289150; GFX12-NEXT: global_store_b128 v24, v[16:19], s[16:17] offset:1129151; GFX12-NEXT: global_store_b128 v24, v[20:23], s[16:17] offset:969152; GFX12-NEXT: v_dual_mov_b32 v0, s30 :: v_dual_mov_b32 v3, s299153; GFX12-NEXT: v_dual_mov_b32 v1, s31 :: v_dual_mov_b32 v2, s289154; GFX12-NEXT: v_dual_mov_b32 v5, s3 :: v_dual_mov_b32 v4, s29155; GFX12-NEXT: v_dual_mov_b32 v7, s27 :: v_dual_mov_b32 v6, s269156; GFX12-NEXT: v_dual_mov_b32 v9, s25 :: v_dual_mov_b32 v8, s249157; GFX12-NEXT: v_dual_mov_b32 v11, s23 :: v_dual_mov_b32 v10, s229158; GFX12-NEXT: v_dual_mov_b32 v13, s1 :: v_dual_mov_b32 v12, s09159; GFX12-NEXT: v_dual_mov_b32 v15, s11 :: v_dual_mov_b32 v14, s109160; GFX12-NEXT: v_dual_mov_b32 v17, s9 :: v_dual_mov_b32 v16, s89161; GFX12-NEXT: v_dual_mov_b32 v19, s7 :: v_dual_mov_b32 v18, s69162; GFX12-NEXT: v_dual_mov_b32 v21, s19 :: v_dual_mov_b32 v20, s189163; GFX12-NEXT: v_dual_mov_b32 v23, s5 :: v_dual_mov_b32 v22, s49164; GFX12-NEXT: s_clause 0x59165; GFX12-NEXT: global_store_b128 v24, v[0:3], s[16:17] offset:809166; GFX12-NEXT: global_store_b128 v24, v[4:7], s[16:17] offset:649167; GFX12-NEXT: global_store_b128 v24, v[8:11], s[16:17] offset:489168; GFX12-NEXT: global_store_b128 v24, v[12:15], s[16:17] offset:329169; GFX12-NEXT: global_store_b128 v24, v[16:19], s[16:17] offset:169170; GFX12-NEXT: global_store_b128 v24, v[20:23], s[16:17]9171; GFX12-NEXT: s_endpgm9172 %load = load <32 x i16>, ptr addrspace(4) %in9173 %ext = sext <32 x i16> %load to <32 x i64>9174 store <32 x i64> %ext, ptr addrspace(1) %out9175 ret void9176}9177 9178; These trigger undefined register machine verifier errors9179 9180; define amdgpu_kernel void @constant_zextload_v64i16_to_v64i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {9181; %load = load <64 x i16>, ptr addrspace(4) %in9182; %ext = zext <64 x i16> %load to <64 x i64>9183; store <64 x i64> %ext, ptr addrspace(1) %out9184; ret void9185; }9186 9187; define amdgpu_kernel void @constant_sextload_v64i16_to_v64i64(ptr addrspace(1) %out, ptr addrspace(4) %in) #0 {9188; %load = load <64 x i16>, ptr addrspace(4) %in9189; %ext = sext <64 x i16> %load to <64 x i64>9190; store <64 x i64> %ext, ptr addrspace(1) %out9191; ret void9192; }9193 9194attributes #0 = { nounwind }9195