13777 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn < %s | FileCheck -allow-deprecated-dag-overlap --check-prefix=GCN-NOHSA-SI %s3; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn--amdhsa -mcpu=kaveri < %s | FileCheck -allow-deprecated-dag-overlap --check-prefix=GCN-HSA %s4; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=amdgcn -mcpu=tonga -mattr=-flat-for-global < %s | FileCheck -allow-deprecated-dag-overlap --check-prefix=GCN-NOHSA-VI %s5; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=r600 -mcpu=redwood < %s | FileCheck -allow-deprecated-dag-overlap --check-prefix=EG %s6; RUN: llc -amdgpu-scalarize-global-loads=false -mtriple=r600 -mcpu=cayman < %s | FileCheck -allow-deprecated-dag-overlap --check-prefix=CM %s7 8; TODO: NOT AND9define amdgpu_kernel void @global_load_i8(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {10; GCN-NOHSA-SI-LABEL: global_load_i8: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_ubyte 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_byte v0, off, s[4:7], 025; GCN-NOHSA-SI-NEXT: s_endpgm26;27; GCN-HSA-LABEL: global_load_i8: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_ubyte 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_byte v[0:1], v241; GCN-HSA-NEXT: s_endpgm42;43; GCN-NOHSA-VI-LABEL: global_load_i8: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_mov_b32 s7, 0xf00047; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -148; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s649; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s750; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)51; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s252; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s353; GCN-NOHSA-VI-NEXT: buffer_load_ubyte v0, off, s[8:11], 054; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s055; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s156; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)57; GCN-NOHSA-VI-NEXT: buffer_store_byte v0, off, s[4:7], 058; GCN-NOHSA-VI-NEXT: s_endpgm59;60; EG-LABEL: global_load_i8:61; EG: ; %bb.0: ; %entry62; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]63; EG-NEXT: TEX 0 @664; EG-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]65; EG-NEXT: MEM_RAT MSKOR T0.XW, T1.X66; EG-NEXT: CF_END67; EG-NEXT: PAD68; EG-NEXT: Fetch clause starting at 6:69; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #170; EG-NEXT: ALU clause starting at 8:71; EG-NEXT: MOV * T0.X, KC0[2].Z,72; EG-NEXT: ALU clause starting at 9:73; EG-NEXT: AND_INT T0.W, KC0[2].Y, literal.x,74; EG-NEXT: AND_INT * T1.W, T0.X, literal.y,75; EG-NEXT: 3(4.203895e-45), 255(3.573311e-43)76; EG-NEXT: LSHL * T0.W, PV.W, literal.x,77; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)78; EG-NEXT: LSHL T0.X, T1.W, PV.W,79; EG-NEXT: LSHL * T0.W, literal.x, PV.W,80; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)81; EG-NEXT: MOV T0.Y, 0.0,82; EG-NEXT: MOV * T0.Z, 0.0,83; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,84; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)85;86; CM-LABEL: global_load_i8:87; CM: ; %bb.0: ; %entry88; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]89; CM-NEXT: TEX 0 @690; CM-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]91; CM-NEXT: MEM_RAT MSKOR T0.XW, T1.X92; CM-NEXT: CF_END93; CM-NEXT: PAD94; CM-NEXT: Fetch clause starting at 6:95; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #196; CM-NEXT: ALU clause starting at 8:97; CM-NEXT: MOV * T0.X, KC0[2].Z,98; CM-NEXT: ALU clause starting at 9:99; CM-NEXT: AND_INT * T0.W, KC0[2].Y, literal.x,100; CM-NEXT: 3(4.203895e-45), 0(0.000000e+00)101; CM-NEXT: AND_INT T0.Z, T0.X, literal.x,102; CM-NEXT: LSHL * T0.W, PV.W, literal.y,103; CM-NEXT: 255(3.573311e-43), 3(4.203895e-45)104; CM-NEXT: LSHL T0.X, PV.Z, PV.W,105; CM-NEXT: LSHL * T0.W, literal.x, PV.W,106; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)107; CM-NEXT: MOV T0.Y, 0.0,108; CM-NEXT: MOV * T0.Z, 0.0,109; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,110; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)111entry:112 %ld = load i8, ptr addrspace(1) %in113 store i8 %ld, ptr addrspace(1) %out114 ret void115}116 117define amdgpu_kernel void @global_load_v2i8(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {118; GCN-NOHSA-SI-LABEL: global_load_v2i8:119; GCN-NOHSA-SI: ; %bb.0: ; %entry120; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9121; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000122; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1123; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6124; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7125; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)126; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2127; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3128; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 0129; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0130; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1131; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)132; GCN-NOHSA-SI-NEXT: buffer_store_short v0, off, s[4:7], 0133; GCN-NOHSA-SI-NEXT: s_endpgm134;135; GCN-HSA-LABEL: global_load_v2i8:136; GCN-HSA: ; %bb.0: ; %entry137; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0138; GCN-HSA-NEXT: s_add_i32 s12, s12, s17139; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13140; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8141; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)142; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2143; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3144; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]145; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0146; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1147; GCN-HSA-NEXT: s_waitcnt vmcnt(0)148; GCN-HSA-NEXT: flat_store_short v[0:1], v2149; GCN-HSA-NEXT: s_endpgm150;151; GCN-NOHSA-VI-LABEL: global_load_v2i8:152; GCN-NOHSA-VI: ; %bb.0: ; %entry153; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24154; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000155; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1156; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6157; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7158; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)159; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2160; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3161; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 0162; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0163; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1164; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)165; GCN-NOHSA-VI-NEXT: buffer_store_short v0, off, s[4:7], 0166; GCN-NOHSA-VI-NEXT: s_endpgm167;168; EG-LABEL: global_load_v2i8:169; EG: ; %bb.0: ; %entry170; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]171; EG-NEXT: TEX 0 @6172; EG-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]173; EG-NEXT: MEM_RAT MSKOR T0.XW, T1.X174; EG-NEXT: CF_END175; EG-NEXT: PAD176; EG-NEXT: Fetch clause starting at 6:177; EG-NEXT: VTX_READ_16 T0.X, T0.X, 0, #1178; EG-NEXT: ALU clause starting at 8:179; EG-NEXT: MOV * T0.X, KC0[2].Z,180; EG-NEXT: ALU clause starting at 9:181; EG-NEXT: AND_INT T0.W, KC0[2].Y, literal.x,182; EG-NEXT: AND_INT * T1.W, T0.X, literal.y,183; EG-NEXT: 3(4.203895e-45), 65535(9.183409e-41)184; EG-NEXT: LSHL * T0.W, PV.W, literal.x,185; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)186; EG-NEXT: LSHL T0.X, T1.W, PV.W,187; EG-NEXT: LSHL * T0.W, literal.x, PV.W,188; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)189; EG-NEXT: MOV T0.Y, 0.0,190; EG-NEXT: MOV * T0.Z, 0.0,191; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,192; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)193;194; CM-LABEL: global_load_v2i8:195; CM: ; %bb.0: ; %entry196; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]197; CM-NEXT: TEX 0 @6198; CM-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]199; CM-NEXT: MEM_RAT MSKOR T0.XW, T1.X200; CM-NEXT: CF_END201; CM-NEXT: PAD202; CM-NEXT: Fetch clause starting at 6:203; CM-NEXT: VTX_READ_16 T0.X, T0.X, 0, #1204; CM-NEXT: ALU clause starting at 8:205; CM-NEXT: MOV * T0.X, KC0[2].Z,206; CM-NEXT: ALU clause starting at 9:207; CM-NEXT: AND_INT * T0.W, KC0[2].Y, literal.x,208; CM-NEXT: 3(4.203895e-45), 0(0.000000e+00)209; CM-NEXT: AND_INT T0.Z, T0.X, literal.x,210; CM-NEXT: LSHL * T0.W, PV.W, literal.y,211; CM-NEXT: 65535(9.183409e-41), 3(4.203895e-45)212; CM-NEXT: LSHL T0.X, PV.Z, PV.W,213; CM-NEXT: LSHL * T0.W, literal.x, PV.W,214; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)215; CM-NEXT: MOV T0.Y, 0.0,216; CM-NEXT: MOV * T0.Z, 0.0,217; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,218; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)219entry:220 %ld = load <2 x i8>, ptr addrspace(1) %in221 store <2 x i8> %ld, ptr addrspace(1) %out222 ret void223}224 225define amdgpu_kernel void @global_load_v3i8(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {226; GCN-NOHSA-SI-LABEL: global_load_v3i8:227; GCN-NOHSA-SI: ; %bb.0: ; %entry228; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9229; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000230; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1231; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6232; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7233; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)234; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2235; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3236; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 0237; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0238; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1239; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)240; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v1, 16, v0241; GCN-NOHSA-SI-NEXT: buffer_store_short v0, off, s[4:7], 0242; GCN-NOHSA-SI-NEXT: buffer_store_byte v1, off, s[4:7], 0 offset:2243; GCN-NOHSA-SI-NEXT: s_endpgm244;245; GCN-HSA-LABEL: global_load_v3i8:246; GCN-HSA: ; %bb.0: ; %entry247; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0248; GCN-HSA-NEXT: s_add_i32 s12, s12, s17249; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13250; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8251; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)252; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2253; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3254; GCN-HSA-NEXT: flat_load_dword v2, v[0:1]255; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0256; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1257; GCN-HSA-NEXT: s_add_u32 s0, s0, 2258; GCN-HSA-NEXT: s_addc_u32 s1, s1, 0259; GCN-HSA-NEXT: s_waitcnt vmcnt(0)260; GCN-HSA-NEXT: flat_store_short v[0:1], v2261; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0262; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 16, v2263; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1264; GCN-HSA-NEXT: flat_store_byte v[0:1], v3265; GCN-HSA-NEXT: s_endpgm266;267; GCN-NOHSA-VI-LABEL: global_load_v3i8:268; GCN-NOHSA-VI: ; %bb.0: ; %entry269; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24270; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000271; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1272; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6273; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7274; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)275; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2276; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3277; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 0278; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0279; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1280; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)281; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 16, v0282; GCN-NOHSA-VI-NEXT: buffer_store_short v0, off, s[4:7], 0283; GCN-NOHSA-VI-NEXT: buffer_store_byte v1, off, s[4:7], 0 offset:2284; GCN-NOHSA-VI-NEXT: s_endpgm285;286; EG-LABEL: global_load_v3i8:287; EG: ; %bb.0: ; %entry288; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]289; EG-NEXT: TEX 0 @6290; EG-NEXT: ALU 27, @9, KC0[CB0:0-32], KC1[]291; EG-NEXT: MEM_RAT MSKOR T6.XW, T8.X292; EG-NEXT: MEM_RAT MSKOR T5.XW, T7.X293; EG-NEXT: CF_END294; EG-NEXT: Fetch clause starting at 6:295; EG-NEXT: VTX_READ_32 T5.X, T5.X, 0, #1296; EG-NEXT: ALU clause starting at 8:297; EG-NEXT: MOV * T5.X, KC0[2].Z,298; EG-NEXT: ALU clause starting at 9:299; EG-NEXT: MOV * T2.X, T5.X,300; EG-NEXT: MOV T0.Y, PV.X,301; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,302; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)303; EG-NEXT: AND_INT T1.W, PV.W, literal.x,304; EG-NEXT: MOV * T2.W, literal.y,305; EG-NEXT: 3(4.203895e-45), 8(1.121039e-44)306; EG-NEXT: BFE_UINT T2.W, T0.Y, literal.x, PS,307; EG-NEXT: LSHL * T1.W, PV.W, literal.y,308; EG-NEXT: 16(2.242078e-44), 3(4.203895e-45)309; EG-NEXT: LSHL T6.X, PV.W, PS,310; EG-NEXT: LSHL * T6.W, literal.x, PS,311; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)312; EG-NEXT: MOV T6.Y, 0.0,313; EG-NEXT: AND_INT T1.W, KC0[2].Y, literal.x,314; EG-NEXT: AND_INT * T2.W, T5.X, literal.y,315; EG-NEXT: 3(4.203895e-45), 65535(9.183409e-41)316; EG-NEXT: LSHL * T1.W, PV.W, literal.x,317; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)318; EG-NEXT: LSHL T5.X, T2.W, PV.W,319; EG-NEXT: LSHL * T5.W, literal.x, PV.W,320; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)321; EG-NEXT: MOV T5.Y, 0.0,322; EG-NEXT: MOV T6.Z, 0.0,323; EG-NEXT: MOV * T5.Z, 0.0,324; EG-NEXT: LSHR T7.X, KC0[2].Y, literal.x,325; EG-NEXT: LSHR * T8.X, T0.W, literal.x,326; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)327;328; CM-LABEL: global_load_v3i8:329; CM: ; %bb.0: ; %entry330; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]331; CM-NEXT: TEX 0 @6332; CM-NEXT: ALU 28, @9, KC0[CB0:0-32], KC1[]333; CM-NEXT: MEM_RAT MSKOR T6.XW, T8.X334; CM-NEXT: MEM_RAT MSKOR T5.XW, T7.X335; CM-NEXT: CF_END336; CM-NEXT: Fetch clause starting at 6:337; CM-NEXT: VTX_READ_32 T5.X, T5.X, 0, #1338; CM-NEXT: ALU clause starting at 8:339; CM-NEXT: MOV * T5.X, KC0[2].Z,340; CM-NEXT: ALU clause starting at 9:341; CM-NEXT: MOV * T2.X, T5.X,342; CM-NEXT: MOV T0.Y, PV.X,343; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,344; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)345; CM-NEXT: AND_INT T0.Z, PV.W, literal.x,346; CM-NEXT: MOV * T1.W, literal.y,347; CM-NEXT: 3(4.203895e-45), 8(1.121039e-44)348; CM-NEXT: BFE_UINT T1.Z, T0.Y, literal.x, PV.W,349; CM-NEXT: LSHL * T1.W, PV.Z, literal.y,350; CM-NEXT: 16(2.242078e-44), 3(4.203895e-45)351; CM-NEXT: LSHL T6.X, PV.Z, PV.W,352; CM-NEXT: LSHL * T6.W, literal.x, PV.W,353; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)354; CM-NEXT: MOV T6.Y, 0.0,355; CM-NEXT: AND_INT * T1.W, KC0[2].Y, literal.x,356; CM-NEXT: 3(4.203895e-45), 0(0.000000e+00)357; CM-NEXT: AND_INT T0.Z, T5.X, literal.x,358; CM-NEXT: LSHL * T1.W, PV.W, literal.y,359; CM-NEXT: 65535(9.183409e-41), 3(4.203895e-45)360; CM-NEXT: LSHL T5.X, PV.Z, PV.W,361; CM-NEXT: LSHL * T5.W, literal.x, PV.W,362; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)363; CM-NEXT: MOV T5.Y, 0.0,364; CM-NEXT: MOV * T6.Z, 0.0,365; CM-NEXT: MOV * T5.Z, 0.0,366; CM-NEXT: LSHR * T7.X, KC0[2].Y, literal.x,367; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)368; CM-NEXT: LSHR * T8.X, T0.W, literal.x,369; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)370entry:371 %ld = load <3 x i8>, ptr addrspace(1) %in372 store <3 x i8> %ld, ptr addrspace(1) %out373 ret void374}375 376define amdgpu_kernel void @global_load_v4i8(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {377; GCN-NOHSA-SI-LABEL: global_load_v4i8:378; GCN-NOHSA-SI: ; %bb.0: ; %entry379; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9380; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000381; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1382; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6383; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7384; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)385; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2386; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3387; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 0388; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0389; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1390; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)391; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0392; GCN-NOHSA-SI-NEXT: s_endpgm393;394; GCN-HSA-LABEL: global_load_v4i8:395; GCN-HSA: ; %bb.0: ; %entry396; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0397; GCN-HSA-NEXT: s_add_i32 s12, s12, s17398; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13399; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8400; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)401; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2402; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3403; GCN-HSA-NEXT: flat_load_dword v2, v[0:1]404; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0405; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1406; GCN-HSA-NEXT: s_waitcnt vmcnt(0)407; GCN-HSA-NEXT: flat_store_dword v[0:1], v2408; GCN-HSA-NEXT: s_endpgm409;410; GCN-NOHSA-VI-LABEL: global_load_v4i8:411; GCN-NOHSA-VI: ; %bb.0: ; %entry412; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24413; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000414; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1415; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6416; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7417; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)418; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2419; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3420; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 0421; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0422; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1423; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)424; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 0425; GCN-NOHSA-VI-NEXT: s_endpgm426;427; EG-LABEL: global_load_v4i8:428; EG: ; %bb.0: ; %entry429; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]430; EG-NEXT: TEX 0 @6431; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]432; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1433; EG-NEXT: CF_END434; EG-NEXT: PAD435; EG-NEXT: Fetch clause starting at 6:436; EG-NEXT: VTX_READ_32 T0.X, T0.X, 0, #1437; EG-NEXT: ALU clause starting at 8:438; EG-NEXT: MOV * T0.X, KC0[2].Z,439; EG-NEXT: ALU clause starting at 9:440; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,441; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)442;443; CM-LABEL: global_load_v4i8:444; CM: ; %bb.0: ; %entry445; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]446; CM-NEXT: TEX 0 @6447; CM-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]448; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0.X, T1.X449; CM-NEXT: CF_END450; CM-NEXT: PAD451; CM-NEXT: Fetch clause starting at 6:452; CM-NEXT: VTX_READ_32 T0.X, T0.X, 0, #1453; CM-NEXT: ALU clause starting at 8:454; CM-NEXT: MOV * T0.X, KC0[2].Z,455; CM-NEXT: ALU clause starting at 9:456; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,457; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)458entry:459 %ld = load <4 x i8>, ptr addrspace(1) %in460 store <4 x i8> %ld, ptr addrspace(1) %out461 ret void462}463 464define amdgpu_kernel void @global_load_v8i8(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {465; GCN-NOHSA-SI-LABEL: global_load_v8i8:466; GCN-NOHSA-SI: ; %bb.0: ; %entry467; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9468; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000469; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1470; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6471; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7472; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)473; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2474; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3475; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0476; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0477; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1478; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)479; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0480; GCN-NOHSA-SI-NEXT: s_endpgm481;482; GCN-HSA-LABEL: global_load_v8i8:483; GCN-HSA: ; %bb.0: ; %entry484; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0485; GCN-HSA-NEXT: s_add_i32 s12, s12, s17486; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13487; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8488; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)489; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2490; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3491; GCN-HSA-NEXT: flat_load_dwordx2 v[0:1], v[0:1]492; GCN-HSA-NEXT: v_mov_b32_e32 v2, s0493; GCN-HSA-NEXT: v_mov_b32_e32 v3, s1494; GCN-HSA-NEXT: s_waitcnt vmcnt(0)495; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]496; GCN-HSA-NEXT: s_endpgm497;498; GCN-NOHSA-VI-LABEL: global_load_v8i8:499; GCN-NOHSA-VI: ; %bb.0: ; %entry500; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24501; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000502; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1503; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6504; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7505; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)506; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2507; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3508; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 0509; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0510; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1511; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)512; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0513; GCN-NOHSA-VI-NEXT: s_endpgm514;515; EG-LABEL: global_load_v8i8:516; EG: ; %bb.0: ; %entry517; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]518; EG-NEXT: TEX 0 @6519; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]520; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 1521; EG-NEXT: CF_END522; EG-NEXT: PAD523; EG-NEXT: Fetch clause starting at 6:524; EG-NEXT: VTX_READ_64 T0.XY, T0.X, 0, #1525; EG-NEXT: ALU clause starting at 8:526; EG-NEXT: MOV * T0.X, KC0[2].Z,527; EG-NEXT: ALU clause starting at 9:528; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,529; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)530;531; CM-LABEL: global_load_v8i8:532; CM: ; %bb.0: ; %entry533; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]534; CM-NEXT: TEX 0 @6535; CM-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]536; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X537; CM-NEXT: CF_END538; CM-NEXT: PAD539; CM-NEXT: Fetch clause starting at 6:540; CM-NEXT: VTX_READ_64 T0.XY, T0.X, 0, #1541; CM-NEXT: ALU clause starting at 8:542; CM-NEXT: MOV * T0.X, KC0[2].Z,543; CM-NEXT: ALU clause starting at 9:544; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,545; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)546entry:547 %ld = load <8 x i8>, ptr addrspace(1) %in548 store <8 x i8> %ld, ptr addrspace(1) %out549 ret void550}551 552define amdgpu_kernel void @global_load_v16i8(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {553; GCN-NOHSA-SI-LABEL: global_load_v16i8:554; GCN-NOHSA-SI: ; %bb.0: ; %entry555; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9556; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000557; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1558; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6559; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7560; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)561; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2562; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3563; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0564; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0565; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1566; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)567; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0568; GCN-NOHSA-SI-NEXT: s_endpgm569;570; GCN-HSA-LABEL: global_load_v16i8:571; GCN-HSA: ; %bb.0: ; %entry572; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0573; GCN-HSA-NEXT: s_add_i32 s12, s12, s17574; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13575; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8576; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)577; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2578; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3579; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]580; GCN-HSA-NEXT: v_mov_b32_e32 v4, s0581; GCN-HSA-NEXT: v_mov_b32_e32 v5, s1582; GCN-HSA-NEXT: s_waitcnt vmcnt(0)583; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]584; GCN-HSA-NEXT: s_endpgm585;586; GCN-NOHSA-VI-LABEL: global_load_v16i8:587; GCN-NOHSA-VI: ; %bb.0: ; %entry588; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24589; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000590; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1591; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6592; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7593; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)594; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2595; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3596; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0597; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0598; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1599; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)600; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0601; GCN-NOHSA-VI-NEXT: s_endpgm602;603; EG-LABEL: global_load_v16i8:604; EG: ; %bb.0: ; %entry605; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]606; EG-NEXT: TEX 0 @6607; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]608; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XYZW, T1.X, 1609; EG-NEXT: CF_END610; EG-NEXT: PAD611; EG-NEXT: Fetch clause starting at 6:612; EG-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1613; EG-NEXT: ALU clause starting at 8:614; EG-NEXT: MOV * T0.X, KC0[2].Z,615; EG-NEXT: ALU clause starting at 9:616; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,617; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)618;619; CM-LABEL: global_load_v16i8:620; CM: ; %bb.0: ; %entry621; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]622; CM-NEXT: TEX 0 @6623; CM-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]624; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X625; CM-NEXT: CF_END626; CM-NEXT: PAD627; CM-NEXT: Fetch clause starting at 6:628; CM-NEXT: VTX_READ_128 T0.XYZW, T0.X, 0, #1629; CM-NEXT: ALU clause starting at 8:630; CM-NEXT: MOV * T0.X, KC0[2].Z,631; CM-NEXT: ALU clause starting at 9:632; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,633; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)634entry:635 %ld = load <16 x i8>, ptr addrspace(1) %in636 store <16 x i8> %ld, ptr addrspace(1) %out637 ret void638}639 640define amdgpu_kernel void @global_zextload_i8_to_i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {641; GCN-NOHSA-SI-LABEL: global_zextload_i8_to_i32:642; GCN-NOHSA-SI: ; %bb.0:643; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9644; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000645; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1646; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6647; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7648; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)649; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2650; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3651; GCN-NOHSA-SI-NEXT: buffer_load_ubyte v0, off, s[8:11], 0652; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0653; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1654; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)655; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0656; GCN-NOHSA-SI-NEXT: s_endpgm657;658; GCN-HSA-LABEL: global_zextload_i8_to_i32:659; GCN-HSA: ; %bb.0:660; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0661; GCN-HSA-NEXT: s_add_i32 s12, s12, s17662; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13663; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8664; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)665; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2666; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3667; GCN-HSA-NEXT: flat_load_ubyte v2, v[0:1]668; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0669; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1670; GCN-HSA-NEXT: s_waitcnt vmcnt(0)671; GCN-HSA-NEXT: flat_store_dword v[0:1], v2672; GCN-HSA-NEXT: s_endpgm673;674; GCN-NOHSA-VI-LABEL: global_zextload_i8_to_i32:675; GCN-NOHSA-VI: ; %bb.0:676; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24677; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000678; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1679; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6680; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7681; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)682; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2683; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3684; GCN-NOHSA-VI-NEXT: buffer_load_ubyte v0, off, s[8:11], 0685; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0686; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1687; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)688; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 0689; GCN-NOHSA-VI-NEXT: s_endpgm690;691; EG-LABEL: global_zextload_i8_to_i32:692; EG: ; %bb.0:693; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]694; EG-NEXT: TEX 0 @6695; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]696; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1697; EG-NEXT: CF_END698; EG-NEXT: PAD699; EG-NEXT: Fetch clause starting at 6:700; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #1701; EG-NEXT: ALU clause starting at 8:702; EG-NEXT: MOV * T0.X, KC0[2].Z,703; EG-NEXT: ALU clause starting at 9:704; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,705; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)706;707; CM-LABEL: global_zextload_i8_to_i32:708; CM: ; %bb.0:709; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]710; CM-NEXT: TEX 0 @6711; CM-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]712; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0.X, T1.X713; CM-NEXT: CF_END714; CM-NEXT: PAD715; CM-NEXT: Fetch clause starting at 6:716; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #1717; CM-NEXT: ALU clause starting at 8:718; CM-NEXT: MOV * T0.X, KC0[2].Z,719; CM-NEXT: ALU clause starting at 9:720; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,721; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)722 %a = load i8, ptr addrspace(1) %in723 %ext = zext i8 %a to i32724 store i32 %ext, ptr addrspace(1) %out725 ret void726}727 728define amdgpu_kernel void @global_sextload_i8_to_i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {729; GCN-NOHSA-SI-LABEL: global_sextload_i8_to_i32:730; GCN-NOHSA-SI: ; %bb.0:731; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9732; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000733; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1734; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6735; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7736; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)737; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2738; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3739; GCN-NOHSA-SI-NEXT: buffer_load_sbyte v0, off, s[8:11], 0740; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0741; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1742; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)743; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0744; GCN-NOHSA-SI-NEXT: s_endpgm745;746; GCN-HSA-LABEL: global_sextload_i8_to_i32:747; GCN-HSA: ; %bb.0:748; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0749; GCN-HSA-NEXT: s_add_i32 s12, s12, s17750; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13751; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8752; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)753; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2754; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3755; GCN-HSA-NEXT: flat_load_sbyte v2, v[0:1]756; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0757; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1758; GCN-HSA-NEXT: s_waitcnt vmcnt(0)759; GCN-HSA-NEXT: flat_store_dword v[0:1], v2760; GCN-HSA-NEXT: s_endpgm761;762; GCN-NOHSA-VI-LABEL: global_sextload_i8_to_i32:763; GCN-NOHSA-VI: ; %bb.0:764; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24765; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000766; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1767; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6768; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7769; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)770; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2771; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3772; GCN-NOHSA-VI-NEXT: buffer_load_sbyte v0, off, s[8:11], 0773; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0774; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1775; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)776; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 0777; GCN-NOHSA-VI-NEXT: s_endpgm778;779; EG-LABEL: global_sextload_i8_to_i32:780; EG: ; %bb.0:781; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]782; EG-NEXT: TEX 0 @6783; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]784; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1785; EG-NEXT: CF_END786; EG-NEXT: PAD787; EG-NEXT: Fetch clause starting at 6:788; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #1789; EG-NEXT: ALU clause starting at 8:790; EG-NEXT: MOV * T0.X, KC0[2].Z,791; EG-NEXT: ALU clause starting at 9:792; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,793; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,794; EG-NEXT: 8(1.121039e-44), 2(2.802597e-45)795;796; CM-LABEL: global_sextload_i8_to_i32:797; CM: ; %bb.0:798; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]799; CM-NEXT: TEX 0 @6800; CM-NEXT: ALU 3, @9, KC0[CB0:0-32], KC1[]801; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0.X, T1.X802; CM-NEXT: CF_END803; CM-NEXT: PAD804; CM-NEXT: Fetch clause starting at 6:805; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #1806; CM-NEXT: ALU clause starting at 8:807; CM-NEXT: MOV * T0.X, KC0[2].Z,808; CM-NEXT: ALU clause starting at 9:809; CM-NEXT: BFE_INT * T0.X, T0.X, 0.0, literal.x,810; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)811; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,812; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)813 %ld = load i8, ptr addrspace(1) %in814 %ext = sext i8 %ld to i32815 store i32 %ext, ptr addrspace(1) %out816 ret void817}818 819define amdgpu_kernel void @global_zextload_v1i8_to_v1i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {820; GCN-NOHSA-SI-LABEL: global_zextload_v1i8_to_v1i32:821; GCN-NOHSA-SI: ; %bb.0:822; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9823; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000824; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1825; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6826; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7827; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)828; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2829; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3830; GCN-NOHSA-SI-NEXT: buffer_load_ubyte v0, off, s[8:11], 0831; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0832; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1833; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)834; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0835; GCN-NOHSA-SI-NEXT: s_endpgm836;837; GCN-HSA-LABEL: global_zextload_v1i8_to_v1i32:838; GCN-HSA: ; %bb.0:839; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0840; GCN-HSA-NEXT: s_add_i32 s12, s12, s17841; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13842; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8843; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)844; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2845; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3846; GCN-HSA-NEXT: flat_load_ubyte v2, v[0:1]847; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0848; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1849; GCN-HSA-NEXT: s_waitcnt vmcnt(0)850; GCN-HSA-NEXT: flat_store_dword v[0:1], v2851; GCN-HSA-NEXT: s_endpgm852;853; GCN-NOHSA-VI-LABEL: global_zextload_v1i8_to_v1i32:854; GCN-NOHSA-VI: ; %bb.0:855; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24856; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000857; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1858; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6859; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7860; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)861; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2862; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3863; GCN-NOHSA-VI-NEXT: buffer_load_ubyte v0, off, s[8:11], 0864; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0865; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1866; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)867; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 0868; GCN-NOHSA-VI-NEXT: s_endpgm869;870; EG-LABEL: global_zextload_v1i8_to_v1i32:871; EG: ; %bb.0:872; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]873; EG-NEXT: TEX 0 @6874; EG-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]875; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1876; EG-NEXT: CF_END877; EG-NEXT: PAD878; EG-NEXT: Fetch clause starting at 6:879; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #1880; EG-NEXT: ALU clause starting at 8:881; EG-NEXT: MOV * T0.X, KC0[2].Z,882; EG-NEXT: ALU clause starting at 9:883; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,884; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)885;886; CM-LABEL: global_zextload_v1i8_to_v1i32:887; CM: ; %bb.0:888; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]889; CM-NEXT: TEX 0 @6890; CM-NEXT: ALU 1, @9, KC0[CB0:0-32], KC1[]891; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0.X, T1.X892; CM-NEXT: CF_END893; CM-NEXT: PAD894; CM-NEXT: Fetch clause starting at 6:895; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #1896; CM-NEXT: ALU clause starting at 8:897; CM-NEXT: MOV * T0.X, KC0[2].Z,898; CM-NEXT: ALU clause starting at 9:899; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,900; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)901 %load = load <1 x i8>, ptr addrspace(1) %in902 %ext = zext <1 x i8> %load to <1 x i32>903 store <1 x i32> %ext, ptr addrspace(1) %out904 ret void905}906 907define amdgpu_kernel void @global_sextload_v1i8_to_v1i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {908; GCN-NOHSA-SI-LABEL: global_sextload_v1i8_to_v1i32:909; GCN-NOHSA-SI: ; %bb.0:910; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x9911; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf000912; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -1913; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s6914; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s7915; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)916; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s2917; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s3918; GCN-NOHSA-SI-NEXT: buffer_load_sbyte v0, off, s[8:11], 0919; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s0920; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s1921; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)922; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 0923; GCN-NOHSA-SI-NEXT: s_endpgm924;925; GCN-HSA-LABEL: global_sextload_v1i8_to_v1i32:926; GCN-HSA: ; %bb.0:927; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x0928; GCN-HSA-NEXT: s_add_i32 s12, s12, s17929; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s13930; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 8931; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)932; GCN-HSA-NEXT: v_mov_b32_e32 v0, s2933; GCN-HSA-NEXT: v_mov_b32_e32 v1, s3934; GCN-HSA-NEXT: flat_load_sbyte v2, v[0:1]935; GCN-HSA-NEXT: v_mov_b32_e32 v0, s0936; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1937; GCN-HSA-NEXT: s_waitcnt vmcnt(0)938; GCN-HSA-NEXT: flat_store_dword v[0:1], v2939; GCN-HSA-NEXT: s_endpgm940;941; GCN-NOHSA-VI-LABEL: global_sextload_v1i8_to_v1i32:942; GCN-NOHSA-VI: ; %bb.0:943; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x24944; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf000945; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -1946; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s6947; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s7948; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)949; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s2950; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s3951; GCN-NOHSA-VI-NEXT: buffer_load_sbyte v0, off, s[8:11], 0952; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s0953; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s1954; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)955; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 0956; GCN-NOHSA-VI-NEXT: s_endpgm957;958; EG-LABEL: global_sextload_v1i8_to_v1i32:959; EG: ; %bb.0:960; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]961; EG-NEXT: TEX 0 @6962; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]963; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.X, T1.X, 1964; EG-NEXT: CF_END965; EG-NEXT: PAD966; EG-NEXT: Fetch clause starting at 6:967; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #1968; EG-NEXT: ALU clause starting at 8:969; EG-NEXT: MOV * T0.X, KC0[2].Z,970; EG-NEXT: ALU clause starting at 9:971; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,972; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,973; EG-NEXT: 8(1.121039e-44), 2(2.802597e-45)974;975; CM-LABEL: global_sextload_v1i8_to_v1i32:976; CM: ; %bb.0:977; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]978; CM-NEXT: TEX 0 @6979; CM-NEXT: ALU 3, @9, KC0[CB0:0-32], KC1[]980; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0.X, T1.X981; CM-NEXT: CF_END982; CM-NEXT: PAD983; CM-NEXT: Fetch clause starting at 6:984; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #1985; CM-NEXT: ALU clause starting at 8:986; CM-NEXT: MOV * T0.X, KC0[2].Z,987; CM-NEXT: ALU clause starting at 9:988; CM-NEXT: BFE_INT * T0.X, T0.X, 0.0, literal.x,989; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)990; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,991; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)992 %load = load <1 x i8>, ptr addrspace(1) %in993 %ext = sext <1 x i8> %load to <1 x i32>994 store <1 x i32> %ext, ptr addrspace(1) %out995 ret void996}997 998; TODO: EG/CM should use DST, but for some there are redundant MOVs999define amdgpu_kernel void @global_zextload_v2i8_to_v2i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1000; GCN-NOHSA-SI-LABEL: global_zextload_v2i8_to_v2i32:1001; GCN-NOHSA-SI: ; %bb.0:1002; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91003; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001004; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11005; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61006; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71007; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1008; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21009; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31010; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 01011; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01012; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11013; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1014; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v1, 8, v01015; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xff, v01016; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 01017; GCN-NOHSA-SI-NEXT: s_endpgm1018;1019; GCN-HSA-LABEL: global_zextload_v2i8_to_v2i32:1020; GCN-HSA: ; %bb.0:1021; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01022; GCN-HSA-NEXT: s_add_i32 s12, s12, s171023; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131024; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81025; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1026; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21027; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31028; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]1029; GCN-HSA-NEXT: v_mov_b32_e32 v0, s01030; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11031; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1032; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 8, v21033; GCN-HSA-NEXT: v_and_b32_e32 v2, 0xff, v21034; GCN-HSA-NEXT: flat_store_dwordx2 v[0:1], v[2:3]1035; GCN-HSA-NEXT: s_endpgm1036;1037; GCN-NOHSA-VI-LABEL: global_zextload_v2i8_to_v2i32:1038; GCN-NOHSA-VI: ; %bb.0:1039; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241040; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001041; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11042; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61043; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71044; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1045; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21046; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31047; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 01048; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 81049; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01050; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11051; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1052; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_sdwa v1, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_01053; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xff, v01054; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 01055; GCN-NOHSA-VI-NEXT: s_endpgm1056;1057; EG-LABEL: global_zextload_v2i8_to_v2i32:1058; EG: ; %bb.0:1059; EG-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]1060; EG-NEXT: TEX 0 @61061; EG-NEXT: ALU 12, @10, KC0[CB0:0-32], KC1[]1062; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XY, T5.X, 11063; EG-NEXT: CF_END1064; EG-NEXT: PAD1065; EG-NEXT: Fetch clause starting at 6:1066; EG-NEXT: VTX_READ_16 T4.X, T4.X, 0, #11067; EG-NEXT: ALU clause starting at 8:1068; EG-NEXT: MOV * T0.Y, T2.X,1069; EG-NEXT: MOV * T4.X, KC0[2].Z,1070; EG-NEXT: ALU clause starting at 10:1071; EG-NEXT: AND_INT T0.W, T4.X, literal.x,1072; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,1073; EG-NEXT: 65535(9.183409e-41), -65536(nan)1074; EG-NEXT: OR_INT * T0.W, PS, PV.W,1075; EG-NEXT: MOV * T2.X, PV.W,1076; EG-NEXT: MOV T0.Y, PV.X,1077; EG-NEXT: MOV * T1.W, literal.x,1078; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1079; EG-NEXT: BFE_UINT * T4.Y, PV.Y, literal.x, PV.W,1080; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1081; EG-NEXT: AND_INT T4.X, T0.W, literal.x,1082; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.y,1083; EG-NEXT: 255(3.573311e-43), 2(2.802597e-45)1084;1085; CM-LABEL: global_zextload_v2i8_to_v2i32:1086; CM: ; %bb.0:1087; CM-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]1088; CM-NEXT: TEX 0 @61089; CM-NEXT: ALU 13, @10, KC0[CB0:0-32], KC1[]1090; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T4, T5.X1091; CM-NEXT: CF_END1092; CM-NEXT: PAD1093; CM-NEXT: Fetch clause starting at 6:1094; CM-NEXT: VTX_READ_16 T4.X, T4.X, 0, #11095; CM-NEXT: ALU clause starting at 8:1096; CM-NEXT: MOV * T0.Y, T2.X,1097; CM-NEXT: MOV * T4.X, KC0[2].Z,1098; CM-NEXT: ALU clause starting at 10:1099; CM-NEXT: AND_INT T0.Z, T4.X, literal.x,1100; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,1101; CM-NEXT: 65535(9.183409e-41), -65536(nan)1102; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,1103; CM-NEXT: MOV * T2.X, PV.W,1104; CM-NEXT: MOV T0.Y, PV.X,1105; CM-NEXT: MOV * T1.W, literal.x,1106; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)1107; CM-NEXT: BFE_UINT * T4.Y, PV.Y, literal.x, PV.W,1108; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)1109; CM-NEXT: AND_INT * T4.X, T0.W, literal.x,1110; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)1111; CM-NEXT: LSHR * T5.X, KC0[2].Y, literal.x,1112; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1113 %load = load <2 x i8>, ptr addrspace(1) %in1114 %ext = zext <2 x i8> %load to <2 x i32>1115 store <2 x i32> %ext, ptr addrspace(1) %out1116 ret void1117}1118 1119; TODO: EG/CM should use DST, but for some there are redundant MOVs1120define amdgpu_kernel void @global_sextload_v2i8_to_v2i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1121; GCN-NOHSA-SI-LABEL: global_sextload_v2i8_to_v2i32:1122; GCN-NOHSA-SI: ; %bb.0:1123; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91124; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001125; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11126; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61127; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71128; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1129; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21130; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31131; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 01132; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01133; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11134; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1135; GCN-NOHSA-SI-NEXT: v_bfe_i32 v1, v0, 8, 81136; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 81137; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 01138; GCN-NOHSA-SI-NEXT: s_endpgm1139;1140; GCN-HSA-LABEL: global_sextload_v2i8_to_v2i32:1141; GCN-HSA: ; %bb.0:1142; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01143; GCN-HSA-NEXT: s_add_i32 s12, s12, s171144; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131145; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81146; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1147; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21148; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31149; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]1150; GCN-HSA-NEXT: v_mov_b32_e32 v0, s01151; GCN-HSA-NEXT: v_mov_b32_e32 v1, s11152; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1153; GCN-HSA-NEXT: v_bfe_i32 v3, v2, 8, 81154; GCN-HSA-NEXT: v_bfe_i32 v2, v2, 0, 81155; GCN-HSA-NEXT: flat_store_dwordx2 v[0:1], v[2:3]1156; GCN-HSA-NEXT: s_endpgm1157;1158; GCN-NOHSA-VI-LABEL: global_sextload_v2i8_to_v2i32:1159; GCN-NOHSA-VI: ; %bb.0:1160; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241161; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001162; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11163; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61164; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71165; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1166; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21167; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31168; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 01169; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01170; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11171; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1172; GCN-NOHSA-VI-NEXT: v_bfe_i32 v1, v0, 8, 81173; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 81174; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 01175; GCN-NOHSA-VI-NEXT: s_endpgm1176;1177; EG-LABEL: global_sextload_v2i8_to_v2i32:1178; EG: ; %bb.0:1179; EG-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]1180; EG-NEXT: TEX 0 @61181; EG-NEXT: ALU 11, @10, KC0[CB0:0-32], KC1[]1182; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XY, T5.X, 11183; EG-NEXT: CF_END1184; EG-NEXT: PAD1185; EG-NEXT: Fetch clause starting at 6:1186; EG-NEXT: VTX_READ_16 T4.X, T4.X, 0, #11187; EG-NEXT: ALU clause starting at 8:1188; EG-NEXT: MOV * T0.Y, T2.X,1189; EG-NEXT: MOV * T4.X, KC0[2].Z,1190; EG-NEXT: ALU clause starting at 10:1191; EG-NEXT: AND_INT T0.W, T4.X, literal.x,1192; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,1193; EG-NEXT: 65535(9.183409e-41), -65536(nan)1194; EG-NEXT: OR_INT * T0.W, PS, PV.W,1195; EG-NEXT: MOV * T2.X, PV.W,1196; EG-NEXT: MOV * T0.Y, PV.X,1197; EG-NEXT: BFE_INT T4.X, T0.W, 0.0, literal.x,1198; EG-NEXT: LSHR T0.W, PV.Y, literal.x,1199; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.y,1200; EG-NEXT: 8(1.121039e-44), 2(2.802597e-45)1201; EG-NEXT: BFE_INT * T4.Y, PV.W, 0.0, literal.x,1202; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1203;1204; CM-LABEL: global_sextload_v2i8_to_v2i32:1205; CM: ; %bb.0:1206; CM-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]1207; CM-NEXT: TEX 0 @61208; CM-NEXT: ALU 11, @10, KC0[CB0:0-32], KC1[]1209; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T4, T5.X1210; CM-NEXT: CF_END1211; CM-NEXT: PAD1212; CM-NEXT: Fetch clause starting at 6:1213; CM-NEXT: VTX_READ_16 T4.X, T4.X, 0, #11214; CM-NEXT: ALU clause starting at 8:1215; CM-NEXT: MOV * T0.Y, T2.X,1216; CM-NEXT: MOV * T4.X, KC0[2].Z,1217; CM-NEXT: ALU clause starting at 10:1218; CM-NEXT: AND_INT T0.Z, T4.X, literal.x,1219; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,1220; CM-NEXT: 65535(9.183409e-41), -65536(nan)1221; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,1222; CM-NEXT: MOV * T2.X, PV.W,1223; CM-NEXT: MOV * T0.Y, PV.X,1224; CM-NEXT: BFE_INT T4.X, T0.W, 0.0, literal.x,1225; CM-NEXT: LSHR * T0.W, PV.Y, literal.x,1226; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)1227; CM-NEXT: LSHR T5.X, KC0[2].Y, literal.x,1228; CM-NEXT: BFE_INT * T4.Y, PV.W, 0.0, literal.y,1229; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)1230 %load = load <2 x i8>, ptr addrspace(1) %in1231 %ext = sext <2 x i8> %load to <2 x i32>1232 store <2 x i32> %ext, ptr addrspace(1) %out1233 ret void1234}1235 1236; TODO: EG/CM should use DST, but for some there are redundant MOVs1237define amdgpu_kernel void @global_zextload_v3i8_to_v3i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1238; GCN-NOHSA-SI-LABEL: global_zextload_v3i8_to_v3i32:1239; GCN-NOHSA-SI: ; %bb.0: ; %entry1240; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91241; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001242; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11243; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61244; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71245; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1246; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21247; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31248; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[8:11], 01249; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01250; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11251; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1252; GCN-NOHSA-SI-NEXT: v_bfe_u32 v1, v2, 8, 81253; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xff, v21254; GCN-NOHSA-SI-NEXT: v_bfe_u32 v2, v2, 16, 81255; GCN-NOHSA-SI-NEXT: buffer_store_dword v2, off, s[4:7], 0 offset:81256; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 01257; GCN-NOHSA-SI-NEXT: s_endpgm1258;1259; GCN-HSA-LABEL: global_zextload_v3i8_to_v3i32:1260; GCN-HSA: ; %bb.0: ; %entry1261; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01262; GCN-HSA-NEXT: s_add_i32 s12, s12, s171263; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131264; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81265; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1266; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21267; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31268; GCN-HSA-NEXT: flat_load_dword v2, v[0:1]1269; GCN-HSA-NEXT: v_mov_b32_e32 v3, s01270; GCN-HSA-NEXT: v_mov_b32_e32 v4, s11271; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1272; GCN-HSA-NEXT: v_bfe_u32 v1, v2, 8, 81273; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xff, v21274; GCN-HSA-NEXT: v_bfe_u32 v2, v2, 16, 81275; GCN-HSA-NEXT: flat_store_dwordx3 v[3:4], v[0:2]1276; GCN-HSA-NEXT: s_endpgm1277;1278; GCN-NOHSA-VI-LABEL: global_zextload_v3i8_to_v3i32:1279; GCN-NOHSA-VI: ; %bb.0: ; %entry1280; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241281; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001282; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11283; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61284; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71285; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1286; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21287; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31288; GCN-NOHSA-VI-NEXT: buffer_load_dword v2, off, s[8:11], 01289; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01290; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11291; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1292; GCN-NOHSA-VI-NEXT: v_bfe_u32 v1, v2, 8, 81293; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xff, v21294; GCN-NOHSA-VI-NEXT: v_bfe_u32 v2, v2, 16, 81295; GCN-NOHSA-VI-NEXT: buffer_store_dwordx3 v[0:2], off, s[4:7], 01296; GCN-NOHSA-VI-NEXT: s_endpgm1297;1298; EG-LABEL: global_zextload_v3i8_to_v3i32:1299; EG: ; %bb.0: ; %entry1300; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1301; EG-NEXT: TEX 0 @61302; EG-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]1303; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.X, T7.X, 01304; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XY, T6.X, 11305; EG-NEXT: CF_END1306; EG-NEXT: Fetch clause starting at 6:1307; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11308; EG-NEXT: ALU clause starting at 8:1309; EG-NEXT: MOV * T4.X, KC0[2].Z,1310; EG-NEXT: ALU clause starting at 9:1311; EG-NEXT: MOV * T0.W, literal.x,1312; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1313; EG-NEXT: BFE_UINT * T5.Y, T4.X, literal.x, PV.W,1314; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1315; EG-NEXT: AND_INT T5.X, T4.X, literal.x,1316; EG-NEXT: LSHR * T6.X, KC0[2].Y, literal.y,1317; EG-NEXT: 255(3.573311e-43), 2(2.802597e-45)1318; EG-NEXT: BFE_UINT T4.X, T4.X, literal.x, T0.W,1319; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,1320; EG-NEXT: 16(2.242078e-44), 8(1.121039e-44)1321; EG-NEXT: LSHR * T7.X, PV.W, literal.x,1322; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1323;1324; CM-LABEL: global_zextload_v3i8_to_v3i32:1325; CM: ; %bb.0: ; %entry1326; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1327; CM-NEXT: TEX 0 @61328; CM-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]1329; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T4, T7.X1330; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5.X, T6.X1331; CM-NEXT: CF_END1332; CM-NEXT: Fetch clause starting at 6:1333; CM-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11334; CM-NEXT: ALU clause starting at 8:1335; CM-NEXT: MOV * T4.X, KC0[2].Z,1336; CM-NEXT: ALU clause starting at 9:1337; CM-NEXT: MOV * T0.W, literal.x,1338; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)1339; CM-NEXT: BFE_UINT T5.X, T4.X, literal.x, PV.W,1340; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,1341; CM-NEXT: 16(2.242078e-44), 8(1.121039e-44)1342; CM-NEXT: LSHR T6.X, PV.W, literal.x,1343; CM-NEXT: BFE_UINT * T4.Y, T4.X, literal.y, T0.W,1344; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)1345; CM-NEXT: AND_INT * T4.X, T4.X, literal.x,1346; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)1347; CM-NEXT: LSHR * T7.X, KC0[2].Y, literal.x,1348; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1349entry:1350 %ld = load <3 x i8>, ptr addrspace(1) %in1351 %ext = zext <3 x i8> %ld to <3 x i32>1352 store <3 x i32> %ext, ptr addrspace(1) %out1353 ret void1354}1355 1356; TODO: EG/CM should use DST, but for some there are redundant MOVs1357define amdgpu_kernel void @global_sextload_v3i8_to_v3i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1358; GCN-NOHSA-SI-LABEL: global_sextload_v3i8_to_v3i32:1359; GCN-NOHSA-SI: ; %bb.0: ; %entry1360; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91361; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001362; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11363; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61364; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71365; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1366; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21367; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31368; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[8:11], 01369; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01370; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11371; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1372; GCN-NOHSA-SI-NEXT: v_bfe_i32 v1, v2, 8, 81373; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v2, 0, 81374; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v2, 16, 81375; GCN-NOHSA-SI-NEXT: buffer_store_dword v2, off, s[4:7], 0 offset:81376; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 01377; GCN-NOHSA-SI-NEXT: s_endpgm1378;1379; GCN-HSA-LABEL: global_sextload_v3i8_to_v3i32:1380; GCN-HSA: ; %bb.0: ; %entry1381; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01382; GCN-HSA-NEXT: s_add_i32 s12, s12, s171383; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131384; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81385; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1386; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21387; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31388; GCN-HSA-NEXT: flat_load_dword v0, v[0:1]1389; GCN-HSA-NEXT: v_mov_b32_e32 v3, s01390; GCN-HSA-NEXT: v_mov_b32_e32 v4, s11391; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1392; GCN-HSA-NEXT: v_bfe_i32 v2, v0, 16, 81393; GCN-HSA-NEXT: v_bfe_i32 v1, v0, 8, 81394; GCN-HSA-NEXT: v_bfe_i32 v0, v0, 0, 81395; GCN-HSA-NEXT: flat_store_dwordx3 v[3:4], v[0:2]1396; GCN-HSA-NEXT: s_endpgm1397;1398; GCN-NOHSA-VI-LABEL: global_sextload_v3i8_to_v3i32:1399; GCN-NOHSA-VI: ; %bb.0: ; %entry1400; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241401; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001402; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11403; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61404; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71405; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1406; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21407; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31408; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 01409; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01410; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11411; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1412; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v0, 16, 81413; GCN-NOHSA-VI-NEXT: v_bfe_i32 v1, v0, 8, 81414; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 81415; GCN-NOHSA-VI-NEXT: buffer_store_dwordx3 v[0:2], off, s[4:7], 01416; GCN-NOHSA-VI-NEXT: s_endpgm1417;1418; EG-LABEL: global_sextload_v3i8_to_v3i32:1419; EG: ; %bb.0: ; %entry1420; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1421; EG-NEXT: TEX 0 @61422; EG-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]1423; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T6.X, T4.X, 01424; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XY, T5.X, 11425; EG-NEXT: CF_END1426; EG-NEXT: Fetch clause starting at 6:1427; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11428; EG-NEXT: ALU clause starting at 8:1429; EG-NEXT: MOV * T4.X, KC0[2].Z,1430; EG-NEXT: ALU clause starting at 9:1431; EG-NEXT: LSHR T5.X, KC0[2].Y, literal.x,1432; EG-NEXT: LSHR * T0.W, T4.X, literal.y,1433; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)1434; EG-NEXT: BFE_INT * T6.X, PV.W, 0.0, literal.x,1435; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1436; EG-NEXT: BFE_INT T7.X, T4.X, 0.0, literal.x,1437; EG-NEXT: LSHR T0.W, T4.X, literal.x,1438; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.x,1439; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1440; EG-NEXT: LSHR T4.X, PS, literal.x,1441; EG-NEXT: BFE_INT * T7.Y, PV.W, 0.0, literal.y,1442; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)1443;1444; CM-LABEL: global_sextload_v3i8_to_v3i32:1445; CM: ; %bb.0: ; %entry1446; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1447; CM-NEXT: TEX 0 @61448; CM-NEXT: ALU 12, @9, KC0[CB0:0-32], KC1[]1449; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T7, T4.X1450; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5.X, T6.X1451; CM-NEXT: CF_END1452; CM-NEXT: Fetch clause starting at 6:1453; CM-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11454; CM-NEXT: ALU clause starting at 8:1455; CM-NEXT: MOV * T4.X, KC0[2].Z,1456; CM-NEXT: ALU clause starting at 9:1457; CM-NEXT: LSHR * T0.W, T4.X, literal.x,1458; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1459; CM-NEXT: BFE_INT T5.X, PV.W, 0.0, literal.x,1460; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,1461; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)1462; CM-NEXT: LSHR * T6.X, PV.W, literal.x,1463; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1464; CM-NEXT: BFE_INT T7.X, T4.X, 0.0, literal.x,1465; CM-NEXT: LSHR * T0.W, T4.X, literal.x,1466; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)1467; CM-NEXT: LSHR T4.X, KC0[2].Y, literal.x,1468; CM-NEXT: BFE_INT * T7.Y, PV.W, 0.0, literal.y,1469; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)1470entry:1471 %ld = load <3 x i8>, ptr addrspace(1) %in1472 %ext = sext <3 x i8> %ld to <3 x i32>1473 store <3 x i32> %ext, ptr addrspace(1) %out1474 ret void1475}1476 1477; TODO: EG/CM should use DST, but for some there are redundant MOVs1478define amdgpu_kernel void @global_zextload_v4i8_to_v4i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1479; GCN-NOHSA-SI-LABEL: global_zextload_v4i8_to_v4i32:1480; GCN-NOHSA-SI: ; %bb.0:1481; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91482; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001483; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11484; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61485; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71486; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1487; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21488; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31489; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[8:11], 01490; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01491; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11492; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1493; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v3, 24, v21494; GCN-NOHSA-SI-NEXT: v_bfe_u32 v1, v2, 8, 81495; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xff, v21496; GCN-NOHSA-SI-NEXT: v_bfe_u32 v2, v2, 16, 81497; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01498; GCN-NOHSA-SI-NEXT: s_endpgm1499;1500; GCN-HSA-LABEL: global_zextload_v4i8_to_v4i32:1501; GCN-HSA: ; %bb.0:1502; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01503; GCN-HSA-NEXT: s_add_i32 s12, s12, s171504; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131505; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81506; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1507; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21508; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31509; GCN-HSA-NEXT: flat_load_dword v2, v[0:1]1510; GCN-HSA-NEXT: v_mov_b32_e32 v4, s01511; GCN-HSA-NEXT: v_mov_b32_e32 v5, s11512; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1513; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 24, v21514; GCN-HSA-NEXT: v_bfe_u32 v1, v2, 8, 81515; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xff, v21516; GCN-HSA-NEXT: v_bfe_u32 v2, v2, 16, 81517; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1518; GCN-HSA-NEXT: s_endpgm1519;1520; GCN-NOHSA-VI-LABEL: global_zextload_v4i8_to_v4i32:1521; GCN-NOHSA-VI: ; %bb.0:1522; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241523; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001524; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11525; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61526; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71527; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1528; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21529; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31530; GCN-NOHSA-VI-NEXT: buffer_load_dword v2, off, s[8:11], 01531; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01532; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11533; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1534; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 24, v21535; GCN-NOHSA-VI-NEXT: v_bfe_u32 v1, v2, 8, 81536; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xff, v21537; GCN-NOHSA-VI-NEXT: v_bfe_u32 v2, v2, 16, 81538; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01539; GCN-NOHSA-VI-NEXT: s_endpgm1540;1541; EG-LABEL: global_zextload_v4i8_to_v4i32:1542; EG: ; %bb.0:1543; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1544; EG-NEXT: TEX 0 @61545; EG-NEXT: ALU 9, @9, KC0[CB0:0-32], KC1[]1546; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T5.X, 11547; EG-NEXT: CF_END1548; EG-NEXT: PAD1549; EG-NEXT: Fetch clause starting at 6:1550; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11551; EG-NEXT: ALU clause starting at 8:1552; EG-NEXT: MOV * T4.X, KC0[2].Z,1553; EG-NEXT: ALU clause starting at 9:1554; EG-NEXT: MOV * T0.W, literal.x,1555; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1556; EG-NEXT: BFE_UINT * T4.Z, T4.X, literal.x, PV.W,1557; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1558; EG-NEXT: BFE_UINT T4.Y, T4.X, literal.x, T0.W,1559; EG-NEXT: LSHR * T4.W, T4.X, literal.y,1560; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)1561; EG-NEXT: AND_INT T4.X, T4.X, literal.x,1562; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.y,1563; EG-NEXT: 255(3.573311e-43), 2(2.802597e-45)1564;1565; CM-LABEL: global_zextload_v4i8_to_v4i32:1566; CM: ; %bb.0:1567; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1568; CM-NEXT: TEX 0 @61569; CM-NEXT: ALU 10, @9, KC0[CB0:0-32], KC1[]1570; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T4, T5.X1571; CM-NEXT: CF_END1572; CM-NEXT: PAD1573; CM-NEXT: Fetch clause starting at 6:1574; CM-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11575; CM-NEXT: ALU clause starting at 8:1576; CM-NEXT: MOV * T4.X, KC0[2].Z,1577; CM-NEXT: ALU clause starting at 9:1578; CM-NEXT: MOV * T0.W, literal.x,1579; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)1580; CM-NEXT: BFE_UINT * T4.Z, T4.X, literal.x, PV.W,1581; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1582; CM-NEXT: BFE_UINT T4.Y, T4.X, literal.x, T0.W,1583; CM-NEXT: LSHR * T4.W, T4.X, literal.y,1584; CM-NEXT: 8(1.121039e-44), 24(3.363116e-44)1585; CM-NEXT: AND_INT * T4.X, T4.X, literal.x,1586; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)1587; CM-NEXT: LSHR * T5.X, KC0[2].Y, literal.x,1588; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1589 %load = load <4 x i8>, ptr addrspace(1) %in1590 %ext = zext <4 x i8> %load to <4 x i32>1591 store <4 x i32> %ext, ptr addrspace(1) %out1592 ret void1593}1594 1595; TODO: EG/CM should use DST, but for some there are redundant MOVs1596define amdgpu_kernel void @global_sextload_v4i8_to_v4i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1597; GCN-NOHSA-SI-LABEL: global_sextload_v4i8_to_v4i32:1598; GCN-NOHSA-SI: ; %bb.0:1599; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91600; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001601; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11602; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61603; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71604; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1605; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21606; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31607; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 01608; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01609; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11610; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1611; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 24, v01612; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v0, 16, 81613; GCN-NOHSA-SI-NEXT: v_bfe_i32 v1, v0, 8, 81614; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 81615; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01616; GCN-NOHSA-SI-NEXT: s_endpgm1617;1618; GCN-HSA-LABEL: global_sextload_v4i8_to_v4i32:1619; GCN-HSA: ; %bb.0:1620; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01621; GCN-HSA-NEXT: s_add_i32 s12, s12, s171622; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131623; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81624; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1625; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21626; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31627; GCN-HSA-NEXT: flat_load_dword v0, v[0:1]1628; GCN-HSA-NEXT: v_mov_b32_e32 v4, s01629; GCN-HSA-NEXT: v_mov_b32_e32 v5, s11630; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1631; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 24, v01632; GCN-HSA-NEXT: v_bfe_i32 v2, v0, 16, 81633; GCN-HSA-NEXT: v_bfe_i32 v1, v0, 8, 81634; GCN-HSA-NEXT: v_bfe_i32 v0, v0, 0, 81635; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]1636; GCN-HSA-NEXT: s_endpgm1637;1638; GCN-NOHSA-VI-LABEL: global_sextload_v4i8_to_v4i32:1639; GCN-NOHSA-VI: ; %bb.0:1640; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241641; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001642; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11643; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61644; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71645; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1646; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21647; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31648; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 01649; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01650; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11651; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1652; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 24, v01653; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v0, 16, 81654; GCN-NOHSA-VI-NEXT: v_bfe_i32 v1, v0, 8, 81655; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 81656; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01657; GCN-NOHSA-VI-NEXT: s_endpgm1658;1659; EG-LABEL: global_sextload_v4i8_to_v4i32:1660; EG: ; %bb.0:1661; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1662; EG-NEXT: TEX 0 @61663; EG-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]1664; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T4.X, 11665; EG-NEXT: CF_END1666; EG-NEXT: PAD1667; EG-NEXT: Fetch clause starting at 6:1668; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11669; EG-NEXT: ALU clause starting at 8:1670; EG-NEXT: MOV * T4.X, KC0[2].Z,1671; EG-NEXT: ALU clause starting at 9:1672; EG-NEXT: BFE_INT T5.X, T4.X, 0.0, literal.x,1673; EG-NEXT: LSHR * T0.W, T4.X, literal.y,1674; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)1675; EG-NEXT: BFE_INT T5.W, PV.W, 0.0, literal.x,1676; EG-NEXT: LSHR * T0.W, T4.X, literal.y,1677; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)1678; EG-NEXT: BFE_INT T5.Z, PS, 0.0, literal.x,1679; EG-NEXT: LSHR * T0.W, T4.X, literal.x,1680; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1681; EG-NEXT: LSHR T4.X, KC0[2].Y, literal.x,1682; EG-NEXT: BFE_INT * T5.Y, PV.W, 0.0, literal.y,1683; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)1684;1685; CM-LABEL: global_sextload_v4i8_to_v4i32:1686; CM: ; %bb.0:1687; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1688; CM-NEXT: TEX 0 @61689; CM-NEXT: ALU 11, @9, KC0[CB0:0-32], KC1[]1690; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5, T4.X1691; CM-NEXT: CF_END1692; CM-NEXT: PAD1693; CM-NEXT: Fetch clause starting at 6:1694; CM-NEXT: VTX_READ_32 T4.X, T4.X, 0, #11695; CM-NEXT: ALU clause starting at 8:1696; CM-NEXT: MOV * T4.X, KC0[2].Z,1697; CM-NEXT: ALU clause starting at 9:1698; CM-NEXT: BFE_INT T5.X, T4.X, 0.0, literal.x,1699; CM-NEXT: LSHR * T0.W, T4.X, literal.y,1700; CM-NEXT: 8(1.121039e-44), 24(3.363116e-44)1701; CM-NEXT: LSHR T0.Z, T4.X, literal.x,1702; CM-NEXT: BFE_INT * T5.W, PV.W, 0.0, literal.y,1703; CM-NEXT: 16(2.242078e-44), 8(1.121039e-44)1704; CM-NEXT: BFE_INT T5.Z, PV.Z, 0.0, literal.x,1705; CM-NEXT: LSHR * T0.W, T4.X, literal.x,1706; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)1707; CM-NEXT: LSHR T4.X, KC0[2].Y, literal.x,1708; CM-NEXT: BFE_INT * T5.Y, PV.W, 0.0, literal.y,1709; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)1710 %load = load <4 x i8>, ptr addrspace(1) %in1711 %ext = sext <4 x i8> %load to <4 x i32>1712 store <4 x i32> %ext, ptr addrspace(1) %out1713 ret void1714}1715 1716; TODO: EG/CM should use DST, but for some there are redundant MOVs1717define amdgpu_kernel void @global_zextload_v8i8_to_v8i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1718; GCN-NOHSA-SI-LABEL: global_zextload_v8i8_to_v8i32:1719; GCN-NOHSA-SI: ; %bb.0:1720; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91721; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001722; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11723; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61724; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71725; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1726; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21727; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31728; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[8:9], off, s[8:11], 01729; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01730; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11731; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1732; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v3, 24, v81733; GCN-NOHSA-SI-NEXT: v_bfe_u32 v1, v8, 8, 81734; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v7, 24, v91735; GCN-NOHSA-SI-NEXT: v_bfe_u32 v5, v9, 8, 81736; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xff, v81737; GCN-NOHSA-SI-NEXT: v_bfe_u32 v2, v8, 16, 81738; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xff, v91739; GCN-NOHSA-SI-NEXT: v_bfe_u32 v6, v9, 16, 81740; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:161741; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01742; GCN-NOHSA-SI-NEXT: s_endpgm1743;1744; GCN-HSA-LABEL: global_zextload_v8i8_to_v8i32:1745; GCN-HSA: ; %bb.0:1746; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01747; GCN-HSA-NEXT: s_add_i32 s12, s12, s171748; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131749; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81750; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1751; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21752; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31753; GCN-HSA-NEXT: flat_load_dwordx2 v[8:9], v[0:1]1754; GCN-HSA-NEXT: s_add_u32 s2, s0, 161755; GCN-HSA-NEXT: s_addc_u32 s3, s1, 01756; GCN-HSA-NEXT: v_mov_b32_e32 v13, s31757; GCN-HSA-NEXT: v_mov_b32_e32 v11, s11758; GCN-HSA-NEXT: v_mov_b32_e32 v12, s21759; GCN-HSA-NEXT: v_mov_b32_e32 v10, s01760; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1761; GCN-HSA-NEXT: v_lshrrev_b32_e32 v7, 24, v91762; GCN-HSA-NEXT: v_bfe_u32 v5, v9, 8, 81763; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xff, v91764; GCN-HSA-NEXT: v_bfe_u32 v6, v9, 16, 81765; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 24, v81766; GCN-HSA-NEXT: v_bfe_u32 v1, v8, 8, 81767; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xff, v81768; GCN-HSA-NEXT: v_bfe_u32 v2, v8, 16, 81769; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[4:7]1770; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[0:3]1771; GCN-HSA-NEXT: s_endpgm1772;1773; GCN-NOHSA-VI-LABEL: global_zextload_v8i8_to_v8i32:1774; GCN-NOHSA-VI: ; %bb.0:1775; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241776; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001777; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11778; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61779; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71780; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1781; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21782; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31783; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[8:9], off, s[8:11], 01784; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01785; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11786; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1787; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v7, 24, v91788; GCN-NOHSA-VI-NEXT: v_bfe_u32 v5, v9, 8, 81789; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xff, v91790; GCN-NOHSA-VI-NEXT: v_bfe_u32 v6, v9, 16, 81791; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 24, v81792; GCN-NOHSA-VI-NEXT: v_bfe_u32 v1, v8, 8, 81793; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xff, v81794; GCN-NOHSA-VI-NEXT: v_bfe_u32 v2, v8, 16, 81795; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:161796; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01797; GCN-NOHSA-VI-NEXT: s_endpgm1798;1799; EG-LABEL: global_zextload_v8i8_to_v8i32:1800; EG: ; %bb.0:1801; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1802; EG-NEXT: TEX 0 @61803; EG-NEXT: ALU 20, @9, KC0[CB0:0-32], KC1[]1804; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T8.X, 01805; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T5.X, 11806; EG-NEXT: CF_END1807; EG-NEXT: Fetch clause starting at 6:1808; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #11809; EG-NEXT: ALU clause starting at 8:1810; EG-NEXT: MOV * T5.X, KC0[2].Z,1811; EG-NEXT: ALU clause starting at 9:1812; EG-NEXT: MOV * T0.W, literal.x,1813; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)1814; EG-NEXT: BFE_UINT * T6.Z, T5.X, literal.x, PV.W,1815; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1816; EG-NEXT: BFE_UINT T6.Y, T5.X, literal.x, T0.W,1817; EG-NEXT: BFE_UINT T7.Z, T5.Y, literal.y, T0.W,1818; EG-NEXT: LSHR * T6.W, T5.X, literal.z,1819; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)1820; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)1821; EG-NEXT: AND_INT T6.X, T5.X, literal.x,1822; EG-NEXT: BFE_UINT T7.Y, T5.Y, literal.y, T0.W,1823; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.z,1824; EG-NEXT: 255(3.573311e-43), 8(1.121039e-44)1825; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1826; EG-NEXT: LSHR * T7.W, T5.Y, literal.x,1827; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)1828; EG-NEXT: AND_INT T7.X, T5.Y, literal.x,1829; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,1830; EG-NEXT: 255(3.573311e-43), 16(2.242078e-44)1831; EG-NEXT: LSHR * T8.X, PV.W, literal.x,1832; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)1833;1834; CM-LABEL: global_zextload_v8i8_to_v8i32:1835; CM: ; %bb.0:1836; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1837; CM-NEXT: TEX 0 @61838; CM-NEXT: ALU 20, @9, KC0[CB0:0-32], KC1[]1839; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5, T8.X1840; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T6, T7.X1841; CM-NEXT: CF_END1842; CM-NEXT: Fetch clause starting at 6:1843; CM-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #11844; CM-NEXT: ALU clause starting at 8:1845; CM-NEXT: MOV * T5.X, KC0[2].Z,1846; CM-NEXT: ALU clause starting at 9:1847; CM-NEXT: MOV * T0.W, literal.x,1848; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)1849; CM-NEXT: BFE_UINT * T6.Z, T5.Y, literal.x, PV.W,1850; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1851; CM-NEXT: BFE_UINT T6.Y, T5.Y, literal.x, T0.W,1852; CM-NEXT: BFE_UINT T5.Z, T5.X, literal.y, T0.W,1853; CM-NEXT: LSHR * T6.W, T5.Y, literal.z,1854; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)1855; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)1856; CM-NEXT: AND_INT T6.X, T5.Y, literal.x,1857; CM-NEXT: BFE_UINT T5.Y, T5.X, literal.y, T0.W,1858; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,1859; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)1860; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)1861; CM-NEXT: LSHR T7.X, PV.W, literal.x,1862; CM-NEXT: LSHR * T5.W, T5.X, literal.y,1863; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)1864; CM-NEXT: AND_INT * T5.X, T5.X, literal.x,1865; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)1866; CM-NEXT: LSHR * T8.X, KC0[2].Y, literal.x,1867; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)1868 %load = load <8 x i8>, ptr addrspace(1) %in1869 %ext = zext <8 x i8> %load to <8 x i32>1870 store <8 x i32> %ext, ptr addrspace(1) %out1871 ret void1872}1873 1874; TODO: EG/CM should use DST, but for some there are redundant MOVs1875define amdgpu_kernel void @global_sextload_v8i8_to_v8i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {1876; GCN-NOHSA-SI-LABEL: global_sextload_v8i8_to_v8i32:1877; GCN-NOHSA-SI: ; %bb.0:1878; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x91879; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0001880; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -11881; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s61882; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s71883; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)1884; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s21885; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s31886; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[7:8], off, s[8:11], 01887; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s01888; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s11889; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)1890; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 24, v71891; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v7, 16, 81892; GCN-NOHSA-SI-NEXT: v_bfe_i32 v1, v7, 8, 81893; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v7, 0, 81894; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 24, v81895; GCN-NOHSA-SI-NEXT: v_bfe_i32 v6, v8, 16, 81896; GCN-NOHSA-SI-NEXT: v_bfe_i32 v5, v8, 8, 81897; GCN-NOHSA-SI-NEXT: v_bfe_i32 v4, v8, 0, 81898; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:161899; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01900; GCN-NOHSA-SI-NEXT: s_endpgm1901;1902; GCN-HSA-LABEL: global_sextload_v8i8_to_v8i32:1903; GCN-HSA: ; %bb.0:1904; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x01905; GCN-HSA-NEXT: s_add_i32 s12, s12, s171906; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s131907; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 81908; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)1909; GCN-HSA-NEXT: v_mov_b32_e32 v0, s21910; GCN-HSA-NEXT: v_mov_b32_e32 v1, s31911; GCN-HSA-NEXT: flat_load_dwordx2 v[7:8], v[0:1]1912; GCN-HSA-NEXT: s_add_u32 s2, s0, 161913; GCN-HSA-NEXT: s_addc_u32 s3, s1, 01914; GCN-HSA-NEXT: v_mov_b32_e32 v12, s31915; GCN-HSA-NEXT: v_mov_b32_e32 v10, s11916; GCN-HSA-NEXT: v_mov_b32_e32 v11, s21917; GCN-HSA-NEXT: v_mov_b32_e32 v9, s01918; GCN-HSA-NEXT: s_waitcnt vmcnt(0)1919; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 24, v71920; GCN-HSA-NEXT: v_bfe_i32 v2, v7, 16, 81921; GCN-HSA-NEXT: v_bfe_i32 v1, v7, 8, 81922; GCN-HSA-NEXT: v_bfe_i32 v0, v7, 0, 81923; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 24, v81924; GCN-HSA-NEXT: v_bfe_i32 v6, v8, 16, 81925; GCN-HSA-NEXT: v_bfe_i32 v5, v8, 8, 81926; GCN-HSA-NEXT: v_bfe_i32 v4, v8, 0, 81927; GCN-HSA-NEXT: flat_store_dwordx4 v[11:12], v[4:7]1928; GCN-HSA-NEXT: flat_store_dwordx4 v[9:10], v[0:3]1929; GCN-HSA-NEXT: s_endpgm1930;1931; GCN-NOHSA-VI-LABEL: global_sextload_v8i8_to_v8i32:1932; GCN-NOHSA-VI: ; %bb.0:1933; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x241934; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0001935; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -11936; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s61937; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s71938; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)1939; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s21940; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s31941; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[7:8], off, s[8:11], 01942; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s01943; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s11944; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)1945; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 24, v71946; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v7, 16, 81947; GCN-NOHSA-VI-NEXT: v_bfe_i32 v1, v7, 8, 81948; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v7, 0, 81949; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 24, v81950; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v8, 16, 81951; GCN-NOHSA-VI-NEXT: v_bfe_i32 v5, v8, 8, 81952; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v8, 0, 81953; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:161954; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 01955; GCN-NOHSA-VI-NEXT: s_endpgm1956;1957; EG-LABEL: global_sextload_v8i8_to_v8i32:1958; EG: ; %bb.0:1959; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1960; EG-NEXT: TEX 0 @61961; EG-NEXT: ALU 23, @9, KC0[CB0:0-32], KC1[]1962; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T8.X, 01963; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T5.X, 11964; EG-NEXT: CF_END1965; EG-NEXT: Fetch clause starting at 6:1966; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #11967; EG-NEXT: ALU clause starting at 8:1968; EG-NEXT: MOV * T5.X, KC0[2].Z,1969; EG-NEXT: ALU clause starting at 9:1970; EG-NEXT: BFE_INT T6.X, T5.X, 0.0, literal.x,1971; EG-NEXT: LSHR * T0.W, T5.X, literal.y,1972; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)1973; EG-NEXT: BFE_INT T7.X, T5.Y, 0.0, literal.x,1974; EG-NEXT: LSHR T0.Z, T5.Y, literal.y,1975; EG-NEXT: BFE_INT T6.W, PV.W, 0.0, literal.x,1976; EG-NEXT: LSHR * T0.W, T5.X, literal.z,1977; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)1978; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1979; EG-NEXT: LSHR T0.Y, T5.Y, literal.x,1980; EG-NEXT: BFE_INT T6.Z, PS, 0.0, literal.y,1981; EG-NEXT: BFE_INT T7.W, PV.Z, 0.0, literal.y,1982; EG-NEXT: LSHR * T0.W, T5.X, literal.y,1983; EG-NEXT: 16(2.242078e-44), 8(1.121039e-44)1984; EG-NEXT: LSHR T5.X, KC0[2].Y, literal.x,1985; EG-NEXT: BFE_INT T6.Y, PS, 0.0, literal.y,1986; EG-NEXT: BFE_INT T7.Z, PV.Y, 0.0, literal.y,1987; EG-NEXT: LSHR T0.W, T5.Y, literal.y,1988; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,1989; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)1990; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)1991; EG-NEXT: LSHR T8.X, PS, literal.x,1992; EG-NEXT: BFE_INT * T7.Y, PV.W, 0.0, literal.y,1993; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)1994;1995; CM-LABEL: global_sextload_v8i8_to_v8i32:1996; CM: ; %bb.0:1997; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]1998; CM-NEXT: TEX 0 @61999; CM-NEXT: ALU 23, @9, KC0[CB0:0-32], KC1[]2000; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T7, T5.X2001; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T6, T9.X2002; CM-NEXT: CF_END2003; CM-NEXT: Fetch clause starting at 6:2004; CM-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #12005; CM-NEXT: ALU clause starting at 8:2006; CM-NEXT: MOV * T5.X, KC0[2].Z,2007; CM-NEXT: ALU clause starting at 9:2008; CM-NEXT: BFE_INT T6.X, T5.Y, 0.0, literal.x,2009; CM-NEXT: LSHR T0.Z, T5.X, literal.y,2010; CM-NEXT: LSHR * T0.W, T5.Y, literal.z,2011; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)2012; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2013; CM-NEXT: BFE_INT T7.X, T5.X, 0.0, literal.x,2014; CM-NEXT: LSHR T0.Y, T5.X, literal.y,2015; CM-NEXT: LSHR T1.Z, T5.Y, literal.z,2016; CM-NEXT: BFE_INT * T6.W, PV.W, 0.0, literal.x,2017; CM-NEXT: 8(1.121039e-44), 24(3.363116e-44)2018; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2019; CM-NEXT: LSHR T8.X, T5.Y, literal.x,2020; CM-NEXT: ADD_INT T1.Y, KC0[2].Y, literal.y,2021; CM-NEXT: BFE_INT T6.Z, PV.Z, 0.0, literal.x,2022; CM-NEXT: BFE_INT * T7.W, PV.Y, 0.0, literal.x,2023; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)2024; CM-NEXT: LSHR T9.X, PV.Y, literal.x,2025; CM-NEXT: BFE_INT T6.Y, PV.X, 0.0, literal.y,2026; CM-NEXT: BFE_INT T7.Z, T0.Z, 0.0, literal.y,2027; CM-NEXT: LSHR * T0.W, T5.X, literal.y,2028; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)2029; CM-NEXT: LSHR T5.X, KC0[2].Y, literal.x,2030; CM-NEXT: BFE_INT * T7.Y, PV.W, 0.0, literal.y,2031; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)2032 %load = load <8 x i8>, ptr addrspace(1) %in2033 %ext = sext <8 x i8> %load to <8 x i32>2034 store <8 x i32> %ext, ptr addrspace(1) %out2035 ret void2036}2037 2038; TODO: EG/CM should use DST, but for some there are redundant MOVs2039define amdgpu_kernel void @global_zextload_v16i8_to_v16i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2040; GCN-NOHSA-SI-LABEL: global_zextload_v16i8_to_v16i32:2041; GCN-NOHSA-SI: ; %bb.0:2042; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x92043; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0002044; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -12045; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s22046; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s32047; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2048; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s62049; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s72050; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02051; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s42052; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s52053; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)2054; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v7, 24, v02055; GCN-NOHSA-SI-NEXT: v_bfe_u32 v5, v0, 8, 82056; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v11, 24, v12057; GCN-NOHSA-SI-NEXT: v_bfe_u32 v9, v1, 8, 82058; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v15, 24, v22059; GCN-NOHSA-SI-NEXT: v_bfe_u32 v13, v2, 8, 82060; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v19, 24, v32061; GCN-NOHSA-SI-NEXT: v_bfe_u32 v17, v3, 8, 82062; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xff, v02063; GCN-NOHSA-SI-NEXT: v_bfe_u32 v6, v0, 16, 82064; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v8, 0xff, v12065; GCN-NOHSA-SI-NEXT: v_bfe_u32 v10, v1, 16, 82066; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v12, 0xff, v22067; GCN-NOHSA-SI-NEXT: v_bfe_u32 v14, v2, 16, 82068; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v16, 0xff, v32069; GCN-NOHSA-SI-NEXT: v_bfe_u32 v18, v3, 16, 82070; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:482071; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:322072; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:162073; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 02074; GCN-NOHSA-SI-NEXT: s_endpgm2075;2076; GCN-HSA-LABEL: global_zextload_v16i8_to_v16i32:2077; GCN-HSA: ; %bb.0:2078; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x02079; GCN-HSA-NEXT: s_add_i32 s12, s12, s172080; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s132081; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 82082; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2083; GCN-HSA-NEXT: v_mov_b32_e32 v0, s22084; GCN-HSA-NEXT: v_mov_b32_e32 v1, s32085; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]2086; GCN-HSA-NEXT: s_add_u32 s2, s0, 482087; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02088; GCN-HSA-NEXT: v_mov_b32_e32 v12, s32089; GCN-HSA-NEXT: v_mov_b32_e32 v11, s22090; GCN-HSA-NEXT: s_add_u32 s2, s0, 322091; GCN-HSA-NEXT: v_mov_b32_e32 v16, s12092; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02093; GCN-HSA-NEXT: v_mov_b32_e32 v15, s02094; GCN-HSA-NEXT: v_mov_b32_e32 v18, s32095; GCN-HSA-NEXT: s_add_u32 s0, s0, 162096; GCN-HSA-NEXT: v_mov_b32_e32 v17, s22097; GCN-HSA-NEXT: s_addc_u32 s1, s1, 02098; GCN-HSA-NEXT: s_waitcnt vmcnt(0)2099; GCN-HSA-NEXT: v_lshrrev_b32_e32 v10, 24, v32100; GCN-HSA-NEXT: v_bfe_u32 v8, v3, 8, 82101; GCN-HSA-NEXT: v_and_b32_e32 v7, 0xff, v32102; GCN-HSA-NEXT: v_bfe_u32 v9, v3, 16, 82103; GCN-HSA-NEXT: v_lshrrev_b32_e32 v6, 24, v02104; GCN-HSA-NEXT: v_bfe_u32 v4, v0, 8, 82105; GCN-HSA-NEXT: flat_store_dwordx4 v[11:12], v[7:10]2106; GCN-HSA-NEXT: v_lshrrev_b32_e32 v14, 24, v22107; GCN-HSA-NEXT: v_lshrrev_b32_e32 v10, 24, v12108; GCN-HSA-NEXT: v_bfe_u32 v8, v1, 8, 82109; GCN-HSA-NEXT: v_bfe_u32 v12, v2, 8, 82110; GCN-HSA-NEXT: v_and_b32_e32 v3, 0xff, v02111; GCN-HSA-NEXT: v_bfe_u32 v5, v0, 16, 82112; GCN-HSA-NEXT: v_and_b32_e32 v7, 0xff, v12113; GCN-HSA-NEXT: v_bfe_u32 v9, v1, 16, 82114; GCN-HSA-NEXT: v_and_b32_e32 v11, 0xff, v22115; GCN-HSA-NEXT: v_bfe_u32 v13, v2, 16, 82116; GCN-HSA-NEXT: v_mov_b32_e32 v0, s02117; GCN-HSA-NEXT: v_mov_b32_e32 v1, s12118; GCN-HSA-NEXT: flat_store_dwordx4 v[17:18], v[11:14]2119; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[7:10]2120; GCN-HSA-NEXT: flat_store_dwordx4 v[15:16], v[3:6]2121; GCN-HSA-NEXT: s_endpgm2122;2123; GCN-NOHSA-VI-LABEL: global_zextload_v16i8_to_v16i32:2124; GCN-NOHSA-VI: ; %bb.0:2125; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x242126; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0002127; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -12128; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s22129; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s32130; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2131; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s62132; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s72133; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02134; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s42135; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s52136; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)2137; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v19, 24, v32138; GCN-NOHSA-VI-NEXT: v_bfe_u32 v17, v3, 8, 82139; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v16, 0xff, v32140; GCN-NOHSA-VI-NEXT: v_bfe_u32 v18, v3, 16, 82141; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v7, 24, v02142; GCN-NOHSA-VI-NEXT: v_bfe_u32 v5, v0, 8, 82143; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v11, 24, v12144; GCN-NOHSA-VI-NEXT: v_bfe_u32 v9, v1, 8, 82145; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v15, 24, v22146; GCN-NOHSA-VI-NEXT: v_bfe_u32 v13, v2, 8, 82147; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xff, v02148; GCN-NOHSA-VI-NEXT: v_bfe_u32 v6, v0, 16, 82149; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v8, 0xff, v12150; GCN-NOHSA-VI-NEXT: v_bfe_u32 v10, v1, 16, 82151; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v12, 0xff, v22152; GCN-NOHSA-VI-NEXT: v_bfe_u32 v14, v2, 16, 82153; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:482154; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:322155; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:162156; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 02157; GCN-NOHSA-VI-NEXT: s_endpgm2158;2159; EG-LABEL: global_zextload_v16i8_to_v16i32:2160; EG: ; %bb.0:2161; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]2162; EG-NEXT: TEX 0 @82163; EG-NEXT: ALU 39, @11, KC0[CB0:0-32], KC1[]2164; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T14.X, 02165; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T13.X, 02166; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T11.X, 02167; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T7.X, 12168; EG-NEXT: CF_END2169; EG-NEXT: Fetch clause starting at 8:2170; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #12171; EG-NEXT: ALU clause starting at 10:2172; EG-NEXT: MOV * T7.X, KC0[2].Z,2173; EG-NEXT: ALU clause starting at 11:2174; EG-NEXT: MOV * T0.W, literal.x,2175; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)2176; EG-NEXT: BFE_UINT * T8.Z, T7.X, literal.x, PV.W,2177; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2178; EG-NEXT: BFE_UINT T8.Y, T7.X, literal.x, T0.W,2179; EG-NEXT: BFE_UINT T9.Z, T7.Y, literal.y, T0.W,2180; EG-NEXT: LSHR * T8.W, T7.X, literal.z,2181; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)2182; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)2183; EG-NEXT: AND_INT T8.X, T7.X, literal.x,2184; EG-NEXT: BFE_UINT T9.Y, T7.Y, literal.y, T0.W,2185; EG-NEXT: LSHR * T7.X, KC0[2].Y, literal.z,2186; EG-NEXT: 255(3.573311e-43), 8(1.121039e-44)2187; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)2188; EG-NEXT: BFE_UINT T10.Z, T7.Z, literal.x, T0.W,2189; EG-NEXT: LSHR * T9.W, T7.Y, literal.y,2190; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)2191; EG-NEXT: AND_INT T9.X, T7.Y, literal.x,2192; EG-NEXT: BFE_UINT T10.Y, T7.Z, literal.y, T0.W,2193; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2194; EG-NEXT: 255(3.573311e-43), 8(1.121039e-44)2195; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2196; EG-NEXT: LSHR T11.X, PV.W, literal.x,2197; EG-NEXT: BFE_UINT T12.Z, T7.W, literal.y, T0.W,2198; EG-NEXT: LSHR T10.W, T7.Z, literal.z,2199; EG-NEXT: AND_INT * T10.X, T7.Z, literal.w,2200; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2201; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)2202; EG-NEXT: BFE_UINT T12.Y, T7.W, literal.x, T0.W,2203; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2204; EG-NEXT: 8(1.121039e-44), 32(4.484155e-44)2205; EG-NEXT: LSHR T13.X, PV.W, literal.x,2206; EG-NEXT: LSHR T12.W, T7.W, literal.y,2207; EG-NEXT: AND_INT * T12.X, T7.W, literal.z,2208; EG-NEXT: 2(2.802597e-45), 24(3.363116e-44)2209; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)2210; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,2211; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)2212; EG-NEXT: LSHR * T14.X, PV.W, literal.x,2213; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)2214;2215; CM-LABEL: global_zextload_v16i8_to_v16i32:2216; CM: ; %bb.0:2217; CM-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]2218; CM-NEXT: TEX 0 @82219; CM-NEXT: ALU 40, @11, KC0[CB0:0-32], KC1[]2220; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T7, T14.X2221; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T13.X2222; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T9, T12.X2223; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T8, T10.X2224; CM-NEXT: CF_END2225; CM-NEXT: Fetch clause starting at 8:2226; CM-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #12227; CM-NEXT: ALU clause starting at 10:2228; CM-NEXT: MOV * T7.X, KC0[2].Z,2229; CM-NEXT: ALU clause starting at 11:2230; CM-NEXT: MOV * T0.W, literal.x,2231; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)2232; CM-NEXT: BFE_UINT * T8.Z, T7.W, literal.x, PV.W,2233; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2234; CM-NEXT: BFE_UINT T8.Y, T7.W, literal.x, T0.W,2235; CM-NEXT: BFE_UINT T9.Z, T7.Z, literal.y, T0.W,2236; CM-NEXT: LSHR * T8.W, T7.W, literal.z,2237; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)2238; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2239; CM-NEXT: AND_INT T8.X, T7.W, literal.x,2240; CM-NEXT: BFE_UINT T9.Y, T7.Z, literal.y, T0.W,2241; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2242; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)2243; CM-NEXT: 48(6.726233e-44), 0(0.000000e+00)2244; CM-NEXT: LSHR T10.X, PV.W, literal.x,2245; CM-NEXT: BFE_UINT T11.Z, T7.Y, literal.y, T0.W,2246; CM-NEXT: LSHR * T9.W, T7.Z, literal.z,2247; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2248; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2249; CM-NEXT: AND_INT T9.X, T7.Z, literal.x,2250; CM-NEXT: BFE_UINT T11.Y, T7.Y, literal.y, T0.W,2251; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2252; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)2253; CM-NEXT: 32(4.484155e-44), 0(0.000000e+00)2254; CM-NEXT: LSHR T12.X, PV.W, literal.x,2255; CM-NEXT: BFE_UINT T7.Z, T7.X, literal.y, T0.W,2256; CM-NEXT: LSHR * T11.W, T7.Y, literal.z,2257; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2258; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2259; CM-NEXT: AND_INT T11.X, T7.Y, literal.x,2260; CM-NEXT: BFE_UINT T7.Y, T7.X, literal.y, T0.W,2261; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,2262; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)2263; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2264; CM-NEXT: LSHR T13.X, PV.W, literal.x,2265; CM-NEXT: LSHR * T7.W, T7.X, literal.y,2266; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)2267; CM-NEXT: AND_INT * T7.X, T7.X, literal.x,2268; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)2269; CM-NEXT: LSHR * T14.X, KC0[2].Y, literal.x,2270; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)2271 %load = load <16 x i8>, ptr addrspace(1) %in2272 %ext = zext <16 x i8> %load to <16 x i32>2273 store <16 x i32> %ext, ptr addrspace(1) %out2274 ret void2275}2276 2277; TODO: EG/CM should use DST, but for some there are redundant MOVs2278define amdgpu_kernel void @global_sextload_v16i8_to_v16i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2279; GCN-NOHSA-SI-LABEL: global_sextload_v16i8_to_v16i32:2280; GCN-NOHSA-SI: ; %bb.0:2281; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x92282; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0002283; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -12284; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s22285; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s32286; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2287; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s62288; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s72289; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02290; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s42291; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s52292; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)2293; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 24, v02294; GCN-NOHSA-SI-NEXT: v_bfe_i32 v6, v0, 16, 82295; GCN-NOHSA-SI-NEXT: v_bfe_i32 v5, v0, 8, 82296; GCN-NOHSA-SI-NEXT: v_bfe_i32 v4, v0, 0, 82297; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v11, 24, v12298; GCN-NOHSA-SI-NEXT: v_bfe_i32 v10, v1, 16, 82299; GCN-NOHSA-SI-NEXT: v_bfe_i32 v9, v1, 8, 82300; GCN-NOHSA-SI-NEXT: v_bfe_i32 v8, v1, 0, 82301; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v15, 24, v22302; GCN-NOHSA-SI-NEXT: v_bfe_i32 v14, v2, 16, 82303; GCN-NOHSA-SI-NEXT: v_bfe_i32 v13, v2, 8, 82304; GCN-NOHSA-SI-NEXT: v_bfe_i32 v12, v2, 0, 82305; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v19, 24, v32306; GCN-NOHSA-SI-NEXT: v_bfe_i32 v18, v3, 16, 82307; GCN-NOHSA-SI-NEXT: v_bfe_i32 v17, v3, 8, 82308; GCN-NOHSA-SI-NEXT: v_bfe_i32 v16, v3, 0, 82309; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:482310; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:322311; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:162312; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 02313; GCN-NOHSA-SI-NEXT: s_endpgm2314;2315; GCN-HSA-LABEL: global_sextload_v16i8_to_v16i32:2316; GCN-HSA: ; %bb.0:2317; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x02318; GCN-HSA-NEXT: s_add_i32 s12, s12, s172319; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s132320; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 82321; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2322; GCN-HSA-NEXT: v_mov_b32_e32 v0, s22323; GCN-HSA-NEXT: v_mov_b32_e32 v1, s32324; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]2325; GCN-HSA-NEXT: s_add_u32 s2, s0, 482326; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02327; GCN-HSA-NEXT: v_mov_b32_e32 v13, s32328; GCN-HSA-NEXT: v_mov_b32_e32 v12, s22329; GCN-HSA-NEXT: s_add_u32 s2, s0, 322330; GCN-HSA-NEXT: v_mov_b32_e32 v17, s12331; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02332; GCN-HSA-NEXT: v_mov_b32_e32 v16, s02333; GCN-HSA-NEXT: v_mov_b32_e32 v19, s32334; GCN-HSA-NEXT: s_add_u32 s0, s0, 162335; GCN-HSA-NEXT: v_mov_b32_e32 v18, s22336; GCN-HSA-NEXT: s_addc_u32 s1, s1, 02337; GCN-HSA-NEXT: s_waitcnt vmcnt(0)2338; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 24, v32339; GCN-HSA-NEXT: v_bfe_i32 v10, v3, 16, 82340; GCN-HSA-NEXT: v_bfe_i32 v9, v3, 8, 82341; GCN-HSA-NEXT: v_bfe_i32 v8, v3, 0, 82342; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 24, v02343; GCN-HSA-NEXT: v_bfe_i32 v6, v0, 16, 82344; GCN-HSA-NEXT: v_bfe_i32 v5, v0, 8, 82345; GCN-HSA-NEXT: v_bfe_i32 v4, v0, 0, 82346; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[8:11]2347; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 24, v22348; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 24, v12349; GCN-HSA-NEXT: v_bfe_i32 v10, v1, 16, 82350; GCN-HSA-NEXT: v_bfe_i32 v9, v1, 8, 82351; GCN-HSA-NEXT: v_bfe_i32 v8, v1, 0, 82352; GCN-HSA-NEXT: v_bfe_i32 v14, v2, 16, 82353; GCN-HSA-NEXT: v_bfe_i32 v13, v2, 8, 82354; GCN-HSA-NEXT: v_bfe_i32 v12, v2, 0, 82355; GCN-HSA-NEXT: v_mov_b32_e32 v0, s02356; GCN-HSA-NEXT: v_mov_b32_e32 v1, s12357; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[12:15]2358; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[8:11]2359; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[4:7]2360; GCN-HSA-NEXT: s_endpgm2361;2362; GCN-NOHSA-VI-LABEL: global_sextload_v16i8_to_v16i32:2363; GCN-NOHSA-VI: ; %bb.0:2364; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x242365; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0002366; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -12367; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s22368; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s32369; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2370; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s62371; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s72372; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02373; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s42374; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s52375; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)2376; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v19, 24, v32377; GCN-NOHSA-VI-NEXT: v_bfe_i32 v18, v3, 16, 82378; GCN-NOHSA-VI-NEXT: v_bfe_i32 v17, v3, 8, 82379; GCN-NOHSA-VI-NEXT: v_bfe_i32 v16, v3, 0, 82380; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 24, v02381; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v0, 16, 82382; GCN-NOHSA-VI-NEXT: v_bfe_i32 v5, v0, 8, 82383; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v0, 0, 82384; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v11, 24, v12385; GCN-NOHSA-VI-NEXT: v_bfe_i32 v10, v1, 16, 82386; GCN-NOHSA-VI-NEXT: v_bfe_i32 v9, v1, 8, 82387; GCN-NOHSA-VI-NEXT: v_bfe_i32 v8, v1, 0, 82388; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v15, 24, v22389; GCN-NOHSA-VI-NEXT: v_bfe_i32 v14, v2, 16, 82390; GCN-NOHSA-VI-NEXT: v_bfe_i32 v13, v2, 8, 82391; GCN-NOHSA-VI-NEXT: v_bfe_i32 v12, v2, 0, 82392; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:482393; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:322394; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:162395; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 02396; GCN-NOHSA-VI-NEXT: s_endpgm2397;2398; EG-LABEL: global_sextload_v16i8_to_v16i32:2399; EG: ; %bb.0:2400; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]2401; EG-NEXT: TEX 0 @82402; EG-NEXT: ALU 47, @11, KC0[CB0:0-32], KC1[]2403; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T14.X, 02404; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T13.X, 02405; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T7.X, 02406; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T8.X, 12407; EG-NEXT: CF_END2408; EG-NEXT: Fetch clause starting at 8:2409; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #12410; EG-NEXT: ALU clause starting at 10:2411; EG-NEXT: MOV * T7.X, KC0[2].Z,2412; EG-NEXT: ALU clause starting at 11:2413; EG-NEXT: LSHR T8.X, KC0[2].Y, literal.x,2414; EG-NEXT: LSHR T0.W, T7.W, literal.y,2415; EG-NEXT: LSHR * T1.W, T7.Z, literal.z,2416; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2417; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)2418; EG-NEXT: BFE_INT T9.X, T7.X, 0.0, literal.x,2419; EG-NEXT: LSHR T0.Y, T7.W, literal.y,2420; EG-NEXT: LSHR T0.Z, T7.Z, literal.z,2421; EG-NEXT: LSHR T2.W, T7.Y, literal.x,2422; EG-NEXT: LSHR * T3.W, T7.X, literal.y,2423; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)2424; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2425; EG-NEXT: BFE_INT T10.X, T7.Y, 0.0, literal.x,2426; EG-NEXT: LSHR T1.Y, T7.Z, literal.y,2427; EG-NEXT: LSHR T1.Z, T7.Y, literal.y,2428; EG-NEXT: BFE_INT T9.W, PS, 0.0, literal.x,2429; EG-NEXT: LSHR * T3.W, T7.X, literal.z,2430; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)2431; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2432; EG-NEXT: BFE_INT T11.X, T7.Z, 0.0, literal.x,2433; EG-NEXT: LSHR T2.Y, T7.Y, literal.y,2434; EG-NEXT: BFE_INT T9.Z, PS, 0.0, literal.x,2435; EG-NEXT: BFE_INT T10.W, PV.Z, 0.0, literal.x,2436; EG-NEXT: LSHR * T3.W, T7.X, literal.x,2437; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)2438; EG-NEXT: BFE_INT T12.X, T7.W, 0.0, literal.x,2439; EG-NEXT: BFE_INT T9.Y, PS, 0.0, literal.x,2440; EG-NEXT: BFE_INT T10.Z, PV.Y, 0.0, literal.x,2441; EG-NEXT: BFE_INT T11.W, T1.Y, 0.0, literal.x,2442; EG-NEXT: ADD_INT * T3.W, KC0[2].Y, literal.y,2443; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)2444; EG-NEXT: LSHR T7.X, PS, literal.x,2445; EG-NEXT: BFE_INT T10.Y, T2.W, 0.0, literal.y,2446; EG-NEXT: BFE_INT T11.Z, T0.Z, 0.0, literal.y,2447; EG-NEXT: BFE_INT T12.W, T0.Y, 0.0, literal.y,2448; EG-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.z,2449; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)2450; EG-NEXT: 32(4.484155e-44), 0(0.000000e+00)2451; EG-NEXT: LSHR T13.X, PS, literal.x,2452; EG-NEXT: BFE_INT T11.Y, T1.W, 0.0, literal.y,2453; EG-NEXT: BFE_INT T12.Z, T0.W, 0.0, literal.y, BS:VEC_120/SCL_2122454; EG-NEXT: LSHR T0.W, T7.W, literal.y, BS:VEC_2012455; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2456; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)2457; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)2458; EG-NEXT: LSHR T14.X, PS, literal.x,2459; EG-NEXT: BFE_INT * T12.Y, PV.W, 0.0, literal.y,2460; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)2461;2462; CM-LABEL: global_sextload_v16i8_to_v16i32:2463; CM: ; %bb.0:2464; CM-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]2465; CM-NEXT: TEX 0 @82466; CM-NEXT: ALU 48, @11, KC0[CB0:0-32], KC1[]2467; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T13, T7.X2468; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T15.X2469; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T14.X2470; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T10, T9.X2471; CM-NEXT: CF_END2472; CM-NEXT: Fetch clause starting at 8:2473; CM-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #12474; CM-NEXT: ALU clause starting at 10:2475; CM-NEXT: MOV * T7.X, KC0[2].Z,2476; CM-NEXT: ALU clause starting at 11:2477; CM-NEXT: LSHR * T0.W, T7.X, literal.x,2478; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2479; CM-NEXT: LSHR T8.X, T7.Y, literal.x,2480; CM-NEXT: ADD_INT T0.Y, KC0[2].Y, literal.y,2481; CM-NEXT: LSHR T0.Z, T7.X, literal.z,2482; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.w,2483; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)2484; CM-NEXT: 24(3.363116e-44), 48(6.726233e-44)2485; CM-NEXT: LSHR T9.X, PV.W, literal.x,2486; CM-NEXT: LSHR T1.Y, T7.Y, literal.y,2487; CM-NEXT: LSHR T1.Z, T7.Z, literal.z,2488; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.w,2489; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2490; CM-NEXT: 8(1.121039e-44), 32(4.484155e-44)2491; CM-NEXT: BFE_INT T10.X, T7.W, 0.0, literal.x,2492; CM-NEXT: LSHR T2.Y, T7.Y, literal.y,2493; CM-NEXT: LSHR T2.Z, T7.Z, literal.z,2494; CM-NEXT: LSHR * T2.W, T7.W, literal.y,2495; CM-NEXT: 8(1.121039e-44), 24(3.363116e-44)2496; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2497; CM-NEXT: BFE_INT T11.X, T7.Z, 0.0, literal.x,2498; CM-NEXT: LSHR T3.Y, T7.Z, literal.y,2499; CM-NEXT: LSHR T3.Z, T7.W, literal.z,2500; CM-NEXT: BFE_INT * T10.W, PV.W, 0.0, literal.x,2501; CM-NEXT: 8(1.121039e-44), 24(3.363116e-44)2502; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2503; CM-NEXT: BFE_INT T12.X, T7.Y, 0.0, literal.x,2504; CM-NEXT: LSHR T4.Y, T7.W, literal.x,2505; CM-NEXT: BFE_INT T10.Z, PV.Z, 0.0, literal.x,2506; CM-NEXT: BFE_INT * T11.W, PV.Y, 0.0, literal.x,2507; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)2508; CM-NEXT: BFE_INT T13.X, T7.X, 0.0, literal.x,2509; CM-NEXT: BFE_INT T10.Y, PV.Y, 0.0, literal.x,2510; CM-NEXT: BFE_INT T11.Z, T2.Z, 0.0, literal.x,2511; CM-NEXT: BFE_INT * T12.W, T2.Y, 0.0, literal.x,2512; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)2513; CM-NEXT: LSHR T14.X, T1.W, literal.x,2514; CM-NEXT: BFE_INT T11.Y, T1.Z, 0.0, literal.y,2515; CM-NEXT: BFE_INT T12.Z, T1.Y, 0.0, literal.y,2516; CM-NEXT: BFE_INT * T13.W, T0.Z, 0.0, literal.y, BS:VEC_120/SCL_2122517; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)2518; CM-NEXT: LSHR T15.X, T0.Y, literal.x,2519; CM-NEXT: BFE_INT T12.Y, T8.X, 0.0, literal.y,2520; CM-NEXT: BFE_INT T13.Z, T0.W, 0.0, literal.y,2521; CM-NEXT: LSHR * T0.W, T7.X, literal.y, BS:VEC_120/SCL_2122522; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)2523; CM-NEXT: LSHR T7.X, KC0[2].Y, literal.x,2524; CM-NEXT: BFE_INT * T13.Y, PV.W, 0.0, literal.y,2525; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)2526 %load = load <16 x i8>, ptr addrspace(1) %in2527 %ext = sext <16 x i8> %load to <16 x i32>2528 store <16 x i32> %ext, ptr addrspace(1) %out2529 ret void2530}2531 2532; TODO: EG/CM should use DST, but for some there are redundant MOVs2533define amdgpu_kernel void @global_zextload_v32i8_to_v32i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2534; GCN-NOHSA-SI-LABEL: global_zextload_v32i8_to_v32i32:2535; GCN-NOHSA-SI: ; %bb.0:2536; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x92537; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0002538; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -12539; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s22540; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s32541; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2542; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s62543; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s72544; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02545; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162546; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)2547; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v11, 24, v02548; GCN-NOHSA-SI-NEXT: v_bfe_u32 v9, v0, 8, 82549; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v15, 24, v12550; GCN-NOHSA-SI-NEXT: v_bfe_u32 v13, v1, 8, 82551; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v19, 24, v22552; GCN-NOHSA-SI-NEXT: v_bfe_u32 v17, v2, 8, 82553; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v23, 24, v32554; GCN-NOHSA-SI-NEXT: v_bfe_u32 v21, v3, 8, 82555; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v8, 0xff, v02556; GCN-NOHSA-SI-NEXT: v_bfe_u32 v10, v0, 16, 82557; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v12, 0xff, v12558; GCN-NOHSA-SI-NEXT: v_bfe_u32 v14, v1, 16, 82559; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v16, 0xff, v22560; GCN-NOHSA-SI-NEXT: v_bfe_u32 v18, v2, 16, 82561; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v20, 0xff, v32562; GCN-NOHSA-SI-NEXT: v_bfe_u32 v22, v3, 16, 82563; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)2564; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v3, 24, v42565; GCN-NOHSA-SI-NEXT: v_bfe_u32 v1, v4, 8, 82566; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v27, 24, v52567; GCN-NOHSA-SI-NEXT: v_bfe_u32 v25, v5, 8, 82568; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v31, 24, v62569; GCN-NOHSA-SI-NEXT: v_bfe_u32 v29, v6, 8, 82570; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v35, 24, v72571; GCN-NOHSA-SI-NEXT: v_bfe_u32 v33, v7, 8, 82572; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xff, v42573; GCN-NOHSA-SI-NEXT: v_bfe_u32 v2, v4, 16, 82574; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v24, 0xff, v52575; GCN-NOHSA-SI-NEXT: v_bfe_u32 v26, v5, 16, 82576; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v28, 0xff, v62577; GCN-NOHSA-SI-NEXT: v_bfe_u32 v30, v6, 16, 82578; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v32, 0xff, v72579; GCN-NOHSA-SI-NEXT: v_bfe_u32 v34, v7, 16, 82580; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s42581; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s52582; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:1122583; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:962584; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:802585; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:642586; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:482587; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:322588; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:162589; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 02590; GCN-NOHSA-SI-NEXT: s_endpgm2591;2592; GCN-HSA-LABEL: global_zextload_v32i8_to_v32i32:2593; GCN-HSA: ; %bb.0:2594; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x02595; GCN-HSA-NEXT: s_add_i32 s12, s12, s172596; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s132597; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 82598; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)2599; GCN-HSA-NEXT: v_mov_b32_e32 v0, s22600; GCN-HSA-NEXT: v_mov_b32_e32 v1, s32601; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[0:1]2602; GCN-HSA-NEXT: s_add_u32 s2, s2, 162603; GCN-HSA-NEXT: s_addc_u32 s3, s3, 02604; GCN-HSA-NEXT: v_mov_b32_e32 v0, s22605; GCN-HSA-NEXT: v_mov_b32_e32 v1, s32606; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]2607; GCN-HSA-NEXT: s_add_u32 s2, s0, 482608; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02609; GCN-HSA-NEXT: v_mov_b32_e32 v15, s32610; GCN-HSA-NEXT: v_mov_b32_e32 v14, s22611; GCN-HSA-NEXT: s_add_u32 s2, s0, 322612; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02613; GCN-HSA-NEXT: v_mov_b32_e32 v17, s32614; GCN-HSA-NEXT: v_mov_b32_e32 v16, s22615; GCN-HSA-NEXT: s_add_u32 s2, s0, 162616; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02617; GCN-HSA-NEXT: v_mov_b32_e32 v19, s32618; GCN-HSA-NEXT: v_mov_b32_e32 v18, s22619; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x702620; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02621; GCN-HSA-NEXT: v_mov_b32_e32 v13, s12622; GCN-HSA-NEXT: v_mov_b32_e32 v12, s02623; GCN-HSA-NEXT: s_waitcnt vmcnt(1)2624; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 24, v72625; GCN-HSA-NEXT: v_bfe_u32 v9, v7, 8, 82626; GCN-HSA-NEXT: v_and_b32_e32 v8, 0xff, v72627; GCN-HSA-NEXT: v_bfe_u32 v10, v7, 16, 82628; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[8:11]2629; GCN-HSA-NEXT: v_mov_b32_e32 v15, s32630; GCN-HSA-NEXT: v_mov_b32_e32 v14, s22631; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x602632; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02633; GCN-HSA-NEXT: v_lshrrev_b32_e32 v10, 24, v62634; GCN-HSA-NEXT: v_bfe_u32 v8, v6, 8, 82635; GCN-HSA-NEXT: v_and_b32_e32 v7, 0xff, v62636; GCN-HSA-NEXT: v_bfe_u32 v9, v6, 16, 82637; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[7:10]2638; GCN-HSA-NEXT: v_mov_b32_e32 v17, s32639; GCN-HSA-NEXT: v_mov_b32_e32 v16, s22640; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x502641; GCN-HSA-NEXT: v_lshrrev_b32_e32 v9, 24, v52642; GCN-HSA-NEXT: v_bfe_u32 v7, v5, 8, 82643; GCN-HSA-NEXT: v_and_b32_e32 v6, 0xff, v52644; GCN-HSA-NEXT: v_bfe_u32 v8, v5, 16, 82645; GCN-HSA-NEXT: s_addc_u32 s3, s1, 02646; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[6:9]2647; GCN-HSA-NEXT: v_and_b32_e32 v5, 0xff, v42648; GCN-HSA-NEXT: v_lshrrev_b32_e32 v8, 24, v42649; GCN-HSA-NEXT: v_bfe_u32 v6, v4, 8, 82650; GCN-HSA-NEXT: v_bfe_u32 v7, v4, 16, 82651; GCN-HSA-NEXT: s_add_u32 s0, s0, 642652; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[5:8]2653; GCN-HSA-NEXT: s_waitcnt vmcnt(4)2654; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xff, v32655; GCN-HSA-NEXT: v_lshrrev_b32_e32 v7, 24, v32656; GCN-HSA-NEXT: v_bfe_u32 v5, v3, 8, 82657; GCN-HSA-NEXT: v_bfe_u32 v6, v3, 16, 82658; GCN-HSA-NEXT: v_mov_b32_e32 v19, s32659; GCN-HSA-NEXT: s_addc_u32 s1, s1, 02660; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 24, v02661; GCN-HSA-NEXT: v_bfe_u32 v9, v0, 8, 82662; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[4:7]2663; GCN-HSA-NEXT: v_lshrrev_b32_e32 v15, 24, v22664; GCN-HSA-NEXT: v_lshrrev_b32_e32 v6, 24, v12665; GCN-HSA-NEXT: v_bfe_u32 v4, v1, 8, 82666; GCN-HSA-NEXT: v_bfe_u32 v13, v2, 8, 82667; GCN-HSA-NEXT: v_and_b32_e32 v8, 0xff, v02668; GCN-HSA-NEXT: v_bfe_u32 v10, v0, 16, 82669; GCN-HSA-NEXT: v_and_b32_e32 v3, 0xff, v12670; GCN-HSA-NEXT: v_bfe_u32 v5, v1, 16, 82671; GCN-HSA-NEXT: v_and_b32_e32 v12, 0xff, v22672; GCN-HSA-NEXT: v_bfe_u32 v14, v2, 16, 82673; GCN-HSA-NEXT: v_mov_b32_e32 v0, s02674; GCN-HSA-NEXT: v_mov_b32_e32 v18, s22675; GCN-HSA-NEXT: v_mov_b32_e32 v1, s12676; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[12:15]2677; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[3:6]2678; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[8:11]2679; GCN-HSA-NEXT: s_endpgm2680;2681; GCN-NOHSA-VI-LABEL: global_zextload_v32i8_to_v32i32:2682; GCN-NOHSA-VI: ; %bb.0:2683; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x242684; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0002685; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -12686; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s22687; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s32688; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)2689; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s62690; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s72691; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02692; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162693; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s42694; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s52695; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)2696; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v11, 24, v02697; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)2698; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v35, 24, v72699; GCN-NOHSA-VI-NEXT: v_bfe_u32 v33, v7, 8, 82700; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v32, 0xff, v72701; GCN-NOHSA-VI-NEXT: v_bfe_u32 v34, v7, 16, 82702; GCN-NOHSA-VI-NEXT: v_bfe_u32 v9, v0, 8, 82703; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v15, 24, v12704; GCN-NOHSA-VI-NEXT: v_bfe_u32 v13, v1, 8, 82705; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v19, 24, v22706; GCN-NOHSA-VI-NEXT: v_bfe_u32 v17, v2, 8, 82707; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v23, 24, v32708; GCN-NOHSA-VI-NEXT: v_bfe_u32 v21, v3, 8, 82709; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v8, 0xff, v02710; GCN-NOHSA-VI-NEXT: v_bfe_u32 v10, v0, 16, 82711; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v12, 0xff, v12712; GCN-NOHSA-VI-NEXT: v_bfe_u32 v14, v1, 16, 82713; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v16, 0xff, v22714; GCN-NOHSA-VI-NEXT: v_bfe_u32 v18, v2, 16, 82715; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v20, 0xff, v32716; GCN-NOHSA-VI-NEXT: v_bfe_u32 v22, v3, 16, 82717; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 24, v42718; GCN-NOHSA-VI-NEXT: v_bfe_u32 v1, v4, 8, 82719; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v27, 24, v52720; GCN-NOHSA-VI-NEXT: v_bfe_u32 v25, v5, 8, 82721; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v31, 24, v62722; GCN-NOHSA-VI-NEXT: v_bfe_u32 v29, v6, 8, 82723; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xff, v42724; GCN-NOHSA-VI-NEXT: v_bfe_u32 v2, v4, 16, 82725; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v24, 0xff, v52726; GCN-NOHSA-VI-NEXT: v_bfe_u32 v26, v5, 16, 82727; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v28, 0xff, v62728; GCN-NOHSA-VI-NEXT: v_bfe_u32 v30, v6, 16, 82729; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:1122730; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:962731; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:802732; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:642733; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:482734; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:322735; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:162736; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 02737; GCN-NOHSA-VI-NEXT: s_endpgm2738;2739; EG-LABEL: global_zextload_v32i8_to_v32i32:2740; EG: ; %bb.0:2741; EG-NEXT: ALU 0, @16, KC0[CB0:0-32], KC1[]2742; EG-NEXT: TEX 1 @122743; EG-NEXT: ALU 75, @17, KC0[CB0:0-32], KC1[]2744; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T24.XYZW, T26.X, 02745; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T22.XYZW, T25.X, 02746; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T23.X, 02747; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T12.X, 02748; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T20.X, 02749; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T18.X, 02750; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T16.X, 02751; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T11.X, 12752; EG-NEXT: CF_END2753; EG-NEXT: Fetch clause starting at 12:2754; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #12755; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #12756; EG-NEXT: ALU clause starting at 16:2757; EG-NEXT: MOV * T11.X, KC0[2].Z,2758; EG-NEXT: ALU clause starting at 17:2759; EG-NEXT: MOV * T0.W, literal.x,2760; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)2761; EG-NEXT: BFE_UINT * T13.Z, T11.X, literal.x, PV.W,2762; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2763; EG-NEXT: BFE_UINT T13.Y, T11.X, literal.x, T0.W,2764; EG-NEXT: BFE_UINT T14.Z, T11.Y, literal.y, T0.W,2765; EG-NEXT: LSHR * T13.W, T11.X, literal.z,2766; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)2767; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)2768; EG-NEXT: AND_INT T13.X, T11.X, literal.x,2769; EG-NEXT: BFE_UINT T14.Y, T11.Y, literal.y, T0.W,2770; EG-NEXT: LSHR * T11.X, KC0[2].Y, literal.z,2771; EG-NEXT: 255(3.573311e-43), 8(1.121039e-44)2772; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)2773; EG-NEXT: BFE_UINT T15.Z, T11.Z, literal.x, T0.W,2774; EG-NEXT: LSHR * T14.W, T11.Y, literal.y,2775; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)2776; EG-NEXT: AND_INT T14.X, T11.Y, literal.x,2777; EG-NEXT: BFE_UINT T15.Y, T11.Z, literal.y, T0.W,2778; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2779; EG-NEXT: 255(3.573311e-43), 8(1.121039e-44)2780; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)2781; EG-NEXT: LSHR T16.X, PV.W, literal.x,2782; EG-NEXT: BFE_UINT T17.Z, T11.W, literal.y, T0.W,2783; EG-NEXT: LSHR T15.W, T11.Z, literal.z,2784; EG-NEXT: AND_INT * T15.X, T11.Z, literal.w,2785; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2786; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)2787; EG-NEXT: BFE_UINT T17.Y, T11.W, literal.x, T0.W,2788; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,2789; EG-NEXT: 8(1.121039e-44), 32(4.484155e-44)2790; EG-NEXT: LSHR T18.X, PV.W, literal.x,2791; EG-NEXT: BFE_UINT T19.Z, T12.X, literal.y, T0.W, BS:VEC_021/SCL_1222792; EG-NEXT: LSHR T17.W, T11.W, literal.z,2793; EG-NEXT: AND_INT * T17.X, T11.W, literal.w,2794; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2795; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)2796; EG-NEXT: BFE_UINT T19.Y, T12.X, literal.x, T0.W,2797; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,2798; EG-NEXT: 8(1.121039e-44), 48(6.726233e-44)2799; EG-NEXT: LSHR T20.X, PV.W, literal.x,2800; EG-NEXT: BFE_UINT T21.Z, T12.Y, literal.y, T0.W,2801; EG-NEXT: LSHR T19.W, T12.X, literal.z,2802; EG-NEXT: AND_INT * T19.X, T12.X, literal.w,2803; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2804; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)2805; EG-NEXT: BFE_UINT T21.Y, T12.Y, literal.x, T0.W,2806; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,2807; EG-NEXT: 8(1.121039e-44), 64(8.968310e-44)2808; EG-NEXT: LSHR T12.X, PV.W, literal.x,2809; EG-NEXT: BFE_UINT T22.Z, T12.Z, literal.y, T0.W,2810; EG-NEXT: LSHR T21.W, T12.Y, literal.z,2811; EG-NEXT: AND_INT * T21.X, T12.Y, literal.w,2812; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2813; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)2814; EG-NEXT: BFE_UINT T22.Y, T12.Z, literal.x, T0.W,2815; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,2816; EG-NEXT: 8(1.121039e-44), 80(1.121039e-43)2817; EG-NEXT: LSHR T23.X, PV.W, literal.x,2818; EG-NEXT: BFE_UINT T24.Z, T12.W, literal.y, T0.W,2819; EG-NEXT: LSHR T22.W, T12.Z, literal.z,2820; EG-NEXT: AND_INT * T22.X, T12.Z, literal.w,2821; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)2822; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)2823; EG-NEXT: BFE_UINT T24.Y, T12.W, literal.x, T0.W,2824; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,2825; EG-NEXT: 8(1.121039e-44), 96(1.345247e-43)2826; EG-NEXT: LSHR T25.X, PV.W, literal.x,2827; EG-NEXT: LSHR T24.W, T12.W, literal.y,2828; EG-NEXT: AND_INT * T24.X, T12.W, literal.z,2829; EG-NEXT: 2(2.802597e-45), 24(3.363116e-44)2830; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)2831; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,2832; EG-NEXT: 112(1.569454e-43), 0(0.000000e+00)2833; EG-NEXT: LSHR * T26.X, PV.W, literal.x,2834; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)2835;2836; CM-LABEL: global_zextload_v32i8_to_v32i32:2837; CM: ; %bb.0:2838; CM-NEXT: ALU 0, @16, KC0[CB0:0-32], KC1[]2839; CM-NEXT: TEX 1 @122840; CM-NEXT: ALU 80, @17, KC0[CB0:0-32], KC1[]2841; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T26.X2842; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T23, T25.X2843; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T21, T24.X2844; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T22.X2845; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T20.X2846; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T16, T18.X2847; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T14, T17.X2848; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T13, T15.X2849; CM-NEXT: CF_END2850; CM-NEXT: Fetch clause starting at 12:2851; CM-NEXT: VTX_READ_128 T12.XYZW, T11.X, 0, #12852; CM-NEXT: VTX_READ_128 T11.XYZW, T11.X, 16, #12853; CM-NEXT: ALU clause starting at 16:2854; CM-NEXT: MOV * T11.X, KC0[2].Z,2855; CM-NEXT: ALU clause starting at 17:2856; CM-NEXT: MOV * T0.W, literal.x,2857; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)2858; CM-NEXT: BFE_UINT * T13.Z, T11.W, literal.x, PV.W,2859; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2860; CM-NEXT: BFE_UINT T13.Y, T11.W, literal.x, T0.W,2861; CM-NEXT: BFE_UINT T14.Z, T11.Z, literal.y, T0.W,2862; CM-NEXT: LSHR * T13.W, T11.W, literal.z,2863; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)2864; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2865; CM-NEXT: AND_INT T13.X, T11.W, literal.x,2866; CM-NEXT: BFE_UINT T14.Y, T11.Z, literal.y, T0.W,2867; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2868; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)2869; CM-NEXT: 112(1.569454e-43), 0(0.000000e+00)2870; CM-NEXT: LSHR T15.X, PV.W, literal.x,2871; CM-NEXT: BFE_UINT T16.Z, T11.Y, literal.y, T0.W,2872; CM-NEXT: LSHR * T14.W, T11.Z, literal.z,2873; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2874; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2875; CM-NEXT: AND_INT T14.X, T11.Z, literal.x,2876; CM-NEXT: BFE_UINT T16.Y, T11.Y, literal.y, T0.W,2877; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2878; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)2879; CM-NEXT: 96(1.345247e-43), 0(0.000000e+00)2880; CM-NEXT: LSHR T17.X, PV.W, literal.x,2881; CM-NEXT: BFE_UINT T11.Z, T11.X, literal.y, T0.W,2882; CM-NEXT: LSHR * T16.W, T11.Y, literal.z,2883; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2884; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2885; CM-NEXT: AND_INT T16.X, T11.Y, literal.x,2886; CM-NEXT: BFE_UINT T11.Y, T11.X, literal.y, T0.W,2887; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2888; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)2889; CM-NEXT: 80(1.121039e-43), 0(0.000000e+00)2890; CM-NEXT: LSHR T18.X, PV.W, literal.x,2891; CM-NEXT: BFE_UINT T19.Z, T12.W, literal.y, T0.W,2892; CM-NEXT: LSHR * T11.W, T11.X, literal.z,2893; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2894; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2895; CM-NEXT: AND_INT T11.X, T11.X, literal.x,2896; CM-NEXT: BFE_UINT T19.Y, T12.W, literal.y, T0.W,2897; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2898; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)2899; CM-NEXT: 64(8.968310e-44), 0(0.000000e+00)2900; CM-NEXT: LSHR T20.X, PV.W, literal.x,2901; CM-NEXT: BFE_UINT T21.Z, T12.Z, literal.y, T0.W,2902; CM-NEXT: LSHR * T19.W, T12.W, literal.z,2903; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2904; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2905; CM-NEXT: AND_INT T19.X, T12.W, literal.x,2906; CM-NEXT: BFE_UINT T21.Y, T12.Z, literal.y, T0.W,2907; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2908; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)2909; CM-NEXT: 48(6.726233e-44), 0(0.000000e+00)2910; CM-NEXT: LSHR T22.X, PV.W, literal.x,2911; CM-NEXT: BFE_UINT T23.Z, T12.Y, literal.y, T0.W,2912; CM-NEXT: LSHR * T21.W, T12.Z, literal.z,2913; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2914; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2915; CM-NEXT: AND_INT T21.X, T12.Z, literal.x,2916; CM-NEXT: BFE_UINT T23.Y, T12.Y, literal.y, T0.W,2917; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,2918; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)2919; CM-NEXT: 32(4.484155e-44), 0(0.000000e+00)2920; CM-NEXT: LSHR T24.X, PV.W, literal.x,2921; CM-NEXT: BFE_UINT T12.Z, T12.X, literal.y, T0.W,2922; CM-NEXT: LSHR * T23.W, T12.Y, literal.z,2923; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)2924; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)2925; CM-NEXT: AND_INT T23.X, T12.Y, literal.x,2926; CM-NEXT: BFE_UINT T12.Y, T12.X, literal.y, T0.W,2927; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,2928; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)2929; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)2930; CM-NEXT: LSHR T25.X, PV.W, literal.x,2931; CM-NEXT: LSHR * T12.W, T12.X, literal.y,2932; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)2933; CM-NEXT: AND_INT * T12.X, T12.X, literal.x,2934; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)2935; CM-NEXT: LSHR * T26.X, KC0[2].Y, literal.x,2936; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)2937 %load = load <32 x i8>, ptr addrspace(1) %in2938 %ext = zext <32 x i8> %load to <32 x i32>2939 store <32 x i32> %ext, ptr addrspace(1) %out2940 ret void2941}2942 2943; TODO: EG/CM should use DST, but for some there are redundant MOVs2944define amdgpu_kernel void @global_sextload_v32i8_to_v32i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {2945; GCN-NOHSA-SI-LABEL: global_sextload_v32i8_to_v32i32:2946; GCN-NOHSA-SI: ; %bb.0:2947; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x92948; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0002949; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -12950; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s22951; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s32952; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)2953; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s62954; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s72955; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 02956; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:162957; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)2958; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v11, 24, v02959; GCN-NOHSA-SI-NEXT: v_bfe_i32 v10, v0, 16, 82960; GCN-NOHSA-SI-NEXT: v_bfe_i32 v9, v0, 8, 82961; GCN-NOHSA-SI-NEXT: v_bfe_i32 v8, v0, 0, 82962; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v15, 24, v12963; GCN-NOHSA-SI-NEXT: v_bfe_i32 v14, v1, 16, 82964; GCN-NOHSA-SI-NEXT: v_bfe_i32 v13, v1, 8, 82965; GCN-NOHSA-SI-NEXT: v_bfe_i32 v12, v1, 0, 82966; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v19, 24, v22967; GCN-NOHSA-SI-NEXT: v_bfe_i32 v18, v2, 16, 82968; GCN-NOHSA-SI-NEXT: v_bfe_i32 v17, v2, 8, 82969; GCN-NOHSA-SI-NEXT: v_bfe_i32 v16, v2, 0, 82970; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v23, 24, v32971; GCN-NOHSA-SI-NEXT: v_bfe_i32 v22, v3, 16, 82972; GCN-NOHSA-SI-NEXT: v_bfe_i32 v21, v3, 8, 82973; GCN-NOHSA-SI-NEXT: v_bfe_i32 v20, v3, 0, 82974; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)2975; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 24, v42976; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v4, 16, 82977; GCN-NOHSA-SI-NEXT: v_bfe_i32 v1, v4, 8, 82978; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v4, 0, 82979; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v27, 24, v52980; GCN-NOHSA-SI-NEXT: v_bfe_i32 v26, v5, 16, 82981; GCN-NOHSA-SI-NEXT: v_bfe_i32 v25, v5, 8, 82982; GCN-NOHSA-SI-NEXT: v_bfe_i32 v24, v5, 0, 82983; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v31, 24, v62984; GCN-NOHSA-SI-NEXT: v_bfe_i32 v30, v6, 16, 82985; GCN-NOHSA-SI-NEXT: v_bfe_i32 v29, v6, 8, 82986; GCN-NOHSA-SI-NEXT: v_bfe_i32 v28, v6, 0, 82987; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v35, 24, v72988; GCN-NOHSA-SI-NEXT: v_bfe_i32 v34, v7, 16, 82989; GCN-NOHSA-SI-NEXT: v_bfe_i32 v33, v7, 8, 82990; GCN-NOHSA-SI-NEXT: v_bfe_i32 v32, v7, 0, 82991; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s42992; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s52993; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:1122994; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:962995; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:802996; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:642997; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:482998; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:322999; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:163000; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 03001; GCN-NOHSA-SI-NEXT: s_endpgm3002;3003; GCN-HSA-LABEL: global_sextload_v32i8_to_v32i32:3004; GCN-HSA: ; %bb.0:3005; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x03006; GCN-HSA-NEXT: s_add_i32 s12, s12, s173007; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s133008; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 83009; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)3010; GCN-HSA-NEXT: v_mov_b32_e32 v0, s23011; GCN-HSA-NEXT: v_mov_b32_e32 v1, s33012; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[0:1]3013; GCN-HSA-NEXT: s_add_u32 s2, s2, 163014; GCN-HSA-NEXT: s_addc_u32 s3, s3, 03015; GCN-HSA-NEXT: v_mov_b32_e32 v0, s23016; GCN-HSA-NEXT: v_mov_b32_e32 v1, s33017; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]3018; GCN-HSA-NEXT: s_add_u32 s2, s0, 483019; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03020; GCN-HSA-NEXT: v_mov_b32_e32 v14, s33021; GCN-HSA-NEXT: v_mov_b32_e32 v13, s23022; GCN-HSA-NEXT: s_add_u32 s2, s0, 323023; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03024; GCN-HSA-NEXT: v_mov_b32_e32 v16, s33025; GCN-HSA-NEXT: v_mov_b32_e32 v15, s23026; GCN-HSA-NEXT: s_add_u32 s2, s0, 163027; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03028; GCN-HSA-NEXT: v_mov_b32_e32 v18, s33029; GCN-HSA-NEXT: v_mov_b32_e32 v17, s23030; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x703031; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03032; GCN-HSA-NEXT: v_mov_b32_e32 v12, s13033; GCN-HSA-NEXT: v_mov_b32_e32 v11, s03034; GCN-HSA-NEXT: s_waitcnt vmcnt(1)3035; GCN-HSA-NEXT: v_ashrrev_i32_e32 v10, 24, v73036; GCN-HSA-NEXT: v_bfe_i32 v9, v7, 16, 83037; GCN-HSA-NEXT: v_bfe_i32 v8, v7, 8, 83038; GCN-HSA-NEXT: v_bfe_i32 v7, v7, 0, 83039; GCN-HSA-NEXT: flat_store_dwordx4 v[13:14], v[7:10]3040; GCN-HSA-NEXT: v_mov_b32_e32 v14, s33041; GCN-HSA-NEXT: v_mov_b32_e32 v13, s23042; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x603043; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03044; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 24, v63045; GCN-HSA-NEXT: v_bfe_i32 v8, v6, 16, 83046; GCN-HSA-NEXT: v_bfe_i32 v7, v6, 8, 83047; GCN-HSA-NEXT: v_bfe_i32 v6, v6, 0, 83048; GCN-HSA-NEXT: v_mov_b32_e32 v20, s33049; GCN-HSA-NEXT: flat_store_dwordx4 v[15:16], v[6:9]3050; GCN-HSA-NEXT: v_mov_b32_e32 v19, s23051; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x503052; GCN-HSA-NEXT: v_ashrrev_i32_e32 v8, 24, v53053; GCN-HSA-NEXT: v_bfe_i32 v7, v5, 16, 83054; GCN-HSA-NEXT: v_bfe_i32 v6, v5, 8, 83055; GCN-HSA-NEXT: v_bfe_i32 v5, v5, 0, 83056; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03057; GCN-HSA-NEXT: flat_store_dwordx4 v[17:18], v[5:8]3058; GCN-HSA-NEXT: s_add_u32 s0, s0, 643059; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 24, v43060; GCN-HSA-NEXT: v_bfe_i32 v6, v4, 16, 83061; GCN-HSA-NEXT: v_bfe_i32 v5, v4, 8, 83062; GCN-HSA-NEXT: v_bfe_i32 v4, v4, 0, 83063; GCN-HSA-NEXT: flat_store_dwordx4 v[11:12], v[4:7]3064; GCN-HSA-NEXT: s_waitcnt vmcnt(4)3065; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 24, v33066; GCN-HSA-NEXT: v_bfe_i32 v10, v3, 16, 83067; GCN-HSA-NEXT: v_bfe_i32 v9, v3, 8, 83068; GCN-HSA-NEXT: v_bfe_i32 v8, v3, 0, 83069; GCN-HSA-NEXT: v_mov_b32_e32 v17, s33070; GCN-HSA-NEXT: s_addc_u32 s1, s1, 03071; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 24, v03072; GCN-HSA-NEXT: v_bfe_i32 v6, v0, 16, 83073; GCN-HSA-NEXT: v_bfe_i32 v5, v0, 8, 83074; GCN-HSA-NEXT: v_bfe_i32 v4, v0, 0, 83075; GCN-HSA-NEXT: flat_store_dwordx4 v[13:14], v[8:11]3076; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 24, v23077; GCN-HSA-NEXT: v_ashrrev_i32_e32 v11, 24, v13078; GCN-HSA-NEXT: v_bfe_i32 v10, v1, 16, 83079; GCN-HSA-NEXT: v_bfe_i32 v9, v1, 8, 83080; GCN-HSA-NEXT: v_bfe_i32 v8, v1, 0, 83081; GCN-HSA-NEXT: v_bfe_i32 v14, v2, 16, 83082; GCN-HSA-NEXT: v_bfe_i32 v13, v2, 8, 83083; GCN-HSA-NEXT: v_bfe_i32 v12, v2, 0, 83084; GCN-HSA-NEXT: v_mov_b32_e32 v0, s03085; GCN-HSA-NEXT: v_mov_b32_e32 v16, s23086; GCN-HSA-NEXT: v_mov_b32_e32 v1, s13087; GCN-HSA-NEXT: flat_store_dwordx4 v[19:20], v[12:15]3088; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[8:11]3089; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[4:7]3090; GCN-HSA-NEXT: s_endpgm3091;3092; GCN-NOHSA-VI-LABEL: global_sextload_v32i8_to_v32i32:3093; GCN-NOHSA-VI: ; %bb.0:3094; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x243095; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0003096; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -13097; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s23098; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s33099; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)3100; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s63101; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s73102; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 03103; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:163104; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s43105; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s53106; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)3107; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v11, 24, v03108; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)3109; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v35, 24, v73110; GCN-NOHSA-VI-NEXT: v_bfe_i32 v34, v7, 16, 83111; GCN-NOHSA-VI-NEXT: v_bfe_i32 v33, v7, 8, 83112; GCN-NOHSA-VI-NEXT: v_bfe_i32 v32, v7, 0, 83113; GCN-NOHSA-VI-NEXT: v_bfe_i32 v10, v0, 16, 83114; GCN-NOHSA-VI-NEXT: v_bfe_i32 v9, v0, 8, 83115; GCN-NOHSA-VI-NEXT: v_bfe_i32 v8, v0, 0, 83116; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v15, 24, v13117; GCN-NOHSA-VI-NEXT: v_bfe_i32 v14, v1, 16, 83118; GCN-NOHSA-VI-NEXT: v_bfe_i32 v13, v1, 8, 83119; GCN-NOHSA-VI-NEXT: v_bfe_i32 v12, v1, 0, 83120; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v19, 24, v23121; GCN-NOHSA-VI-NEXT: v_bfe_i32 v18, v2, 16, 83122; GCN-NOHSA-VI-NEXT: v_bfe_i32 v17, v2, 8, 83123; GCN-NOHSA-VI-NEXT: v_bfe_i32 v16, v2, 0, 83124; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v23, 24, v33125; GCN-NOHSA-VI-NEXT: v_bfe_i32 v22, v3, 16, 83126; GCN-NOHSA-VI-NEXT: v_bfe_i32 v21, v3, 8, 83127; GCN-NOHSA-VI-NEXT: v_bfe_i32 v20, v3, 0, 83128; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 24, v43129; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v4, 16, 83130; GCN-NOHSA-VI-NEXT: v_bfe_i32 v1, v4, 8, 83131; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v4, 0, 83132; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v27, 24, v53133; GCN-NOHSA-VI-NEXT: v_bfe_i32 v26, v5, 16, 83134; GCN-NOHSA-VI-NEXT: v_bfe_i32 v25, v5, 8, 83135; GCN-NOHSA-VI-NEXT: v_bfe_i32 v24, v5, 0, 83136; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v31, 24, v63137; GCN-NOHSA-VI-NEXT: v_bfe_i32 v30, v6, 16, 83138; GCN-NOHSA-VI-NEXT: v_bfe_i32 v29, v6, 8, 83139; GCN-NOHSA-VI-NEXT: v_bfe_i32 v28, v6, 0, 83140; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:1123141; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:963142; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:803143; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:643144; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:483145; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:323146; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:163147; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 03148; GCN-NOHSA-VI-NEXT: s_endpgm3149;3150; EG-LABEL: global_sextload_v32i8_to_v32i32:3151; EG: ; %bb.0:3152; EG-NEXT: ALU 0, @18, KC0[CB0:0-32], KC1[]3153; EG-NEXT: TEX 0 @143154; EG-NEXT: ALU 18, @19, KC0[CB0:0-32], KC1[]3155; EG-NEXT: TEX 0 @163156; EG-NEXT: ALU 75, @38, KC0[CB0:0-32], KC1[]3157; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T24.XYZW, T26.X, 03158; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T25.X, 03159; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T12.X, 03160; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T22.XYZW, T17.X, 03161; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T16.X, 03162; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T15.X, 03163; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T14.X, 03164; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T18.XYZW, T13.X, 13165; EG-NEXT: CF_END3166; EG-NEXT: Fetch clause starting at 14:3167; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #13168; EG-NEXT: Fetch clause starting at 16:3169; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #13170; EG-NEXT: ALU clause starting at 18:3171; EG-NEXT: MOV * T11.X, KC0[2].Z,3172; EG-NEXT: ALU clause starting at 19:3173; EG-NEXT: LSHR T13.X, KC0[2].Y, literal.x,3174; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3175; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3176; EG-NEXT: LSHR T14.X, PV.W, literal.x,3177; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3178; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)3179; EG-NEXT: LSHR T15.X, PV.W, literal.x,3180; EG-NEXT: LSHR T0.Z, T12.W, literal.y,3181; EG-NEXT: LSHR T0.W, T12.Z, literal.z,3182; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.w,3183; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3184; EG-NEXT: 8(1.121039e-44), 48(6.726233e-44)3185; EG-NEXT: LSHR T16.X, PS, literal.x,3186; EG-NEXT: LSHR T0.Y, T12.W, literal.y,3187; EG-NEXT: LSHR T1.Z, T12.Z, literal.z,3188; EG-NEXT: LSHR T1.W, T12.Y, literal.w,3189; EG-NEXT: LSHR * T2.W, T12.Z, literal.y,3190; EG-NEXT: 2(2.802597e-45), 24(3.363116e-44)3191; EG-NEXT: 16(2.242078e-44), 8(1.121039e-44)3192; EG-NEXT: ALU clause starting at 38:3193; EG-NEXT: ADD_INT * T3.W, KC0[2].Y, literal.x,3194; EG-NEXT: 64(8.968310e-44), 0(0.000000e+00)3195; EG-NEXT: LSHR T17.X, PV.W, literal.x,3196; EG-NEXT: LSHR T1.Y, T12.Y, literal.y,3197; EG-NEXT: LSHR T2.Z, T12.Y, literal.z,3198; EG-NEXT: LSHR T3.W, T12.X, literal.y,3199; EG-NEXT: LSHR * T4.W, T12.X, literal.z,3200; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3201; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)3202; EG-NEXT: BFE_INT T18.X, T11.X, 0.0, literal.x,3203; EG-NEXT: LSHR T2.Y, T11.W, literal.y,3204; EG-NEXT: LSHR T3.Z, T11.W, literal.z,3205; EG-NEXT: LSHR T5.W, T11.Z, literal.y,3206; EG-NEXT: LSHR * T6.W, T11.X, literal.z,3207; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)3208; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)3209; EG-NEXT: BFE_INT T19.X, T11.Y, 0.0, literal.x,3210; EG-NEXT: LSHR T3.Y, T11.Z, literal.y,3211; EG-NEXT: LSHR T4.Z, T11.Y, literal.y,3212; EG-NEXT: BFE_INT T18.W, PS, 0.0, literal.x,3213; EG-NEXT: LSHR * T6.W, T11.X, literal.z,3214; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)3215; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3216; EG-NEXT: BFE_INT T20.X, T11.Z, 0.0, literal.x,3217; EG-NEXT: LSHR T4.Y, T11.Y, literal.y,3218; EG-NEXT: BFE_INT T18.Z, PS, 0.0, literal.x,3219; EG-NEXT: BFE_INT T19.W, PV.Z, 0.0, literal.x,3220; EG-NEXT: LSHR * T6.W, T11.X, literal.x,3221; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)3222; EG-NEXT: BFE_INT T21.X, T11.W, 0.0, literal.x,3223; EG-NEXT: BFE_INT T18.Y, PS, 0.0, literal.x,3224; EG-NEXT: BFE_INT T19.Z, PV.Y, 0.0, literal.x,3225; EG-NEXT: BFE_INT T20.W, T3.Y, 0.0, literal.x,3226; EG-NEXT: LSHR * T6.W, T11.Y, literal.x,3227; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)3228; EG-NEXT: BFE_INT T22.X, T12.X, 0.0, literal.x,3229; EG-NEXT: BFE_INT T19.Y, PS, 0.0, literal.x,3230; EG-NEXT: BFE_INT T20.Z, T5.W, 0.0, literal.x,3231; EG-NEXT: BFE_INT T21.W, T3.Z, 0.0, literal.x,3232; EG-NEXT: LSHR * T5.W, T11.Z, literal.x,3233; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)3234; EG-NEXT: BFE_INT T11.X, T12.Y, 0.0, literal.x,3235; EG-NEXT: BFE_INT T20.Y, PS, 0.0, literal.x,3236; EG-NEXT: BFE_INT T21.Z, T2.Y, 0.0, literal.x, BS:VEC_120/SCL_2123237; EG-NEXT: BFE_INT T22.W, T4.W, 0.0, literal.x,3238; EG-NEXT: LSHR * T4.W, T11.W, literal.x,3239; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)3240; EG-NEXT: BFE_INT T23.X, T12.Z, 0.0, literal.x,3241; EG-NEXT: BFE_INT T21.Y, PS, 0.0, literal.x,3242; EG-NEXT: BFE_INT T22.Z, T3.W, 0.0, literal.x,3243; EG-NEXT: BFE_INT T11.W, T2.Z, 0.0, literal.x, BS:VEC_120/SCL_2123244; EG-NEXT: LSHR * T3.W, T12.X, literal.x,3245; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)3246; EG-NEXT: BFE_INT T24.X, T12.W, 0.0, literal.x,3247; EG-NEXT: BFE_INT T22.Y, PS, 0.0, literal.x,3248; EG-NEXT: BFE_INT T11.Z, T1.Y, 0.0, literal.x,3249; EG-NEXT: BFE_INT T23.W, T2.W, 0.0, literal.x, BS:VEC_120/SCL_2123250; EG-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.y,3251; EG-NEXT: 8(1.121039e-44), 80(1.121039e-43)3252; EG-NEXT: LSHR T12.X, PS, literal.x,3253; EG-NEXT: BFE_INT T11.Y, T1.W, 0.0, literal.y,3254; EG-NEXT: BFE_INT T23.Z, T1.Z, 0.0, literal.y,3255; EG-NEXT: BFE_INT T24.W, T0.Y, 0.0, literal.y,3256; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,3257; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)3258; EG-NEXT: 96(1.345247e-43), 0(0.000000e+00)3259; EG-NEXT: LSHR T25.X, PS, literal.x,3260; EG-NEXT: BFE_INT T23.Y, T0.W, 0.0, literal.y,3261; EG-NEXT: BFE_INT T24.Z, T0.Z, 0.0, literal.y,3262; EG-NEXT: LSHR T0.W, T12.W, literal.y, BS:VEC_120/SCL_2123263; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,3264; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)3265; EG-NEXT: 112(1.569454e-43), 0(0.000000e+00)3266; EG-NEXT: LSHR T26.X, PS, literal.x,3267; EG-NEXT: BFE_INT * T24.Y, PV.W, 0.0, literal.y,3268; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)3269;3270; CM-LABEL: global_sextload_v32i8_to_v32i32:3271; CM: ; %bb.0:3272; CM-NEXT: ALU 0, @18, KC0[CB0:0-32], KC1[]3273; CM-NEXT: TEX 0 @143274; CM-NEXT: ALU 19, @19, KC0[CB0:0-32], KC1[]3275; CM-NEXT: TEX 0 @163276; CM-NEXT: ALU 78, @39, KC0[CB0:0-32], KC1[]3277; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T26, T12.X3278; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T25, T14.X3279; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T24, T27.X3280; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T23, T19.X3281; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T18.X3282; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T22, T17.X3283; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T21, T16.X3284; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T20, T15.X3285; CM-NEXT: CF_END3286; CM-NEXT: Fetch clause starting at 14:3287; CM-NEXT: VTX_READ_128 T12.XYZW, T11.X, 0, #13288; CM-NEXT: Fetch clause starting at 16:3289; CM-NEXT: VTX_READ_128 T11.XYZW, T11.X, 16, #13290; CM-NEXT: ALU clause starting at 18:3291; CM-NEXT: MOV * T11.X, KC0[2].Z,3292; CM-NEXT: ALU clause starting at 19:3293; CM-NEXT: LSHR * T0.W, T12.X, literal.x,3294; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3295; CM-NEXT: LSHR T13.X, T12.Y, literal.x,3296; CM-NEXT: ADD_INT T0.Y, KC0[2].Y, literal.y,3297; CM-NEXT: LSHR T0.Z, T12.X, literal.z,3298; CM-NEXT: LSHR * T1.W, T12.Y, literal.y,3299; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)3300; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)3301; CM-NEXT: LSHR T14.X, T12.Z, literal.x,3302; CM-NEXT: ADD_INT T1.Y, KC0[2].Y, literal.y,3303; CM-NEXT: LSHR T1.Z, T12.Y, literal.z,3304; CM-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.w,3305; CM-NEXT: 8(1.121039e-44), 32(4.484155e-44)3306; CM-NEXT: 24(3.363116e-44), 112(1.569454e-43)3307; CM-NEXT: LSHR T15.X, PV.W, literal.x,3308; CM-NEXT: LSHR T2.Y, T12.Z, literal.y,3309; CM-NEXT: LSHR T2.Z, T12.W, literal.z,3310; CM-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.w,3311; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3312; CM-NEXT: 8(1.121039e-44), 96(1.345247e-43)3313; CM-NEXT: ALU clause starting at 39:3314; CM-NEXT: LSHR T16.X, T2.W, literal.x,3315; CM-NEXT: LSHR T3.Y, T12.Z, literal.y,3316; CM-NEXT: LSHR T3.Z, T12.W, literal.z, BS:VEC_120/SCL_2123317; CM-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.w,3318; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)3319; CM-NEXT: 16(2.242078e-44), 80(1.121039e-43)3320; CM-NEXT: LSHR T17.X, PV.W, literal.x,3321; CM-NEXT: LSHR T4.Y, T11.X, literal.y,3322; CM-NEXT: LSHR T4.Z, T12.W, literal.z,3323; CM-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.w,3324; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)3325; CM-NEXT: 24(3.363116e-44), 64(8.968310e-44)3326; CM-NEXT: LSHR T18.X, PV.W, literal.x,3327; CM-NEXT: LSHR T5.Y, T11.X, literal.y,3328; CM-NEXT: LSHR T5.Z, T11.Y, literal.z,3329; CM-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.w,3330; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)3331; CM-NEXT: 8(1.121039e-44), 48(6.726233e-44)3332; CM-NEXT: LSHR T19.X, PV.W, literal.x,3333; CM-NEXT: LSHR T6.Y, T11.X, literal.y,3334; CM-NEXT: LSHR T6.Z, T11.Y, literal.z,3335; CM-NEXT: LSHR * T2.W, T11.Z, literal.w,3336; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)3337; CM-NEXT: 16(2.242078e-44), 8(1.121039e-44)3338; CM-NEXT: BFE_INT T20.X, T11.W, 0.0, literal.x,3339; CM-NEXT: LSHR T7.Y, T11.Y, literal.y,3340; CM-NEXT: LSHR T7.Z, T11.Z, literal.z,3341; CM-NEXT: LSHR * T3.W, T11.W, literal.y,3342; CM-NEXT: 8(1.121039e-44), 24(3.363116e-44)3343; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3344; CM-NEXT: BFE_INT T21.X, T11.Z, 0.0, literal.x,3345; CM-NEXT: LSHR T8.Y, T11.Z, literal.y,3346; CM-NEXT: LSHR T8.Z, T11.W, literal.z,3347; CM-NEXT: BFE_INT * T20.W, PV.W, 0.0, literal.x,3348; CM-NEXT: 8(1.121039e-44), 24(3.363116e-44)3349; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)3350; CM-NEXT: BFE_INT T22.X, T11.Y, 0.0, literal.x,3351; CM-NEXT: LSHR T9.Y, T11.W, literal.x,3352; CM-NEXT: BFE_INT T20.Z, PV.Z, 0.0, literal.x,3353; CM-NEXT: BFE_INT * T21.W, PV.Y, 0.0, literal.x,3354; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)3355; CM-NEXT: BFE_INT T11.X, T11.X, 0.0, literal.x,3356; CM-NEXT: BFE_INT T20.Y, PV.Y, 0.0, literal.x,3357; CM-NEXT: BFE_INT T21.Z, T7.Z, 0.0, literal.x,3358; CM-NEXT: BFE_INT * T22.W, T7.Y, 0.0, literal.x,3359; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)3360; CM-NEXT: BFE_INT T23.X, T12.W, 0.0, literal.x,3361; CM-NEXT: BFE_INT T21.Y, T2.W, 0.0, literal.x, BS:VEC_120/SCL_2123362; CM-NEXT: BFE_INT T22.Z, T6.Z, 0.0, literal.x,3363; CM-NEXT: BFE_INT * T11.W, T6.Y, 0.0, literal.x,3364; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)3365; CM-NEXT: BFE_INT T24.X, T12.Z, 0.0, literal.x,3366; CM-NEXT: BFE_INT T22.Y, T5.Z, 0.0, literal.x, BS:VEC_120/SCL_2123367; CM-NEXT: BFE_INT T11.Z, T5.Y, 0.0, literal.x,3368; CM-NEXT: BFE_INT * T23.W, T4.Z, 0.0, literal.x, BS:VEC_2013369; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)3370; CM-NEXT: BFE_INT T25.X, T12.Y, 0.0, literal.x,3371; CM-NEXT: BFE_INT T11.Y, T4.Y, 0.0, literal.x, BS:VEC_120/SCL_2123372; CM-NEXT: BFE_INT T23.Z, T3.Z, 0.0, literal.x,3373; CM-NEXT: BFE_INT * T24.W, T3.Y, 0.0, literal.x, BS:VEC_2013374; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)3375; CM-NEXT: BFE_INT T26.X, T12.X, 0.0, literal.x,3376; CM-NEXT: BFE_INT T23.Y, T2.Z, 0.0, literal.x,3377; CM-NEXT: BFE_INT T24.Z, T2.Y, 0.0, literal.x,3378; CM-NEXT: BFE_INT * T25.W, T1.Z, 0.0, literal.x, BS:VEC_120/SCL_2123379; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)3380; CM-NEXT: LSHR T27.X, T1.Y, literal.x,3381; CM-NEXT: BFE_INT T24.Y, T14.X, 0.0, literal.y,3382; CM-NEXT: BFE_INT T25.Z, T1.W, 0.0, literal.y,3383; CM-NEXT: BFE_INT * T26.W, T0.Z, 0.0, literal.y,3384; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)3385; CM-NEXT: LSHR T14.X, T0.Y, literal.x,3386; CM-NEXT: BFE_INT T25.Y, T13.X, 0.0, literal.y,3387; CM-NEXT: BFE_INT T26.Z, T0.W, 0.0, literal.y,3388; CM-NEXT: LSHR * T0.W, T12.X, literal.y, BS:VEC_120/SCL_2123389; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)3390; CM-NEXT: LSHR T12.X, KC0[2].Y, literal.x,3391; CM-NEXT: BFE_INT * T26.Y, PV.W, 0.0, literal.y,3392; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)3393 %load = load <32 x i8>, ptr addrspace(1) %in3394 %ext = sext <32 x i8> %load to <32 x i32>3395 store <32 x i32> %ext, ptr addrspace(1) %out3396 ret void3397}3398 3399define amdgpu_kernel void @global_zextload_v64i8_to_v64i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {3400; GCN-NOHSA-SI-LABEL: global_zextload_v64i8_to_v64i32:3401; GCN-NOHSA-SI: ; %bb.0:3402; GCN-NOHSA-SI-NEXT: s_mov_b32 s12, SCRATCH_RSRC_DWORD03403; GCN-NOHSA-SI-NEXT: s_mov_b32 s13, SCRATCH_RSRC_DWORD13404; GCN-NOHSA-SI-NEXT: s_mov_b32 s14, -13405; GCN-NOHSA-SI-NEXT: s_mov_b32 s15, 0xe8f0003406; GCN-NOHSA-SI-NEXT: s_add_u32 s12, s12, s113407; GCN-NOHSA-SI-NEXT: s_addc_u32 s13, s13, 03408; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x93409; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0003410; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -13411; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s23412; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s33413; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)3414; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s63415; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s73416; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[12:15], off, s[8:11], 03417; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:163418; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[24:27], off, s[8:11], 0 offset:323419; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[28:31], off, s[8:11], 0 offset:483420; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(3)3421; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v7, 24, v133422; GCN-NOHSA-SI-NEXT: v_bfe_u32 v5, v13, 8, 83423; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v11, 24, v123424; GCN-NOHSA-SI-NEXT: v_bfe_u32 v9, v12, 8, 83425; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v19, 24, v153426; GCN-NOHSA-SI-NEXT: v_bfe_u32 v17, v15, 8, 83427; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v23, 24, v143428; GCN-NOHSA-SI-NEXT: v_bfe_u32 v21, v14, 8, 83429; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xff, v133430; GCN-NOHSA-SI-NEXT: v_bfe_u32 v6, v13, 16, 83431; GCN-NOHSA-SI-NEXT: buffer_store_dword v4, off, s[12:15], 0 ; 4-byte Folded Spill3432; GCN-NOHSA-SI-NEXT: buffer_store_dword v5, off, s[12:15], 0 offset:4 ; 4-byte Folded Spill3433; GCN-NOHSA-SI-NEXT: buffer_store_dword v6, off, s[12:15], 0 offset:8 ; 4-byte Folded Spill3434; GCN-NOHSA-SI-NEXT: buffer_store_dword v7, off, s[12:15], 0 offset:12 ; 4-byte Folded Spill3435; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v8, 0xff, v123436; GCN-NOHSA-SI-NEXT: v_bfe_u32 v10, v12, 16, 83437; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v16, 0xff, v153438; GCN-NOHSA-SI-NEXT: v_bfe_u32 v18, v15, 16, 83439; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v20, 0xff, v143440; GCN-NOHSA-SI-NEXT: v_bfe_u32 v22, v14, 16, 83441; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(6)3442; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v15, 24, v13443; GCN-NOHSA-SI-NEXT: v_bfe_u32 v13, v1, 8, 83444; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v35, 24, v03445; GCN-NOHSA-SI-NEXT: v_bfe_u32 v33, v0, 8, 83446; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v39, 24, v33447; GCN-NOHSA-SI-NEXT: v_bfe_u32 v37, v3, 8, 83448; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v43, 24, v23449; GCN-NOHSA-SI-NEXT: v_bfe_u32 v41, v2, 8, 83450; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v12, 0xff, v13451; GCN-NOHSA-SI-NEXT: v_bfe_u32 v14, v1, 16, 83452; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v32, 0xff, v03453; GCN-NOHSA-SI-NEXT: v_bfe_u32 v34, v0, 16, 83454; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v36, 0xff, v33455; GCN-NOHSA-SI-NEXT: v_bfe_u32 v38, v3, 16, 83456; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v40, 0xff, v23457; GCN-NOHSA-SI-NEXT: v_bfe_u32 v42, v2, 16, 83458; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(5) expcnt(0)3459; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v7, 24, v253460; GCN-NOHSA-SI-NEXT: v_bfe_u32 v5, v25, 8, 83461; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v47, 24, v243462; GCN-NOHSA-SI-NEXT: v_bfe_u32 v45, v24, 8, 83463; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v51, 24, v273464; GCN-NOHSA-SI-NEXT: v_bfe_u32 v49, v27, 8, 83465; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v55, 24, v263466; GCN-NOHSA-SI-NEXT: v_bfe_u32 v53, v26, 8, 83467; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xff, v253468; GCN-NOHSA-SI-NEXT: v_bfe_u32 v6, v25, 16, 83469; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v44, 0xff, v243470; GCN-NOHSA-SI-NEXT: v_bfe_u32 v46, v24, 16, 83471; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v48, 0xff, v273472; GCN-NOHSA-SI-NEXT: v_bfe_u32 v50, v27, 16, 83473; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v52, 0xff, v263474; GCN-NOHSA-SI-NEXT: v_bfe_u32 v54, v26, 16, 83475; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(4)3476; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v27, 24, v293477; GCN-NOHSA-SI-NEXT: v_bfe_u32 v25, v29, 8, 83478; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v59, 24, v283479; GCN-NOHSA-SI-NEXT: v_bfe_u32 v57, v28, 8, 83480; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v63, 24, v313481; GCN-NOHSA-SI-NEXT: v_bfe_u32 v61, v31, 8, 83482; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v3, 24, v303483; GCN-NOHSA-SI-NEXT: v_bfe_u32 v1, v30, 8, 83484; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v24, 0xff, v293485; GCN-NOHSA-SI-NEXT: v_bfe_u32 v26, v29, 16, 83486; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v56, 0xff, v283487; GCN-NOHSA-SI-NEXT: v_bfe_u32 v58, v28, 16, 83488; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v60, 0xff, v313489; GCN-NOHSA-SI-NEXT: v_bfe_u32 v62, v31, 16, 83490; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xff, v303491; GCN-NOHSA-SI-NEXT: v_bfe_u32 v2, v30, 16, 83492; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s43493; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s53494; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2243495; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[60:63], off, s[0:3], 0 offset:2403496; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[56:59], off, s[0:3], 0 offset:1923497; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:2083498; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[52:55], off, s[0:3], 0 offset:1603499; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[48:51], off, s[0:3], 0 offset:1763500; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[44:47], off, s[0:3], 0 offset:1283501; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1443502; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[40:43], off, s[0:3], 0 offset:963503; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[36:39], off, s[0:3], 0 offset:1123504; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:643505; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:803506; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:323507; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:483508; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 03509; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[12:15], 0 ; 4-byte Folded Reload3510; GCN-NOHSA-SI-NEXT: buffer_load_dword v1, off, s[12:15], 0 offset:4 ; 4-byte Folded Reload3511; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[12:15], 0 offset:8 ; 4-byte Folded Reload3512; GCN-NOHSA-SI-NEXT: buffer_load_dword v3, off, s[12:15], 0 offset:12 ; 4-byte Folded Reload3513; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)3514; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:163515; GCN-NOHSA-SI-NEXT: s_endpgm3516;3517; GCN-HSA-LABEL: global_zextload_v64i8_to_v64i32:3518; GCN-HSA: ; %bb.0:3519; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x03520; GCN-HSA-NEXT: s_add_i32 s12, s12, s173521; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 83522; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s133523; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)3524; GCN-HSA-NEXT: s_add_u32 s4, s2, 163525; GCN-HSA-NEXT: s_addc_u32 s5, s3, 03526; GCN-HSA-NEXT: s_add_u32 s6, s2, 323527; GCN-HSA-NEXT: s_addc_u32 s7, s3, 03528; GCN-HSA-NEXT: v_mov_b32_e32 v0, s63529; GCN-HSA-NEXT: v_mov_b32_e32 v1, s73530; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]3531; GCN-HSA-NEXT: v_mov_b32_e32 v5, s33532; GCN-HSA-NEXT: v_mov_b32_e32 v4, s23533; GCN-HSA-NEXT: flat_load_dwordx4 v[12:15], v[4:5]3534; GCN-HSA-NEXT: s_add_u32 s2, s2, 483535; GCN-HSA-NEXT: s_addc_u32 s3, s3, 03536; GCN-HSA-NEXT: v_mov_b32_e32 v5, s33537; GCN-HSA-NEXT: v_mov_b32_e32 v4, s23538; GCN-HSA-NEXT: flat_load_dwordx4 v[8:11], v[4:5]3539; GCN-HSA-NEXT: v_mov_b32_e32 v4, s43540; GCN-HSA-NEXT: v_mov_b32_e32 v5, s53541; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[4:5]3542; GCN-HSA-NEXT: s_add_u32 s2, s0, 323543; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03544; GCN-HSA-NEXT: s_add_u32 s4, s0, 483545; GCN-HSA-NEXT: s_addc_u32 s5, s1, 03546; GCN-HSA-NEXT: s_add_u32 s6, s0, 163547; GCN-HSA-NEXT: s_addc_u32 s7, s1, 03548; GCN-HSA-NEXT: s_add_u32 s8, s0, 0xe03549; GCN-HSA-NEXT: s_addc_u32 s9, s1, 03550; GCN-HSA-NEXT: s_add_u32 s10, s0, 0xf03551; GCN-HSA-NEXT: s_addc_u32 s11, s1, 03552; GCN-HSA-NEXT: s_add_u32 s12, s0, 0xc03553; GCN-HSA-NEXT: s_addc_u32 s13, s1, 03554; GCN-HSA-NEXT: s_add_u32 s14, s0, 0xd03555; GCN-HSA-NEXT: s_addc_u32 s15, s1, 03556; GCN-HSA-NEXT: s_add_u32 s16, s0, 0xa03557; GCN-HSA-NEXT: s_addc_u32 s17, s1, 03558; GCN-HSA-NEXT: v_mov_b32_e32 v21, s173559; GCN-HSA-NEXT: v_mov_b32_e32 v20, s163560; GCN-HSA-NEXT: s_waitcnt vmcnt(3)3561; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 24, v23562; GCN-HSA-NEXT: v_bfe_u32 v17, v2, 8, 83563; GCN-HSA-NEXT: v_and_b32_e32 v16, 0xff, v23564; GCN-HSA-NEXT: v_bfe_u32 v18, v2, 16, 83565; GCN-HSA-NEXT: flat_store_dwordx4 v[20:21], v[16:19]3566; GCN-HSA-NEXT: v_mov_b32_e32 v21, s33567; GCN-HSA-NEXT: s_waitcnt vmcnt(3)3568; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 24, v143569; GCN-HSA-NEXT: v_bfe_u32 v17, v14, 8, 83570; GCN-HSA-NEXT: v_and_b32_e32 v16, 0xff, v143571; GCN-HSA-NEXT: v_bfe_u32 v18, v14, 16, 83572; GCN-HSA-NEXT: v_mov_b32_e32 v20, s23573; GCN-HSA-NEXT: flat_store_dwordx4 v[20:21], v[16:19]3574; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xb03575; GCN-HSA-NEXT: v_lshrrev_b32_e32 v19, 24, v153576; GCN-HSA-NEXT: v_bfe_u32 v17, v15, 8, 83577; GCN-HSA-NEXT: v_and_b32_e32 v16, 0xff, v153578; GCN-HSA-NEXT: v_bfe_u32 v18, v15, 16, 83579; GCN-HSA-NEXT: v_mov_b32_e32 v15, s53580; GCN-HSA-NEXT: v_mov_b32_e32 v14, s43581; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[16:19]3582; GCN-HSA-NEXT: v_bfe_u32 v15, v12, 8, 83583; GCN-HSA-NEXT: v_mov_b32_e32 v19, s13584; GCN-HSA-NEXT: v_lshrrev_b32_e32 v17, 24, v123585; GCN-HSA-NEXT: v_and_b32_e32 v14, 0xff, v123586; GCN-HSA-NEXT: v_bfe_u32 v16, v12, 16, 83587; GCN-HSA-NEXT: v_mov_b32_e32 v18, s03588; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[14:17]3589; GCN-HSA-NEXT: v_mov_b32_e32 v19, s93590; GCN-HSA-NEXT: v_lshrrev_b32_e32 v17, 24, v133591; GCN-HSA-NEXT: v_bfe_u32 v15, v13, 8, 83592; GCN-HSA-NEXT: v_and_b32_e32 v14, 0xff, v133593; GCN-HSA-NEXT: v_bfe_u32 v16, v13, 16, 83594; GCN-HSA-NEXT: v_mov_b32_e32 v13, s73595; GCN-HSA-NEXT: v_mov_b32_e32 v12, s63596; GCN-HSA-NEXT: v_mov_b32_e32 v18, s83597; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[14:17]3598; GCN-HSA-NEXT: s_waitcnt vmcnt(6)3599; GCN-HSA-NEXT: v_bfe_u32 v13, v10, 8, 83600; GCN-HSA-NEXT: v_mov_b32_e32 v17, s113601; GCN-HSA-NEXT: v_lshrrev_b32_e32 v15, 24, v103602; GCN-HSA-NEXT: v_and_b32_e32 v12, 0xff, v103603; GCN-HSA-NEXT: v_bfe_u32 v14, v10, 16, 83604; GCN-HSA-NEXT: v_mov_b32_e32 v16, s103605; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[12:15]3606; GCN-HSA-NEXT: v_mov_b32_e32 v19, s133607; GCN-HSA-NEXT: v_lshrrev_b32_e32 v15, 24, v113608; GCN-HSA-NEXT: v_bfe_u32 v13, v11, 8, 83609; GCN-HSA-NEXT: v_and_b32_e32 v12, 0xff, v113610; GCN-HSA-NEXT: v_bfe_u32 v14, v11, 16, 83611; GCN-HSA-NEXT: v_mov_b32_e32 v18, s123612; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[12:15]3613; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03614; GCN-HSA-NEXT: v_lshrrev_b32_e32 v13, 24, v83615; GCN-HSA-NEXT: v_bfe_u32 v11, v8, 8, 83616; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xff, v83617; GCN-HSA-NEXT: v_bfe_u32 v12, v8, 16, 83618; GCN-HSA-NEXT: v_mov_b32_e32 v21, s153619; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[10:13]3620; GCN-HSA-NEXT: v_mov_b32_e32 v18, s33621; GCN-HSA-NEXT: v_mov_b32_e32 v20, s143622; GCN-HSA-NEXT: v_mov_b32_e32 v17, s23623; GCN-HSA-NEXT: v_lshrrev_b32_e32 v13, 24, v93624; GCN-HSA-NEXT: v_bfe_u32 v11, v9, 8, 83625; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xff, v93626; GCN-HSA-NEXT: v_bfe_u32 v12, v9, 16, 83627; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x803628; GCN-HSA-NEXT: flat_store_dwordx4 v[20:21], v[10:13]3629; GCN-HSA-NEXT: v_bfe_u32 v9, v3, 8, 83630; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 24, v33631; GCN-HSA-NEXT: v_and_b32_e32 v8, 0xff, v33632; GCN-HSA-NEXT: v_bfe_u32 v10, v3, 16, 83633; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03634; GCN-HSA-NEXT: v_mov_b32_e32 v2, s23635; GCN-HSA-NEXT: v_mov_b32_e32 v3, s33636; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x903637; GCN-HSA-NEXT: flat_store_dwordx4 v[17:18], v[8:11]3638; GCN-HSA-NEXT: v_lshrrev_b32_e32 v20, 24, v13639; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 24, v03640; GCN-HSA-NEXT: v_bfe_u32 v9, v0, 8, 83641; GCN-HSA-NEXT: v_and_b32_e32 v8, 0xff, v03642; GCN-HSA-NEXT: v_bfe_u32 v10, v0, 16, 83643; GCN-HSA-NEXT: v_bfe_u32 v18, v1, 8, 83644; GCN-HSA-NEXT: v_and_b32_e32 v17, 0xff, v13645; GCN-HSA-NEXT: v_bfe_u32 v19, v1, 16, 83646; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03647; GCN-HSA-NEXT: v_mov_b32_e32 v0, s23648; GCN-HSA-NEXT: v_mov_b32_e32 v1, s33649; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x603650; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03651; GCN-HSA-NEXT: s_waitcnt vmcnt(10)3652; GCN-HSA-NEXT: v_lshrrev_b32_e32 v16, 24, v53653; GCN-HSA-NEXT: v_bfe_u32 v14, v5, 8, 83654; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[8:11]3655; GCN-HSA-NEXT: v_and_b32_e32 v13, 0xff, v53656; GCN-HSA-NEXT: v_lshrrev_b32_e32 v11, 24, v43657; GCN-HSA-NEXT: v_bfe_u32 v9, v4, 8, 83658; GCN-HSA-NEXT: v_bfe_u32 v15, v5, 16, 83659; GCN-HSA-NEXT: v_and_b32_e32 v8, 0xff, v43660; GCN-HSA-NEXT: v_bfe_u32 v10, v4, 16, 83661; GCN-HSA-NEXT: v_mov_b32_e32 v5, s33662; GCN-HSA-NEXT: v_mov_b32_e32 v4, s23663; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x703664; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[17:20]3665; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03666; GCN-HSA-NEXT: v_lshrrev_b32_e32 v20, 24, v63667; GCN-HSA-NEXT: v_bfe_u32 v18, v6, 8, 83668; GCN-HSA-NEXT: v_and_b32_e32 v17, 0xff, v63669; GCN-HSA-NEXT: v_bfe_u32 v19, v6, 16, 83670; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[17:20]3671; GCN-HSA-NEXT: v_mov_b32_e32 v5, s33672; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 24, v73673; GCN-HSA-NEXT: v_bfe_u32 v1, v7, 8, 83674; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xff, v73675; GCN-HSA-NEXT: v_bfe_u32 v2, v7, 16, 83676; GCN-HSA-NEXT: v_mov_b32_e32 v4, s23677; GCN-HSA-NEXT: s_add_u32 s2, s0, 643678; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]3679; GCN-HSA-NEXT: s_addc_u32 s3, s1, 03680; GCN-HSA-NEXT: v_mov_b32_e32 v0, s23681; GCN-HSA-NEXT: v_mov_b32_e32 v1, s33682; GCN-HSA-NEXT: s_add_u32 s0, s0, 0x503683; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[8:11]3684; GCN-HSA-NEXT: s_addc_u32 s1, s1, 03685; GCN-HSA-NEXT: v_mov_b32_e32 v0, s03686; GCN-HSA-NEXT: v_mov_b32_e32 v1, s13687; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[13:16]3688; GCN-HSA-NEXT: s_endpgm3689;3690; GCN-NOHSA-VI-LABEL: global_zextload_v64i8_to_v64i32:3691; GCN-NOHSA-VI: ; %bb.0:3692; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x243693; GCN-NOHSA-VI-NEXT: s_mov_b32 s88, SCRATCH_RSRC_DWORD03694; GCN-NOHSA-VI-NEXT: s_mov_b32 s89, SCRATCH_RSRC_DWORD13695; GCN-NOHSA-VI-NEXT: s_mov_b32 s90, -13696; GCN-NOHSA-VI-NEXT: s_mov_b32 s91, 0xe800003697; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0003698; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -13699; GCN-NOHSA-VI-NEXT: s_add_u32 s88, s88, s113700; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s23701; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)3702; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s63703; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s73704; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s33705; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[16:19], off, s[8:11], 03706; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[28:31], off, s[8:11], 0 offset:163707; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[32:35], off, s[8:11], 0 offset:323708; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[36:39], off, s[8:11], 0 offset:483709; GCN-NOHSA-VI-NEXT: s_addc_u32 s89, s89, 03710; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s43711; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s53712; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(3)3713; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 24, v173714; GCN-NOHSA-VI-NEXT: v_bfe_u32 v1, v17, 8, 83715; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xff, v173716; GCN-NOHSA-VI-NEXT: v_bfe_u32 v2, v17, 16, 83717; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[88:91], 0 ; 4-byte Folded Spill3718; GCN-NOHSA-VI-NEXT: buffer_store_dword v1, off, s[88:91], 0 offset:4 ; 4-byte Folded Spill3719; GCN-NOHSA-VI-NEXT: buffer_store_dword v2, off, s[88:91], 0 offset:8 ; 4-byte Folded Spill3720; GCN-NOHSA-VI-NEXT: buffer_store_dword v3, off, s[88:91], 0 offset:12 ; 4-byte Folded Spill3721; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(4)3722; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 24, v383723; GCN-NOHSA-VI-NEXT: v_bfe_u32 v1, v38, 8, 83724; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xff, v383725; GCN-NOHSA-VI-NEXT: v_bfe_u32 v2, v38, 16, 83726; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v7, 24, v163727; GCN-NOHSA-VI-NEXT: v_bfe_u32 v5, v16, 8, 83728; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v11, 24, v193729; GCN-NOHSA-VI-NEXT: v_bfe_u32 v9, v19, 8, 83730; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v15, 24, v183731; GCN-NOHSA-VI-NEXT: v_bfe_u32 v13, v18, 8, 83732; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xff, v163733; GCN-NOHSA-VI-NEXT: v_bfe_u32 v6, v16, 16, 83734; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v8, 0xff, v193735; GCN-NOHSA-VI-NEXT: v_bfe_u32 v10, v19, 16, 83736; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v12, 0xff, v183737; GCN-NOHSA-VI-NEXT: v_bfe_u32 v14, v18, 16, 83738; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v19, 24, v293739; GCN-NOHSA-VI-NEXT: v_bfe_u32 v17, v29, 8, 83740; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v23, 24, v283741; GCN-NOHSA-VI-NEXT: v_bfe_u32 v21, v28, 8, 83742; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v27, 24, v313743; GCN-NOHSA-VI-NEXT: v_bfe_u32 v25, v31, 8, 83744; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v43, 24, v303745; GCN-NOHSA-VI-NEXT: v_bfe_u32 v41, v30, 8, 83746; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v16, 0xff, v293747; GCN-NOHSA-VI-NEXT: v_bfe_u32 v18, v29, 16, 83748; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v20, 0xff, v283749; GCN-NOHSA-VI-NEXT: v_bfe_u32 v22, v28, 16, 83750; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v24, 0xff, v313751; GCN-NOHSA-VI-NEXT: v_bfe_u32 v26, v31, 16, 83752; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v40, 0xff, v303753; GCN-NOHSA-VI-NEXT: v_bfe_u32 v42, v30, 16, 83754; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v31, 24, v333755; GCN-NOHSA-VI-NEXT: v_bfe_u32 v29, v33, 8, 83756; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v47, 24, v323757; GCN-NOHSA-VI-NEXT: v_bfe_u32 v45, v32, 8, 83758; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v51, 24, v353759; GCN-NOHSA-VI-NEXT: v_bfe_u32 v49, v35, 8, 83760; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v55, 24, v343761; GCN-NOHSA-VI-NEXT: v_bfe_u32 v53, v34, 8, 83762; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v28, 0xff, v333763; GCN-NOHSA-VI-NEXT: v_bfe_u32 v30, v33, 16, 83764; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v44, 0xff, v323765; GCN-NOHSA-VI-NEXT: v_bfe_u32 v46, v32, 16, 83766; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v48, 0xff, v353767; GCN-NOHSA-VI-NEXT: v_bfe_u32 v50, v35, 16, 83768; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v52, 0xff, v343769; GCN-NOHSA-VI-NEXT: v_bfe_u32 v54, v34, 16, 83770; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v35, 24, v373771; GCN-NOHSA-VI-NEXT: v_bfe_u32 v33, v37, 8, 83772; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v59, 24, v363773; GCN-NOHSA-VI-NEXT: v_bfe_u32 v57, v36, 8, 83774; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v63, 24, v393775; GCN-NOHSA-VI-NEXT: v_bfe_u32 v61, v39, 8, 83776; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v32, 0xff, v373777; GCN-NOHSA-VI-NEXT: v_bfe_u32 v34, v37, 16, 83778; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v56, 0xff, v363779; GCN-NOHSA-VI-NEXT: v_bfe_u32 v58, v36, 16, 83780; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v60, 0xff, v393781; GCN-NOHSA-VI-NEXT: v_bfe_u32 v62, v39, 16, 83782; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2243783; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[60:63], off, s[0:3], 0 offset:2403784; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[56:59], off, s[0:3], 0 offset:1923785; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:2083786; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[52:55], off, s[0:3], 0 offset:1603787; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[48:51], off, s[0:3], 0 offset:1763788; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[44:47], off, s[0:3], 0 offset:1283789; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1443790; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[40:43], off, s[0:3], 0 offset:963791; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:1123792; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:643793; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:803794; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:323795; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:483796; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 03797; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[88:91], 0 ; 4-byte Folded Reload3798; GCN-NOHSA-VI-NEXT: buffer_load_dword v1, off, s[88:91], 0 offset:4 ; 4-byte Folded Reload3799; GCN-NOHSA-VI-NEXT: buffer_load_dword v2, off, s[88:91], 0 offset:8 ; 4-byte Folded Reload3800; GCN-NOHSA-VI-NEXT: buffer_load_dword v3, off, s[88:91], 0 offset:12 ; 4-byte Folded Reload3801; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)3802; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:163803; GCN-NOHSA-VI-NEXT: s_endpgm3804;3805; EG-LABEL: global_zextload_v64i8_to_v64i32:3806; EG: ; %bb.0:3807; EG-NEXT: ALU 0, @30, KC0[CB0:0-32], KC1[]3808; EG-NEXT: TEX 1 @223809; EG-NEXT: ALU 59, @31, KC0[CB0:0-32], KC1[]3810; EG-NEXT: TEX 1 @263811; EG-NEXT: ALU 88, @91, KC0[CB0:0-32], KC1[]3812; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T48.XYZW, T50.X, 03813; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T47.XYZW, T49.X, 03814; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T45.XYZW, T32.X, 03815; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T43.XYZW, T46.X, 03816; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T41.XYZW, T44.X, 03817; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T40.XYZW, T42.X, 03818; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T38.XYZW, T33.X, 03819; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T36.XYZW, T39.X, 03820; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T34.XYZW, T37.X, 03821; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T35.X, 03822; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T30.XYZW, T22.X, 03823; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T28.XYZW, T31.X, 03824; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T26.XYZW, T29.X, 03825; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T27.X, 03826; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T23.X, 03827; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T24.X, 13828; EG-NEXT: CF_END3829; EG-NEXT: Fetch clause starting at 22:3830; EG-NEXT: VTX_READ_128 T22.XYZW, T21.X, 16, #13831; EG-NEXT: VTX_READ_128 T23.XYZW, T21.X, 0, #13832; EG-NEXT: Fetch clause starting at 26:3833; EG-NEXT: VTX_READ_128 T32.XYZW, T21.X, 48, #13834; EG-NEXT: VTX_READ_128 T33.XYZW, T21.X, 32, #13835; EG-NEXT: ALU clause starting at 30:3836; EG-NEXT: MOV * T21.X, KC0[2].Z,3837; EG-NEXT: ALU clause starting at 31:3838; EG-NEXT: MOV * T0.W, literal.x,3839; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)3840; EG-NEXT: BFE_UINT * T19.Z, T23.Y, literal.x, PV.W,3841; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3842; EG-NEXT: BFE_UINT T19.Y, T23.Y, literal.x, T0.W,3843; EG-NEXT: BFE_UINT T20.Z, T23.X, literal.y, T0.W,3844; EG-NEXT: LSHR * T19.W, T23.Y, literal.z,3845; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)3846; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)3847; EG-NEXT: AND_INT T19.X, T23.Y, literal.x,3848; EG-NEXT: BFE_UINT T20.Y, T23.X, literal.y, T0.W,3849; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,3850; EG-NEXT: 255(3.573311e-43), 8(1.121039e-44)3851; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)3852; EG-NEXT: LSHR T24.X, PV.W, literal.x,3853; EG-NEXT: BFE_UINT T25.Z, T23.W, literal.y, T0.W,3854; EG-NEXT: LSHR T20.W, T23.X, literal.z,3855; EG-NEXT: AND_INT * T20.X, T23.X, literal.w,3856; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3857; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3858; EG-NEXT: BFE_UINT * T25.Y, T23.W, literal.x, T0.W,3859; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)3860; EG-NEXT: LSHR T23.X, KC0[2].Y, literal.x,3861; EG-NEXT: BFE_UINT T26.Z, T23.Z, literal.y, T0.W, BS:VEC_021/SCL_1223862; EG-NEXT: LSHR T25.W, T23.W, literal.z,3863; EG-NEXT: AND_INT * T25.X, T23.W, literal.w,3864; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3865; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3866; EG-NEXT: BFE_UINT T26.Y, T23.Z, literal.x, T0.W,3867; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3868; EG-NEXT: 8(1.121039e-44), 48(6.726233e-44)3869; EG-NEXT: LSHR T27.X, PV.W, literal.x,3870; EG-NEXT: BFE_UINT T28.Z, T22.Y, literal.y, T0.W,3871; EG-NEXT: LSHR T26.W, T23.Z, literal.z,3872; EG-NEXT: AND_INT * T26.X, T23.Z, literal.w,3873; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3874; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3875; EG-NEXT: BFE_UINT T28.Y, T22.Y, literal.x, T0.W,3876; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3877; EG-NEXT: 8(1.121039e-44), 32(4.484155e-44)3878; EG-NEXT: LSHR T29.X, PV.W, literal.x,3879; EG-NEXT: BFE_UINT T30.Z, T22.X, literal.y, T0.W,3880; EG-NEXT: LSHR T28.W, T22.Y, literal.z,3881; EG-NEXT: AND_INT * T28.X, T22.Y, literal.w,3882; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3883; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3884; EG-NEXT: BFE_UINT T30.Y, T22.X, literal.x, T0.W,3885; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3886; EG-NEXT: 8(1.121039e-44), 80(1.121039e-43)3887; EG-NEXT: LSHR T31.X, PV.W, literal.x,3888; EG-NEXT: LSHR T30.W, T22.X, literal.y,3889; EG-NEXT: AND_INT * T30.X, T22.X, literal.z,3890; EG-NEXT: 2(2.802597e-45), 24(3.363116e-44)3891; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)3892; EG-NEXT: BFE_UINT T21.Z, T22.W, literal.x, T0.W,3893; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3894; EG-NEXT: 16(2.242078e-44), 64(8.968310e-44)3895; EG-NEXT: LSHR T22.X, PV.W, literal.x,3896; EG-NEXT: BFE_UINT * T21.Y, T22.W, literal.y, T0.W,3897; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)3898; EG-NEXT: ALU clause starting at 91:3899; EG-NEXT: BFE_UINT T34.Z, T22.Z, literal.x, T0.W,3900; EG-NEXT: LSHR * T21.W, T22.W, literal.y,3901; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)3902; EG-NEXT: AND_INT T21.X, T22.W, literal.x,3903; EG-NEXT: BFE_UINT T34.Y, T22.Z, literal.y, T0.W,3904; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,3905; EG-NEXT: 255(3.573311e-43), 8(1.121039e-44)3906; EG-NEXT: 112(1.569454e-43), 0(0.000000e+00)3907; EG-NEXT: LSHR T35.X, PV.W, literal.x,3908; EG-NEXT: BFE_UINT T36.Z, T33.Y, literal.y, T0.W,3909; EG-NEXT: LSHR T34.W, T22.Z, literal.z,3910; EG-NEXT: AND_INT * T34.X, T22.Z, literal.w,3911; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3912; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3913; EG-NEXT: BFE_UINT T36.Y, T33.Y, literal.x, T0.W,3914; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3915; EG-NEXT: 8(1.121039e-44), 96(1.345247e-43)3916; EG-NEXT: LSHR T37.X, PV.W, literal.x,3917; EG-NEXT: BFE_UINT T38.Z, T33.X, literal.y, T0.W,3918; EG-NEXT: LSHR T36.W, T33.Y, literal.z,3919; EG-NEXT: AND_INT * T36.X, T33.Y, literal.w,3920; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3921; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3922; EG-NEXT: BFE_UINT T38.Y, T33.X, literal.x, T0.W,3923; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3924; EG-NEXT: 8(1.121039e-44), 144(2.017870e-43)3925; EG-NEXT: LSHR T39.X, PV.W, literal.x,3926; EG-NEXT: BFE_UINT T40.Z, T33.W, literal.y, T0.W,3927; EG-NEXT: LSHR T38.W, T33.X, literal.z,3928; EG-NEXT: AND_INT * T38.X, T33.X, literal.w,3929; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3930; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3931; EG-NEXT: BFE_UINT T40.Y, T33.W, literal.x, T0.W,3932; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3933; EG-NEXT: 8(1.121039e-44), 128(1.793662e-43)3934; EG-NEXT: LSHR T33.X, PV.W, literal.x,3935; EG-NEXT: BFE_UINT T41.Z, T33.Z, literal.y, T0.W, BS:VEC_021/SCL_1223936; EG-NEXT: LSHR T40.W, T33.W, literal.z,3937; EG-NEXT: AND_INT * T40.X, T33.W, literal.w,3938; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3939; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3940; EG-NEXT: BFE_UINT T41.Y, T33.Z, literal.x, T0.W,3941; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3942; EG-NEXT: 8(1.121039e-44), 176(2.466285e-43)3943; EG-NEXT: LSHR T42.X, PV.W, literal.x,3944; EG-NEXT: BFE_UINT T43.Z, T32.Y, literal.y, T0.W,3945; EG-NEXT: LSHR T41.W, T33.Z, literal.z,3946; EG-NEXT: AND_INT * T41.X, T33.Z, literal.w,3947; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3948; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3949; EG-NEXT: BFE_UINT T43.Y, T32.Y, literal.x, T0.W,3950; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3951; EG-NEXT: 8(1.121039e-44), 160(2.242078e-43)3952; EG-NEXT: LSHR T44.X, PV.W, literal.x,3953; EG-NEXT: BFE_UINT T45.Z, T32.X, literal.y, T0.W,3954; EG-NEXT: LSHR T43.W, T32.Y, literal.z,3955; EG-NEXT: AND_INT * T43.X, T32.Y, literal.w,3956; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3957; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3958; EG-NEXT: BFE_UINT T45.Y, T32.X, literal.x, T0.W,3959; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3960; EG-NEXT: 8(1.121039e-44), 208(2.914701e-43)3961; EG-NEXT: LSHR T46.X, PV.W, literal.x,3962; EG-NEXT: BFE_UINT T47.Z, T32.W, literal.y, T0.W,3963; EG-NEXT: LSHR T45.W, T32.X, literal.z,3964; EG-NEXT: AND_INT * T45.X, T32.X, literal.w,3965; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3966; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3967; EG-NEXT: BFE_UINT T47.Y, T32.W, literal.x, T0.W,3968; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,3969; EG-NEXT: 8(1.121039e-44), 192(2.690493e-43)3970; EG-NEXT: LSHR T32.X, PV.W, literal.x,3971; EG-NEXT: BFE_UINT T48.Z, T32.Z, literal.y, T0.W, BS:VEC_021/SCL_1223972; EG-NEXT: LSHR T47.W, T32.W, literal.z,3973; EG-NEXT: AND_INT * T47.X, T32.W, literal.w,3974; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)3975; EG-NEXT: 24(3.363116e-44), 255(3.573311e-43)3976; EG-NEXT: BFE_UINT T48.Y, T32.Z, literal.x, T0.W,3977; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,3978; EG-NEXT: 8(1.121039e-44), 240(3.363116e-43)3979; EG-NEXT: LSHR T49.X, PV.W, literal.x,3980; EG-NEXT: LSHR T48.W, T32.Z, literal.y,3981; EG-NEXT: AND_INT * T48.X, T32.Z, literal.z,3982; EG-NEXT: 2(2.802597e-45), 24(3.363116e-44)3983; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)3984; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,3985; EG-NEXT: 224(3.138909e-43), 0(0.000000e+00)3986; EG-NEXT: LSHR * T50.X, PV.W, literal.x,3987; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)3988;3989; CM-LABEL: global_zextload_v64i8_to_v64i32:3990; CM: ; %bb.0:3991; CM-NEXT: ALU 0, @30, KC0[CB0:0-32], KC1[]3992; CM-NEXT: TEX 1 @223993; CM-NEXT: ALU 63, @31, KC0[CB0:0-32], KC1[]3994; CM-NEXT: TEX 1 @263995; CM-NEXT: ALU 95, @95, KC0[CB0:0-32], KC1[]3996; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T49, T50.X3997; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T47, T32.X3998; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T45, T48.X3999; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T43, T46.X4000; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T42, T44.X4001; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T40, T33.X4002; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T38, T41.X4003; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T36, T39.X4004; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T35, T37.X4005; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T20.X4006; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T30, T34.X4007; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T28, T31.X4008; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T27, T29.X4009; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T25, T21.X4010; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T23, T26.X4011; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T22, T24.X4012; CM-NEXT: CF_END4013; CM-NEXT: Fetch clause starting at 22:4014; CM-NEXT: VTX_READ_128 T20.XYZW, T19.X, 32, #14015; CM-NEXT: VTX_READ_128 T21.XYZW, T19.X, 48, #14016; CM-NEXT: Fetch clause starting at 26:4017; CM-NEXT: VTX_READ_128 T32.XYZW, T19.X, 0, #14018; CM-NEXT: VTX_READ_128 T33.XYZW, T19.X, 16, #14019; CM-NEXT: ALU clause starting at 30:4020; CM-NEXT: MOV * T19.X, KC0[2].Z,4021; CM-NEXT: ALU clause starting at 31:4022; CM-NEXT: MOV * T0.W, literal.x,4023; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)4024; CM-NEXT: BFE_UINT * T22.Z, T21.Z, literal.x, PV.W,4025; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)4026; CM-NEXT: BFE_UINT T22.Y, T21.Z, literal.x, T0.W,4027; CM-NEXT: BFE_UINT T23.Z, T21.W, literal.y, T0.W,4028; CM-NEXT: LSHR * T22.W, T21.Z, literal.z,4029; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)4030; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4031; CM-NEXT: AND_INT T22.X, T21.Z, literal.x,4032; CM-NEXT: BFE_UINT T23.Y, T21.W, literal.y, T0.W,4033; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4034; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4035; CM-NEXT: 224(3.138909e-43), 0(0.000000e+00)4036; CM-NEXT: LSHR T24.X, PV.W, literal.x,4037; CM-NEXT: BFE_UINT T25.Z, T21.X, literal.y, T0.W,4038; CM-NEXT: LSHR * T23.W, T21.W, literal.z,4039; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4040; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4041; CM-NEXT: AND_INT T23.X, T21.W, literal.x,4042; CM-NEXT: BFE_UINT T25.Y, T21.X, literal.y, T0.W,4043; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4044; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4045; CM-NEXT: 240(3.363116e-43), 0(0.000000e+00)4046; CM-NEXT: LSHR T26.X, PV.W, literal.x,4047; CM-NEXT: BFE_UINT T27.Z, T21.Y, literal.y, T0.W,4048; CM-NEXT: LSHR * T25.W, T21.X, literal.z,4049; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4050; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4051; CM-NEXT: AND_INT T25.X, T21.X, literal.x,4052; CM-NEXT: BFE_UINT T27.Y, T21.Y, literal.y, T0.W,4053; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4054; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4055; CM-NEXT: 192(2.690493e-43), 0(0.000000e+00)4056; CM-NEXT: LSHR T21.X, PV.W, literal.x,4057; CM-NEXT: BFE_UINT T28.Z, T20.Z, literal.y, T0.W,4058; CM-NEXT: LSHR * T27.W, T21.Y, literal.z,4059; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4060; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4061; CM-NEXT: AND_INT T27.X, T21.Y, literal.x,4062; CM-NEXT: BFE_UINT T28.Y, T20.Z, literal.y, T0.W,4063; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4064; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4065; CM-NEXT: 208(2.914701e-43), 0(0.000000e+00)4066; CM-NEXT: LSHR T29.X, PV.W, literal.x,4067; CM-NEXT: BFE_UINT T30.Z, T20.W, literal.y, T0.W,4068; CM-NEXT: LSHR * T28.W, T20.Z, literal.z,4069; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4070; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4071; CM-NEXT: AND_INT T28.X, T20.Z, literal.x,4072; CM-NEXT: BFE_UINT T30.Y, T20.W, literal.y, T0.W,4073; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4074; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4075; CM-NEXT: 160(2.242078e-43), 0(0.000000e+00)4076; CM-NEXT: LSHR T31.X, PV.W, literal.x,4077; CM-NEXT: BFE_UINT T19.Z, T20.X, literal.y, T0.W,4078; CM-NEXT: LSHR * T30.W, T20.W, literal.z,4079; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4080; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4081; CM-NEXT: AND_INT T30.X, T20.W, literal.x,4082; CM-NEXT: BFE_UINT T19.Y, T20.X, literal.y, T0.W,4083; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4084; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4085; CM-NEXT: 176(2.466285e-43), 0(0.000000e+00)4086; CM-NEXT: ALU clause starting at 95:4087; CM-NEXT: LSHR T34.X, T1.W, literal.x,4088; CM-NEXT: BFE_UINT T35.Z, T20.Y, literal.y, T0.W,4089; CM-NEXT: LSHR * T19.W, T20.X, literal.z,4090; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4091; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4092; CM-NEXT: AND_INT T19.X, T20.X, literal.x,4093; CM-NEXT: BFE_UINT T35.Y, T20.Y, literal.y, T0.W,4094; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4095; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4096; CM-NEXT: 128(1.793662e-43), 0(0.000000e+00)4097; CM-NEXT: LSHR T20.X, PV.W, literal.x,4098; CM-NEXT: BFE_UINT T36.Z, T33.Z, literal.y, T0.W,4099; CM-NEXT: LSHR * T35.W, T20.Y, literal.z,4100; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4101; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4102; CM-NEXT: AND_INT T35.X, T20.Y, literal.x,4103; CM-NEXT: BFE_UINT T36.Y, T33.Z, literal.y, T0.W,4104; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4105; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4106; CM-NEXT: 144(2.017870e-43), 0(0.000000e+00)4107; CM-NEXT: LSHR T37.X, PV.W, literal.x,4108; CM-NEXT: BFE_UINT T38.Z, T33.W, literal.y, T0.W,4109; CM-NEXT: LSHR * T36.W, T33.Z, literal.z,4110; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4111; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4112; CM-NEXT: AND_INT T36.X, T33.Z, literal.x,4113; CM-NEXT: BFE_UINT T38.Y, T33.W, literal.y, T0.W,4114; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4115; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4116; CM-NEXT: 96(1.345247e-43), 0(0.000000e+00)4117; CM-NEXT: LSHR T39.X, PV.W, literal.x,4118; CM-NEXT: BFE_UINT T40.Z, T33.X, literal.y, T0.W,4119; CM-NEXT: LSHR * T38.W, T33.W, literal.z,4120; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4121; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4122; CM-NEXT: AND_INT T38.X, T33.W, literal.x,4123; CM-NEXT: BFE_UINT T40.Y, T33.X, literal.y, T0.W,4124; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4125; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4126; CM-NEXT: 112(1.569454e-43), 0(0.000000e+00)4127; CM-NEXT: LSHR T41.X, PV.W, literal.x,4128; CM-NEXT: BFE_UINT T42.Z, T33.Y, literal.y, T0.W,4129; CM-NEXT: LSHR * T40.W, T33.X, literal.z,4130; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4131; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4132; CM-NEXT: AND_INT T40.X, T33.X, literal.x,4133; CM-NEXT: BFE_UINT T42.Y, T33.Y, literal.y, T0.W,4134; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4135; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4136; CM-NEXT: 64(8.968310e-44), 0(0.000000e+00)4137; CM-NEXT: LSHR T33.X, PV.W, literal.x,4138; CM-NEXT: BFE_UINT T43.Z, T32.Z, literal.y, T0.W,4139; CM-NEXT: LSHR * T42.W, T33.Y, literal.z,4140; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4141; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4142; CM-NEXT: AND_INT T42.X, T33.Y, literal.x,4143; CM-NEXT: BFE_UINT T43.Y, T32.Z, literal.y, T0.W,4144; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4145; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4146; CM-NEXT: 80(1.121039e-43), 0(0.000000e+00)4147; CM-NEXT: LSHR T44.X, PV.W, literal.x,4148; CM-NEXT: BFE_UINT T45.Z, T32.W, literal.y, T0.W,4149; CM-NEXT: LSHR * T43.W, T32.Z, literal.z,4150; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4151; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4152; CM-NEXT: AND_INT T43.X, T32.Z, literal.x,4153; CM-NEXT: BFE_UINT T45.Y, T32.W, literal.y, T0.W,4154; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4155; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4156; CM-NEXT: 32(4.484155e-44), 0(0.000000e+00)4157; CM-NEXT: LSHR T46.X, PV.W, literal.x,4158; CM-NEXT: BFE_UINT T47.Z, T32.X, literal.y, T0.W,4159; CM-NEXT: LSHR * T45.W, T32.W, literal.z,4160; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4161; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4162; CM-NEXT: AND_INT T45.X, T32.W, literal.x,4163; CM-NEXT: BFE_UINT T47.Y, T32.X, literal.y, T0.W,4164; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4165; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4166; CM-NEXT: 48(6.726233e-44), 0(0.000000e+00)4167; CM-NEXT: LSHR T48.X, PV.W, literal.x,4168; CM-NEXT: BFE_UINT T49.Z, T32.Y, literal.y, T0.W,4169; CM-NEXT: LSHR * T47.W, T32.X, literal.z,4170; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4171; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)4172; CM-NEXT: AND_INT T47.X, T32.X, literal.x,4173; CM-NEXT: BFE_UINT * T49.Y, T32.Y, literal.y, T0.W,4174; CM-NEXT: 255(3.573311e-43), 8(1.121039e-44)4175; CM-NEXT: LSHR T32.X, KC0[2].Y, literal.x,4176; CM-NEXT: LSHR * T49.W, T32.Y, literal.y,4177; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)4178; CM-NEXT: AND_INT T49.X, T32.Y, literal.x,4179; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4180; CM-NEXT: 255(3.573311e-43), 16(2.242078e-44)4181; CM-NEXT: LSHR * T50.X, PV.W, literal.x,4182; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)4183 %load = load <64 x i8>, ptr addrspace(1) %in4184 %ext = zext <64 x i8> %load to <64 x i32>4185 store <64 x i32> %ext, ptr addrspace(1) %out4186 ret void4187}4188 4189define amdgpu_kernel void @global_sextload_v64i8_to_v64i32(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {4190; GCN-NOHSA-SI-LABEL: global_sextload_v64i8_to_v64i32:4191; GCN-NOHSA-SI: ; %bb.0:4192; GCN-NOHSA-SI-NEXT: s_mov_b32 s12, SCRATCH_RSRC_DWORD04193; GCN-NOHSA-SI-NEXT: s_mov_b32 s13, SCRATCH_RSRC_DWORD14194; GCN-NOHSA-SI-NEXT: s_mov_b32 s14, -14195; GCN-NOHSA-SI-NEXT: s_mov_b32 s15, 0xe8f0004196; GCN-NOHSA-SI-NEXT: s_add_u32 s12, s12, s114197; GCN-NOHSA-SI-NEXT: s_addc_u32 s13, s13, 04198; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x94199; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0004200; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -14201; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)4202; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s44203; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s54204; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s64205; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s74206; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, s24207; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, s34208; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[10:13], off, s[4:7], 04209; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[16:19], off, s[4:7], 0 offset:164210; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[20:23], off, s[4:7], 0 offset:324211; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[24:27], off, s[4:7], 0 offset:484212; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(3)4213; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 24, v114214; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v11, 16, 84215; GCN-NOHSA-SI-NEXT: v_bfe_i32 v1, v11, 8, 84216; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v11, 0, 84217; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[12:15], 0 ; 4-byte Folded Spill4218; GCN-NOHSA-SI-NEXT: buffer_store_dword v1, off, s[12:15], 0 offset:4 ; 4-byte Folded Spill4219; GCN-NOHSA-SI-NEXT: buffer_store_dword v2, off, s[12:15], 0 offset:8 ; 4-byte Folded Spill4220; GCN-NOHSA-SI-NEXT: buffer_store_dword v3, off, s[12:15], 0 offset:12 ; 4-byte Folded Spill4221; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 24, v104222; GCN-NOHSA-SI-NEXT: v_bfe_i32 v6, v10, 16, 84223; GCN-NOHSA-SI-NEXT: v_bfe_i32 v5, v10, 8, 84224; GCN-NOHSA-SI-NEXT: v_bfe_i32 v4, v10, 0, 84225; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v11, 24, v134226; GCN-NOHSA-SI-NEXT: v_bfe_i32 v10, v13, 16, 84227; GCN-NOHSA-SI-NEXT: v_bfe_i32 v9, v13, 8, 84228; GCN-NOHSA-SI-NEXT: v_bfe_i32 v8, v13, 0, 84229; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v15, 24, v124230; GCN-NOHSA-SI-NEXT: v_bfe_i32 v14, v12, 16, 84231; GCN-NOHSA-SI-NEXT: v_bfe_i32 v13, v12, 8, 84232; GCN-NOHSA-SI-NEXT: v_bfe_i32 v12, v12, 0, 84233; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(6)4234; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v31, 24, v174235; GCN-NOHSA-SI-NEXT: v_bfe_i32 v30, v17, 16, 84236; GCN-NOHSA-SI-NEXT: v_bfe_i32 v29, v17, 8, 84237; GCN-NOHSA-SI-NEXT: v_bfe_i32 v28, v17, 0, 84238; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v35, 24, v164239; GCN-NOHSA-SI-NEXT: v_bfe_i32 v34, v16, 16, 84240; GCN-NOHSA-SI-NEXT: v_bfe_i32 v33, v16, 8, 84241; GCN-NOHSA-SI-NEXT: v_bfe_i32 v32, v16, 0, 84242; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v39, 24, v194243; GCN-NOHSA-SI-NEXT: v_bfe_i32 v38, v19, 16, 84244; GCN-NOHSA-SI-NEXT: v_bfe_i32 v37, v19, 8, 84245; GCN-NOHSA-SI-NEXT: v_bfe_i32 v36, v19, 0, 84246; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v43, 24, v184247; GCN-NOHSA-SI-NEXT: v_bfe_i32 v42, v18, 16, 84248; GCN-NOHSA-SI-NEXT: v_bfe_i32 v41, v18, 8, 84249; GCN-NOHSA-SI-NEXT: v_bfe_i32 v40, v18, 0, 84250; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(5)4251; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v19, 24, v214252; GCN-NOHSA-SI-NEXT: v_bfe_i32 v18, v21, 16, 84253; GCN-NOHSA-SI-NEXT: v_bfe_i32 v17, v21, 8, 84254; GCN-NOHSA-SI-NEXT: v_bfe_i32 v16, v21, 0, 84255; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v47, 24, v204256; GCN-NOHSA-SI-NEXT: v_bfe_i32 v46, v20, 16, 84257; GCN-NOHSA-SI-NEXT: v_bfe_i32 v45, v20, 8, 84258; GCN-NOHSA-SI-NEXT: v_bfe_i32 v44, v20, 0, 84259; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v51, 24, v234260; GCN-NOHSA-SI-NEXT: v_bfe_i32 v50, v23, 16, 84261; GCN-NOHSA-SI-NEXT: v_bfe_i32 v49, v23, 8, 84262; GCN-NOHSA-SI-NEXT: v_bfe_i32 v48, v23, 0, 84263; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v55, 24, v224264; GCN-NOHSA-SI-NEXT: v_bfe_i32 v54, v22, 16, 84265; GCN-NOHSA-SI-NEXT: v_bfe_i32 v53, v22, 8, 84266; GCN-NOHSA-SI-NEXT: v_bfe_i32 v52, v22, 0, 84267; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(4)4268; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v23, 24, v254269; GCN-NOHSA-SI-NEXT: v_bfe_i32 v22, v25, 16, 84270; GCN-NOHSA-SI-NEXT: v_bfe_i32 v21, v25, 8, 84271; GCN-NOHSA-SI-NEXT: v_bfe_i32 v20, v25, 0, 84272; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v59, 24, v244273; GCN-NOHSA-SI-NEXT: v_bfe_i32 v58, v24, 16, 84274; GCN-NOHSA-SI-NEXT: v_bfe_i32 v57, v24, 8, 84275; GCN-NOHSA-SI-NEXT: v_bfe_i32 v56, v24, 0, 84276; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v63, 24, v274277; GCN-NOHSA-SI-NEXT: v_bfe_i32 v62, v27, 16, 84278; GCN-NOHSA-SI-NEXT: v_bfe_i32 v61, v27, 8, 84279; GCN-NOHSA-SI-NEXT: v_bfe_i32 v60, v27, 0, 84280; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)4281; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 24, v264282; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v26, 16, 84283; GCN-NOHSA-SI-NEXT: v_bfe_i32 v1, v26, 8, 84284; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v26, 0, 84285; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2244286; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[60:63], off, s[0:3], 0 offset:2404287; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[56:59], off, s[0:3], 0 offset:1924288; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:2084289; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[52:55], off, s[0:3], 0 offset:1604290; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[48:51], off, s[0:3], 0 offset:1764291; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[44:47], off, s[0:3], 0 offset:1284292; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:1444293; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[40:43], off, s[0:3], 0 offset:964294; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[36:39], off, s[0:3], 0 offset:1124295; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:644296; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:804297; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:324298; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:484299; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 04300; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[12:15], 0 ; 4-byte Folded Reload4301; GCN-NOHSA-SI-NEXT: buffer_load_dword v1, off, s[12:15], 0 offset:4 ; 4-byte Folded Reload4302; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[12:15], 0 offset:8 ; 4-byte Folded Reload4303; GCN-NOHSA-SI-NEXT: buffer_load_dword v3, off, s[12:15], 0 offset:12 ; 4-byte Folded Reload4304; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)4305; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:164306; GCN-NOHSA-SI-NEXT: s_endpgm4307;4308; GCN-HSA-LABEL: global_sextload_v64i8_to_v64i32:4309; GCN-HSA: ; %bb.0:4310; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x04311; GCN-HSA-NEXT: s_add_i32 s12, s12, s174312; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s134313; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 84314; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)4315; GCN-HSA-NEXT: v_mov_b32_e32 v0, s24316; GCN-HSA-NEXT: v_mov_b32_e32 v1, s34317; GCN-HSA-NEXT: flat_load_dwordx4 v[12:15], v[0:1]4318; GCN-HSA-NEXT: s_add_u32 s4, s2, 484319; GCN-HSA-NEXT: s_addc_u32 s5, s3, 04320; GCN-HSA-NEXT: v_mov_b32_e32 v0, s44321; GCN-HSA-NEXT: v_mov_b32_e32 v1, s54322; GCN-HSA-NEXT: flat_load_dwordx4 v[8:11], v[0:1]4323; GCN-HSA-NEXT: s_add_u32 s4, s2, 324324; GCN-HSA-NEXT: s_addc_u32 s5, s3, 04325; GCN-HSA-NEXT: v_mov_b32_e32 v0, s44326; GCN-HSA-NEXT: v_mov_b32_e32 v1, s54327; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[0:1]4328; GCN-HSA-NEXT: s_add_u32 s2, s2, 164329; GCN-HSA-NEXT: s_addc_u32 s3, s3, 04330; GCN-HSA-NEXT: v_mov_b32_e32 v0, s24331; GCN-HSA-NEXT: v_mov_b32_e32 v1, s34332; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]4333; GCN-HSA-NEXT: s_add_u32 s2, s0, 324334; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04335; GCN-HSA-NEXT: v_mov_b32_e32 v21, s34336; GCN-HSA-NEXT: v_mov_b32_e32 v20, s24337; GCN-HSA-NEXT: s_add_u32 s2, s0, 484338; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04339; GCN-HSA-NEXT: s_waitcnt vmcnt(3)4340; GCN-HSA-NEXT: v_ashrrev_i32_e32 v19, 24, v144341; GCN-HSA-NEXT: v_bfe_i32 v18, v14, 16, 84342; GCN-HSA-NEXT: v_bfe_i32 v17, v14, 8, 84343; GCN-HSA-NEXT: v_bfe_i32 v16, v14, 0, 84344; GCN-HSA-NEXT: flat_store_dwordx4 v[20:21], v[16:19]4345; GCN-HSA-NEXT: v_mov_b32_e32 v20, s34346; GCN-HSA-NEXT: v_ashrrev_i32_e32 v18, 24, v154347; GCN-HSA-NEXT: v_bfe_i32 v17, v15, 16, 84348; GCN-HSA-NEXT: v_bfe_i32 v16, v15, 8, 84349; GCN-HSA-NEXT: v_bfe_i32 v15, v15, 0, 84350; GCN-HSA-NEXT: v_mov_b32_e32 v19, s24351; GCN-HSA-NEXT: flat_store_dwordx4 v[19:20], v[15:18]4352; GCN-HSA-NEXT: v_mov_b32_e32 v19, s14353; GCN-HSA-NEXT: s_add_u32 s2, s0, 164354; GCN-HSA-NEXT: v_ashrrev_i32_e32 v17, 24, v124355; GCN-HSA-NEXT: v_bfe_i32 v16, v12, 16, 84356; GCN-HSA-NEXT: v_bfe_i32 v15, v12, 8, 84357; GCN-HSA-NEXT: v_bfe_i32 v14, v12, 0, 84358; GCN-HSA-NEXT: v_mov_b32_e32 v18, s04359; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04360; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[14:17]4361; GCN-HSA-NEXT: v_mov_b32_e32 v18, s34362; GCN-HSA-NEXT: v_mov_b32_e32 v17, s24363; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xe04364; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04365; GCN-HSA-NEXT: v_mov_b32_e32 v20, s34366; GCN-HSA-NEXT: v_mov_b32_e32 v19, s24367; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xf04368; GCN-HSA-NEXT: v_ashrrev_i32_e32 v16, 24, v134369; GCN-HSA-NEXT: v_bfe_i32 v15, v13, 16, 84370; GCN-HSA-NEXT: v_bfe_i32 v14, v13, 8, 84371; GCN-HSA-NEXT: v_bfe_i32 v13, v13, 0, 84372; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04373; GCN-HSA-NEXT: flat_store_dwordx4 v[17:18], v[13:16]4374; GCN-HSA-NEXT: v_mov_b32_e32 v17, s34375; GCN-HSA-NEXT: v_mov_b32_e32 v16, s24376; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xc04377; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04378; GCN-HSA-NEXT: s_waitcnt vmcnt(6)4379; GCN-HSA-NEXT: v_ashrrev_i32_e32 v15, 24, v104380; GCN-HSA-NEXT: v_bfe_i32 v14, v10, 16, 84381; GCN-HSA-NEXT: v_bfe_i32 v13, v10, 8, 84382; GCN-HSA-NEXT: v_bfe_i32 v12, v10, 0, 84383; GCN-HSA-NEXT: flat_store_dwordx4 v[19:20], v[12:15]4384; GCN-HSA-NEXT: v_mov_b32_e32 v19, s34385; GCN-HSA-NEXT: v_mov_b32_e32 v18, s24386; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xd04387; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04388; GCN-HSA-NEXT: v_ashrrev_i32_e32 v14, 24, v114389; GCN-HSA-NEXT: v_bfe_i32 v13, v11, 16, 84390; GCN-HSA-NEXT: v_bfe_i32 v12, v11, 8, 84391; GCN-HSA-NEXT: v_bfe_i32 v11, v11, 0, 84392; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[11:14]4393; GCN-HSA-NEXT: v_mov_b32_e32 v15, s34394; GCN-HSA-NEXT: v_mov_b32_e32 v14, s24395; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xa04396; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04397; GCN-HSA-NEXT: v_ashrrev_i32_e32 v13, 24, v84398; GCN-HSA-NEXT: v_bfe_i32 v12, v8, 16, 84399; GCN-HSA-NEXT: v_bfe_i32 v11, v8, 8, 84400; GCN-HSA-NEXT: v_bfe_i32 v10, v8, 0, 84401; GCN-HSA-NEXT: v_mov_b32_e32 v17, s34402; GCN-HSA-NEXT: flat_store_dwordx4 v[18:19], v[10:13]4403; GCN-HSA-NEXT: v_mov_b32_e32 v16, s24404; GCN-HSA-NEXT: v_ashrrev_i32_e32 v12, 24, v94405; GCN-HSA-NEXT: v_bfe_i32 v11, v9, 16, 84406; GCN-HSA-NEXT: v_bfe_i32 v10, v9, 8, 84407; GCN-HSA-NEXT: v_bfe_i32 v9, v9, 0, 84408; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xb04409; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[9:12]4410; GCN-HSA-NEXT: s_waitcnt vmcnt(9)4411; GCN-HSA-NEXT: v_ashrrev_i32_e32 v14, 24, v64412; GCN-HSA-NEXT: v_bfe_i32 v13, v6, 16, 84413; GCN-HSA-NEXT: v_bfe_i32 v12, v6, 8, 84414; GCN-HSA-NEXT: v_bfe_i32 v11, v6, 0, 84415; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04416; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[11:14]4417; GCN-HSA-NEXT: v_mov_b32_e32 v16, s34418; GCN-HSA-NEXT: v_mov_b32_e32 v15, s24419; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x804420; GCN-HSA-NEXT: v_ashrrev_i32_e32 v10, 24, v74421; GCN-HSA-NEXT: v_bfe_i32 v9, v7, 16, 84422; GCN-HSA-NEXT: v_bfe_i32 v8, v7, 8, 84423; GCN-HSA-NEXT: v_bfe_i32 v7, v7, 0, 84424; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04425; GCN-HSA-NEXT: flat_store_dwordx4 v[15:16], v[7:10]4426; GCN-HSA-NEXT: v_mov_b32_e32 v16, s34427; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 24, v44428; GCN-HSA-NEXT: v_bfe_i32 v8, v4, 16, 84429; GCN-HSA-NEXT: v_bfe_i32 v7, v4, 8, 84430; GCN-HSA-NEXT: v_bfe_i32 v6, v4, 0, 84431; GCN-HSA-NEXT: v_mov_b32_e32 v15, s24432; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x904433; GCN-HSA-NEXT: s_waitcnt vmcnt(10)4434; GCN-HSA-NEXT: v_ashrrev_i32_e32 v14, 24, v14435; GCN-HSA-NEXT: v_bfe_i32 v13, v1, 16, 84436; GCN-HSA-NEXT: v_bfe_i32 v12, v1, 8, 84437; GCN-HSA-NEXT: v_bfe_i32 v11, v1, 0, 84438; GCN-HSA-NEXT: flat_store_dwordx4 v[15:16], v[6:9]4439; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04440; GCN-HSA-NEXT: v_ashrrev_i32_e32 v9, 24, v04441; GCN-HSA-NEXT: v_bfe_i32 v8, v0, 16, 84442; GCN-HSA-NEXT: v_bfe_i32 v7, v0, 8, 84443; GCN-HSA-NEXT: v_bfe_i32 v6, v0, 0, 84444; GCN-HSA-NEXT: v_mov_b32_e32 v0, s24445; GCN-HSA-NEXT: v_ashrrev_i32_e32 v18, 24, v54446; GCN-HSA-NEXT: v_bfe_i32 v17, v5, 16, 84447; GCN-HSA-NEXT: v_bfe_i32 v16, v5, 8, 84448; GCN-HSA-NEXT: v_bfe_i32 v15, v5, 0, 84449; GCN-HSA-NEXT: v_mov_b32_e32 v1, s34450; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x604451; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[15:18]4452; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04453; GCN-HSA-NEXT: v_mov_b32_e32 v0, s24454; GCN-HSA-NEXT: v_ashrrev_i32_e32 v18, 24, v34455; GCN-HSA-NEXT: v_bfe_i32 v17, v3, 16, 84456; GCN-HSA-NEXT: v_bfe_i32 v16, v3, 8, 84457; GCN-HSA-NEXT: v_bfe_i32 v15, v3, 0, 84458; GCN-HSA-NEXT: v_ashrrev_i32_e32 v5, 24, v24459; GCN-HSA-NEXT: v_bfe_i32 v4, v2, 16, 84460; GCN-HSA-NEXT: v_bfe_i32 v3, v2, 8, 84461; GCN-HSA-NEXT: v_bfe_i32 v2, v2, 0, 84462; GCN-HSA-NEXT: v_mov_b32_e32 v1, s34463; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x704464; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[2:5]4465; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04466; GCN-HSA-NEXT: v_mov_b32_e32 v0, s24467; GCN-HSA-NEXT: v_mov_b32_e32 v1, s34468; GCN-HSA-NEXT: s_add_u32 s2, s0, 644469; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[15:18]4470; GCN-HSA-NEXT: s_addc_u32 s3, s1, 04471; GCN-HSA-NEXT: v_mov_b32_e32 v0, s24472; GCN-HSA-NEXT: v_mov_b32_e32 v1, s34473; GCN-HSA-NEXT: s_add_u32 s0, s0, 0x504474; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[6:9]4475; GCN-HSA-NEXT: s_addc_u32 s1, s1, 04476; GCN-HSA-NEXT: v_mov_b32_e32 v0, s04477; GCN-HSA-NEXT: v_mov_b32_e32 v1, s14478; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[11:14]4479; GCN-HSA-NEXT: s_endpgm4480;4481; GCN-NOHSA-VI-LABEL: global_sextload_v64i8_to_v64i32:4482; GCN-NOHSA-VI: ; %bb.0:4483; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x244484; GCN-NOHSA-VI-NEXT: s_mov_b32 s88, SCRATCH_RSRC_DWORD04485; GCN-NOHSA-VI-NEXT: s_mov_b32 s89, SCRATCH_RSRC_DWORD14486; GCN-NOHSA-VI-NEXT: s_mov_b32 s90, -14487; GCN-NOHSA-VI-NEXT: s_mov_b32 s91, 0xe800004488; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0004489; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -14490; GCN-NOHSA-VI-NEXT: s_add_u32 s88, s88, s114491; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s24492; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)4493; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s64494; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s74495; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s34496; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[10:13], off, s[8:11], 04497; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[26:29], off, s[8:11], 0 offset:164498; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[30:33], off, s[8:11], 0 offset:324499; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[34:37], off, s[8:11], 0 offset:484500; GCN-NOHSA-VI-NEXT: s_addc_u32 s89, s89, 04501; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s44502; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s54503; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(3)4504; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 24, v114505; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v11, 16, 84506; GCN-NOHSA-VI-NEXT: v_bfe_i32 v1, v11, 8, 84507; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v11, 0, 84508; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[88:91], 0 ; 4-byte Folded Spill4509; GCN-NOHSA-VI-NEXT: buffer_store_dword v1, off, s[88:91], 0 offset:4 ; 4-byte Folded Spill4510; GCN-NOHSA-VI-NEXT: buffer_store_dword v2, off, s[88:91], 0 offset:8 ; 4-byte Folded Spill4511; GCN-NOHSA-VI-NEXT: buffer_store_dword v3, off, s[88:91], 0 offset:12 ; 4-byte Folded Spill4512; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(4)4513; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 24, v364514; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v36, 16, 84515; GCN-NOHSA-VI-NEXT: v_bfe_i32 v1, v36, 8, 84516; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v36, 0, 84517; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 24, v104518; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v10, 16, 84519; GCN-NOHSA-VI-NEXT: v_bfe_i32 v5, v10, 8, 84520; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v10, 0, 84521; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v11, 24, v134522; GCN-NOHSA-VI-NEXT: v_bfe_i32 v10, v13, 16, 84523; GCN-NOHSA-VI-NEXT: v_bfe_i32 v9, v13, 8, 84524; GCN-NOHSA-VI-NEXT: v_bfe_i32 v8, v13, 0, 84525; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v15, 24, v124526; GCN-NOHSA-VI-NEXT: v_bfe_i32 v14, v12, 16, 84527; GCN-NOHSA-VI-NEXT: v_bfe_i32 v13, v12, 8, 84528; GCN-NOHSA-VI-NEXT: v_bfe_i32 v12, v12, 0, 84529; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v19, 24, v274530; GCN-NOHSA-VI-NEXT: v_bfe_i32 v18, v27, 16, 84531; GCN-NOHSA-VI-NEXT: v_bfe_i32 v17, v27, 8, 84532; GCN-NOHSA-VI-NEXT: v_bfe_i32 v16, v27, 0, 84533; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v23, 24, v264534; GCN-NOHSA-VI-NEXT: v_bfe_i32 v22, v26, 16, 84535; GCN-NOHSA-VI-NEXT: v_bfe_i32 v21, v26, 8, 84536; GCN-NOHSA-VI-NEXT: v_bfe_i32 v20, v26, 0, 84537; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v27, 24, v294538; GCN-NOHSA-VI-NEXT: v_bfe_i32 v26, v29, 16, 84539; GCN-NOHSA-VI-NEXT: v_bfe_i32 v25, v29, 8, 84540; GCN-NOHSA-VI-NEXT: v_bfe_i32 v24, v29, 0, 84541; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v41, 24, v284542; GCN-NOHSA-VI-NEXT: v_bfe_i32 v40, v28, 16, 84543; GCN-NOHSA-VI-NEXT: v_bfe_i32 v39, v28, 8, 84544; GCN-NOHSA-VI-NEXT: v_bfe_i32 v38, v28, 0, 84545; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v45, 24, v314546; GCN-NOHSA-VI-NEXT: v_bfe_i32 v44, v31, 16, 84547; GCN-NOHSA-VI-NEXT: v_bfe_i32 v43, v31, 8, 84548; GCN-NOHSA-VI-NEXT: v_bfe_i32 v42, v31, 0, 84549; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v49, 24, v304550; GCN-NOHSA-VI-NEXT: v_bfe_i32 v48, v30, 16, 84551; GCN-NOHSA-VI-NEXT: v_bfe_i32 v47, v30, 8, 84552; GCN-NOHSA-VI-NEXT: v_bfe_i32 v46, v30, 0, 84553; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v31, 24, v334554; GCN-NOHSA-VI-NEXT: v_bfe_i32 v30, v33, 16, 84555; GCN-NOHSA-VI-NEXT: v_bfe_i32 v29, v33, 8, 84556; GCN-NOHSA-VI-NEXT: v_bfe_i32 v28, v33, 0, 84557; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v53, 24, v324558; GCN-NOHSA-VI-NEXT: v_bfe_i32 v52, v32, 16, 84559; GCN-NOHSA-VI-NEXT: v_bfe_i32 v51, v32, 8, 84560; GCN-NOHSA-VI-NEXT: v_bfe_i32 v50, v32, 0, 84561; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v57, 24, v354562; GCN-NOHSA-VI-NEXT: v_bfe_i32 v56, v35, 16, 84563; GCN-NOHSA-VI-NEXT: v_bfe_i32 v55, v35, 8, 84564; GCN-NOHSA-VI-NEXT: v_bfe_i32 v54, v35, 0, 84565; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v61, 24, v344566; GCN-NOHSA-VI-NEXT: v_bfe_i32 v60, v34, 16, 84567; GCN-NOHSA-VI-NEXT: v_bfe_i32 v59, v34, 8, 84568; GCN-NOHSA-VI-NEXT: v_bfe_i32 v58, v34, 0, 84569; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v35, 24, v374570; GCN-NOHSA-VI-NEXT: v_bfe_i32 v34, v37, 16, 84571; GCN-NOHSA-VI-NEXT: v_bfe_i32 v33, v37, 8, 84572; GCN-NOHSA-VI-NEXT: v_bfe_i32 v32, v37, 0, 84573; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2244574; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[32:35], off, s[0:3], 0 offset:2404575; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[58:61], off, s[0:3], 0 offset:1924576; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[54:57], off, s[0:3], 0 offset:2084577; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[50:53], off, s[0:3], 0 offset:1604578; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1764579; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[46:49], off, s[0:3], 0 offset:1284580; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[42:45], off, s[0:3], 0 offset:1444581; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[38:41], off, s[0:3], 0 offset:964582; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:1124583; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:644584; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:804585; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:324586; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:484587; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 04588; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[88:91], 0 ; 4-byte Folded Reload4589; GCN-NOHSA-VI-NEXT: buffer_load_dword v1, off, s[88:91], 0 offset:4 ; 4-byte Folded Reload4590; GCN-NOHSA-VI-NEXT: buffer_load_dword v2, off, s[88:91], 0 offset:8 ; 4-byte Folded Reload4591; GCN-NOHSA-VI-NEXT: buffer_load_dword v3, off, s[88:91], 0 offset:12 ; 4-byte Folded Reload4592; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)4593; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:164594; GCN-NOHSA-VI-NEXT: s_endpgm4595;4596; EG-LABEL: global_sextload_v64i8_to_v64i32:4597; EG: ; %bb.0:4598; EG-NEXT: ALU 0, @32, KC0[CB0:0-32], KC1[]4599; EG-NEXT: TEX 1 @244600; EG-NEXT: ALU 41, @33, KC0[CB0:0-32], KC1[]4601; EG-NEXT: TEX 1 @284602; EG-NEXT: ALU 76, @75, KC0[CB0:0-32], KC1[]4603; EG-NEXT: ALU 72, @152, KC0[CB0:0-32], KC1[]4604; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T48.XYZW, T50.X, 04605; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T47.XYZW, T49.X, 04606; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T46.XYZW, T19.X, 04607; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T35.X, 04608; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T45.XYZW, T34.X, 04609; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T44.XYZW, T33.X, 04610; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T43.XYZW, T32.X, 04611; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T30.X, 04612; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T42.XYZW, T29.X, 04613; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T41.XYZW, T28.X, 04614; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T40.XYZW, T27.X, 04615; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T31.XYZW, T26.X, 04616; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T39.XYZW, T25.X, 04617; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T38.XYZW, T24.X, 04618; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T37.XYZW, T23.X, 04619; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T36.XYZW, T22.X, 14620; EG-NEXT: CF_END4621; EG-NEXT: PAD4622; EG-NEXT: Fetch clause starting at 24:4623; EG-NEXT: VTX_READ_128 T20.XYZW, T21.X, 32, #14624; EG-NEXT: VTX_READ_128 T19.XYZW, T21.X, 48, #14625; EG-NEXT: Fetch clause starting at 28:4626; EG-NEXT: VTX_READ_128 T31.XYZW, T21.X, 0, #14627; EG-NEXT: VTX_READ_128 T21.XYZW, T21.X, 16, #14628; EG-NEXT: ALU clause starting at 32:4629; EG-NEXT: MOV * T21.X, KC0[2].Z,4630; EG-NEXT: ALU clause starting at 33:4631; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,4632; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4633; EG-NEXT: LSHR T22.X, PV.W, literal.x,4634; EG-NEXT: LSHR * T23.X, KC0[2].Y, literal.x,4635; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)4636; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,4637; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)4638; EG-NEXT: LSHR T24.X, PV.W, literal.x,4639; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4640; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)4641; EG-NEXT: LSHR T25.X, PV.W, literal.x,4642; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4643; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)4644; EG-NEXT: LSHR T26.X, PV.W, literal.x,4645; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4646; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)4647; EG-NEXT: LSHR T27.X, PV.W, literal.x,4648; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,4649; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)4650; EG-NEXT: LSHR T28.X, PV.W, literal.x,4651; EG-NEXT: LSHR T0.Y, T19.Z, literal.y,4652; EG-NEXT: LSHR T0.Z, T19.W, literal.z,4653; EG-NEXT: LSHR * T0.W, T19.Z, literal.w,4654; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4655; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)4656; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.x,4657; EG-NEXT: 96(1.345247e-43), 0(0.000000e+00)4658; EG-NEXT: LSHR T29.X, PV.W, literal.x,4659; EG-NEXT: LSHR T1.Y, T19.W, literal.y,4660; EG-NEXT: LSHR T1.Z, T19.X, literal.z,4661; EG-NEXT: LSHR * T1.W, T19.W, literal.w,4662; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4663; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)4664; EG-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.x,4665; EG-NEXT: 144(2.017870e-43), 0(0.000000e+00)4666; EG-NEXT: LSHR T30.X, PV.W, literal.x,4667; EG-NEXT: LSHR T2.Y, T19.X, literal.y,4668; EG-NEXT: LSHR T2.Z, T19.X, literal.z,4669; EG-NEXT: LSHR T2.W, T19.Y, literal.y,4670; EG-NEXT: LSHR * T3.W, T19.Y, literal.z,4671; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4672; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)4673; EG-NEXT: ALU clause starting at 75:4674; EG-NEXT: LSHR T3.Y, T20.Z, literal.x,4675; EG-NEXT: LSHR T3.Z, T20.Z, literal.y,4676; EG-NEXT: LSHR T4.W, T20.W, literal.x,4677; EG-NEXT: ADD_INT * T5.W, KC0[2].Y, literal.z,4678; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)4679; EG-NEXT: 128(1.793662e-43), 0(0.000000e+00)4680; EG-NEXT: LSHR T32.X, PS, literal.x,4681; EG-NEXT: LSHR T4.Y, T20.W, literal.y,4682; EG-NEXT: LSHR T4.Z, T20.X, literal.z,4683; EG-NEXT: LSHR T5.W, T20.X, literal.y,4684; EG-NEXT: ADD_INT * T6.W, KC0[2].Y, literal.w,4685; EG-NEXT: 2(2.802597e-45), 24(3.363116e-44)4686; EG-NEXT: 16(2.242078e-44), 176(2.466285e-43)4687; EG-NEXT: LSHR T33.X, PS, literal.x,4688; EG-NEXT: LSHR T5.Y, T20.Y, literal.y,4689; EG-NEXT: LSHR T5.Z, T20.Y, literal.z,4690; EG-NEXT: LSHR T6.W, T21.Z, literal.y,4691; EG-NEXT: ADD_INT * T7.W, KC0[2].Y, literal.w,4692; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4693; EG-NEXT: 24(3.363116e-44), 160(2.242078e-43)4694; EG-NEXT: LSHR T34.X, PS, literal.x,4695; EG-NEXT: LSHR T6.Y, T21.Z, literal.y,4696; EG-NEXT: LSHR T6.Z, T21.W, literal.z,4697; EG-NEXT: LSHR T7.W, T21.W, literal.y,4698; EG-NEXT: ADD_INT * T8.W, KC0[2].Y, literal.w,4699; EG-NEXT: 2(2.802597e-45), 24(3.363116e-44)4700; EG-NEXT: 16(2.242078e-44), 208(2.914701e-43)4701; EG-NEXT: LSHR T35.X, PS, literal.x,4702; EG-NEXT: LSHR T7.Y, T21.X, literal.y,4703; EG-NEXT: LSHR T7.Z, T21.X, literal.z,4704; EG-NEXT: LSHR T8.W, T21.Y, literal.y,4705; EG-NEXT: LSHR * T9.W, T21.Y, literal.z,4706; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)4707; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)4708; EG-NEXT: BFE_INT T36.X, T31.Y, 0.0, literal.x,4709; EG-NEXT: LSHR T8.Y, T31.Z, literal.y,4710; EG-NEXT: LSHR T8.Z, T31.Z, literal.z,4711; EG-NEXT: LSHR T10.W, T31.W, literal.y,4712; EG-NEXT: LSHR * T11.W, T31.Y, literal.z,4713; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)4714; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)4715; EG-NEXT: BFE_INT T37.X, T31.X, 0.0, literal.x,4716; EG-NEXT: LSHR T9.Y, T31.W, literal.y,4717; EG-NEXT: LSHR T9.Z, T31.X, literal.y,4718; EG-NEXT: BFE_INT T36.W, PS, 0.0, literal.x,4719; EG-NEXT: LSHR * T11.W, T31.Y, literal.z,4720; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)4721; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)4722; EG-NEXT: BFE_INT T38.X, T31.W, 0.0, literal.x,4723; EG-NEXT: LSHR T10.Y, T31.X, literal.y,4724; EG-NEXT: BFE_INT T36.Z, PS, 0.0, literal.x,4725; EG-NEXT: BFE_INT T37.W, PV.Z, 0.0, literal.x,4726; EG-NEXT: LSHR * T11.W, T31.Y, literal.x,4727; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)4728; EG-NEXT: BFE_INT T39.X, T31.Z, 0.0, literal.x,4729; EG-NEXT: BFE_INT T36.Y, PS, 0.0, literal.x,4730; EG-NEXT: BFE_INT T37.Z, PV.Y, 0.0, literal.x,4731; EG-NEXT: BFE_INT T38.W, T9.Y, 0.0, literal.x,4732; EG-NEXT: LSHR * T11.W, T31.X, literal.x,4733; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4734; EG-NEXT: BFE_INT T31.X, T21.Y, 0.0, literal.x,4735; EG-NEXT: BFE_INT T37.Y, PS, 0.0, literal.x,4736; EG-NEXT: BFE_INT T38.Z, T10.W, 0.0, literal.x,4737; EG-NEXT: BFE_INT T39.W, T8.Z, 0.0, literal.x,4738; EG-NEXT: LSHR * T10.W, T31.W, literal.x,4739; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4740; EG-NEXT: BFE_INT T40.X, T21.X, 0.0, literal.x,4741; EG-NEXT: BFE_INT T38.Y, PS, 0.0, literal.x,4742; EG-NEXT: BFE_INT T39.Z, T8.Y, 0.0, literal.x,4743; EG-NEXT: BFE_INT T31.W, T9.W, 0.0, literal.x,4744; EG-NEXT: LSHR * T9.W, T31.Z, literal.x,4745; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4746; EG-NEXT: BFE_INT T41.X, T21.W, 0.0, literal.x,4747; EG-NEXT: BFE_INT T39.Y, PS, 0.0, literal.x,4748; EG-NEXT: BFE_INT T31.Z, T8.W, 0.0, literal.x, BS:VEC_120/SCL_2124749; EG-NEXT: BFE_INT * T40.W, T7.Z, 0.0, literal.x,4750; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4751; EG-NEXT: ALU clause starting at 152:4752; EG-NEXT: LSHR * T8.W, T21.Y, literal.x,4753; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4754; EG-NEXT: BFE_INT T42.X, T21.Z, 0.0, literal.x,4755; EG-NEXT: BFE_INT T31.Y, PV.W, 0.0, literal.x,4756; EG-NEXT: BFE_INT T40.Z, T7.Y, 0.0, literal.x,4757; EG-NEXT: BFE_INT T41.W, T7.W, 0.0, literal.x,4758; EG-NEXT: LSHR * T7.W, T21.X, literal.x,4759; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4760; EG-NEXT: BFE_INT T21.X, T20.Y, 0.0, literal.x,4761; EG-NEXT: BFE_INT T40.Y, PS, 0.0, literal.x,4762; EG-NEXT: BFE_INT T41.Z, T6.Z, 0.0, literal.x,4763; EG-NEXT: BFE_INT T42.W, T6.Y, 0.0, literal.x, BS:VEC_120/SCL_2124764; EG-NEXT: LSHR * T7.W, T21.W, literal.x,4765; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4766; EG-NEXT: BFE_INT T43.X, T20.X, 0.0, literal.x,4767; EG-NEXT: BFE_INT T41.Y, PS, 0.0, literal.x,4768; EG-NEXT: BFE_INT T42.Z, T6.W, 0.0, literal.x,4769; EG-NEXT: BFE_INT T21.W, T5.Z, 0.0, literal.x,4770; EG-NEXT: LSHR * T6.W, T21.Z, literal.x,4771; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4772; EG-NEXT: BFE_INT T44.X, T20.W, 0.0, literal.x,4773; EG-NEXT: BFE_INT T42.Y, PS, 0.0, literal.x,4774; EG-NEXT: BFE_INT T21.Z, T5.Y, 0.0, literal.x,4775; EG-NEXT: BFE_INT T43.W, T5.W, 0.0, literal.x, BS:VEC_120/SCL_2124776; EG-NEXT: LSHR * T5.W, T20.Y, literal.x,4777; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4778; EG-NEXT: BFE_INT T45.X, T20.Z, 0.0, literal.x,4779; EG-NEXT: BFE_INT T21.Y, PS, 0.0, literal.x,4780; EG-NEXT: BFE_INT T43.Z, T4.Z, 0.0, literal.x, BS:VEC_120/SCL_2124781; EG-NEXT: BFE_INT T44.W, T4.Y, 0.0, literal.x,4782; EG-NEXT: LSHR * T5.W, T20.X, literal.x,4783; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4784; EG-NEXT: BFE_INT T20.X, T19.Y, 0.0, literal.x,4785; EG-NEXT: BFE_INT T43.Y, PS, 0.0, literal.x,4786; EG-NEXT: BFE_INT T44.Z, T4.W, 0.0, literal.x,4787; EG-NEXT: BFE_INT T45.W, T3.Z, 0.0, literal.x,4788; EG-NEXT: LSHR * T4.W, T20.W, literal.x,4789; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4790; EG-NEXT: BFE_INT T46.X, T19.X, 0.0, literal.x,4791; EG-NEXT: BFE_INT T44.Y, PS, 0.0, literal.x,4792; EG-NEXT: BFE_INT T45.Z, T3.Y, 0.0, literal.x,4793; EG-NEXT: BFE_INT T20.W, T3.W, 0.0, literal.x,4794; EG-NEXT: LSHR * T3.W, T20.Z, literal.x,4795; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4796; EG-NEXT: BFE_INT T47.X, T19.W, 0.0, literal.x,4797; EG-NEXT: BFE_INT T45.Y, PS, 0.0, literal.x,4798; EG-NEXT: BFE_INT T20.Z, T2.W, 0.0, literal.x, BS:VEC_120/SCL_2124799; EG-NEXT: BFE_INT T46.W, T2.Z, 0.0, literal.x,4800; EG-NEXT: LSHR * T2.W, T19.Y, literal.x,4801; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)4802; EG-NEXT: BFE_INT T48.X, T19.Z, 0.0, literal.x,4803; EG-NEXT: BFE_INT T20.Y, PS, 0.0, literal.x,4804; EG-NEXT: BFE_INT T46.Z, T2.Y, 0.0, literal.x,4805; EG-NEXT: BFE_INT T47.W, T1.W, 0.0, literal.x,4806; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,4807; EG-NEXT: 8(1.121039e-44), 192(2.690493e-43)4808; EG-NEXT: LSHR T19.X, PS, literal.x,4809; EG-NEXT: BFE_INT T46.Y, T1.Z, 0.0, literal.y,4810; EG-NEXT: BFE_INT T47.Z, T1.Y, 0.0, literal.y,4811; EG-NEXT: BFE_INT T48.W, T0.W, 0.0, literal.y,4812; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,4813; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)4814; EG-NEXT: 240(3.363116e-43), 0(0.000000e+00)4815; EG-NEXT: LSHR T49.X, PS, literal.x,4816; EG-NEXT: BFE_INT T47.Y, T0.Z, 0.0, literal.y,4817; EG-NEXT: BFE_INT T48.Z, T0.Y, 0.0, literal.y,4818; EG-NEXT: LSHR T0.W, T19.Z, literal.y, BS:VEC_120/SCL_2124819; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,4820; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)4821; EG-NEXT: 224(3.138909e-43), 0(0.000000e+00)4822; EG-NEXT: LSHR T50.X, PS, literal.x,4823; EG-NEXT: BFE_INT * T48.Y, PV.W, 0.0, literal.y,4824; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)4825;4826; CM-LABEL: global_sextload_v64i8_to_v64i32:4827; CM: ; %bb.0:4828; CM-NEXT: ALU 0, @32, KC0[CB0:0-32], KC1[]4829; CM-NEXT: TEX 1 @244830; CM-NEXT: ALU 39, @33, KC0[CB0:0-32], KC1[]4831; CM-NEXT: TEX 1 @284832; CM-NEXT: ALU 84, @73, KC0[CB0:0-32], KC1[]4833; CM-NEXT: ALU 73, @158, KC0[CB0:0-32], KC1[]4834; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T24, T50.X4835; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T21.X4836; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T49, T23.X4837; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T48, T38.X4838; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T47, T37.X4839; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T20, T36.X4840; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T46, T35.X4841; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T45, T34.X4842; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T44, T33.X4843; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T22, T32.X4844; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T43, T31.X4845; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T42, T30.X4846; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T41, T29.X4847; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T28, T27.X4848; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T40, T26.X4849; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T39, T25.X4850; CM-NEXT: CF_END4851; CM-NEXT: PAD4852; CM-NEXT: Fetch clause starting at 24:4853; CM-NEXT: VTX_READ_128 T19.XYZW, T22.X, 0, #14854; CM-NEXT: VTX_READ_128 T20.XYZW, T22.X, 16, #14855; CM-NEXT: Fetch clause starting at 28:4856; CM-NEXT: VTX_READ_128 T28.XYZW, T22.X, 48, #14857; CM-NEXT: VTX_READ_128 T22.XYZW, T22.X, 32, #14858; CM-NEXT: ALU clause starting at 32:4859; CM-NEXT: MOV * T22.X, KC0[2].Z,4860; CM-NEXT: ALU clause starting at 33:4861; CM-NEXT: LSHR T0.Y, T19.Y, literal.x,4862; CM-NEXT: LSHR T0.Z, T19.Y, literal.y,4863; CM-NEXT: LSHR * T0.W, T19.X, literal.x,4864; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)4865; CM-NEXT: LSHR T21.X, T19.Y, literal.x,4866; CM-NEXT: LSHR T1.Y, T19.X, literal.y,4867; CM-NEXT: LSHR T1.Z, T19.W, literal.z,4868; CM-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.w,4869; CM-NEXT: 24(3.363116e-44), 16(2.242078e-44)4870; CM-NEXT: 8(1.121039e-44), 48(6.726233e-44)4871; CM-NEXT: LSHR T23.X, T19.X, literal.x,4872; CM-NEXT: LSHR T2.Y, T19.W, literal.y,4873; CM-NEXT: LSHR T2.Z, T19.Z, literal.z,4874; CM-NEXT: LSHR * T2.W, T19.W, literal.x,4875; CM-NEXT: 24(3.363116e-44), 16(2.242078e-44)4876; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)4877; CM-NEXT: LSHR T24.X, T19.Z, literal.x,4878; CM-NEXT: LSHR T3.Y, T20.Y, literal.y,4879; CM-NEXT: LSHR T3.Z, T19.Z, literal.z,4880; CM-NEXT: ADD_INT * T3.W, KC0[2].Y, literal.w,4881; CM-NEXT: 16(2.242078e-44), 8(1.121039e-44)4882; CM-NEXT: 24(3.363116e-44), 224(3.138909e-43)4883; CM-NEXT: LSHR T25.X, PV.W, literal.x,4884; CM-NEXT: LSHR T4.Y, T20.Y, literal.y,4885; CM-NEXT: LSHR T4.Z, T20.X, literal.z,4886; CM-NEXT: ADD_INT * T3.W, KC0[2].Y, literal.w,4887; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4888; CM-NEXT: 8(1.121039e-44), 240(3.363116e-43)4889; CM-NEXT: LSHR T26.X, PV.W, literal.x,4890; CM-NEXT: LSHR T5.Y, T20.Y, literal.y,4891; CM-NEXT: LSHR T5.Z, T20.X, literal.z,4892; CM-NEXT: ADD_INT * T3.W, KC0[2].Y, literal.w,4893; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)4894; CM-NEXT: 16(2.242078e-44), 192(2.690493e-43)4895; CM-NEXT: LSHR T27.X, PV.W, literal.x,4896; CM-NEXT: LSHR T6.Y, T20.W, literal.y,4897; CM-NEXT: LSHR T6.Z, T20.X, literal.z,4898; CM-NEXT: LSHR * T3.W, T20.W, literal.w,4899; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)4900; CM-NEXT: 24(3.363116e-44), 16(2.242078e-44)4901; CM-NEXT: ALU clause starting at 73:4902; CM-NEXT: LSHR T7.Z, T20.Z, literal.x,4903; CM-NEXT: ADD_INT * T4.W, KC0[2].Y, literal.y,4904; CM-NEXT: 8(1.121039e-44), 208(2.914701e-43)4905; CM-NEXT: LSHR T29.X, PV.W, literal.x,4906; CM-NEXT: LSHR T7.Y, T20.W, literal.y,4907; CM-NEXT: LSHR T8.Z, T20.Z, literal.z,4908; CM-NEXT: ADD_INT * T4.W, KC0[2].Y, literal.w,4909; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)4910; CM-NEXT: 16(2.242078e-44), 160(2.242078e-43)4911; CM-NEXT: LSHR T30.X, PV.W, literal.x,4912; CM-NEXT: LSHR T8.Y, T22.Y, literal.y,4913; CM-NEXT: LSHR T9.Z, T20.Z, literal.z,4914; CM-NEXT: ADD_INT * T4.W, KC0[2].Y, literal.w,4915; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)4916; CM-NEXT: 24(3.363116e-44), 176(2.466285e-43)4917; CM-NEXT: LSHR T31.X, PV.W, literal.x,4918; CM-NEXT: LSHR T9.Y, T22.Y, literal.y,4919; CM-NEXT: LSHR T10.Z, T22.X, literal.z,4920; CM-NEXT: ADD_INT * T4.W, KC0[2].Y, literal.w,4921; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4922; CM-NEXT: 8(1.121039e-44), 128(1.793662e-43)4923; CM-NEXT: LSHR T32.X, PV.W, literal.x,4924; CM-NEXT: LSHR T10.Y, T22.Y, literal.y,4925; CM-NEXT: LSHR T11.Z, T22.X, literal.z,4926; CM-NEXT: ADD_INT * T4.W, KC0[2].Y, literal.w,4927; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)4928; CM-NEXT: 16(2.242078e-44), 144(2.017870e-43)4929; CM-NEXT: LSHR T33.X, PV.W, literal.x,4930; CM-NEXT: LSHR T11.Y, T22.W, literal.y,4931; CM-NEXT: LSHR T12.Z, T22.X, literal.z,4932; CM-NEXT: ADD_INT * T4.W, KC0[2].Y, literal.w,4933; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)4934; CM-NEXT: 24(3.363116e-44), 96(1.345247e-43)4935; CM-NEXT: LSHR T34.X, PV.W, literal.x,4936; CM-NEXT: LSHR T12.Y, T22.W, literal.y,4937; CM-NEXT: LSHR T13.Z, T22.Z, literal.z,4938; CM-NEXT: ADD_INT * T4.W, KC0[2].Y, literal.w,4939; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4940; CM-NEXT: 8(1.121039e-44), 112(1.569454e-43)4941; CM-NEXT: LSHR T35.X, PV.W, literal.x,4942; CM-NEXT: LSHR T13.Y, T22.W, literal.y,4943; CM-NEXT: LSHR T14.Z, T22.Z, literal.z,4944; CM-NEXT: ADD_INT * T4.W, KC0[2].Y, literal.w,4945; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)4946; CM-NEXT: 16(2.242078e-44), 64(8.968310e-44)4947; CM-NEXT: LSHR T36.X, PV.W, literal.x,4948; CM-NEXT: LSHR T14.Y, T28.Y, literal.y,4949; CM-NEXT: LSHR T15.Z, T22.Z, literal.z,4950; CM-NEXT: ADD_INT * T4.W, KC0[2].Y, literal.w,4951; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)4952; CM-NEXT: 24(3.363116e-44), 80(1.121039e-43)4953; CM-NEXT: LSHR T37.X, PV.W, literal.x,4954; CM-NEXT: LSHR T15.Y, T28.Y, literal.y,4955; CM-NEXT: LSHR T16.Z, T28.X, literal.z,4956; CM-NEXT: ADD_INT * T4.W, KC0[2].Y, literal.w,4957; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)4958; CM-NEXT: 8(1.121039e-44), 32(4.484155e-44)4959; CM-NEXT: LSHR T38.X, PV.W, literal.x,4960; CM-NEXT: LSHR T16.Y, T28.Y, literal.y,4961; CM-NEXT: LSHR T17.Z, T28.X, literal.z,4962; CM-NEXT: LSHR * T4.W, T28.W, literal.w,4963; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)4964; CM-NEXT: 16(2.242078e-44), 8(1.121039e-44)4965; CM-NEXT: BFE_INT T39.X, T28.Z, 0.0, literal.x,4966; CM-NEXT: LSHR T17.Y, T28.X, literal.y,4967; CM-NEXT: LSHR T18.Z, T28.W, literal.z,4968; CM-NEXT: LSHR * T5.W, T28.Z, literal.y,4969; CM-NEXT: 8(1.121039e-44), 24(3.363116e-44)4970; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)4971; CM-NEXT: BFE_INT T40.X, T28.W, 0.0, literal.x,4972; CM-NEXT: LSHR T18.Y, T28.W, literal.y,4973; CM-NEXT: LSHR T21.Z, T28.Z, literal.z,4974; CM-NEXT: BFE_INT * T39.W, PV.W, 0.0, literal.x,4975; CM-NEXT: 8(1.121039e-44), 24(3.363116e-44)4976; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)4977; CM-NEXT: BFE_INT T28.X, T28.X, 0.0, literal.x,4978; CM-NEXT: LSHR T21.Y, T28.Z, literal.x,4979; CM-NEXT: BFE_INT T39.Z, PV.Z, 0.0, literal.x,4980; CM-NEXT: BFE_INT * T40.W, PV.Y, 0.0, literal.x,4981; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)4982; CM-NEXT: BFE_INT T41.X, T28.Y, 0.0, literal.x,4983; CM-NEXT: BFE_INT T39.Y, PV.Y, 0.0, literal.x,4984; CM-NEXT: BFE_INT T40.Z, T18.Z, 0.0, literal.x,4985; CM-NEXT: BFE_INT * T28.W, T17.Y, 0.0, literal.x, BS:VEC_120/SCL_2124986; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)4987; CM-NEXT: ALU clause starting at 158:4988; CM-NEXT: BFE_INT T42.X, T22.Z, 0.0, literal.x,4989; CM-NEXT: BFE_INT T40.Y, T4.W, 0.0, literal.x,4990; CM-NEXT: BFE_INT T28.Z, T17.Z, 0.0, literal.x, BS:VEC_120/SCL_2124991; CM-NEXT: BFE_INT * T41.W, T16.Y, 0.0, literal.x,4992; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)4993; CM-NEXT: BFE_INT T43.X, T22.W, 0.0, literal.x,4994; CM-NEXT: BFE_INT T28.Y, T16.Z, 0.0, literal.x,4995; CM-NEXT: BFE_INT T41.Z, T15.Y, 0.0, literal.x,4996; CM-NEXT: BFE_INT * T42.W, T15.Z, 0.0, literal.x, BS:VEC_120/SCL_2124997; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)4998; CM-NEXT: BFE_INT T22.X, T22.X, 0.0, literal.x,4999; CM-NEXT: BFE_INT T41.Y, T14.Y, 0.0, literal.x,5000; CM-NEXT: BFE_INT T42.Z, T14.Z, 0.0, literal.x,5001; CM-NEXT: BFE_INT * T43.W, T13.Y, 0.0, literal.x, BS:VEC_120/SCL_2125002; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5003; CM-NEXT: BFE_INT T44.X, T22.Y, 0.0, literal.x,5004; CM-NEXT: BFE_INT T42.Y, T13.Z, 0.0, literal.x,5005; CM-NEXT: BFE_INT T43.Z, T12.Y, 0.0, literal.x, BS:VEC_120/SCL_2125006; CM-NEXT: BFE_INT * T22.W, T12.Z, 0.0, literal.x, BS:VEC_120/SCL_2125007; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5008; CM-NEXT: BFE_INT T45.X, T20.Z, 0.0, literal.x,5009; CM-NEXT: BFE_INT T43.Y, T11.Y, 0.0, literal.x,5010; CM-NEXT: BFE_INT T22.Z, T11.Z, 0.0, literal.x, BS:VEC_120/SCL_2125011; CM-NEXT: BFE_INT * T44.W, T10.Y, 0.0, literal.x, BS:VEC_120/SCL_2125012; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5013; CM-NEXT: BFE_INT T46.X, T20.W, 0.0, literal.x,5014; CM-NEXT: BFE_INT T22.Y, T10.Z, 0.0, literal.x,5015; CM-NEXT: BFE_INT T44.Z, T9.Y, 0.0, literal.x,5016; CM-NEXT: BFE_INT * T45.W, T9.Z, 0.0, literal.x, BS:VEC_120/SCL_2125017; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5018; CM-NEXT: BFE_INT T20.X, T20.X, 0.0, literal.x,5019; CM-NEXT: BFE_INT T44.Y, T8.Y, 0.0, literal.x,5020; CM-NEXT: BFE_INT T45.Z, T8.Z, 0.0, literal.x,5021; CM-NEXT: BFE_INT * T46.W, T7.Y, 0.0, literal.x, BS:VEC_120/SCL_2125022; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5023; CM-NEXT: BFE_INT T47.X, T20.Y, 0.0, literal.x,5024; CM-NEXT: BFE_INT T45.Y, T7.Z, 0.0, literal.x,5025; CM-NEXT: BFE_INT T46.Z, T3.W, 0.0, literal.x,5026; CM-NEXT: BFE_INT * T20.W, T6.Z, 0.0, literal.x, BS:VEC_120/SCL_2125027; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5028; CM-NEXT: BFE_INT T48.X, T19.Z, 0.0, literal.x,5029; CM-NEXT: BFE_INT T46.Y, T6.Y, 0.0, literal.x,5030; CM-NEXT: BFE_INT T20.Z, T5.Z, 0.0, literal.x, BS:VEC_120/SCL_2125031; CM-NEXT: BFE_INT * T47.W, T5.Y, 0.0, literal.x, BS:VEC_120/SCL_2125032; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5033; CM-NEXT: BFE_INT T49.X, T19.W, 0.0, literal.x,5034; CM-NEXT: BFE_INT T20.Y, T4.Z, 0.0, literal.x,5035; CM-NEXT: BFE_INT T47.Z, T4.Y, 0.0, literal.x,5036; CM-NEXT: BFE_INT * T48.W, T3.Z, 0.0, literal.x, BS:VEC_120/SCL_2125037; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5038; CM-NEXT: BFE_INT T19.X, T19.X, 0.0, literal.x,5039; CM-NEXT: BFE_INT T47.Y, T3.Y, 0.0, literal.x,5040; CM-NEXT: BFE_INT T48.Z, T24.X, 0.0, literal.x, BS:VEC_120/SCL_2125041; CM-NEXT: BFE_INT * T49.W, T2.W, 0.0, literal.x,5042; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5043; CM-NEXT: BFE_INT T24.X, T19.Y, 0.0, literal.x,5044; CM-NEXT: BFE_INT T48.Y, T2.Z, 0.0, literal.x,5045; CM-NEXT: BFE_INT T49.Z, T2.Y, 0.0, literal.x, BS:VEC_120/SCL_2125046; CM-NEXT: BFE_INT * T19.W, T23.X, 0.0, literal.x,5047; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5048; CM-NEXT: LSHR T23.X, T1.W, literal.x,5049; CM-NEXT: BFE_INT T49.Y, T1.Z, 0.0, literal.y,5050; CM-NEXT: BFE_INT T19.Z, T1.Y, 0.0, literal.y,5051; CM-NEXT: BFE_INT * T24.W, T21.X, 0.0, literal.y,5052; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)5053; CM-NEXT: LSHR T21.X, KC0[2].Y, literal.x,5054; CM-NEXT: BFE_INT T19.Y, T0.W, 0.0, literal.y,5055; CM-NEXT: BFE_INT T24.Z, T0.Z, 0.0, literal.y,5056; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,5057; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)5058; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5059; CM-NEXT: LSHR T50.X, PV.W, literal.x,5060; CM-NEXT: BFE_INT * T24.Y, T0.Y, 0.0, literal.y,5061; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)5062 %load = load <64 x i8>, ptr addrspace(1) %in5063 %ext = sext <64 x i8> %load to <64 x i32>5064 store <64 x i32> %ext, ptr addrspace(1) %out5065 ret void5066}5067 5068define amdgpu_kernel void @global_zextload_i8_to_i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5069; GCN-NOHSA-SI-LABEL: global_zextload_i8_to_i64:5070; GCN-NOHSA-SI: ; %bb.0:5071; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95072; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005073; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15074; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65075; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75076; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5077; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25078; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35079; GCN-NOHSA-SI-NEXT: buffer_load_ubyte v0, off, s[8:11], 05080; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05081; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15082; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05083; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5084; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05085; GCN-NOHSA-SI-NEXT: s_endpgm5086;5087; GCN-HSA-LABEL: global_zextload_i8_to_i64:5088; GCN-HSA: ; %bb.0:5089; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05090; GCN-HSA-NEXT: s_add_i32 s12, s12, s175091; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135092; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85093; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5094; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25095; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35096; GCN-HSA-NEXT: flat_load_ubyte v0, v[0:1]5097; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05098; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15099; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05100; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5101; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5102; GCN-HSA-NEXT: s_endpgm5103;5104; GCN-NOHSA-VI-LABEL: global_zextload_i8_to_i64:5105; GCN-NOHSA-VI: ; %bb.0:5106; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245107; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005108; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15109; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65110; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75111; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5112; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25113; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35114; GCN-NOHSA-VI-NEXT: buffer_load_ubyte v0, off, s[8:11], 05115; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05116; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15117; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 05118; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5119; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff, v05120; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05121; GCN-NOHSA-VI-NEXT: s_endpgm5122;5123; EG-LABEL: global_zextload_i8_to_i64:5124; EG: ; %bb.0:5125; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5126; EG-NEXT: TEX 0 @65127; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]5128; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15129; EG-NEXT: CF_END5130; EG-NEXT: PAD5131; EG-NEXT: Fetch clause starting at 6:5132; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #15133; EG-NEXT: ALU clause starting at 8:5134; EG-NEXT: MOV * T0.X, KC0[2].Z,5135; EG-NEXT: ALU clause starting at 9:5136; EG-NEXT: MOV * T0.Y, 0.0,5137; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,5138; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)5139;5140; CM-LABEL: global_zextload_i8_to_i64:5141; CM: ; %bb.0:5142; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5143; CM-NEXT: TEX 0 @65144; CM-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]5145; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X5146; CM-NEXT: CF_END5147; CM-NEXT: PAD5148; CM-NEXT: Fetch clause starting at 6:5149; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #15150; CM-NEXT: ALU clause starting at 8:5151; CM-NEXT: MOV * T0.X, KC0[2].Z,5152; CM-NEXT: ALU clause starting at 9:5153; CM-NEXT: MOV * T0.Y, 0.0,5154; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,5155; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)5156 %a = load i8, ptr addrspace(1) %in5157 %ext = zext i8 %a to i645158 store i64 %ext, ptr addrspace(1) %out5159 ret void5160}5161 5162; TODO: EG Why 31 not 7 ?5163define amdgpu_kernel void @global_sextload_i8_to_i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5164; GCN-NOHSA-SI-LABEL: global_sextload_i8_to_i64:5165; GCN-NOHSA-SI: ; %bb.0:5166; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95167; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005168; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15169; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65170; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75171; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5172; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25173; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35174; GCN-NOHSA-SI-NEXT: buffer_load_sbyte v0, off, s[8:11], 05175; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05176; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15177; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5178; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v05179; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05180; GCN-NOHSA-SI-NEXT: s_endpgm5181;5182; GCN-HSA-LABEL: global_sextload_i8_to_i64:5183; GCN-HSA: ; %bb.0:5184; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05185; GCN-HSA-NEXT: s_add_i32 s12, s12, s175186; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135187; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85188; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5189; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25190; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35191; GCN-HSA-NEXT: flat_load_sbyte v0, v[0:1]5192; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05193; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15194; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5195; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v05196; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5197; GCN-HSA-NEXT: s_endpgm5198;5199; GCN-NOHSA-VI-LABEL: global_sextload_i8_to_i64:5200; GCN-NOHSA-VI: ; %bb.0:5201; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245202; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005203; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15204; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65205; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75206; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5207; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25208; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35209; GCN-NOHSA-VI-NEXT: buffer_load_sbyte v0, off, s[8:11], 05210; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05211; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15212; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5213; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 165214; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v05215; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05216; GCN-NOHSA-VI-NEXT: s_endpgm5217;5218; EG-LABEL: global_sextload_i8_to_i64:5219; EG: ; %bb.0:5220; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5221; EG-NEXT: TEX 0 @65222; EG-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]5223; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15224; EG-NEXT: CF_END5225; EG-NEXT: PAD5226; EG-NEXT: Fetch clause starting at 6:5227; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #15228; EG-NEXT: ALU clause starting at 8:5229; EG-NEXT: MOV * T0.X, KC0[2].Z,5230; EG-NEXT: ALU clause starting at 9:5231; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,5232; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,5233; EG-NEXT: 8(1.121039e-44), 2(2.802597e-45)5234; EG-NEXT: ASHR * T0.Y, PV.X, literal.x,5235; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)5236;5237; CM-LABEL: global_sextload_i8_to_i64:5238; CM: ; %bb.0:5239; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5240; CM-NEXT: TEX 0 @65241; CM-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]5242; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X5243; CM-NEXT: CF_END5244; CM-NEXT: PAD5245; CM-NEXT: Fetch clause starting at 6:5246; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #15247; CM-NEXT: ALU clause starting at 8:5248; CM-NEXT: MOV * T0.X, KC0[2].Z,5249; CM-NEXT: ALU clause starting at 9:5250; CM-NEXT: BFE_INT * T0.X, T0.X, 0.0, literal.x,5251; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5252; CM-NEXT: LSHR T1.X, KC0[2].Y, literal.x,5253; CM-NEXT: ASHR * T0.Y, PV.X, literal.y,5254; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)5255 %a = load i8, ptr addrspace(1) %in5256 %ext = sext i8 %a to i645257 store i64 %ext, ptr addrspace(1) %out5258 ret void5259}5260 5261define amdgpu_kernel void @global_zextload_v1i8_to_v1i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5262; GCN-NOHSA-SI-LABEL: global_zextload_v1i8_to_v1i64:5263; GCN-NOHSA-SI: ; %bb.0:5264; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95265; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005266; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15267; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65268; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75269; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5270; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25271; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35272; GCN-NOHSA-SI-NEXT: buffer_load_ubyte v0, off, s[8:11], 05273; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05274; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15275; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05276; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5277; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05278; GCN-NOHSA-SI-NEXT: s_endpgm5279;5280; GCN-HSA-LABEL: global_zextload_v1i8_to_v1i64:5281; GCN-HSA: ; %bb.0:5282; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05283; GCN-HSA-NEXT: s_add_i32 s12, s12, s175284; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135285; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85286; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5287; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25288; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35289; GCN-HSA-NEXT: flat_load_ubyte v0, v[0:1]5290; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05291; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15292; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05293; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5294; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5295; GCN-HSA-NEXT: s_endpgm5296;5297; GCN-NOHSA-VI-LABEL: global_zextload_v1i8_to_v1i64:5298; GCN-NOHSA-VI: ; %bb.0:5299; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245300; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005301; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15302; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65303; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75304; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5305; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25306; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35307; GCN-NOHSA-VI-NEXT: buffer_load_ubyte v0, off, s[8:11], 05308; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05309; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15310; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 05311; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5312; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05313; GCN-NOHSA-VI-NEXT: s_endpgm5314;5315; EG-LABEL: global_zextload_v1i8_to_v1i64:5316; EG: ; %bb.0:5317; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5318; EG-NEXT: TEX 0 @65319; EG-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]5320; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15321; EG-NEXT: CF_END5322; EG-NEXT: PAD5323; EG-NEXT: Fetch clause starting at 6:5324; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #15325; EG-NEXT: ALU clause starting at 8:5326; EG-NEXT: MOV * T0.X, KC0[2].Z,5327; EG-NEXT: ALU clause starting at 9:5328; EG-NEXT: MOV * T0.Y, 0.0,5329; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,5330; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)5331;5332; CM-LABEL: global_zextload_v1i8_to_v1i64:5333; CM: ; %bb.0:5334; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5335; CM-NEXT: TEX 0 @65336; CM-NEXT: ALU 2, @9, KC0[CB0:0-32], KC1[]5337; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X5338; CM-NEXT: CF_END5339; CM-NEXT: PAD5340; CM-NEXT: Fetch clause starting at 6:5341; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #15342; CM-NEXT: ALU clause starting at 8:5343; CM-NEXT: MOV * T0.X, KC0[2].Z,5344; CM-NEXT: ALU clause starting at 9:5345; CM-NEXT: MOV * T0.Y, 0.0,5346; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,5347; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)5348 %load = load <1 x i8>, ptr addrspace(1) %in5349 %ext = zext <1 x i8> %load to <1 x i64>5350 store <1 x i64> %ext, ptr addrspace(1) %out5351 ret void5352}5353 5354; TODO: EG Why 31 not 7 ?5355define amdgpu_kernel void @global_sextload_v1i8_to_v1i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5356; GCN-NOHSA-SI-LABEL: global_sextload_v1i8_to_v1i64:5357; GCN-NOHSA-SI: ; %bb.0:5358; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95359; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005360; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15361; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65362; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75363; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5364; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25365; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35366; GCN-NOHSA-SI-NEXT: buffer_load_sbyte v0, off, s[8:11], 05367; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05368; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15369; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5370; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v05371; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05372; GCN-NOHSA-SI-NEXT: s_endpgm5373;5374; GCN-HSA-LABEL: global_sextload_v1i8_to_v1i64:5375; GCN-HSA: ; %bb.0:5376; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05377; GCN-HSA-NEXT: s_add_i32 s12, s12, s175378; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135379; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85380; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5381; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25382; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35383; GCN-HSA-NEXT: flat_load_sbyte v0, v[0:1]5384; GCN-HSA-NEXT: v_mov_b32_e32 v2, s05385; GCN-HSA-NEXT: v_mov_b32_e32 v3, s15386; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5387; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v05388; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[0:1]5389; GCN-HSA-NEXT: s_endpgm5390;5391; GCN-NOHSA-VI-LABEL: global_sextload_v1i8_to_v1i64:5392; GCN-NOHSA-VI: ; %bb.0:5393; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245394; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005395; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15396; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65397; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75398; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5399; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25400; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35401; GCN-NOHSA-VI-NEXT: buffer_load_sbyte v0, off, s[8:11], 05402; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05403; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15404; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5405; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 165406; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v05407; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 05408; GCN-NOHSA-VI-NEXT: s_endpgm5409;5410; EG-LABEL: global_sextload_v1i8_to_v1i64:5411; EG: ; %bb.0:5412; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5413; EG-NEXT: TEX 0 @65414; EG-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]5415; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T0.XY, T1.X, 15416; EG-NEXT: CF_END5417; EG-NEXT: PAD5418; EG-NEXT: Fetch clause starting at 6:5419; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #15420; EG-NEXT: ALU clause starting at 8:5421; EG-NEXT: MOV * T0.X, KC0[2].Z,5422; EG-NEXT: ALU clause starting at 9:5423; EG-NEXT: BFE_INT T0.X, T0.X, 0.0, literal.x,5424; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.y,5425; EG-NEXT: 8(1.121039e-44), 2(2.802597e-45)5426; EG-NEXT: ASHR * T0.Y, PV.X, literal.x,5427; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)5428;5429; CM-LABEL: global_sextload_v1i8_to_v1i64:5430; CM: ; %bb.0:5431; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5432; CM-NEXT: TEX 0 @65433; CM-NEXT: ALU 4, @9, KC0[CB0:0-32], KC1[]5434; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T0, T1.X5435; CM-NEXT: CF_END5436; CM-NEXT: PAD5437; CM-NEXT: Fetch clause starting at 6:5438; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #15439; CM-NEXT: ALU clause starting at 8:5440; CM-NEXT: MOV * T0.X, KC0[2].Z,5441; CM-NEXT: ALU clause starting at 9:5442; CM-NEXT: BFE_INT * T0.X, T0.X, 0.0, literal.x,5443; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5444; CM-NEXT: LSHR T1.X, KC0[2].Y, literal.x,5445; CM-NEXT: ASHR * T0.Y, PV.X, literal.y,5446; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)5447 %load = load <1 x i8>, ptr addrspace(1) %in5448 %ext = sext <1 x i8> %load to <1 x i64>5449 store <1 x i64> %ext, ptr addrspace(1) %out5450 ret void5451}5452 5453define amdgpu_kernel void @global_zextload_v2i8_to_v2i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5454; GCN-NOHSA-SI-LABEL: global_zextload_v2i8_to_v2i64:5455; GCN-NOHSA-SI: ; %bb.0:5456; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95457; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005458; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15459; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65460; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75461; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5462; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25463; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35464; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 05465; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05466; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05467; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15468; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5469; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 8, v05470; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xff, v05471; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v15472; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 05473; GCN-NOHSA-SI-NEXT: s_endpgm5474;5475; GCN-HSA-LABEL: global_zextload_v2i8_to_v2i64:5476; GCN-HSA: ; %bb.0:5477; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05478; GCN-HSA-NEXT: s_add_i32 s12, s12, s175479; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135480; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85481; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5482; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25483; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35484; GCN-HSA-NEXT: flat_load_ushort v0, v[0:1]5485; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05486; GCN-HSA-NEXT: v_mov_b32_e32 v4, s05487; GCN-HSA-NEXT: v_mov_b32_e32 v5, s15488; GCN-HSA-NEXT: v_mov_b32_e32 v3, v15489; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5490; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 8, v05491; GCN-HSA-NEXT: v_and_b32_e32 v0, 0xff, v05492; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5493; GCN-HSA-NEXT: s_endpgm5494;5495; GCN-NOHSA-VI-LABEL: global_zextload_v2i8_to_v2i64:5496; GCN-NOHSA-VI: ; %bb.0:5497; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245498; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005499; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15500; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65501; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75502; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5503; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25504; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35505; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 05506; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, 85507; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 05508; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05509; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15510; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v15511; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5512; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_sdwa v2, v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_05513; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xff, v05514; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 05515; GCN-NOHSA-VI-NEXT: s_endpgm5516;5517; EG-LABEL: global_zextload_v2i8_to_v2i64:5518; EG: ; %bb.0:5519; EG-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]5520; EG-NEXT: TEX 0 @65521; EG-NEXT: ALU 14, @10, KC0[CB0:0-32], KC1[]5522; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T5.X, 15523; EG-NEXT: CF_END5524; EG-NEXT: PAD5525; EG-NEXT: Fetch clause starting at 6:5526; EG-NEXT: VTX_READ_16 T4.X, T4.X, 0, #15527; EG-NEXT: ALU clause starting at 8:5528; EG-NEXT: MOV * T0.Y, T2.X,5529; EG-NEXT: MOV * T4.X, KC0[2].Z,5530; EG-NEXT: ALU clause starting at 10:5531; EG-NEXT: AND_INT T0.W, T4.X, literal.x,5532; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,5533; EG-NEXT: 65535(9.183409e-41), -65536(nan)5534; EG-NEXT: OR_INT * T0.W, PS, PV.W,5535; EG-NEXT: MOV * T2.X, PV.W,5536; EG-NEXT: MOV T0.Y, PV.X,5537; EG-NEXT: MOV * T1.W, literal.x,5538; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)5539; EG-NEXT: BFE_UINT * T4.Z, PV.Y, literal.x, PV.W,5540; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)5541; EG-NEXT: AND_INT T4.X, T0.W, literal.x,5542; EG-NEXT: MOV T4.Y, 0.0,5543; EG-NEXT: MOV T4.W, 0.0,5544; EG-NEXT: LSHR * T5.X, KC0[2].Y, literal.y,5545; EG-NEXT: 255(3.573311e-43), 2(2.802597e-45)5546;5547; CM-LABEL: global_zextload_v2i8_to_v2i64:5548; CM: ; %bb.0:5549; CM-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]5550; CM-NEXT: TEX 0 @65551; CM-NEXT: ALU 15, @10, KC0[CB0:0-32], KC1[]5552; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T4, T5.X5553; CM-NEXT: CF_END5554; CM-NEXT: PAD5555; CM-NEXT: Fetch clause starting at 6:5556; CM-NEXT: VTX_READ_16 T4.X, T4.X, 0, #15557; CM-NEXT: ALU clause starting at 8:5558; CM-NEXT: MOV * T0.Y, T2.X,5559; CM-NEXT: MOV * T4.X, KC0[2].Z,5560; CM-NEXT: ALU clause starting at 10:5561; CM-NEXT: AND_INT T0.Z, T4.X, literal.x,5562; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,5563; CM-NEXT: 65535(9.183409e-41), -65536(nan)5564; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,5565; CM-NEXT: MOV * T2.X, PV.W,5566; CM-NEXT: MOV T0.Y, PV.X,5567; CM-NEXT: MOV * T1.W, literal.x,5568; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5569; CM-NEXT: BFE_UINT * T4.Z, PV.Y, literal.x, PV.W,5570; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5571; CM-NEXT: AND_INT T4.X, T0.W, literal.x,5572; CM-NEXT: MOV T4.Y, 0.0,5573; CM-NEXT: MOV * T4.W, 0.0,5574; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)5575; CM-NEXT: LSHR * T5.X, KC0[2].Y, literal.x,5576; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)5577 %load = load <2 x i8>, ptr addrspace(1) %in5578 %ext = zext <2 x i8> %load to <2 x i64>5579 store <2 x i64> %ext, ptr addrspace(1) %out5580 ret void5581}5582 5583define amdgpu_kernel void @global_sextload_v2i8_to_v2i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5584; GCN-NOHSA-SI-LABEL: global_sextload_v2i8_to_v2i64:5585; GCN-NOHSA-SI: ; %bb.0:5586; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95587; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005588; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15589; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65590; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75591; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5592; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25593; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35594; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 05595; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05596; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15597; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5598; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 8, v05599; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 85600; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v05601; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v2, 0, 85602; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 31, v25603; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 05604; GCN-NOHSA-SI-NEXT: s_endpgm5605;5606; GCN-HSA-LABEL: global_sextload_v2i8_to_v2i64:5607; GCN-HSA: ; %bb.0:5608; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05609; GCN-HSA-NEXT: s_add_i32 s12, s12, s175610; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135611; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85612; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5613; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25614; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35615; GCN-HSA-NEXT: flat_load_ushort v0, v[0:1]5616; GCN-HSA-NEXT: v_mov_b32_e32 v4, s05617; GCN-HSA-NEXT: v_mov_b32_e32 v5, s15618; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5619; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 8, v05620; GCN-HSA-NEXT: v_bfe_i32 v0, v0, 0, 85621; GCN-HSA-NEXT: v_bfe_i32 v2, v2, 0, 85622; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v05623; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 31, v25624; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]5625; GCN-HSA-NEXT: s_endpgm5626;5627; GCN-NOHSA-VI-LABEL: global_sextload_v2i8_to_v2i64:5628; GCN-NOHSA-VI: ; %bb.0:5629; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245630; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005631; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15632; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65633; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75634; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5635; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25636; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35637; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 05638; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05639; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15640; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5641; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 8, v05642; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 85643; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v2, 0, 85644; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v05645; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 31, v25646; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 05647; GCN-NOHSA-VI-NEXT: s_endpgm5648;5649; EG-LABEL: global_sextload_v2i8_to_v2i64:5650; EG: ; %bb.0:5651; EG-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]5652; EG-NEXT: TEX 0 @65653; EG-NEXT: ALU 15, @10, KC0[CB0:0-32], KC1[]5654; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T5.X, 15655; EG-NEXT: CF_END5656; EG-NEXT: PAD5657; EG-NEXT: Fetch clause starting at 6:5658; EG-NEXT: VTX_READ_16 T4.X, T4.X, 0, #15659; EG-NEXT: ALU clause starting at 8:5660; EG-NEXT: MOV * T0.Y, T2.X,5661; EG-NEXT: MOV * T4.X, KC0[2].Z,5662; EG-NEXT: ALU clause starting at 10:5663; EG-NEXT: AND_INT T0.W, T4.X, literal.x,5664; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,5665; EG-NEXT: 65535(9.183409e-41), -65536(nan)5666; EG-NEXT: OR_INT * T0.W, PS, PV.W,5667; EG-NEXT: MOV * T2.X, PV.W,5668; EG-NEXT: MOV * T0.Y, PV.X,5669; EG-NEXT: BFE_INT * T4.X, T0.W, 0.0, literal.x,5670; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)5671; EG-NEXT: ASHR T4.Y, PV.X, literal.x,5672; EG-NEXT: LSHR * T0.W, T0.Y, literal.y,5673; EG-NEXT: 31(4.344025e-44), 8(1.121039e-44)5674; EG-NEXT: BFE_INT * T4.Z, PV.W, 0.0, literal.x,5675; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)5676; EG-NEXT: LSHR T5.X, KC0[2].Y, literal.x,5677; EG-NEXT: ASHR * T4.W, PV.Z, literal.y,5678; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)5679;5680; CM-LABEL: global_sextload_v2i8_to_v2i64:5681; CM: ; %bb.0:5682; CM-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]5683; CM-NEXT: TEX 0 @65684; CM-NEXT: ALU 15, @10, KC0[CB0:0-32], KC1[]5685; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T4, T5.X5686; CM-NEXT: CF_END5687; CM-NEXT: PAD5688; CM-NEXT: Fetch clause starting at 6:5689; CM-NEXT: VTX_READ_16 T4.X, T4.X, 0, #15690; CM-NEXT: ALU clause starting at 8:5691; CM-NEXT: MOV * T0.Y, T2.X,5692; CM-NEXT: MOV * T4.X, KC0[2].Z,5693; CM-NEXT: ALU clause starting at 10:5694; CM-NEXT: AND_INT T0.Z, T4.X, literal.x,5695; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,5696; CM-NEXT: 65535(9.183409e-41), -65536(nan)5697; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,5698; CM-NEXT: MOV * T2.X, PV.W,5699; CM-NEXT: MOV * T0.Y, PV.X,5700; CM-NEXT: BFE_INT * T4.X, T0.W, 0.0, literal.x,5701; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5702; CM-NEXT: ASHR T4.Y, PV.X, literal.x,5703; CM-NEXT: LSHR * T0.W, T0.Y, literal.y,5704; CM-NEXT: 31(4.344025e-44), 8(1.121039e-44)5705; CM-NEXT: BFE_INT * T4.Z, PV.W, 0.0, literal.x,5706; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5707; CM-NEXT: LSHR T5.X, KC0[2].Y, literal.x,5708; CM-NEXT: ASHR * T4.W, PV.Z, literal.y,5709; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)5710 %load = load <2 x i8>, ptr addrspace(1) %in5711 %ext = sext <2 x i8> %load to <2 x i64>5712 store <2 x i64> %ext, ptr addrspace(1) %out5713 ret void5714}5715 5716define amdgpu_kernel void @global_zextload_v4i8_to_v4i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5717; GCN-NOHSA-SI-LABEL: global_zextload_v4i8_to_v4i64:5718; GCN-NOHSA-SI: ; %bb.0:5719; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95720; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005721; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15722; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65723; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75724; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5725; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25726; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35727; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 05728; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 05729; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v15730; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, v15731; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, v15732; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05733; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15734; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5735; GCN-NOHSA-SI-NEXT: v_bfe_u32 v6, v0, 8, 85736; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 24, v05737; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xff, v05738; GCN-NOHSA-SI-NEXT: v_bfe_u32 v0, v0, 16, 85739; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:165740; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 05741; GCN-NOHSA-SI-NEXT: s_endpgm5742;5743; GCN-HSA-LABEL: global_zextload_v4i8_to_v4i64:5744; GCN-HSA: ; %bb.0:5745; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05746; GCN-HSA-NEXT: s_add_i32 s12, s12, s175747; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135748; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85749; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5750; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25751; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35752; GCN-HSA-NEXT: flat_load_dword v0, v[0:1]5753; GCN-HSA-NEXT: s_add_u32 s2, s0, 165754; GCN-HSA-NEXT: s_addc_u32 s3, s1, 05755; GCN-HSA-NEXT: v_mov_b32_e32 v1, 05756; GCN-HSA-NEXT: v_mov_b32_e32 v11, s35757; GCN-HSA-NEXT: v_mov_b32_e32 v3, v15758; GCN-HSA-NEXT: v_mov_b32_e32 v9, s15759; GCN-HSA-NEXT: v_mov_b32_e32 v10, s25760; GCN-HSA-NEXT: v_mov_b32_e32 v5, v15761; GCN-HSA-NEXT: v_mov_b32_e32 v7, v15762; GCN-HSA-NEXT: v_mov_b32_e32 v8, s05763; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5764; GCN-HSA-NEXT: v_bfe_u32 v6, v0, 8, 85765; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 24, v05766; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xff, v05767; GCN-HSA-NEXT: v_bfe_u32 v0, v0, 16, 85768; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[0:3]5769; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[4:7]5770; GCN-HSA-NEXT: s_endpgm5771;5772; GCN-NOHSA-VI-LABEL: global_zextload_v4i8_to_v4i64:5773; GCN-NOHSA-VI: ; %bb.0:5774; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x245775; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0005776; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -15777; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s65778; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s75779; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5780; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s25781; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s35782; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 05783; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 05784; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v15785; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s05786; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s15787; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, v15788; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, v15789; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5790; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 24, v05791; GCN-NOHSA-VI-NEXT: v_bfe_u32 v6, v0, 8, 85792; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xff, v05793; GCN-NOHSA-VI-NEXT: v_bfe_u32 v0, v0, 16, 85794; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0 offset:165795; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 05796; GCN-NOHSA-VI-NEXT: s_endpgm5797;5798; EG-LABEL: global_zextload_v4i8_to_v4i64:5799; EG: ; %bb.0:5800; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5801; EG-NEXT: TEX 0 @65802; EG-NEXT: ALU 17, @9, KC0[CB0:0-32], KC1[]5803; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T7.X, 05804; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T6.X, 15805; EG-NEXT: CF_END5806; EG-NEXT: Fetch clause starting at 6:5807; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #15808; EG-NEXT: ALU clause starting at 8:5809; EG-NEXT: MOV * T4.X, KC0[2].Z,5810; EG-NEXT: ALU clause starting at 9:5811; EG-NEXT: MOV * T0.W, literal.x,5812; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)5813; EG-NEXT: BFE_UINT T5.X, T4.X, literal.x, PV.W,5814; EG-NEXT: LSHR * T5.Z, T4.X, literal.y,5815; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)5816; EG-NEXT: MOV T5.Y, 0.0,5817; EG-NEXT: BFE_UINT * T4.Z, T4.X, literal.x, T0.W,5818; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)5819; EG-NEXT: AND_INT T4.X, T4.X, literal.x,5820; EG-NEXT: MOV T4.Y, 0.0,5821; EG-NEXT: MOV T5.W, 0.0,5822; EG-NEXT: MOV * T4.W, 0.0,5823; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)5824; EG-NEXT: LSHR T6.X, KC0[2].Y, literal.x,5825; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5826; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)5827; EG-NEXT: LSHR * T7.X, PV.W, literal.x,5828; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)5829;5830; CM-LABEL: global_zextload_v4i8_to_v4i64:5831; CM: ; %bb.0:5832; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5833; CM-NEXT: TEX 0 @65834; CM-NEXT: ALU 18, @9, KC0[CB0:0-32], KC1[]5835; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5, T7.X5836; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T6, T4.X5837; CM-NEXT: CF_END5838; CM-NEXT: Fetch clause starting at 6:5839; CM-NEXT: VTX_READ_32 T4.X, T4.X, 0, #15840; CM-NEXT: ALU clause starting at 8:5841; CM-NEXT: MOV * T4.X, KC0[2].Z,5842; CM-NEXT: ALU clause starting at 9:5843; CM-NEXT: MOV * T0.W, literal.x,5844; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5845; CM-NEXT: BFE_UINT * T5.Z, T4.X, literal.x, PV.W,5846; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)5847; CM-NEXT: AND_INT T5.X, T4.X, literal.x,5848; CM-NEXT: MOV * T5.Y, 0.0,5849; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)5850; CM-NEXT: BFE_UINT T6.X, T4.X, literal.x, T0.W,5851; CM-NEXT: LSHR * T6.Z, T4.X, literal.y,5852; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)5853; CM-NEXT: MOV T6.Y, 0.0,5854; CM-NEXT: MOV * T5.W, 0.0,5855; CM-NEXT: MOV * T6.W, 0.0,5856; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,5857; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)5858; CM-NEXT: LSHR * T4.X, PV.W, literal.x,5859; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)5860; CM-NEXT: LSHR * T7.X, KC0[2].Y, literal.x,5861; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)5862 %load = load <4 x i8>, ptr addrspace(1) %in5863 %ext = zext <4 x i8> %load to <4 x i64>5864 store <4 x i64> %ext, ptr addrspace(1) %out5865 ret void5866}5867 5868define amdgpu_kernel void @global_sextload_v4i8_to_v4i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {5869; GCN-NOHSA-SI-LABEL: global_sextload_v4i8_to_v4i64:5870; GCN-NOHSA-SI: ; %bb.0:5871; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x95872; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0005873; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -15874; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s65875; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s75876; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)5877; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s25878; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s35879; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 05880; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s05881; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s15882; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)5883; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v3, 16, v05884; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v4, 24, v05885; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 8, v05886; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 85887; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v05888; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v2, 0, 85889; GCN-NOHSA-SI-NEXT: v_bfe_i32 v6, v4, 0, 85890; GCN-NOHSA-SI-NEXT: v_bfe_i32 v4, v3, 0, 85891; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v3, 31, v25892; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v7, 31, v65893; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v5, 31, v45894; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[4:7], 0 offset:165895; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 05896; GCN-NOHSA-SI-NEXT: s_endpgm5897;5898; GCN-HSA-LABEL: global_sextload_v4i8_to_v4i64:5899; GCN-HSA: ; %bb.0:5900; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x05901; GCN-HSA-NEXT: s_add_i32 s12, s12, s175902; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s135903; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 85904; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)5905; GCN-HSA-NEXT: v_mov_b32_e32 v0, s25906; GCN-HSA-NEXT: v_mov_b32_e32 v1, s35907; GCN-HSA-NEXT: flat_load_dword v0, v[0:1]5908; GCN-HSA-NEXT: s_add_u32 s2, s0, 165909; GCN-HSA-NEXT: s_addc_u32 s3, s1, 05910; GCN-HSA-NEXT: v_mov_b32_e32 v11, s35911; GCN-HSA-NEXT: v_mov_b32_e32 v9, s15912; GCN-HSA-NEXT: v_mov_b32_e32 v10, s25913; GCN-HSA-NEXT: v_mov_b32_e32 v8, s05914; GCN-HSA-NEXT: s_waitcnt vmcnt(0)5915; GCN-HSA-NEXT: v_lshrrev_b32_e32 v3, 16, v05916; GCN-HSA-NEXT: v_lshrrev_b32_e32 v4, 24, v05917; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 8, v05918; GCN-HSA-NEXT: v_bfe_i32 v6, v4, 0, 85919; GCN-HSA-NEXT: v_bfe_i32 v4, v3, 0, 85920; GCN-HSA-NEXT: v_bfe_i32 v0, v0, 0, 85921; GCN-HSA-NEXT: v_bfe_i32 v2, v2, 0, 85922; GCN-HSA-NEXT: v_ashrrev_i32_e32 v7, 31, v65923; GCN-HSA-NEXT: v_ashrrev_i32_e32 v5, 31, v45924; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v05925; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 31, v25926; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[4:7]5927; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[0:3]5928; GCN-HSA-NEXT: s_endpgm5929;5930; GCN-NOHSA-VI-LABEL: global_sextload_v4i8_to_v4i64:5931; GCN-NOHSA-VI: ; %bb.0:5932; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x245933; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0005934; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -15935; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s25936; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s35937; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)5938; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s65939; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s75940; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 05941; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s45942; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s55943; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)5944; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 16, v05945; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v4, 24, v05946; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 8, v05947; GCN-NOHSA-VI-NEXT: v_bfe_i32 v6, v4, 0, 85948; GCN-NOHSA-VI-NEXT: v_bfe_i32 v4, v3, 0, 85949; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 85950; GCN-NOHSA-VI-NEXT: v_bfe_i32 v2, v2, 0, 85951; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v7, 31, v65952; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v5, 31, v45953; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v05954; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v3, 31, v25955; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:165956; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 05957; GCN-NOHSA-VI-NEXT: s_endpgm5958;5959; EG-LABEL: global_sextload_v4i8_to_v4i64:5960; EG: ; %bb.0:5961; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5962; EG-NEXT: TEX 0 @65963; EG-NEXT: ALU 18, @9, KC0[CB0:0-32], KC1[]5964; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T4.XYZW, T7.X, 05965; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T6.X, 15966; EG-NEXT: CF_END5967; EG-NEXT: Fetch clause starting at 6:5968; EG-NEXT: VTX_READ_32 T4.X, T4.X, 0, #15969; EG-NEXT: ALU clause starting at 8:5970; EG-NEXT: MOV * T4.X, KC0[2].Z,5971; EG-NEXT: ALU clause starting at 9:5972; EG-NEXT: BFE_INT T5.X, T4.X, 0.0, literal.x,5973; EG-NEXT: ASHR T4.W, T4.X, literal.y,5974; EG-NEXT: LSHR * T6.X, KC0[2].Y, literal.z,5975; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)5976; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)5977; EG-NEXT: ASHR T5.Y, PV.X, literal.x,5978; EG-NEXT: ASHR T4.Z, T4.X, literal.y,5979; EG-NEXT: LSHR T0.W, T4.X, literal.z,5980; EG-NEXT: LSHR * T1.W, T4.X, literal.w,5981; EG-NEXT: 31(4.344025e-44), 24(3.363116e-44)5982; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)5983; EG-NEXT: BFE_INT T4.X, PS, 0.0, literal.x,5984; EG-NEXT: BFE_INT T5.Z, PV.W, 0.0, literal.x,5985; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,5986; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)5987; EG-NEXT: LSHR T7.X, PV.W, literal.x,5988; EG-NEXT: ASHR T4.Y, PV.X, literal.y,5989; EG-NEXT: ASHR * T5.W, PV.Z, literal.y,5990; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)5991;5992; CM-LABEL: global_sextload_v4i8_to_v4i64:5993; CM: ; %bb.0:5994; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]5995; CM-NEXT: TEX 0 @65996; CM-NEXT: ALU 18, @9, KC0[CB0:0-32], KC1[]5997; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5, T7.X5998; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T4, T6.X5999; CM-NEXT: CF_END6000; CM-NEXT: Fetch clause starting at 6:6001; CM-NEXT: VTX_READ_32 T4.X, T4.X, 0, #16002; CM-NEXT: ALU clause starting at 8:6003; CM-NEXT: MOV * T4.X, KC0[2].Z,6004; CM-NEXT: ALU clause starting at 9:6005; CM-NEXT: BFE_INT T5.X, T4.X, 0.0, literal.x,6006; CM-NEXT: LSHR T0.Y, T4.X, literal.x,6007; CM-NEXT: ADD_INT T0.Z, KC0[2].Y, literal.y,6008; CM-NEXT: ASHR * T4.W, T4.X, literal.z,6009; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)6010; CM-NEXT: 31(4.344025e-44), 0(0.000000e+00)6011; CM-NEXT: LSHR T6.X, PV.Z, literal.x,6012; CM-NEXT: ASHR T5.Y, PV.X, literal.y,6013; CM-NEXT: ASHR T4.Z, T4.X, literal.z,6014; CM-NEXT: LSHR * T0.W, T4.X, literal.w,6015; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)6016; CM-NEXT: 24(3.363116e-44), 16(2.242078e-44)6017; CM-NEXT: BFE_INT T4.X, PV.W, 0.0, literal.x,6018; CM-NEXT: BFE_INT * T5.Z, T0.Y, 0.0, literal.x,6019; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)6020; CM-NEXT: LSHR T7.X, KC0[2].Y, literal.x,6021; CM-NEXT: ASHR T4.Y, PV.X, literal.y,6022; CM-NEXT: ASHR * T5.W, PV.Z, literal.y,6023; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)6024 %load = load <4 x i8>, ptr addrspace(1) %in6025 %ext = sext <4 x i8> %load to <4 x i64>6026 store <4 x i64> %ext, ptr addrspace(1) %out6027 ret void6028}6029 6030define amdgpu_kernel void @global_zextload_v8i8_to_v8i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {6031; GCN-NOHSA-SI-LABEL: global_zextload_v8i8_to_v8i64:6032; GCN-NOHSA-SI: ; %bb.0:6033; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x96034; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006035; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16036; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s26037; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s36038; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6039; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s66040; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s76041; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[16:17], off, s[8:11], 06042; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, 06043; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v16044; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, v16045; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, v16046; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, v16047; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, v16048; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, v16049; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, v16050; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s46051; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s56052; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)6053; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v6, 24, v166054; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 24, v176055; GCN-NOHSA-SI-NEXT: v_bfe_u32 v10, v17, 8, 86056; GCN-NOHSA-SI-NEXT: v_bfe_u32 v14, v16, 8, 86057; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v12, 0xff, v166058; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v8, 0xff, v176059; GCN-NOHSA-SI-NEXT: v_bfe_u32 v4, v16, 16, 86060; GCN-NOHSA-SI-NEXT: v_bfe_u32 v0, v17, 16, 86061; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:486062; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:166063; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:326064; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 06065; GCN-NOHSA-SI-NEXT: s_endpgm6066;6067; GCN-HSA-LABEL: global_zextload_v8i8_to_v8i64:6068; GCN-HSA: ; %bb.0:6069; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06070; GCN-HSA-NEXT: s_add_i32 s12, s12, s176071; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136072; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86073; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6074; GCN-HSA-NEXT: v_mov_b32_e32 v0, s26075; GCN-HSA-NEXT: v_mov_b32_e32 v1, s36076; GCN-HSA-NEXT: flat_load_dwordx2 v[15:16], v[0:1]6077; GCN-HSA-NEXT: s_add_u32 s2, s0, 486078; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06079; GCN-HSA-NEXT: v_mov_b32_e32 v1, 06080; GCN-HSA-NEXT: v_mov_b32_e32 v18, s36081; GCN-HSA-NEXT: v_mov_b32_e32 v3, v16082; GCN-HSA-NEXT: v_mov_b32_e32 v17, s26083; GCN-HSA-NEXT: s_add_u32 s2, s0, 166084; GCN-HSA-NEXT: v_mov_b32_e32 v4, v16085; GCN-HSA-NEXT: v_mov_b32_e32 v6, v16086; GCN-HSA-NEXT: v_mov_b32_e32 v8, v16087; GCN-HSA-NEXT: v_mov_b32_e32 v10, v16088; GCN-HSA-NEXT: v_mov_b32_e32 v12, v16089; GCN-HSA-NEXT: v_mov_b32_e32 v14, v16090; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06091; GCN-HSA-NEXT: s_waitcnt vmcnt(0)6092; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 24, v166093; GCN-HSA-NEXT: v_bfe_u32 v0, v16, 16, 86094; GCN-HSA-NEXT: flat_store_dwordx4 v[17:18], v[0:3]6095; GCN-HSA-NEXT: v_mov_b32_e32 v18, s36096; GCN-HSA-NEXT: v_mov_b32_e32 v0, s06097; GCN-HSA-NEXT: v_mov_b32_e32 v1, s16098; GCN-HSA-NEXT: s_add_u32 s0, s0, 326099; GCN-HSA-NEXT: s_addc_u32 s1, s1, 06100; GCN-HSA-NEXT: v_mov_b32_e32 v17, s26101; GCN-HSA-NEXT: v_mov_b32_e32 v20, s16102; GCN-HSA-NEXT: v_lshrrev_b32_e32 v5, 24, v156103; GCN-HSA-NEXT: v_bfe_u32 v3, v15, 16, 86104; GCN-HSA-NEXT: v_mov_b32_e32 v19, s06105; GCN-HSA-NEXT: v_bfe_u32 v9, v16, 8, 86106; GCN-HSA-NEXT: v_bfe_u32 v13, v15, 8, 86107; GCN-HSA-NEXT: v_and_b32_e32 v11, 0xff, v156108; GCN-HSA-NEXT: v_and_b32_e32 v7, 0xff, v166109; GCN-HSA-NEXT: flat_store_dwordx4 v[17:18], v[3:6]6110; GCN-HSA-NEXT: flat_store_dwordx4 v[19:20], v[7:10]6111; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[11:14]6112; GCN-HSA-NEXT: s_endpgm6113;6114; GCN-NOHSA-VI-LABEL: global_zextload_v8i8_to_v8i64:6115; GCN-NOHSA-VI: ; %bb.0:6116; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x246117; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0006118; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -16119; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s26120; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s36121; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6122; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s66123; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s76124; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[16:17], off, s[8:11], 06125; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 06126; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v16127; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s46128; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s56129; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, v16130; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, v16131; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v9, v16132; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v11, v16133; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v13, v16134; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v15, v16135; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)6136; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 24, v176137; GCN-NOHSA-VI-NEXT: v_bfe_u32 v0, v17, 16, 86138; GCN-NOHSA-VI-NEXT: v_bfe_u32 v6, v17, 8, 86139; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v10, 24, v166140; GCN-NOHSA-VI-NEXT: v_bfe_u32 v14, v16, 8, 86141; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v12, 0xff, v166142; GCN-NOHSA-VI-NEXT: v_bfe_u32 v8, v16, 16, 86143; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xff, v176144; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:486145; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:326146; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:166147; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 06148; GCN-NOHSA-VI-NEXT: s_endpgm6149;6150; EG-LABEL: global_zextload_v8i8_to_v8i64:6151; EG: ; %bb.0:6152; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]6153; EG-NEXT: TEX 0 @86154; EG-NEXT: ALU 34, @11, KC0[CB0:0-32], KC1[]6155; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T6.XYZW, T12.X, 06156; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T11.X, 06157; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T10.X, 06158; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T9.X, 16159; EG-NEXT: CF_END6160; EG-NEXT: Fetch clause starting at 8:6161; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #16162; EG-NEXT: ALU clause starting at 10:6163; EG-NEXT: MOV * T5.X, KC0[2].Z,6164; EG-NEXT: ALU clause starting at 11:6165; EG-NEXT: MOV * T0.W, literal.x,6166; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)6167; EG-NEXT: BFE_UINT T6.X, T5.Y, literal.x, PV.W,6168; EG-NEXT: LSHR * T6.Z, T5.Y, literal.y,6169; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)6170; EG-NEXT: MOV T6.Y, 0.0,6171; EG-NEXT: BFE_UINT * T7.Z, T5.Y, literal.x, T0.W,6172; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)6173; EG-NEXT: AND_INT T7.X, T5.Y, literal.x,6174; EG-NEXT: MOV * T7.Y, 0.0,6175; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)6176; EG-NEXT: BFE_UINT T8.X, T5.X, literal.x, T0.W,6177; EG-NEXT: LSHR * T8.Z, T5.X, literal.y,6178; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)6179; EG-NEXT: MOV T8.Y, 0.0,6180; EG-NEXT: BFE_UINT * T5.Z, T5.X, literal.x, T0.W,6181; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)6182; EG-NEXT: AND_INT T5.X, T5.X, literal.x,6183; EG-NEXT: MOV T5.Y, 0.0,6184; EG-NEXT: MOV T6.W, 0.0,6185; EG-NEXT: MOV * T7.W, 0.0,6186; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)6187; EG-NEXT: MOV T8.W, 0.0,6188; EG-NEXT: MOV * T5.W, 0.0,6189; EG-NEXT: LSHR T9.X, KC0[2].Y, literal.x,6190; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6191; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6192; EG-NEXT: LSHR T10.X, PV.W, literal.x,6193; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6194; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)6195; EG-NEXT: LSHR T11.X, PV.W, literal.x,6196; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6197; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)6198; EG-NEXT: LSHR * T12.X, PV.W, literal.x,6199; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)6200;6201; CM-LABEL: global_zextload_v8i8_to_v8i64:6202; CM: ; %bb.0:6203; CM-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]6204; CM-NEXT: TEX 0 @86205; CM-NEXT: ALU 35, @11, KC0[CB0:0-32], KC1[]6206; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T6, T12.X6207; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T7, T11.X6208; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T8, T10.X6209; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5, T9.X6210; CM-NEXT: CF_END6211; CM-NEXT: Fetch clause starting at 8:6212; CM-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #16213; CM-NEXT: ALU clause starting at 10:6214; CM-NEXT: MOV * T5.X, KC0[2].Z,6215; CM-NEXT: ALU clause starting at 11:6216; CM-NEXT: MOV * T0.W, literal.x,6217; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)6218; CM-NEXT: BFE_UINT * T6.Z, T5.X, literal.x, PV.W,6219; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)6220; CM-NEXT: AND_INT T6.X, T5.X, literal.x,6221; CM-NEXT: MOV * T6.Y, 0.0,6222; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)6223; CM-NEXT: BFE_UINT T7.X, T5.X, literal.x, T0.W,6224; CM-NEXT: LSHR * T7.Z, T5.X, literal.y,6225; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)6226; CM-NEXT: MOV T7.Y, 0.0,6227; CM-NEXT: BFE_UINT * T8.Z, T5.Y, literal.x, T0.W,6228; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)6229; CM-NEXT: AND_INT T8.X, T5.Y, literal.x,6230; CM-NEXT: MOV * T8.Y, 0.0,6231; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)6232; CM-NEXT: BFE_UINT T5.X, T5.Y, literal.x, T0.W,6233; CM-NEXT: LSHR * T5.Z, T5.Y, literal.y,6234; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)6235; CM-NEXT: MOV T5.Y, 0.0,6236; CM-NEXT: MOV * T6.W, 0.0,6237; CM-NEXT: MOV * T7.W, 0.0,6238; CM-NEXT: MOV * T8.W, 0.0,6239; CM-NEXT: MOV * T5.W, 0.0,6240; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,6241; CM-NEXT: 48(6.726233e-44), 0(0.000000e+00)6242; CM-NEXT: LSHR T9.X, PV.W, literal.x,6243; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6244; CM-NEXT: 2(2.802597e-45), 32(4.484155e-44)6245; CM-NEXT: LSHR T10.X, PV.W, literal.x,6246; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6247; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)6248; CM-NEXT: LSHR * T11.X, PV.W, literal.x,6249; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)6250; CM-NEXT: LSHR * T12.X, KC0[2].Y, literal.x,6251; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)6252 %load = load <8 x i8>, ptr addrspace(1) %in6253 %ext = zext <8 x i8> %load to <8 x i64>6254 store <8 x i64> %ext, ptr addrspace(1) %out6255 ret void6256}6257 6258define amdgpu_kernel void @global_sextload_v8i8_to_v8i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {6259; GCN-NOHSA-SI-LABEL: global_sextload_v8i8_to_v8i64:6260; GCN-NOHSA-SI: ; %bb.0:6261; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x96262; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006263; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16264; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s26265; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s36266; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6267; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s66268; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s76269; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 06270; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s46271; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s56272; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)6273; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s4, v16274; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s5, v06275; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 86276; GCN-NOHSA-SI-NEXT: s_lshr_b32 s6, s4, 166277; GCN-NOHSA-SI-NEXT: s_lshr_b32 s8, s5, 166278; GCN-NOHSA-SI-NEXT: s_lshr_b32 s10, s5, 246279; GCN-NOHSA-SI-NEXT: s_lshr_b32 s12, s5, 86280; GCN-NOHSA-SI-NEXT: s_lshr_b32 s14, s4, 86281; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[16:17], s[4:5], 0x800006282; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 31, v06283; GCN-NOHSA-SI-NEXT: s_ashr_i32 s15, s4, 316284; GCN-NOHSA-SI-NEXT: s_ashr_i32 s18, s4, 246285; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[4:5], s[14:15], 0x800006286; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[12:13], s[12:13], 0x800006287; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x800006288; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x800006289; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x800006290; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s186291; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s156292; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s166293; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s176294; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s66295; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s76296; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[2:5], off, s[0:3], 0 offset:486297; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6298; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s86299; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s96300; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s106301; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s116302; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[2:5], off, s[0:3], 0 offset:166303; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6304; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s126305; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s136306; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 06307; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s46308; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s56309; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:326310; GCN-NOHSA-SI-NEXT: s_endpgm6311;6312; GCN-HSA-LABEL: global_sextload_v8i8_to_v8i64:6313; GCN-HSA: ; %bb.0:6314; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06315; GCN-HSA-NEXT: s_add_i32 s12, s12, s176316; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136317; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86318; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6319; GCN-HSA-NEXT: v_mov_b32_e32 v0, s26320; GCN-HSA-NEXT: v_mov_b32_e32 v1, s36321; GCN-HSA-NEXT: flat_load_dwordx2 v[0:1], v[0:1]6322; GCN-HSA-NEXT: v_mov_b32_e32 v17, s16323; GCN-HSA-NEXT: v_mov_b32_e32 v16, s06324; GCN-HSA-NEXT: s_waitcnt vmcnt(0)6325; GCN-HSA-NEXT: v_readfirstlane_b32 s2, v16326; GCN-HSA-NEXT: v_readfirstlane_b32 s3, v06327; GCN-HSA-NEXT: s_lshr_b32 s4, s2, 166328; GCN-HSA-NEXT: s_lshr_b32 s6, s3, 166329; GCN-HSA-NEXT: s_lshr_b32 s8, s3, 246330; GCN-HSA-NEXT: s_lshr_b32 s10, s3, 86331; GCN-HSA-NEXT: s_lshr_b32 s12, s2, 86332; GCN-HSA-NEXT: s_ashr_i32 s13, s2, 316333; GCN-HSA-NEXT: v_bfe_i32 v0, v0, 0, 86334; GCN-HSA-NEXT: s_bfe_i64 s[14:15], s[2:3], 0x800006335; GCN-HSA-NEXT: s_ashr_i32 s16, s2, 246336; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[12:13], 0x800006337; GCN-HSA-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x800006338; GCN-HSA-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x800006339; GCN-HSA-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x800006340; GCN-HSA-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x800006341; GCN-HSA-NEXT: v_ashrrev_i32_e32 v1, 31, v06342; GCN-HSA-NEXT: v_mov_b32_e32 v4, s46343; GCN-HSA-NEXT: s_add_u32 s4, s0, 486344; GCN-HSA-NEXT: v_mov_b32_e32 v2, s106345; GCN-HSA-NEXT: v_mov_b32_e32 v3, s116346; GCN-HSA-NEXT: v_mov_b32_e32 v5, s56347; GCN-HSA-NEXT: s_addc_u32 s5, s1, 06348; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[0:3]6349; GCN-HSA-NEXT: v_mov_b32_e32 v6, s166350; GCN-HSA-NEXT: v_mov_b32_e32 v0, s46351; GCN-HSA-NEXT: v_mov_b32_e32 v7, s136352; GCN-HSA-NEXT: v_mov_b32_e32 v10, s26353; GCN-HSA-NEXT: v_mov_b32_e32 v1, s56354; GCN-HSA-NEXT: s_add_u32 s2, s0, 166355; GCN-HSA-NEXT: v_mov_b32_e32 v11, s36356; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[4:7]6357; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06358; GCN-HSA-NEXT: v_mov_b32_e32 v0, s26359; GCN-HSA-NEXT: v_mov_b32_e32 v12, s66360; GCN-HSA-NEXT: v_mov_b32_e32 v13, s76361; GCN-HSA-NEXT: v_mov_b32_e32 v14, s86362; GCN-HSA-NEXT: v_mov_b32_e32 v15, s96363; GCN-HSA-NEXT: v_mov_b32_e32 v1, s36364; GCN-HSA-NEXT: s_add_u32 s0, s0, 326365; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[12:15]6366; GCN-HSA-NEXT: s_addc_u32 s1, s1, 06367; GCN-HSA-NEXT: v_mov_b32_e32 v0, s06368; GCN-HSA-NEXT: v_mov_b32_e32 v8, s146369; GCN-HSA-NEXT: v_mov_b32_e32 v9, s156370; GCN-HSA-NEXT: v_mov_b32_e32 v1, s16371; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[8:11]6372; GCN-HSA-NEXT: s_endpgm6373;6374; GCN-NOHSA-VI-LABEL: global_sextload_v8i8_to_v8i64:6375; GCN-NOHSA-VI: ; %bb.0:6376; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x246377; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0006378; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -16379; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s26380; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s36381; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6382; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s66383; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s76384; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 06385; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s46386; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s56387; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)6388; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s4, v16389; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s5, v06390; GCN-NOHSA-VI-NEXT: s_lshr_b32 s6, s4, 166391; GCN-NOHSA-VI-NEXT: s_lshr_b32 s8, s5, 166392; GCN-NOHSA-VI-NEXT: s_lshr_b32 s10, s5, 246393; GCN-NOHSA-VI-NEXT: s_lshr_b32 s12, s5, 86394; GCN-NOHSA-VI-NEXT: s_lshr_b32 s14, s4, 86395; GCN-NOHSA-VI-NEXT: s_ashr_i32 s15, s4, 316396; GCN-NOHSA-VI-NEXT: s_ashr_i32 s18, s4, 246397; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x800006398; GCN-NOHSA-VI-NEXT: v_bfe_i32 v0, v0, 0, 86399; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[16:17], s[4:5], 0x800006400; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[4:5], s[14:15], 0x800006401; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[12:13], s[12:13], 0x800006402; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x800006403; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x800006404; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s186405; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s156406; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s66407; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s76408; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v1, 31, v06409; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v8, s166410; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v9, s176411; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v12, s86412; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v13, s96413; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v14, s106414; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v15, s116415; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s126416; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s136417; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v10, s46418; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v11, s56419; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:486420; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:166421; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 06422; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:326423; GCN-NOHSA-VI-NEXT: s_endpgm6424;6425; EG-LABEL: global_sextload_v8i8_to_v8i64:6426; EG: ; %bb.0:6427; EG-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]6428; EG-NEXT: TEX 0 @86429; EG-NEXT: ALU 39, @11, KC0[CB0:0-32], KC1[]6430; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.XYZW, T12.X, 06431; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T9.X, 06432; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T8.X, 06433; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T6.X, 16434; EG-NEXT: CF_END6435; EG-NEXT: Fetch clause starting at 8:6436; EG-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #16437; EG-NEXT: ALU clause starting at 10:6438; EG-NEXT: MOV * T5.X, KC0[2].Z,6439; EG-NEXT: ALU clause starting at 11:6440; EG-NEXT: LSHR * T6.X, KC0[2].Y, literal.x,6441; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)6442; EG-NEXT: BFE_INT T7.X, T5.Y, 0.0, literal.x,6443; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6444; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)6445; EG-NEXT: LSHR T8.X, PV.W, literal.x,6446; EG-NEXT: ASHR T7.Y, PV.X, literal.y,6447; EG-NEXT: LSHR T0.W, T5.Y, literal.z,6448; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.w,6449; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)6450; EG-NEXT: 8(1.121039e-44), 32(4.484155e-44)6451; EG-NEXT: LSHR T9.X, PS, literal.x,6452; EG-NEXT: BFE_INT T7.Z, PV.W, 0.0, literal.y,6453; EG-NEXT: ASHR * T10.W, T5.X, literal.z,6454; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)6455; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)6456; EG-NEXT: BFE_INT T11.X, T5.X, 0.0, literal.x,6457; EG-NEXT: ASHR T10.Z, T5.X, literal.y,6458; EG-NEXT: LSHR T0.W, T5.X, literal.z,6459; EG-NEXT: ASHR * T5.W, T5.Y, literal.w,6460; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)6461; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)6462; EG-NEXT: BFE_INT T10.X, PV.W, 0.0, literal.x,6463; EG-NEXT: ASHR T11.Y, PV.X, literal.y,6464; EG-NEXT: ASHR T5.Z, T5.Y, literal.z,6465; EG-NEXT: LSHR T0.W, T5.X, literal.x,6466; EG-NEXT: LSHR * T1.W, T5.Y, literal.w,6467; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)6468; EG-NEXT: 24(3.363116e-44), 16(2.242078e-44)6469; EG-NEXT: BFE_INT T5.X, PS, 0.0, literal.x,6470; EG-NEXT: ASHR T10.Y, PV.X, literal.y,6471; EG-NEXT: BFE_INT T11.Z, PV.W, 0.0, literal.x,6472; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,6473; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)6474; EG-NEXT: 48(6.726233e-44), 0(0.000000e+00)6475; EG-NEXT: LSHR T12.X, PV.W, literal.x,6476; EG-NEXT: ASHR T5.Y, PV.X, literal.y,6477; EG-NEXT: ASHR T11.W, PV.Z, literal.y,6478; EG-NEXT: ASHR * T7.W, T7.Z, literal.y,6479; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)6480;6481; CM-LABEL: global_sextload_v8i8_to_v8i64:6482; CM: ; %bb.0:6483; CM-NEXT: ALU 0, @10, KC0[CB0:0-32], KC1[]6484; CM-NEXT: TEX 0 @86485; CM-NEXT: ALU 39, @11, KC0[CB0:0-32], KC1[]6486; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T12.X6487; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5, T9.X6488; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T7, T8.X6489; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T10, T6.X6490; CM-NEXT: CF_END6491; CM-NEXT: Fetch clause starting at 8:6492; CM-NEXT: VTX_READ_64 T5.XY, T5.X, 0, #16493; CM-NEXT: ALU clause starting at 10:6494; CM-NEXT: MOV * T5.X, KC0[2].Z,6495; CM-NEXT: ALU clause starting at 11:6496; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,6497; CM-NEXT: 48(6.726233e-44), 0(0.000000e+00)6498; CM-NEXT: LSHR * T6.X, PV.W, literal.x,6499; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)6500; CM-NEXT: BFE_INT T7.X, T5.Y, 0.0, literal.x,6501; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6502; CM-NEXT: 8(1.121039e-44), 32(4.484155e-44)6503; CM-NEXT: LSHR T8.X, PV.W, literal.x,6504; CM-NEXT: ASHR T7.Y, PV.X, literal.y,6505; CM-NEXT: LSHR T0.Z, T5.Y, literal.z,6506; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.w,6507; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)6508; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)6509; CM-NEXT: LSHR T9.X, PV.W, literal.x,6510; CM-NEXT: LSHR T0.Y, T5.X, literal.y,6511; CM-NEXT: BFE_INT T7.Z, PV.Z, 0.0, literal.y,6512; CM-NEXT: ASHR * T10.W, T5.Y, literal.z,6513; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)6514; CM-NEXT: 31(4.344025e-44), 0(0.000000e+00)6515; CM-NEXT: BFE_INT T11.X, T5.X, 0.0, literal.x,6516; CM-NEXT: LSHR T1.Y, T5.Y, literal.y,6517; CM-NEXT: ASHR T10.Z, T5.Y, literal.z,6518; CM-NEXT: ASHR * T5.W, T5.X, literal.w,6519; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)6520; CM-NEXT: 24(3.363116e-44), 31(4.344025e-44)6521; CM-NEXT: BFE_INT T10.X, PV.Y, 0.0, literal.x,6522; CM-NEXT: ASHR T11.Y, PV.X, literal.y,6523; CM-NEXT: ASHR T5.Z, T5.X, literal.z,6524; CM-NEXT: LSHR * T0.W, T5.X, literal.w,6525; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)6526; CM-NEXT: 24(3.363116e-44), 16(2.242078e-44)6527; CM-NEXT: BFE_INT T5.X, PV.W, 0.0, literal.x,6528; CM-NEXT: ASHR T10.Y, PV.X, literal.y,6529; CM-NEXT: BFE_INT T11.Z, T0.Y, 0.0, literal.x,6530; CM-NEXT: ASHR * T7.W, T7.Z, literal.y,6531; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)6532; CM-NEXT: LSHR T12.X, KC0[2].Y, literal.x,6533; CM-NEXT: ASHR T5.Y, PV.X, literal.y,6534; CM-NEXT: ASHR * T11.W, PV.Z, literal.y,6535; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)6536 %load = load <8 x i8>, ptr addrspace(1) %in6537 %ext = sext <8 x i8> %load to <8 x i64>6538 store <8 x i64> %ext, ptr addrspace(1) %out6539 ret void6540}6541 6542define amdgpu_kernel void @global_zextload_v16i8_to_v16i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {6543; GCN-NOHSA-SI-LABEL: global_zextload_v16i8_to_v16i64:6544; GCN-NOHSA-SI: ; %bb.0:6545; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x96546; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006547; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16548; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s26549; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s36550; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6551; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s66552; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s76553; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 06554; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, 06555; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)6556; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v5, 24, v26557; GCN-NOHSA-SI-NEXT: v_bfe_u32 v9, v0, 8, 86558; GCN-NOHSA-SI-NEXT: v_bfe_u32 v13, v1, 8, 86559; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v11, 0xff, v16560; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v7, 0xff, v06561; GCN-NOHSA-SI-NEXT: v_bfe_u32 v17, v3, 8, 86562; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v15, 0xff, v36563; GCN-NOHSA-SI-NEXT: v_bfe_u32 v21, v2, 8, 86564; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v19, 0xff, v26565; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v25, 24, v16566; GCN-NOHSA-SI-NEXT: v_bfe_u32 v23, v1, 16, 86567; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v29, 24, v06568; GCN-NOHSA-SI-NEXT: v_bfe_u32 v27, v0, 16, 86569; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v33, 24, v36570; GCN-NOHSA-SI-NEXT: v_bfe_u32 v31, v3, 16, 86571; GCN-NOHSA-SI-NEXT: v_bfe_u32 v3, v2, 16, 86572; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, v46573; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v32, v46574; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v34, v46575; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v28, v46576; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v30, v46577; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v24, v46578; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v26, v46579; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v20, v46580; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v22, v46581; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, v46582; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v18, v46583; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, v46584; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, v46585; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, v46586; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, v46587; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s46588; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s56589; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[3:6], off, s[0:3], 0 offset:806590; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[31:34], off, s[0:3], 0 offset:1126591; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[27:30], off, s[0:3], 0 offset:166592; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[23:26], off, s[0:3], 0 offset:486593; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[19:22], off, s[0:3], 0 offset:646594; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[15:18], off, s[0:3], 0 offset:966595; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[7:10], off, s[0:3], 06596; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[11:14], off, s[0:3], 0 offset:326597; GCN-NOHSA-SI-NEXT: s_endpgm6598;6599; GCN-HSA-LABEL: global_zextload_v16i8_to_v16i64:6600; GCN-HSA: ; %bb.0:6601; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x06602; GCN-HSA-NEXT: s_add_i32 s12, s12, s176603; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s136604; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 86605; GCN-HSA-NEXT: v_mov_b32_e32 v5, 06606; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)6607; GCN-HSA-NEXT: v_mov_b32_e32 v0, s26608; GCN-HSA-NEXT: v_mov_b32_e32 v1, s36609; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]6610; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x506611; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06612; GCN-HSA-NEXT: s_add_u32 s4, s0, 0x706613; GCN-HSA-NEXT: s_addc_u32 s5, s1, 06614; GCN-HSA-NEXT: v_mov_b32_e32 v16, s56615; GCN-HSA-NEXT: v_mov_b32_e32 v15, s46616; GCN-HSA-NEXT: s_add_u32 s4, s0, 166617; GCN-HSA-NEXT: v_mov_b32_e32 v9, v56618; GCN-HSA-NEXT: v_mov_b32_e32 v11, v56619; GCN-HSA-NEXT: s_addc_u32 s5, s1, 06620; GCN-HSA-NEXT: v_mov_b32_e32 v12, v56621; GCN-HSA-NEXT: v_mov_b32_e32 v14, v56622; GCN-HSA-NEXT: v_mov_b32_e32 v17, v56623; GCN-HSA-NEXT: v_mov_b32_e32 v7, v56624; GCN-HSA-NEXT: v_mov_b32_e32 v18, v56625; GCN-HSA-NEXT: s_waitcnt vmcnt(0)6626; GCN-HSA-NEXT: v_lshrrev_b32_e32 v10, 24, v36627; GCN-HSA-NEXT: v_bfe_u32 v8, v3, 16, 86628; GCN-HSA-NEXT: flat_store_dwordx4 v[15:16], v[8:11]6629; GCN-HSA-NEXT: v_lshrrev_b32_e32 v13, 24, v06630; GCN-HSA-NEXT: v_mov_b32_e32 v9, s56631; GCN-HSA-NEXT: v_mov_b32_e32 v8, s46632; GCN-HSA-NEXT: s_add_u32 s4, s0, 486633; GCN-HSA-NEXT: v_bfe_u32 v11, v0, 16, 86634; GCN-HSA-NEXT: s_addc_u32 s5, s1, 06635; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[11:14]6636; GCN-HSA-NEXT: v_mov_b32_e32 v15, v56637; GCN-HSA-NEXT: v_mov_b32_e32 v13, s56638; GCN-HSA-NEXT: v_mov_b32_e32 v12, s46639; GCN-HSA-NEXT: s_add_u32 s4, s0, 646640; GCN-HSA-NEXT: v_lshrrev_b32_e32 v16, 24, v16641; GCN-HSA-NEXT: v_bfe_u32 v14, v1, 16, 86642; GCN-HSA-NEXT: s_addc_u32 s5, s1, 06643; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[14:17]6644; GCN-HSA-NEXT: v_mov_b32_e32 v9, v56645; GCN-HSA-NEXT: v_mov_b32_e32 v16, s56646; GCN-HSA-NEXT: v_mov_b32_e32 v11, v56647; GCN-HSA-NEXT: v_mov_b32_e32 v15, s46648; GCN-HSA-NEXT: v_bfe_u32 v10, v2, 8, 86649; GCN-HSA-NEXT: v_and_b32_e32 v8, 0xff, v26650; GCN-HSA-NEXT: flat_store_dwordx4 v[15:16], v[8:11]6651; GCN-HSA-NEXT: v_mov_b32_e32 v16, s36652; GCN-HSA-NEXT: v_mov_b32_e32 v15, s26653; GCN-HSA-NEXT: v_lshrrev_b32_e32 v6, 24, v26654; GCN-HSA-NEXT: v_bfe_u32 v4, v2, 16, 86655; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x606656; GCN-HSA-NEXT: v_mov_b32_e32 v12, v56657; GCN-HSA-NEXT: v_mov_b32_e32 v14, v56658; GCN-HSA-NEXT: v_mov_b32_e32 v8, v56659; GCN-HSA-NEXT: v_mov_b32_e32 v10, v56660; GCN-HSA-NEXT: flat_store_dwordx4 v[15:16], v[4:7]6661; GCN-HSA-NEXT: v_mov_b32_e32 v16, v56662; GCN-HSA-NEXT: v_mov_b32_e32 v5, s16663; GCN-HSA-NEXT: s_addc_u32 s3, s1, 06664; GCN-HSA-NEXT: v_mov_b32_e32 v4, s06665; GCN-HSA-NEXT: v_mov_b32_e32 v20, s36666; GCN-HSA-NEXT: s_add_u32 s0, s0, 326667; GCN-HSA-NEXT: v_mov_b32_e32 v19, s26668; GCN-HSA-NEXT: s_addc_u32 s1, s1, 06669; GCN-HSA-NEXT: v_bfe_u32 v13, v3, 8, 86670; GCN-HSA-NEXT: v_bfe_u32 v9, v0, 8, 86671; GCN-HSA-NEXT: v_bfe_u32 v17, v1, 8, 86672; GCN-HSA-NEXT: v_and_b32_e32 v15, 0xff, v16673; GCN-HSA-NEXT: v_and_b32_e32 v7, 0xff, v06674; GCN-HSA-NEXT: v_and_b32_e32 v11, 0xff, v36675; GCN-HSA-NEXT: v_mov_b32_e32 v0, s06676; GCN-HSA-NEXT: v_mov_b32_e32 v1, s16677; GCN-HSA-NEXT: flat_store_dwordx4 v[19:20], v[11:14]6678; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[7:10]6679; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[15:18]6680; GCN-HSA-NEXT: s_endpgm6681;6682; GCN-NOHSA-VI-LABEL: global_zextload_v16i8_to_v16i64:6683; GCN-NOHSA-VI: ; %bb.0:6684; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x246685; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0006686; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -16687; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s26688; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s36689; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)6690; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s66691; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s76692; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 06693; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v29, 06694; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v31, v296695; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s46696; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s56697; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v25, v296698; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v27, v296699; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v21, v296700; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v23, v296701; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v17, v296702; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v19, v296703; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, v296704; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, v296705; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v9, v296706; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v11, v296707; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v13, v296708; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v15, v296709; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)6710; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v30, 24, v36711; GCN-NOHSA-VI-NEXT: v_bfe_u32 v28, v3, 16, 86712; GCN-NOHSA-VI-NEXT: v_bfe_u32 v6, v1, 8, 86713; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v10, 24, v06714; GCN-NOHSA-VI-NEXT: v_bfe_u32 v14, v0, 8, 86715; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v12, 0xff, v06716; GCN-NOHSA-VI-NEXT: v_bfe_u32 v8, v0, 16, 86717; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v4, 0xff, v16718; GCN-NOHSA-VI-NEXT: v_bfe_u32 v18, v3, 8, 86719; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v16, 0xff, v36720; GCN-NOHSA-VI-NEXT: v_bfe_u32 v22, v2, 8, 86721; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v20, 0xff, v26722; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v26, 24, v26723; GCN-NOHSA-VI-NEXT: v_bfe_u32 v24, v2, 16, 86724; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v2, 24, v16725; GCN-NOHSA-VI-NEXT: v_bfe_u32 v0, v1, 16, 86726; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, v296727; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v296728; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1126729; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:486730; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:806731; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:646732; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:966733; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:326734; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:166735; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 06736; GCN-NOHSA-VI-NEXT: s_endpgm6737;6738; EG-LABEL: global_zextload_v16i8_to_v16i64:6739; EG: ; %bb.0:6740; EG-NEXT: ALU 0, @14, KC0[CB0:0-32], KC1[]6741; EG-NEXT: TEX 0 @126742; EG-NEXT: ALU 68, @15, KC0[CB0:0-32], KC1[]6743; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XYZW, T22.X, 06744; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T9.XYZW, T21.X, 06745; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T10.XYZW, T20.X, 06746; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T19.X, 06747; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T18.X, 06748; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T17.X, 06749; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T16.X, 06750; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T15.X, 16751; EG-NEXT: CF_END6752; EG-NEXT: Fetch clause starting at 12:6753; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #16754; EG-NEXT: ALU clause starting at 14:6755; EG-NEXT: MOV * T7.X, KC0[2].Z,6756; EG-NEXT: ALU clause starting at 15:6757; EG-NEXT: MOV * T0.W, literal.x,6758; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)6759; EG-NEXT: BFE_UINT T8.X, T7.W, literal.x, PV.W,6760; EG-NEXT: LSHR * T8.Z, T7.W, literal.y,6761; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)6762; EG-NEXT: MOV T8.Y, 0.0,6763; EG-NEXT: BFE_UINT * T9.Z, T7.W, literal.x, T0.W,6764; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)6765; EG-NEXT: AND_INT T9.X, T7.W, literal.x,6766; EG-NEXT: MOV * T9.Y, 0.0,6767; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)6768; EG-NEXT: BFE_UINT T10.X, T7.Z, literal.x, T0.W,6769; EG-NEXT: LSHR * T10.Z, T7.Z, literal.y,6770; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)6771; EG-NEXT: MOV T10.Y, 0.0,6772; EG-NEXT: BFE_UINT * T11.Z, T7.Z, literal.x, T0.W,6773; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)6774; EG-NEXT: AND_INT T11.X, T7.Z, literal.x,6775; EG-NEXT: MOV * T11.Y, 0.0,6776; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)6777; EG-NEXT: BFE_UINT T12.X, T7.Y, literal.x, T0.W,6778; EG-NEXT: LSHR * T12.Z, T7.Y, literal.y,6779; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)6780; EG-NEXT: MOV T12.Y, 0.0,6781; EG-NEXT: BFE_UINT * T13.Z, T7.Y, literal.x, T0.W,6782; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)6783; EG-NEXT: AND_INT T13.X, T7.Y, literal.x,6784; EG-NEXT: MOV * T13.Y, 0.0,6785; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)6786; EG-NEXT: BFE_UINT T14.X, T7.X, literal.x, T0.W,6787; EG-NEXT: LSHR * T14.Z, T7.X, literal.y,6788; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)6789; EG-NEXT: MOV T14.Y, 0.0,6790; EG-NEXT: BFE_UINT * T7.Z, T7.X, literal.x, T0.W,6791; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)6792; EG-NEXT: AND_INT T7.X, T7.X, literal.x,6793; EG-NEXT: MOV T7.Y, 0.0,6794; EG-NEXT: MOV T8.W, 0.0,6795; EG-NEXT: MOV * T9.W, 0.0,6796; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)6797; EG-NEXT: MOV T10.W, 0.0,6798; EG-NEXT: MOV * T11.W, 0.0,6799; EG-NEXT: MOV T12.W, 0.0,6800; EG-NEXT: MOV * T13.W, 0.0,6801; EG-NEXT: MOV T14.W, 0.0,6802; EG-NEXT: MOV * T7.W, 0.0,6803; EG-NEXT: LSHR T15.X, KC0[2].Y, literal.x,6804; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6805; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)6806; EG-NEXT: LSHR T16.X, PV.W, literal.x,6807; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6808; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)6809; EG-NEXT: LSHR T17.X, PV.W, literal.x,6810; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6811; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)6812; EG-NEXT: LSHR T18.X, PV.W, literal.x,6813; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6814; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)6815; EG-NEXT: LSHR T19.X, PV.W, literal.x,6816; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6817; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)6818; EG-NEXT: LSHR T20.X, PV.W, literal.x,6819; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6820; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)6821; EG-NEXT: LSHR T21.X, PV.W, literal.x,6822; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6823; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)6824; EG-NEXT: LSHR * T22.X, PV.W, literal.x,6825; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)6826;6827; CM-LABEL: global_zextload_v16i8_to_v16i64:6828; CM: ; %bb.0:6829; CM-NEXT: ALU 0, @14, KC0[CB0:0-32], KC1[]6830; CM-NEXT: TEX 0 @126831; CM-NEXT: ALU 69, @15, KC0[CB0:0-32], KC1[]6832; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T8, T22.X6833; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T9, T21.X6834; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T10, T20.X6835; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T19.X6836; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T18.X6837; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T7, T17.X6838; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T13, T16.X6839; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T14, T15.X6840; CM-NEXT: CF_END6841; CM-NEXT: Fetch clause starting at 12:6842; CM-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #16843; CM-NEXT: ALU clause starting at 14:6844; CM-NEXT: MOV * T7.X, KC0[2].Z,6845; CM-NEXT: ALU clause starting at 15:6846; CM-NEXT: MOV * T0.W, literal.x,6847; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)6848; CM-NEXT: BFE_UINT * T8.Z, T7.X, literal.x, PV.W,6849; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)6850; CM-NEXT: AND_INT T8.X, T7.X, literal.x,6851; CM-NEXT: MOV * T8.Y, 0.0,6852; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)6853; CM-NEXT: BFE_UINT T9.X, T7.X, literal.x, T0.W,6854; CM-NEXT: LSHR * T9.Z, T7.X, literal.y,6855; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)6856; CM-NEXT: MOV T9.Y, 0.0,6857; CM-NEXT: BFE_UINT * T10.Z, T7.Y, literal.x, T0.W,6858; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)6859; CM-NEXT: AND_INT T10.X, T7.Y, literal.x,6860; CM-NEXT: MOV * T10.Y, 0.0,6861; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)6862; CM-NEXT: BFE_UINT T11.X, T7.Y, literal.x, T0.W,6863; CM-NEXT: LSHR * T11.Z, T7.Y, literal.y,6864; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)6865; CM-NEXT: MOV T11.Y, 0.0,6866; CM-NEXT: BFE_UINT * T12.Z, T7.Z, literal.x, T0.W,6867; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)6868; CM-NEXT: AND_INT T12.X, T7.Z, literal.x,6869; CM-NEXT: MOV * T12.Y, 0.0,6870; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)6871; CM-NEXT: BFE_UINT T7.X, T7.Z, literal.x, T0.W,6872; CM-NEXT: LSHR * T7.Z, T7.Z, literal.y,6873; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)6874; CM-NEXT: MOV T7.Y, 0.0,6875; CM-NEXT: BFE_UINT * T13.Z, T7.W, literal.x, T0.W,6876; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)6877; CM-NEXT: AND_INT T13.X, T7.W, literal.x,6878; CM-NEXT: MOV * T13.Y, 0.0,6879; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)6880; CM-NEXT: BFE_UINT T14.X, T7.W, literal.x, T0.W,6881; CM-NEXT: LSHR * T14.Z, T7.W, literal.y,6882; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)6883; CM-NEXT: MOV T14.Y, 0.0,6884; CM-NEXT: MOV * T8.W, 0.0,6885; CM-NEXT: MOV * T9.W, 0.0,6886; CM-NEXT: MOV * T10.W, 0.0,6887; CM-NEXT: MOV * T11.W, 0.0,6888; CM-NEXT: MOV * T12.W, 0.0,6889; CM-NEXT: MOV * T7.W, 0.0,6890; CM-NEXT: MOV * T13.W, 0.0,6891; CM-NEXT: MOV * T14.W, 0.0,6892; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,6893; CM-NEXT: 112(1.569454e-43), 0(0.000000e+00)6894; CM-NEXT: LSHR T15.X, PV.W, literal.x,6895; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6896; CM-NEXT: 2(2.802597e-45), 96(1.345247e-43)6897; CM-NEXT: LSHR T16.X, PV.W, literal.x,6898; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6899; CM-NEXT: 2(2.802597e-45), 80(1.121039e-43)6900; CM-NEXT: LSHR T17.X, PV.W, literal.x,6901; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6902; CM-NEXT: 2(2.802597e-45), 64(8.968310e-44)6903; CM-NEXT: LSHR T18.X, PV.W, literal.x,6904; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6905; CM-NEXT: 2(2.802597e-45), 48(6.726233e-44)6906; CM-NEXT: LSHR T19.X, PV.W, literal.x,6907; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6908; CM-NEXT: 2(2.802597e-45), 32(4.484155e-44)6909; CM-NEXT: LSHR T20.X, PV.W, literal.x,6910; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,6911; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)6912; CM-NEXT: LSHR * T21.X, PV.W, literal.x,6913; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)6914; CM-NEXT: LSHR * T22.X, KC0[2].Y, literal.x,6915; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)6916 %load = load <16 x i8>, ptr addrspace(1) %in6917 %ext = zext <16 x i8> %load to <16 x i64>6918 store <16 x i64> %ext, ptr addrspace(1) %out6919 ret void6920}6921 6922define amdgpu_kernel void @global_sextload_v16i8_to_v16i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {6923; GCN-NOHSA-SI-LABEL: global_sextload_v16i8_to_v16i64:6924; GCN-NOHSA-SI: ; %bb.0:6925; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x96926; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0006927; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -16928; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s26929; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s36930; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)6931; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s66932; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s76933; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 06934; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s46935; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s56936; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)6937; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s4, v26938; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s5, v36939; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s6, v06940; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s7, v16941; GCN-NOHSA-SI-NEXT: s_lshr_b32 s12, s4, 166942; GCN-NOHSA-SI-NEXT: s_lshr_b32 s14, s4, 246943; GCN-NOHSA-SI-NEXT: s_lshr_b32 s16, s4, 86944; GCN-NOHSA-SI-NEXT: s_lshr_b32 s18, s6, 166945; GCN-NOHSA-SI-NEXT: s_lshr_b32 s20, s6, 246946; GCN-NOHSA-SI-NEXT: s_lshr_b32 s22, s6, 86947; GCN-NOHSA-SI-NEXT: s_lshr_b32 s24, s5, 166948; GCN-NOHSA-SI-NEXT: s_lshr_b32 s10, s5, 86949; GCN-NOHSA-SI-NEXT: s_mov_b32 s26, s56950; GCN-NOHSA-SI-NEXT: s_lshr_b32 s28, s7, 166951; GCN-NOHSA-SI-NEXT: s_lshr_b32 s30, s7, 86952; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s76953; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[34:35], s[6:7], 0x800006954; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[36:37], s[4:5], 0x800006955; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x800006956; GCN-NOHSA-SI-NEXT: s_ashr_i32 s29, s7, 316957; GCN-NOHSA-SI-NEXT: s_ashr_i32 s31, s7, 246958; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[26:27], s[26:27], 0x800006959; GCN-NOHSA-SI-NEXT: s_ashr_i32 s33, s5, 316960; GCN-NOHSA-SI-NEXT: s_ashr_i32 s38, s5, 246961; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[4:5], s[30:31], 0x800006962; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[6:7], s[28:29], 0x800006963; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x800006964; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[24:25], s[24:25], 0x800006965; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[22:23], s[22:23], 0x800006966; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[20:21], s[20:21], 0x800006967; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[18:19], s[18:19], 0x800006968; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x800006969; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[12:13], s[12:13], 0x800006970; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[16:17], s[16:17], 0x800006971; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s366972; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s376973; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s346974; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s356975; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s386976; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s336977; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s266978; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s276979; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s126980; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s136981; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, s146982; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, s156983; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:806984; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6985; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, s316986; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, s296987; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s166988; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s176989; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:646990; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6991; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s186992; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s196993; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s206994; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s216995; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:166996; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)6997; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s86998; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s96999; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s227000; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s237001; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 07002; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7003; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s247004; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s257005; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:1127006; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s107007; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s117008; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[10:13], off, s[0:3], 0 offset:967009; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7010; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s67011; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s77012; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:487013; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s47014; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s57015; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:327016; GCN-NOHSA-SI-NEXT: s_endpgm7017;7018; GCN-HSA-LABEL: global_sextload_v16i8_to_v16i64:7019; GCN-HSA: ; %bb.0:7020; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x07021; GCN-HSA-NEXT: s_add_i32 s12, s12, s177022; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s137023; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 87024; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)7025; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27026; GCN-HSA-NEXT: v_mov_b32_e32 v1, s37027; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]7028; GCN-HSA-NEXT: v_mov_b32_e32 v9, s17029; GCN-HSA-NEXT: v_mov_b32_e32 v8, s07030; GCN-HSA-NEXT: s_waitcnt vmcnt(0)7031; GCN-HSA-NEXT: v_readfirstlane_b32 s2, v27032; GCN-HSA-NEXT: v_readfirstlane_b32 s3, v37033; GCN-HSA-NEXT: v_readfirstlane_b32 s4, v07034; GCN-HSA-NEXT: v_readfirstlane_b32 s5, v17035; GCN-HSA-NEXT: s_lshr_b32 s6, s2, 167036; GCN-HSA-NEXT: s_lshr_b32 s8, s2, 247037; GCN-HSA-NEXT: s_lshr_b32 s10, s2, 87038; GCN-HSA-NEXT: s_lshr_b32 s18, s3, 167039; GCN-HSA-NEXT: s_lshr_b32 s20, s3, 87040; GCN-HSA-NEXT: s_mov_b32 s22, s37041; GCN-HSA-NEXT: s_ashr_i32 s7, s3, 317042; GCN-HSA-NEXT: s_ashr_i32 s9, s3, 247043; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x800007044; GCN-HSA-NEXT: s_lshr_b32 s12, s4, 167045; GCN-HSA-NEXT: s_lshr_b32 s14, s4, 247046; GCN-HSA-NEXT: s_lshr_b32 s16, s4, 87047; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27048; GCN-HSA-NEXT: v_mov_b32_e32 v1, s37049; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[4:5], 0x800007050; GCN-HSA-NEXT: s_ashr_i32 s4, s5, 247051; GCN-HSA-NEXT: v_mov_b32_e32 v2, s27052; GCN-HSA-NEXT: v_mov_b32_e32 v3, s37053; GCN-HSA-NEXT: s_lshr_b32 s2, s5, 167054; GCN-HSA-NEXT: s_ashr_i32 s3, s5, 317055; GCN-HSA-NEXT: v_mov_b32_e32 v10, s47056; GCN-HSA-NEXT: s_lshr_b32 s4, s5, 87057; GCN-HSA-NEXT: s_mov_b32 s24, s57058; GCN-HSA-NEXT: v_mov_b32_e32 v6, s97059; GCN-HSA-NEXT: v_mov_b32_e32 v7, s77060; GCN-HSA-NEXT: v_mov_b32_e32 v11, s37061; GCN-HSA-NEXT: s_bfe_i64 s[24:25], s[24:25], 0x800007062; GCN-HSA-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x800007063; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x800007064; GCN-HSA-NEXT: s_bfe_i64 s[22:23], s[22:23], 0x800007065; GCN-HSA-NEXT: s_bfe_i64 s[20:21], s[20:21], 0x800007066; GCN-HSA-NEXT: s_bfe_i64 s[18:19], s[18:19], 0x800007067; GCN-HSA-NEXT: s_bfe_i64 s[16:17], s[16:17], 0x800007068; GCN-HSA-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x800007069; GCN-HSA-NEXT: s_bfe_i64 s[12:13], s[12:13], 0x800007070; GCN-HSA-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x800007071; GCN-HSA-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x800007072; GCN-HSA-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x800007073; GCN-HSA-NEXT: v_mov_b32_e32 v4, s167074; GCN-HSA-NEXT: v_mov_b32_e32 v5, s177075; GCN-HSA-NEXT: v_mov_b32_e32 v12, s67076; GCN-HSA-NEXT: s_add_u32 s6, s0, 0x507077; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[2:5]7078; GCN-HSA-NEXT: v_mov_b32_e32 v13, s77079; GCN-HSA-NEXT: s_addc_u32 s7, s1, 07080; GCN-HSA-NEXT: v_mov_b32_e32 v4, s67081; GCN-HSA-NEXT: v_mov_b32_e32 v5, s77082; GCN-HSA-NEXT: s_add_u32 s6, s0, 647083; GCN-HSA-NEXT: s_addc_u32 s7, s1, 07084; GCN-HSA-NEXT: v_mov_b32_e32 v9, s77085; GCN-HSA-NEXT: v_mov_b32_e32 v2, s107086; GCN-HSA-NEXT: v_mov_b32_e32 v3, s117087; GCN-HSA-NEXT: v_mov_b32_e32 v8, s67088; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[0:3]7089; GCN-HSA-NEXT: v_mov_b32_e32 v8, s27090; GCN-HSA-NEXT: s_add_u32 s2, s0, 167091; GCN-HSA-NEXT: v_mov_b32_e32 v9, s37092; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07093; GCN-HSA-NEXT: v_mov_b32_e32 v17, s37094; GCN-HSA-NEXT: v_mov_b32_e32 v14, s87095; GCN-HSA-NEXT: v_mov_b32_e32 v15, s97096; GCN-HSA-NEXT: v_mov_b32_e32 v16, s27097; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x707098; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[12:15]7099; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07100; GCN-HSA-NEXT: v_mov_b32_e32 v12, s127101; GCN-HSA-NEXT: v_mov_b32_e32 v13, s137102; GCN-HSA-NEXT: v_mov_b32_e32 v14, s147103; GCN-HSA-NEXT: v_mov_b32_e32 v15, s157104; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[12:15]7105; GCN-HSA-NEXT: v_mov_b32_e32 v17, s37106; GCN-HSA-NEXT: v_mov_b32_e32 v16, s27107; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x607108; GCN-HSA-NEXT: v_mov_b32_e32 v4, s187109; GCN-HSA-NEXT: v_mov_b32_e32 v5, s197110; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07111; GCN-HSA-NEXT: flat_store_dwordx4 v[16:17], v[4:7]7112; GCN-HSA-NEXT: v_mov_b32_e32 v0, s227113; GCN-HSA-NEXT: v_mov_b32_e32 v5, s37114; GCN-HSA-NEXT: v_mov_b32_e32 v1, s237115; GCN-HSA-NEXT: v_mov_b32_e32 v2, s207116; GCN-HSA-NEXT: v_mov_b32_e32 v3, s217117; GCN-HSA-NEXT: v_mov_b32_e32 v4, s27118; GCN-HSA-NEXT: s_add_u32 s2, s0, 487119; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7120; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07121; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27122; GCN-HSA-NEXT: v_mov_b32_e32 v1, s37123; GCN-HSA-NEXT: s_add_u32 s0, s0, 327124; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[8:11]7125; GCN-HSA-NEXT: s_addc_u32 s1, s1, 07126; GCN-HSA-NEXT: v_mov_b32_e32 v0, s07127; GCN-HSA-NEXT: v_mov_b32_e32 v12, s247128; GCN-HSA-NEXT: v_mov_b32_e32 v13, s257129; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47130; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57131; GCN-HSA-NEXT: v_mov_b32_e32 v1, s17132; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[12:15]7133; GCN-HSA-NEXT: s_endpgm7134;7135; GCN-NOHSA-VI-LABEL: global_sextload_v16i8_to_v16i64:7136; GCN-NOHSA-VI: ; %bb.0:7137; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x247138; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0007139; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -17140; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s27141; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s37142; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)7143; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s67144; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s77145; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 07146; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s47147; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s57148; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)7149; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s4, v27150; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s6, v07151; GCN-NOHSA-VI-NEXT: s_lshr_b32 s14, s4, 167152; GCN-NOHSA-VI-NEXT: s_lshr_b32 s16, s4, 247153; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s5, v37154; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s7, v17155; GCN-NOHSA-VI-NEXT: s_lshr_b32 s18, s4, 87156; GCN-NOHSA-VI-NEXT: s_lshr_b32 s20, s6, 167157; GCN-NOHSA-VI-NEXT: s_lshr_b32 s22, s6, 247158; GCN-NOHSA-VI-NEXT: s_lshr_b32 s24, s6, 87159; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[16:17], s[16:17], 0x800007160; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x800007161; GCN-NOHSA-VI-NEXT: s_lshr_b32 s26, s5, 167162; GCN-NOHSA-VI-NEXT: s_lshr_b32 s10, s5, 87163; GCN-NOHSA-VI-NEXT: s_mov_b32 s12, s57164; GCN-NOHSA-VI-NEXT: s_lshr_b32 s8, s7, 167165; GCN-NOHSA-VI-NEXT: s_lshr_b32 s28, s7, 87166; GCN-NOHSA-VI-NEXT: s_mov_b32 s30, s77167; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[34:35], s[6:7], 0x800007168; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[36:37], s[4:5], 0x800007169; GCN-NOHSA-VI-NEXT: s_ashr_i32 s29, s7, 317170; GCN-NOHSA-VI-NEXT: s_ashr_i32 s31, s7, 247171; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[24:25], s[24:25], 0x800007172; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[22:23], s[22:23], 0x800007173; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[20:21], s[20:21], 0x800007174; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[18:19], s[18:19], 0x800007175; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s147176; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s157177; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v8, s167178; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v9, s177179; GCN-NOHSA-VI-NEXT: s_ashr_i32 s33, s5, 317180; GCN-NOHSA-VI-NEXT: s_ashr_i32 s38, s5, 247181; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[6:7], s[30:31], 0x800007182; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[4:5], s[28:29], 0x800007183; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x800007184; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[12:13], s[12:13], 0x800007185; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x800007186; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[26:27], s[26:27], 0x800007187; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s367188; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s377189; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s347190; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s357191; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s187192; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s197193; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:807194; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v16, s207195; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v17, s217196; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v18, s227197; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v19, s237198; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s247199; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s257200; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v10, s387201; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v11, s337202; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v14, s317203; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v15, s297204; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v8, s267205; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v9, s277206; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:647207; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v12, s87208; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s127209; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s137210; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s107211; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s117212; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v13, s97213; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:167214; GCN-NOHSA-VI-NEXT: s_nop 07215; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v16, s67216; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v17, s77217; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v18, s47218; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v19, s57219; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 07220; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1127221; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:967222; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:487223; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:327224; GCN-NOHSA-VI-NEXT: s_endpgm7225;7226; EG-LABEL: global_sextload_v16i8_to_v16i64:7227; EG: ; %bb.0:7228; EG-NEXT: ALU 0, @14, KC0[CB0:0-32], KC1[]7229; EG-NEXT: TEX 0 @127230; EG-NEXT: ALU 78, @15, KC0[CB0:0-32], KC1[]7231; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T22.X, 07232; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T16.X, 07233; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T15.X, 07234; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T7.XYZW, T12.X, 07235; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T11.X, 07236; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T10.X, 07237; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T9.X, 07238; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T18.XYZW, T8.X, 17239; EG-NEXT: CF_END7240; EG-NEXT: Fetch clause starting at 12:7241; EG-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #17242; EG-NEXT: ALU clause starting at 14:7243; EG-NEXT: MOV * T7.X, KC0[2].Z,7244; EG-NEXT: ALU clause starting at 15:7245; EG-NEXT: LSHR T8.X, KC0[2].Y, literal.x,7246; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7247; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)7248; EG-NEXT: LSHR T9.X, PV.W, literal.x,7249; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7250; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)7251; EG-NEXT: LSHR T10.X, PV.W, literal.x,7252; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7253; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)7254; EG-NEXT: LSHR T11.X, PV.W, literal.x,7255; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7256; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)7257; EG-NEXT: LSHR * T12.X, PV.W, literal.x,7258; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)7259; EG-NEXT: BFE_INT * T13.X, T7.W, 0.0, literal.x,7260; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)7261; EG-NEXT: BFE_INT T14.X, T7.Y, 0.0, literal.x,7262; EG-NEXT: ASHR T13.Y, PV.X, literal.y,7263; EG-NEXT: LSHR T0.W, T7.W, literal.x,7264; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,7265; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)7266; EG-NEXT: 80(1.121039e-43), 0(0.000000e+00)7267; EG-NEXT: LSHR T15.X, PS, literal.x,7268; EG-NEXT: ASHR T14.Y, PV.X, literal.y,7269; EG-NEXT: BFE_INT T13.Z, PV.W, 0.0, literal.z,7270; EG-NEXT: LSHR T0.W, T7.Y, literal.z,7271; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.w,7272; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)7273; EG-NEXT: 8(1.121039e-44), 96(1.345247e-43)7274; EG-NEXT: LSHR T16.X, PS, literal.x,7275; EG-NEXT: BFE_INT T14.Z, PV.W, 0.0, literal.y,7276; EG-NEXT: ASHR * T17.W, T7.X, literal.z,7277; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)7278; EG-NEXT: 31(4.344025e-44), 0(0.000000e+00)7279; EG-NEXT: BFE_INT T18.X, T7.X, 0.0, literal.x,7280; EG-NEXT: ASHR T17.Z, T7.X, literal.y,7281; EG-NEXT: LSHR T0.W, T7.X, literal.z,7282; EG-NEXT: ASHR * T19.W, T7.Y, literal.w,7283; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)7284; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)7285; EG-NEXT: BFE_INT T17.X, PV.W, 0.0, literal.x,7286; EG-NEXT: ASHR T18.Y, PV.X, literal.y,7287; EG-NEXT: ASHR T19.Z, T7.Y, literal.z,7288; EG-NEXT: LSHR T0.W, T7.X, literal.x,7289; EG-NEXT: LSHR * T1.W, T7.Y, literal.w,7290; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)7291; EG-NEXT: 24(3.363116e-44), 16(2.242078e-44)7292; EG-NEXT: BFE_INT T19.X, PS, 0.0, literal.x,7293; EG-NEXT: ASHR T17.Y, PV.X, literal.y,7294; EG-NEXT: BFE_INT T18.Z, PV.W, 0.0, literal.x,7295; EG-NEXT: ADD_INT T0.W, KC0[2].Y, literal.z,7296; EG-NEXT: ASHR * T20.W, T7.Z, literal.y,7297; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)7298; EG-NEXT: 112(1.569454e-43), 0(0.000000e+00)7299; EG-NEXT: BFE_INT T7.X, T7.Z, 0.0, literal.x,7300; EG-NEXT: ASHR T19.Y, PV.X, literal.y,7301; EG-NEXT: ASHR T20.Z, T7.Z, literal.z,7302; EG-NEXT: LSHR T1.W, T7.Z, literal.w,7303; EG-NEXT: ASHR * T21.W, T7.W, literal.y,7304; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)7305; EG-NEXT: 24(3.363116e-44), 16(2.242078e-44)7306; EG-NEXT: BFE_INT T20.X, PV.W, 0.0, literal.x,7307; EG-NEXT: ASHR T7.Y, PV.X, literal.y,7308; EG-NEXT: ASHR T21.Z, T7.W, literal.z,7309; EG-NEXT: LSHR T1.W, T7.Z, literal.x,7310; EG-NEXT: LSHR * T2.W, T7.W, literal.w,7311; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)7312; EG-NEXT: 24(3.363116e-44), 16(2.242078e-44)7313; EG-NEXT: BFE_INT T21.X, PS, 0.0, literal.x,7314; EG-NEXT: ASHR T20.Y, PV.X, literal.y,7315; EG-NEXT: BFE_INT T7.Z, PV.W, 0.0, literal.x,7316; EG-NEXT: ASHR T18.W, T18.Z, literal.y,7317; EG-NEXT: ASHR * T14.W, T14.Z, literal.y,7318; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)7319; EG-NEXT: LSHR T22.X, T0.W, literal.x,7320; EG-NEXT: ASHR T21.Y, PV.X, literal.y,7321; EG-NEXT: ASHR T7.W, PV.Z, literal.y,7322; EG-NEXT: ASHR * T13.W, T13.Z, literal.y,7323; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)7324;7325; CM-LABEL: global_sextload_v16i8_to_v16i64:7326; CM: ; %bb.0:7327; CM-NEXT: ALU 0, @14, KC0[CB0:0-32], KC1[]7328; CM-NEXT: TEX 0 @127329; CM-NEXT: ALU 79, @15, KC0[CB0:0-32], KC1[]7330; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T21, T22.X7331; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T7, T16.X7332; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T13, T15.X7333; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T20, T12.X7334; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T18, T11.X7335; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T10.X7336; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T14, T9.X7337; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T17, T8.X7338; CM-NEXT: CF_END7339; CM-NEXT: Fetch clause starting at 12:7340; CM-NEXT: VTX_READ_128 T7.XYZW, T7.X, 0, #17341; CM-NEXT: ALU clause starting at 14:7342; CM-NEXT: MOV * T7.X, KC0[2].Z,7343; CM-NEXT: ALU clause starting at 15:7344; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,7345; CM-NEXT: 112(1.569454e-43), 0(0.000000e+00)7346; CM-NEXT: LSHR T8.X, PV.W, literal.x,7347; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7348; CM-NEXT: 2(2.802597e-45), 96(1.345247e-43)7349; CM-NEXT: LSHR T9.X, PV.W, literal.x,7350; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7351; CM-NEXT: 2(2.802597e-45), 80(1.121039e-43)7352; CM-NEXT: LSHR T10.X, PV.W, literal.x,7353; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7354; CM-NEXT: 2(2.802597e-45), 64(8.968310e-44)7355; CM-NEXT: LSHR T11.X, PV.W, literal.x,7356; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7357; CM-NEXT: 2(2.802597e-45), 48(6.726233e-44)7358; CM-NEXT: LSHR T12.X, PV.W, literal.x,7359; CM-NEXT: LSHR T0.Z, T7.X, literal.y,7360; CM-NEXT: LSHR * T0.W, T7.X, literal.z,7361; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)7362; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)7363; CM-NEXT: BFE_INT T13.X, T7.Y, 0.0, literal.x,7364; CM-NEXT: LSHR T0.Y, T7.Y, literal.y,7365; CM-NEXT: LSHR T1.Z, T7.Z, literal.x,7366; CM-NEXT: LSHR * T1.W, T7.W, literal.x,7367; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)7368; CM-NEXT: BFE_INT T14.X, T7.W, 0.0, literal.x,7369; CM-NEXT: ASHR T13.Y, PV.X, literal.y,7370; CM-NEXT: LSHR T2.Z, T7.Y, literal.x,7371; CM-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.z,7372; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)7373; CM-NEXT: 32(4.484155e-44), 0(0.000000e+00)7374; CM-NEXT: LSHR T15.X, PV.W, literal.x,7375; CM-NEXT: ASHR T14.Y, PV.X, literal.y,7376; CM-NEXT: BFE_INT T13.Z, PV.Z, 0.0, literal.z,7377; CM-NEXT: ADD_INT * T2.W, KC0[2].Y, literal.w,7378; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)7379; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)7380; CM-NEXT: LSHR T16.X, PV.W, literal.x,7381; CM-NEXT: LSHR T1.Y, T7.Z, literal.y,7382; CM-NEXT: BFE_INT T14.Z, T1.W, 0.0, literal.z,7383; CM-NEXT: ASHR * T17.W, T7.W, literal.w, BS:VEC_120/SCL_2127384; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)7385; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)7386; CM-NEXT: BFE_INT T18.X, T7.Z, 0.0, literal.x,7387; CM-NEXT: LSHR T2.Y, T7.W, literal.y,7388; CM-NEXT: ASHR T17.Z, T7.W, literal.z,7389; CM-NEXT: ASHR * T19.W, T7.Z, literal.w,7390; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)7391; CM-NEXT: 24(3.363116e-44), 31(4.344025e-44)7392; CM-NEXT: BFE_INT T17.X, PV.Y, 0.0, literal.x,7393; CM-NEXT: ASHR T18.Y, PV.X, literal.y,7394; CM-NEXT: ASHR T19.Z, T7.Z, literal.z,7395; CM-NEXT: ASHR * T14.W, T14.Z, literal.y, BS:VEC_120/SCL_2127396; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)7397; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)7398; CM-NEXT: BFE_INT T19.X, T1.Y, 0.0, literal.x,7399; CM-NEXT: ASHR T17.Y, PV.X, literal.y,7400; CM-NEXT: BFE_INT T18.Z, T1.Z, 0.0, literal.x,7401; CM-NEXT: ASHR * T20.W, T7.Y, literal.y, BS:VEC_120/SCL_2127402; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)7403; CM-NEXT: BFE_INT T21.X, T7.X, 0.0, literal.x,7404; CM-NEXT: ASHR T19.Y, PV.X, literal.y,7405; CM-NEXT: ASHR T20.Z, T7.Y, literal.z,7406; CM-NEXT: ASHR * T7.W, T7.X, literal.y,7407; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)7408; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)7409; CM-NEXT: BFE_INT T20.X, T0.Y, 0.0, literal.x,7410; CM-NEXT: ASHR T21.Y, PV.X, literal.y,7411; CM-NEXT: ASHR T7.Z, T7.X, literal.z,7412; CM-NEXT: ASHR * T18.W, T18.Z, literal.y,7413; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)7414; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)7415; CM-NEXT: BFE_INT T7.X, T0.W, 0.0, literal.x,7416; CM-NEXT: ASHR T20.Y, PV.X, literal.y,7417; CM-NEXT: BFE_INT T21.Z, T0.Z, 0.0, literal.x,7418; CM-NEXT: ASHR * T13.W, T13.Z, literal.y, BS:VEC_120/SCL_2127419; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)7420; CM-NEXT: LSHR T22.X, KC0[2].Y, literal.x,7421; CM-NEXT: ASHR T7.Y, PV.X, literal.y,7422; CM-NEXT: ASHR * T21.W, PV.Z, literal.y,7423; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)7424 %load = load <16 x i8>, ptr addrspace(1) %in7425 %ext = sext <16 x i8> %load to <16 x i64>7426 store <16 x i64> %ext, ptr addrspace(1) %out7427 ret void7428}7429 7430define amdgpu_kernel void @global_zextload_v32i8_to_v32i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {7431; GCN-NOHSA-SI-LABEL: global_zextload_v32i8_to_v32i64:7432; GCN-NOHSA-SI: ; %bb.0:7433; GCN-NOHSA-SI-NEXT: s_mov_b32 s12, SCRATCH_RSRC_DWORD07434; GCN-NOHSA-SI-NEXT: s_mov_b32 s13, SCRATCH_RSRC_DWORD17435; GCN-NOHSA-SI-NEXT: s_mov_b32 s14, -17436; GCN-NOHSA-SI-NEXT: s_mov_b32 s15, 0xe8f0007437; GCN-NOHSA-SI-NEXT: s_add_u32 s12, s12, s117438; GCN-NOHSA-SI-NEXT: s_addc_u32 s13, s13, 07439; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x97440; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0007441; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -17442; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s27443; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s37444; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)7445; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s67446; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s77447; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[10:13], off, s[8:11], 07448; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, 07449; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[17:20], off, s[8:11], 0 offset:167450; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)7451; GCN-NOHSA-SI-NEXT: v_bfe_u32 v2, v12, 8, 87452; GCN-NOHSA-SI-NEXT: v_bfe_u32 v3, v11, 8, 87453; GCN-NOHSA-SI-NEXT: v_bfe_u32 v6, v10, 8, 87454; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v4, 0xff, v107455; GCN-NOHSA-SI-NEXT: buffer_store_dword v4, off, s[12:15], 0 ; 4-byte Folded Spill7456; GCN-NOHSA-SI-NEXT: buffer_store_dword v5, off, s[12:15], 0 offset:4 ; 4-byte Folded Spill7457; GCN-NOHSA-SI-NEXT: buffer_store_dword v6, off, s[12:15], 0 offset:8 ; 4-byte Folded Spill7458; GCN-NOHSA-SI-NEXT: buffer_store_dword v7, off, s[12:15], 0 offset:12 ; 4-byte Folded Spill7459; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v1, 0xff, v117460; GCN-NOHSA-SI-NEXT: buffer_store_dword v1, off, s[12:15], 0 offset:16 ; 4-byte Folded Spill7461; GCN-NOHSA-SI-NEXT: buffer_store_dword v2, off, s[12:15], 0 offset:20 ; 4-byte Folded Spill7462; GCN-NOHSA-SI-NEXT: buffer_store_dword v3, off, s[12:15], 0 offset:24 ; 4-byte Folded Spill7463; GCN-NOHSA-SI-NEXT: buffer_store_dword v4, off, s[12:15], 0 offset:28 ; 4-byte Folded Spill7464; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v14, 0xff, v127465; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, v27466; GCN-NOHSA-SI-NEXT: v_bfe_u32 v55, v13, 8, 87467; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v53, 0xff, v137468; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v27, 24, v107469; GCN-NOHSA-SI-NEXT: v_bfe_u32 v25, v10, 16, 87470; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v31, 24, v117471; GCN-NOHSA-SI-NEXT: v_bfe_u32 v29, v11, 16, 87472; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v35, 24, v127473; GCN-NOHSA-SI-NEXT: v_bfe_u32 v33, v12, 16, 87474; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v39, 24, v137475; GCN-NOHSA-SI-NEXT: v_bfe_u32 v37, v13, 16, 87476; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(8)7477; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v10, 24, v207478; GCN-NOHSA-SI-NEXT: v_bfe_u32 v43, v17, 8, 87479; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v41, 0xff, v177480; GCN-NOHSA-SI-NEXT: v_bfe_u32 v47, v18, 8, 87481; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v45, 0xff, v187482; GCN-NOHSA-SI-NEXT: v_bfe_u32 v51, v19, 8, 87483; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v49, 0xff, v197484; GCN-NOHSA-SI-NEXT: v_bfe_u32 v23, v20, 8, 87485; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v21, 0xff, v207486; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v59, 24, v177487; GCN-NOHSA-SI-NEXT: v_bfe_u32 v57, v17, 16, 87488; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(5)7489; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v6, 24, v187490; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7491; GCN-NOHSA-SI-NEXT: v_bfe_u32 v4, v18, 16, 87492; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v2, 24, v197493; GCN-NOHSA-SI-NEXT: v_bfe_u32 v0, v19, 16, 87494; GCN-NOHSA-SI-NEXT: v_bfe_u32 v8, v20, 16, 87495; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, v97496; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, v97497; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, v97498; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, v97499; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, v97500; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v58, v97501; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v60, v97502; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v38, v97503; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v40, v97504; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v34, v97505; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v36, v97506; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v30, v97507; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v32, v97508; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v26, v97509; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v28, v97510; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v22, v97511; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v24, v97512; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v50, v97513; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v52, v97514; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v46, v97515; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v48, v97516; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v42, v97517; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v44, v97518; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v54, v97519; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v56, v97520; GCN-NOHSA-SI-NEXT: buffer_store_dword v53, off, s[12:15], 0 offset:32 ; 4-byte Folded Spill7521; GCN-NOHSA-SI-NEXT: buffer_store_dword v54, off, s[12:15], 0 offset:36 ; 4-byte Folded Spill7522; GCN-NOHSA-SI-NEXT: buffer_store_dword v55, off, s[12:15], 0 offset:40 ; 4-byte Folded Spill7523; GCN-NOHSA-SI-NEXT: buffer_store_dword v56, off, s[12:15], 0 offset:44 ; 4-byte Folded Spill7524; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, v97525; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v17, v97526; GCN-NOHSA-SI-NEXT: buffer_store_dword v14, off, s[12:15], 0 offset:48 ; 4-byte Folded Spill7527; GCN-NOHSA-SI-NEXT: buffer_store_dword v15, off, s[12:15], 0 offset:52 ; 4-byte Folded Spill7528; GCN-NOHSA-SI-NEXT: buffer_store_dword v16, off, s[12:15], 0 offset:56 ; 4-byte Folded Spill7529; GCN-NOHSA-SI-NEXT: buffer_store_dword v17, off, s[12:15], 0 offset:60 ; 4-byte Folded Spill7530; GCN-NOHSA-SI-NEXT: buffer_load_dword v12, off, s[12:15], 0 offset:16 ; 4-byte Folded Reload7531; GCN-NOHSA-SI-NEXT: buffer_load_dword v13, off, s[12:15], 0 offset:20 ; 4-byte Folded Reload7532; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(3)7533; GCN-NOHSA-SI-NEXT: buffer_load_dword v14, off, s[12:15], 0 offset:24 ; 4-byte Folded Reload7534; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(2)7535; GCN-NOHSA-SI-NEXT: buffer_load_dword v15, off, s[12:15], 0 offset:28 ; 4-byte Folded Reload7536; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1) expcnt(1)7537; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, v147538; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, v127539; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)7540; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, v97541; GCN-NOHSA-SI-NEXT: buffer_load_dword v53, off, s[12:15], 0 ; 4-byte Folded Reload7542; GCN-NOHSA-SI-NEXT: buffer_load_dword v54, off, s[12:15], 0 offset:4 ; 4-byte Folded Reload7543; GCN-NOHSA-SI-NEXT: buffer_load_dword v55, off, s[12:15], 0 offset:8 ; 4-byte Folded Reload7544; GCN-NOHSA-SI-NEXT: buffer_load_dword v56, off, s[12:15], 0 offset:12 ; 4-byte Folded Reload7545; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(2)7546; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v54, v97547; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)7548; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v56, v97549; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s47550; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s57551; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:2407552; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2087553; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1767554; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[57:60], off, s[0:3], 0 offset:1447555; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[37:40], off, s[0:3], 0 offset:1127556; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[33:36], off, s[0:3], 0 offset:807557; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[29:32], off, s[0:3], 0 offset:487558; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[25:28], off, s[0:3], 0 offset:167559; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[21:24], off, s[0:3], 0 offset:2247560; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[49:52], off, s[0:3], 0 offset:1927561; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[45:48], off, s[0:3], 0 offset:1607562; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[41:44], off, s[0:3], 0 offset:1287563; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[12:15], 0 offset:32 ; 4-byte Folded Reload7564; GCN-NOHSA-SI-NEXT: buffer_load_dword v1, off, s[12:15], 0 offset:36 ; 4-byte Folded Reload7565; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[12:15], 0 offset:40 ; 4-byte Folded Reload7566; GCN-NOHSA-SI-NEXT: buffer_load_dword v3, off, s[12:15], 0 offset:44 ; 4-byte Folded Reload7567; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)7568; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:967569; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)7570; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[12:15], 0 offset:48 ; 4-byte Folded Reload7571; GCN-NOHSA-SI-NEXT: buffer_load_dword v1, off, s[12:15], 0 offset:52 ; 4-byte Folded Reload7572; GCN-NOHSA-SI-NEXT: buffer_load_dword v2, off, s[12:15], 0 offset:56 ; 4-byte Folded Reload7573; GCN-NOHSA-SI-NEXT: buffer_load_dword v3, off, s[12:15], 0 offset:60 ; 4-byte Folded Reload7574; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)7575; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:647576; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[14:17], off, s[0:3], 0 offset:327577; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[53:56], off, s[0:3], 07578; GCN-NOHSA-SI-NEXT: s_endpgm7579;7580; GCN-HSA-LABEL: global_zextload_v32i8_to_v32i64:7581; GCN-HSA: ; %bb.0:7582; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x07583; GCN-HSA-NEXT: s_add_i32 s12, s12, s177584; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s137585; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 87586; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)7587; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27588; GCN-HSA-NEXT: v_mov_b32_e32 v1, s37589; GCN-HSA-NEXT: flat_load_dwordx4 v[2:5], v[0:1]7590; GCN-HSA-NEXT: s_add_u32 s2, s2, 167591; GCN-HSA-NEXT: s_addc_u32 s3, s3, 07592; GCN-HSA-NEXT: v_mov_b32_e32 v0, s27593; GCN-HSA-NEXT: v_mov_b32_e32 v1, s37594; GCN-HSA-NEXT: flat_load_dwordx4 v[6:9], v[0:1]7595; GCN-HSA-NEXT: s_add_u32 s2, s0, 0x707596; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07597; GCN-HSA-NEXT: s_add_u32 s4, s0, 0x507598; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07599; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57600; GCN-HSA-NEXT: v_mov_b32_e32 v1, 07601; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47602; GCN-HSA-NEXT: s_add_u32 s4, s0, 487603; GCN-HSA-NEXT: v_mov_b32_e32 v11, v17604; GCN-HSA-NEXT: v_mov_b32_e32 v13, v17605; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07606; GCN-HSA-NEXT: v_mov_b32_e32 v17, v17607; GCN-HSA-NEXT: s_waitcnt vmcnt(1)7608; GCN-HSA-NEXT: v_lshrrev_b32_e32 v12, 24, v47609; GCN-HSA-NEXT: v_bfe_u32 v10, v4, 16, 87610; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[10:13]7611; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57612; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47613; GCN-HSA-NEXT: s_add_u32 s4, s0, 167614; GCN-HSA-NEXT: v_lshrrev_b32_e32 v12, 24, v37615; GCN-HSA-NEXT: v_bfe_u32 v10, v3, 16, 87616; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07617; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[10:13]7618; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57619; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47620; GCN-HSA-NEXT: s_add_u32 s4, s0, 0xf07621; GCN-HSA-NEXT: v_lshrrev_b32_e32 v12, 24, v27622; GCN-HSA-NEXT: v_bfe_u32 v10, v2, 16, 87623; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07624; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[10:13]7625; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57626; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47627; GCN-HSA-NEXT: s_add_u32 s4, s0, 0xd07628; GCN-HSA-NEXT: s_waitcnt vmcnt(3)7629; GCN-HSA-NEXT: v_lshrrev_b32_e32 v12, 24, v97630; GCN-HSA-NEXT: v_bfe_u32 v10, v9, 16, 87631; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07632; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[10:13]7633; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57634; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47635; GCN-HSA-NEXT: s_add_u32 s4, s0, 0xb07636; GCN-HSA-NEXT: v_lshrrev_b32_e32 v12, 24, v87637; GCN-HSA-NEXT: v_bfe_u32 v10, v8, 16, 87638; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07639; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[10:13]7640; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57641; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47642; GCN-HSA-NEXT: s_add_u32 s4, s0, 0x907643; GCN-HSA-NEXT: v_lshrrev_b32_e32 v12, 24, v77644; GCN-HSA-NEXT: v_bfe_u32 v10, v7, 16, 87645; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07646; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[10:13]7647; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57648; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47649; GCN-HSA-NEXT: s_add_u32 s4, s0, 0x607650; GCN-HSA-NEXT: v_lshrrev_b32_e32 v12, 24, v67651; GCN-HSA-NEXT: v_bfe_u32 v10, v6, 16, 87652; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07653; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[10:13]7654; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57655; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47656; GCN-HSA-NEXT: s_add_u32 s4, s0, 647657; GCN-HSA-NEXT: v_bfe_u32 v12, v5, 8, 87658; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xff, v57659; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07660; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[10:13]7661; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57662; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47663; GCN-HSA-NEXT: s_add_u32 s4, s0, 327664; GCN-HSA-NEXT: v_bfe_u32 v12, v4, 8, 87665; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xff, v47666; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07667; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[10:13]7668; GCN-HSA-NEXT: v_mov_b32_e32 v15, s57669; GCN-HSA-NEXT: v_mov_b32_e32 v14, s47670; GCN-HSA-NEXT: v_bfe_u32 v12, v3, 8, 87671; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xff, v37672; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[10:13]7673; GCN-HSA-NEXT: s_add_u32 s4, s0, 0xe07674; GCN-HSA-NEXT: v_bfe_u32 v12, v2, 8, 87675; GCN-HSA-NEXT: v_and_b32_e32 v10, 0xff, v27676; GCN-HSA-NEXT: v_mov_b32_e32 v3, s17677; GCN-HSA-NEXT: v_mov_b32_e32 v2, s07678; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[10:13]7679; GCN-HSA-NEXT: s_addc_u32 s5, s1, 07680; GCN-HSA-NEXT: v_mov_b32_e32 v2, s47681; GCN-HSA-NEXT: v_bfe_u32 v11, v9, 8, 87682; GCN-HSA-NEXT: v_and_b32_e32 v9, 0xff, v97683; GCN-HSA-NEXT: v_mov_b32_e32 v10, v17684; GCN-HSA-NEXT: v_mov_b32_e32 v12, v17685; GCN-HSA-NEXT: v_mov_b32_e32 v3, s57686; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[9:12]7687; GCN-HSA-NEXT: v_lshrrev_b32_e32 v2, 24, v57688; GCN-HSA-NEXT: v_bfe_u32 v0, v5, 16, 87689; GCN-HSA-NEXT: v_mov_b32_e32 v5, s37690; GCN-HSA-NEXT: v_mov_b32_e32 v3, v17691; GCN-HSA-NEXT: v_mov_b32_e32 v4, s27692; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xc07693; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]7694; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07695; GCN-HSA-NEXT: v_mov_b32_e32 v2, s27696; GCN-HSA-NEXT: v_mov_b32_e32 v3, s37697; GCN-HSA-NEXT: s_add_u32 s2, s0, 0xa07698; GCN-HSA-NEXT: s_addc_u32 s3, s1, 07699; GCN-HSA-NEXT: v_bfe_u32 v16, v8, 8, 87700; GCN-HSA-NEXT: v_and_b32_e32 v14, 0xff, v87701; GCN-HSA-NEXT: v_mov_b32_e32 v15, v17702; GCN-HSA-NEXT: s_add_u32 s0, s0, 0x807703; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[14:17]7704; GCN-HSA-NEXT: v_mov_b32_e32 v8, v17705; GCN-HSA-NEXT: v_mov_b32_e32 v2, s27706; GCN-HSA-NEXT: v_mov_b32_e32 v14, v17707; GCN-HSA-NEXT: s_addc_u32 s1, s1, 07708; GCN-HSA-NEXT: v_mov_b32_e32 v0, s07709; GCN-HSA-NEXT: v_bfe_u32 v9, v7, 8, 87710; GCN-HSA-NEXT: v_bfe_u32 v13, v6, 8, 87711; GCN-HSA-NEXT: v_and_b32_e32 v11, 0xff, v67712; GCN-HSA-NEXT: v_and_b32_e32 v7, 0xff, v77713; GCN-HSA-NEXT: v_mov_b32_e32 v3, s37714; GCN-HSA-NEXT: v_mov_b32_e32 v1, s17715; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[7:10]7716; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[11:14]7717; GCN-HSA-NEXT: s_endpgm7718;7719; GCN-NOHSA-VI-LABEL: global_zextload_v32i8_to_v32i64:7720; GCN-NOHSA-VI: ; %bb.0:7721; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x247722; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0007723; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -17724; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s27725; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s37726; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)7727; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s67728; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s77729; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[10:13], off, s[8:11], 07730; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[14:17], off, s[8:11], 0 offset:167731; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v53, 07732; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v49, v537733; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v51, v537734; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s47735; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s57736; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v46, v537737; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v43, v537738; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v40, v537739; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v37, v537740; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v30, v537741; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v32, v537742; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v34, v537743; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v27, v537744; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v23, v537745; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v25, v537746; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v55, v537747; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v19, v537748; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v21, v537749; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v8, v537750; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, v537751; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, v537752; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, v537753; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)7754; GCN-NOHSA-VI-NEXT: v_bfe_u32 v9, v11, 8, 87755; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)7756; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v50, 24, v157757; GCN-NOHSA-VI-NEXT: v_bfe_u32 v48, v15, 16, 87758; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v47, 24, v167759; GCN-NOHSA-VI-NEXT: v_bfe_u32 v45, v16, 16, 87760; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[48:51], off, s[0:3], 0 offset:1767761; GCN-NOHSA-VI-NEXT: v_bfe_u32 v44, v16, 8, 87762; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v48, v537763; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v42, 0xff, v167764; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[45:48], off, s[0:3], 0 offset:2087765; GCN-NOHSA-VI-NEXT: v_bfe_u32 v41, v15, 8, 87766; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v45, v537767; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v39, 0xff, v157768; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[42:45], off, s[0:3], 0 offset:1927769; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v38, 24, v147770; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v42, v537771; GCN-NOHSA-VI-NEXT: v_bfe_u32 v36, v14, 16, 87772; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[39:42], off, s[0:3], 0 offset:1607773; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v5, 24, v107774; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v39, v537775; GCN-NOHSA-VI-NEXT: v_bfe_u32 v2, v10, 8, 87776; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xff, v107777; GCN-NOHSA-VI-NEXT: v_bfe_u32 v3, v10, 16, 87778; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v7, 0xff, v117779; GCN-NOHSA-VI-NEXT: v_bfe_u32 v20, v12, 8, 87780; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v18, 0xff, v127781; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v24, 24, v127782; GCN-NOHSA-VI-NEXT: v_bfe_u32 v22, v12, 16, 87783; GCN-NOHSA-VI-NEXT: v_bfe_u32 v28, v13, 8, 87784; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v26, 0xff, v137785; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v12, 24, v117786; GCN-NOHSA-VI-NEXT: v_bfe_u32 v10, v11, 16, 87787; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v31, 24, v137788; GCN-NOHSA-VI-NEXT: v_bfe_u32 v29, v13, 16, 87789; GCN-NOHSA-VI-NEXT: v_bfe_u32 v35, v14, 8, 87790; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v33, 0xff, v147791; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v11, v537792; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v13, v537793; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[36:39], off, s[0:3], 0 offset:1447794; GCN-NOHSA-VI-NEXT: v_bfe_u32 v16, v17, 8, 87795; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v36, v537796; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v14, 0xff, v177797; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v54, 24, v177798; GCN-NOHSA-VI-NEXT: v_bfe_u32 v52, v17, 16, 87799; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[29:32], off, s[0:3], 0 offset:1127800; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[10:13], off, s[0:3], 0 offset:487801; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v15, v537802; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v17, v537803; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v29, v537804; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v10, v537805; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[33:36], off, s[0:3], 0 offset:1287806; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[26:29], off, s[0:3], 0 offset:967807; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[22:25], off, s[0:3], 0 offset:807808; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[52:55], off, s[0:3], 0 offset:2407809; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[18:21], off, s[0:3], 0 offset:647810; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[7:10], off, s[0:3], 0 offset:327811; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[3:6], off, s[0:3], 0 offset:167812; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[14:17], off, s[0:3], 0 offset:2247813; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, v537814; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 07815; GCN-NOHSA-VI-NEXT: s_endpgm7816;7817; EG-LABEL: global_zextload_v32i8_to_v32i64:7818; EG: ; %bb.0:7819; EG-NEXT: ALU 0, @26, KC0[CB0:0-32], KC1[]7820; EG-NEXT: TEX 1 @227821; EG-NEXT: ALU 103, @27, KC0[CB0:0-32], KC1[]7822; EG-NEXT: ALU 33, @131, KC0[CB0:0-32], KC1[]7823; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T13.XYZW, T42.X, 07824; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T14.XYZW, T41.X, 07825; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T15.XYZW, T40.X, 07826; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T16.XYZW, T39.X, 07827; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T17.XYZW, T38.X, 07828; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T18.XYZW, T37.X, 07829; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T36.X, 07830; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T35.X, 07831; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T34.X, 07832; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T21.XYZW, T33.X, 07833; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T22.XYZW, T32.X, 07834; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T23.XYZW, T31.X, 07835; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T24.XYZW, T30.X, 07836; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T25.XYZW, T29.X, 07837; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T26.XYZW, T28.X, 07838; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T27.X, 17839; EG-NEXT: CF_END7840; EG-NEXT: PAD7841; EG-NEXT: Fetch clause starting at 22:7842; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 0, #17843; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 16, #17844; EG-NEXT: ALU clause starting at 26:7845; EG-NEXT: MOV * T11.X, KC0[2].Z,7846; EG-NEXT: ALU clause starting at 27:7847; EG-NEXT: MOV * T0.W, literal.x,7848; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)7849; EG-NEXT: BFE_UINT T13.X, T11.W, literal.x, PV.W,7850; EG-NEXT: LSHR * T13.Z, T11.W, literal.y,7851; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)7852; EG-NEXT: MOV T13.Y, 0.0,7853; EG-NEXT: BFE_UINT * T14.Z, T11.W, literal.x, T0.W,7854; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)7855; EG-NEXT: AND_INT T14.X, T11.W, literal.x,7856; EG-NEXT: MOV * T14.Y, 0.0,7857; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)7858; EG-NEXT: BFE_UINT T15.X, T11.Z, literal.x, T0.W,7859; EG-NEXT: LSHR * T15.Z, T11.Z, literal.y,7860; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)7861; EG-NEXT: MOV T15.Y, 0.0,7862; EG-NEXT: BFE_UINT * T16.Z, T11.Z, literal.x, T0.W,7863; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)7864; EG-NEXT: AND_INT T16.X, T11.Z, literal.x,7865; EG-NEXT: MOV * T16.Y, 0.0,7866; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)7867; EG-NEXT: BFE_UINT T17.X, T11.Y, literal.x, T0.W,7868; EG-NEXT: LSHR * T17.Z, T11.Y, literal.y,7869; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)7870; EG-NEXT: MOV T17.Y, 0.0,7871; EG-NEXT: BFE_UINT * T18.Z, T11.Y, literal.x, T0.W,7872; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)7873; EG-NEXT: AND_INT T18.X, T11.Y, literal.x,7874; EG-NEXT: MOV * T18.Y, 0.0,7875; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)7876; EG-NEXT: BFE_UINT T19.X, T11.X, literal.x, T0.W,7877; EG-NEXT: LSHR * T19.Z, T11.X, literal.y,7878; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)7879; EG-NEXT: MOV T19.Y, 0.0,7880; EG-NEXT: BFE_UINT * T11.Z, T11.X, literal.x, T0.W,7881; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)7882; EG-NEXT: AND_INT T11.X, T11.X, literal.x,7883; EG-NEXT: MOV * T11.Y, 0.0,7884; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)7885; EG-NEXT: BFE_UINT T20.X, T12.W, literal.x, T0.W,7886; EG-NEXT: LSHR * T20.Z, T12.W, literal.y,7887; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)7888; EG-NEXT: MOV T20.Y, 0.0,7889; EG-NEXT: BFE_UINT * T21.Z, T12.W, literal.x, T0.W,7890; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)7891; EG-NEXT: AND_INT T21.X, T12.W, literal.x,7892; EG-NEXT: MOV * T21.Y, 0.0,7893; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)7894; EG-NEXT: BFE_UINT T22.X, T12.Z, literal.x, T0.W,7895; EG-NEXT: LSHR * T22.Z, T12.Z, literal.y,7896; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)7897; EG-NEXT: MOV T22.Y, 0.0,7898; EG-NEXT: BFE_UINT * T23.Z, T12.Z, literal.x, T0.W,7899; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)7900; EG-NEXT: AND_INT T23.X, T12.Z, literal.x,7901; EG-NEXT: MOV * T23.Y, 0.0,7902; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)7903; EG-NEXT: BFE_UINT T24.X, T12.Y, literal.x, T0.W,7904; EG-NEXT: LSHR * T24.Z, T12.Y, literal.y,7905; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)7906; EG-NEXT: MOV T24.Y, 0.0,7907; EG-NEXT: BFE_UINT * T25.Z, T12.Y, literal.x, T0.W,7908; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)7909; EG-NEXT: AND_INT T25.X, T12.Y, literal.x,7910; EG-NEXT: MOV * T25.Y, 0.0,7911; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)7912; EG-NEXT: BFE_UINT T26.X, T12.X, literal.x, T0.W,7913; EG-NEXT: LSHR * T26.Z, T12.X, literal.y,7914; EG-NEXT: 16(2.242078e-44), 24(3.363116e-44)7915; EG-NEXT: MOV T26.Y, 0.0,7916; EG-NEXT: BFE_UINT * T12.Z, T12.X, literal.x, T0.W,7917; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)7918; EG-NEXT: AND_INT T12.X, T12.X, literal.x,7919; EG-NEXT: MOV T12.Y, 0.0,7920; EG-NEXT: MOV T13.W, 0.0,7921; EG-NEXT: MOV * T14.W, 0.0,7922; EG-NEXT: 255(3.573311e-43), 0(0.000000e+00)7923; EG-NEXT: MOV T15.W, 0.0,7924; EG-NEXT: MOV * T16.W, 0.0,7925; EG-NEXT: MOV T17.W, 0.0,7926; EG-NEXT: MOV * T18.W, 0.0,7927; EG-NEXT: MOV T19.W, 0.0,7928; EG-NEXT: MOV * T11.W, 0.0,7929; EG-NEXT: MOV T20.W, 0.0,7930; EG-NEXT: MOV * T21.W, 0.0,7931; EG-NEXT: MOV T22.W, 0.0,7932; EG-NEXT: MOV * T23.W, 0.0,7933; EG-NEXT: MOV T24.W, 0.0,7934; EG-NEXT: MOV * T25.W, 0.0,7935; EG-NEXT: MOV T26.W, 0.0,7936; EG-NEXT: MOV * T12.W, 0.0,7937; EG-NEXT: LSHR T27.X, KC0[2].Y, literal.x,7938; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7939; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)7940; EG-NEXT: LSHR T28.X, PV.W, literal.x,7941; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7942; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)7943; EG-NEXT: LSHR T29.X, PV.W, literal.x,7944; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7945; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)7946; EG-NEXT: LSHR T30.X, PV.W, literal.x,7947; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7948; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)7949; EG-NEXT: LSHR * T31.X, PV.W, literal.x,7950; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)7951; EG-NEXT: ALU clause starting at 131:7952; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,7953; EG-NEXT: 80(1.121039e-43), 0(0.000000e+00)7954; EG-NEXT: LSHR T32.X, PV.W, literal.x,7955; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7956; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)7957; EG-NEXT: LSHR T33.X, PV.W, literal.x,7958; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7959; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)7960; EG-NEXT: LSHR T34.X, PV.W, literal.x,7961; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7962; EG-NEXT: 2(2.802597e-45), 128(1.793662e-43)7963; EG-NEXT: LSHR T35.X, PV.W, literal.x,7964; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7965; EG-NEXT: 2(2.802597e-45), 144(2.017870e-43)7966; EG-NEXT: LSHR T36.X, PV.W, literal.x,7967; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7968; EG-NEXT: 2(2.802597e-45), 160(2.242078e-43)7969; EG-NEXT: LSHR T37.X, PV.W, literal.x,7970; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7971; EG-NEXT: 2(2.802597e-45), 176(2.466285e-43)7972; EG-NEXT: LSHR T38.X, PV.W, literal.x,7973; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7974; EG-NEXT: 2(2.802597e-45), 192(2.690493e-43)7975; EG-NEXT: LSHR T39.X, PV.W, literal.x,7976; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7977; EG-NEXT: 2(2.802597e-45), 208(2.914701e-43)7978; EG-NEXT: LSHR T40.X, PV.W, literal.x,7979; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7980; EG-NEXT: 2(2.802597e-45), 224(3.138909e-43)7981; EG-NEXT: LSHR T41.X, PV.W, literal.x,7982; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,7983; EG-NEXT: 2(2.802597e-45), 240(3.363116e-43)7984; EG-NEXT: LSHR * T42.X, PV.W, literal.x,7985; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)7986;7987; CM-LABEL: global_zextload_v32i8_to_v32i64:7988; CM: ; %bb.0:7989; CM-NEXT: ALU 0, @26, KC0[CB0:0-32], KC1[]7990; CM-NEXT: TEX 1 @227991; CM-NEXT: ALU 103, @27, KC0[CB0:0-32], KC1[]7992; CM-NEXT: ALU 33, @131, KC0[CB0:0-32], KC1[]7993; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T13, T42.X7994; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T14, T41.X7995; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T15, T40.X7996; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T16, T39.X7997; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T17, T38.X7998; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T37.X7999; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T18, T36.X8000; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T35.X8001; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T20, T34.X8002; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T21, T33.X8003; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T22, T32.X8004; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T23, T31.X8005; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T24, T30.X8006; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T29.X8007; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T25, T28.X8008; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T26, T27.X8009; CM-NEXT: CF_END8010; CM-NEXT: PAD8011; CM-NEXT: Fetch clause starting at 22:8012; CM-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #18013; CM-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #18014; CM-NEXT: ALU clause starting at 26:8015; CM-NEXT: MOV * T11.X, KC0[2].Z,8016; CM-NEXT: ALU clause starting at 27:8017; CM-NEXT: MOV * T0.W, literal.x,8018; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)8019; CM-NEXT: BFE_UINT * T13.Z, T11.X, literal.x, PV.W,8020; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)8021; CM-NEXT: AND_INT T13.X, T11.X, literal.x,8022; CM-NEXT: MOV * T13.Y, 0.0,8023; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)8024; CM-NEXT: BFE_UINT T14.X, T11.X, literal.x, T0.W,8025; CM-NEXT: LSHR * T14.Z, T11.X, literal.y,8026; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)8027; CM-NEXT: MOV T14.Y, 0.0,8028; CM-NEXT: BFE_UINT * T15.Z, T11.Y, literal.x, T0.W,8029; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)8030; CM-NEXT: AND_INT T15.X, T11.Y, literal.x,8031; CM-NEXT: MOV * T15.Y, 0.0,8032; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)8033; CM-NEXT: BFE_UINT T16.X, T11.Y, literal.x, T0.W,8034; CM-NEXT: LSHR * T16.Z, T11.Y, literal.y,8035; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)8036; CM-NEXT: MOV T16.Y, 0.0,8037; CM-NEXT: BFE_UINT * T17.Z, T11.Z, literal.x, T0.W,8038; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)8039; CM-NEXT: AND_INT T17.X, T11.Z, literal.x,8040; CM-NEXT: MOV * T17.Y, 0.0,8041; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)8042; CM-NEXT: BFE_UINT T11.X, T11.Z, literal.x, T0.W,8043; CM-NEXT: LSHR * T11.Z, T11.Z, literal.y,8044; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)8045; CM-NEXT: MOV T11.Y, 0.0,8046; CM-NEXT: BFE_UINT * T18.Z, T11.W, literal.x, T0.W,8047; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)8048; CM-NEXT: AND_INT T18.X, T11.W, literal.x,8049; CM-NEXT: MOV * T18.Y, 0.0,8050; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)8051; CM-NEXT: BFE_UINT T19.X, T11.W, literal.x, T0.W,8052; CM-NEXT: LSHR * T19.Z, T11.W, literal.y,8053; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)8054; CM-NEXT: MOV T19.Y, 0.0,8055; CM-NEXT: BFE_UINT * T20.Z, T12.X, literal.x, T0.W,8056; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)8057; CM-NEXT: AND_INT T20.X, T12.X, literal.x,8058; CM-NEXT: MOV * T20.Y, 0.0,8059; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)8060; CM-NEXT: BFE_UINT T21.X, T12.X, literal.x, T0.W,8061; CM-NEXT: LSHR * T21.Z, T12.X, literal.y,8062; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)8063; CM-NEXT: MOV T21.Y, 0.0,8064; CM-NEXT: BFE_UINT * T22.Z, T12.Y, literal.x, T0.W,8065; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)8066; CM-NEXT: AND_INT T22.X, T12.Y, literal.x,8067; CM-NEXT: MOV * T22.Y, 0.0,8068; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)8069; CM-NEXT: BFE_UINT T23.X, T12.Y, literal.x, T0.W,8070; CM-NEXT: LSHR * T23.Z, T12.Y, literal.y,8071; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)8072; CM-NEXT: MOV T23.Y, 0.0,8073; CM-NEXT: BFE_UINT * T24.Z, T12.Z, literal.x, T0.W,8074; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)8075; CM-NEXT: AND_INT T24.X, T12.Z, literal.x,8076; CM-NEXT: MOV * T24.Y, 0.0,8077; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)8078; CM-NEXT: BFE_UINT T12.X, T12.Z, literal.x, T0.W,8079; CM-NEXT: LSHR * T12.Z, T12.Z, literal.y,8080; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)8081; CM-NEXT: MOV T12.Y, 0.0,8082; CM-NEXT: BFE_UINT * T25.Z, T12.W, literal.x, T0.W,8083; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)8084; CM-NEXT: AND_INT T25.X, T12.W, literal.x,8085; CM-NEXT: MOV * T25.Y, 0.0,8086; CM-NEXT: 255(3.573311e-43), 0(0.000000e+00)8087; CM-NEXT: BFE_UINT T26.X, T12.W, literal.x, T0.W,8088; CM-NEXT: LSHR * T26.Z, T12.W, literal.y,8089; CM-NEXT: 16(2.242078e-44), 24(3.363116e-44)8090; CM-NEXT: MOV T26.Y, 0.0,8091; CM-NEXT: MOV * T13.W, 0.0,8092; CM-NEXT: MOV * T14.W, 0.0,8093; CM-NEXT: MOV * T15.W, 0.0,8094; CM-NEXT: MOV * T16.W, 0.0,8095; CM-NEXT: MOV * T17.W, 0.0,8096; CM-NEXT: MOV * T11.W, 0.0,8097; CM-NEXT: MOV * T18.W, 0.0,8098; CM-NEXT: MOV * T19.W, 0.0,8099; CM-NEXT: MOV * T20.W, 0.0,8100; CM-NEXT: MOV * T21.W, 0.0,8101; CM-NEXT: MOV * T22.W, 0.0,8102; CM-NEXT: MOV * T23.W, 0.0,8103; CM-NEXT: MOV * T24.W, 0.0,8104; CM-NEXT: MOV * T12.W, 0.0,8105; CM-NEXT: MOV * T25.W, 0.0,8106; CM-NEXT: MOV * T26.W, 0.0,8107; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,8108; CM-NEXT: 240(3.363116e-43), 0(0.000000e+00)8109; CM-NEXT: LSHR T27.X, PV.W, literal.x,8110; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8111; CM-NEXT: 2(2.802597e-45), 224(3.138909e-43)8112; CM-NEXT: LSHR T28.X, PV.W, literal.x,8113; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8114; CM-NEXT: 2(2.802597e-45), 208(2.914701e-43)8115; CM-NEXT: LSHR T29.X, PV.W, literal.x,8116; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8117; CM-NEXT: 2(2.802597e-45), 192(2.690493e-43)8118; CM-NEXT: LSHR T30.X, PV.W, literal.x,8119; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8120; CM-NEXT: 2(2.802597e-45), 176(2.466285e-43)8121; CM-NEXT: ALU clause starting at 131:8122; CM-NEXT: LSHR T31.X, T0.W, literal.x,8123; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8124; CM-NEXT: 2(2.802597e-45), 160(2.242078e-43)8125; CM-NEXT: LSHR T32.X, PV.W, literal.x,8126; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8127; CM-NEXT: 2(2.802597e-45), 144(2.017870e-43)8128; CM-NEXT: LSHR T33.X, PV.W, literal.x,8129; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8130; CM-NEXT: 2(2.802597e-45), 128(1.793662e-43)8131; CM-NEXT: LSHR T34.X, PV.W, literal.x,8132; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8133; CM-NEXT: 2(2.802597e-45), 112(1.569454e-43)8134; CM-NEXT: LSHR T35.X, PV.W, literal.x,8135; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8136; CM-NEXT: 2(2.802597e-45), 96(1.345247e-43)8137; CM-NEXT: LSHR T36.X, PV.W, literal.x,8138; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8139; CM-NEXT: 2(2.802597e-45), 80(1.121039e-43)8140; CM-NEXT: LSHR T37.X, PV.W, literal.x,8141; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8142; CM-NEXT: 2(2.802597e-45), 64(8.968310e-44)8143; CM-NEXT: LSHR T38.X, PV.W, literal.x,8144; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8145; CM-NEXT: 2(2.802597e-45), 48(6.726233e-44)8146; CM-NEXT: LSHR T39.X, PV.W, literal.x,8147; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8148; CM-NEXT: 2(2.802597e-45), 32(4.484155e-44)8149; CM-NEXT: LSHR T40.X, PV.W, literal.x,8150; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8151; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)8152; CM-NEXT: LSHR * T41.X, PV.W, literal.x,8153; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)8154; CM-NEXT: LSHR * T42.X, KC0[2].Y, literal.x,8155; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)8156 %load = load <32 x i8>, ptr addrspace(1) %in8157 %ext = zext <32 x i8> %load to <32 x i64>8158 store <32 x i64> %ext, ptr addrspace(1) %out8159 ret void8160}8161 8162define amdgpu_kernel void @global_sextload_v32i8_to_v32i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {8163; GCN-NOHSA-SI-LABEL: global_sextload_v32i8_to_v32i64:8164; GCN-NOHSA-SI: ; %bb.0:8165; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x98166; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf0008167; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -18168; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s28169; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s38170; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)8171; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s68172; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s78173; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:168174; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 08175; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s48176; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s58177; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)8178; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s18, v28179; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s19, v38180; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s22, v08181; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s23, v18182; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)8183; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s24, v68184; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s25, v78185; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s12, v48186; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s13, v58187; GCN-NOHSA-SI-NEXT: s_lshr_b32 s38, s18, 168188; GCN-NOHSA-SI-NEXT: s_lshr_b32 s36, s18, 248189; GCN-NOHSA-SI-NEXT: s_lshr_b32 s34, s18, 88190; GCN-NOHSA-SI-NEXT: s_lshr_b32 s30, s22, 168191; GCN-NOHSA-SI-NEXT: s_lshr_b32 s28, s22, 248192; GCN-NOHSA-SI-NEXT: s_lshr_b32 s26, s22, 88193; GCN-NOHSA-SI-NEXT: s_lshr_b32 s4, s24, 168194; GCN-NOHSA-SI-NEXT: s_lshr_b32 s6, s24, 248195; GCN-NOHSA-SI-NEXT: s_lshr_b32 s8, s24, 88196; GCN-NOHSA-SI-NEXT: s_lshr_b32 s10, s12, 168197; GCN-NOHSA-SI-NEXT: s_lshr_b32 s14, s12, 248198; GCN-NOHSA-SI-NEXT: s_lshr_b32 s16, s12, 88199; GCN-NOHSA-SI-NEXT: s_lshr_b32 s20, s19, 168200; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[40:41], s[12:13], 0x800008201; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[42:43], s[18:19], 0x800008202; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[44:45], s[22:23], 0x800008203; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s428204; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s438205; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[42:43], s[24:25], 0x800008206; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s448207; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s458208; GCN-NOHSA-SI-NEXT: s_lshr_b32 s18, s19, 88209; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s428210; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s438211; GCN-NOHSA-SI-NEXT: s_mov_b32 s12, s198212; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s408213; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s418214; GCN-NOHSA-SI-NEXT: s_lshr_b32 s40, s23, 168215; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[38:39], s[38:39], 0x800008216; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[36:37], s[36:37], 0x800008217; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, s388218; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, s398219; GCN-NOHSA-SI-NEXT: s_lshr_b32 s38, s23, 88220; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, s368221; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v17, s378222; GCN-NOHSA-SI-NEXT: s_mov_b32 s22, s238223; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[36:37], s[12:13], 0x800008224; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[34:35], s[34:35], 0x800008225; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[14:17], off, s[0:3], 0 offset:2088226; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8227; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v16, s368228; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v17, s378229; GCN-NOHSA-SI-NEXT: s_lshr_b32 s36, s25, 168230; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s348231; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s358232; GCN-NOHSA-SI-NEXT: s_lshr_b32 s24, s25, 88233; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[30:31], s[30:31], 0x800008234; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1928235; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8236; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s308237; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s318238; GCN-NOHSA-SI-NEXT: s_ashr_i32 s33, s25, 318239; GCN-NOHSA-SI-NEXT: s_ashr_i32 s39, s23, 318240; GCN-NOHSA-SI-NEXT: s_ashr_i32 s41, s23, 248241; GCN-NOHSA-SI-NEXT: s_ashr_i32 s5, s19, 318242; GCN-NOHSA-SI-NEXT: s_ashr_i32 s7, s19, 248243; GCN-NOHSA-SI-NEXT: s_ashr_i32 s44, s25, 248244; GCN-NOHSA-SI-NEXT: s_mov_b32 s12, s258245; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[28:29], s[28:29], 0x800008246; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[26:27], s[26:27], 0x800008247; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s288248; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s298249; GCN-NOHSA-SI-NEXT: s_lshr_b32 s28, s13, 168250; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s268251; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s278252; GCN-NOHSA-SI-NEXT: s_lshr_b32 s26, s13, 88253; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1448254; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8255; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s78256; GCN-NOHSA-SI-NEXT: s_ashr_i32 s45, s13, 318257; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s58258; GCN-NOHSA-SI-NEXT: s_ashr_i32 s46, s13, 248259; GCN-NOHSA-SI-NEXT: s_mov_b32 s30, s138260; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[30:31], s[30:31], 0x800008261; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[34:35], s[12:13], 0x800008262; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[42:43], s[22:23], 0x800008263; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[12:13], s[26:27], 0x800008264; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[22:23], s[28:29], 0x800008265; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[24:25], s[24:25], 0x800008266; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[26:27], s[36:37], 0x800008267; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[28:29], s[38:39], 0x800008268; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[36:37], s[40:41], 0x800008269; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[18:19], s[18:19], 0x800008270; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[20:21], s[20:21], 0x800008271; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[16:17], s[16:17], 0x800008272; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x800008273; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[10:11], s[10:11], 0x800008274; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x800008275; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x800008276; GCN-NOHSA-SI-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x800008277; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:1288278; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8279; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s48280; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s58281; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s68282; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s78283; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:808284; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8285; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s418286; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s398287; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s88288; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s98289; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:648290; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s108291; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s118292; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8293; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s148294; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s158295; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:168296; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8297; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s428298; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s438299; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v14, s168300; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v15, s178301; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 08302; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s448303; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s338304; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s208305; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s218306; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2408307; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8308; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s348309; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s358310; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v18, s188311; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v19, s198312; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:2248313; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v12, s468314; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v13, s458315; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s368316; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s378317; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[2:5], off, s[0:3], 0 offset:1768318; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8319; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v4, s308320; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v5, s318321; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s288322; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s298323; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:1608324; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)8325; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v8, s268326; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v9, s278327; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1128328; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s248329; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s258330; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:968331; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(1)8332; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v10, s228333; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v11, s238334; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[10:13], off, s[0:3], 0 offset:488335; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v6, s128336; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v7, s138337; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:328338; GCN-NOHSA-SI-NEXT: s_endpgm8339;8340; GCN-HSA-LABEL: global_sextload_v32i8_to_v32i64:8341; GCN-HSA: ; %bb.0:8342; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x08343; GCN-HSA-NEXT: s_add_i32 s12, s12, s178344; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 88345; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s138346; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)8347; GCN-HSA-NEXT: v_mov_b32_e32 v0, s28348; GCN-HSA-NEXT: v_mov_b32_e32 v1, s38349; GCN-HSA-NEXT: s_add_u32 s2, s2, 168350; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[0:1]8351; GCN-HSA-NEXT: s_addc_u32 s3, s3, 08352; GCN-HSA-NEXT: v_mov_b32_e32 v0, s28353; GCN-HSA-NEXT: v_mov_b32_e32 v1, s38354; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]8355; GCN-HSA-NEXT: s_waitcnt vmcnt(1)8356; GCN-HSA-NEXT: v_readfirstlane_b32 s6, v68357; GCN-HSA-NEXT: v_readfirstlane_b32 s8, v48358; GCN-HSA-NEXT: v_readfirstlane_b32 s9, v58359; GCN-HSA-NEXT: v_readfirstlane_b32 s7, v78360; GCN-HSA-NEXT: s_lshr_b32 s20, s6, 168361; GCN-HSA-NEXT: s_lshr_b32 s18, s6, 248362; GCN-HSA-NEXT: s_lshr_b32 s10, s8, 168363; GCN-HSA-NEXT: s_lshr_b32 s2, s8, 248364; GCN-HSA-NEXT: s_bfe_i64 s[26:27], s[8:9], 0x800008365; GCN-HSA-NEXT: s_lshr_b32 s16, s6, 88366; GCN-HSA-NEXT: s_lshr_b32 s4, s8, 88367; GCN-HSA-NEXT: s_lshr_b32 s12, s7, 168368; GCN-HSA-NEXT: s_lshr_b32 s14, s7, 88369; GCN-HSA-NEXT: s_bfe_i64 s[24:25], s[6:7], 0x800008370; GCN-HSA-NEXT: s_lshr_b32 s6, s9, 168371; GCN-HSA-NEXT: s_mov_b32 s28, s98372; GCN-HSA-NEXT: v_mov_b32_e32 v4, s268373; GCN-HSA-NEXT: v_mov_b32_e32 v5, s278374; GCN-HSA-NEXT: s_bfe_i64 s[20:21], s[20:21], 0x800008375; GCN-HSA-NEXT: s_bfe_i64 s[26:27], s[18:19], 0x800008376; GCN-HSA-NEXT: s_waitcnt vmcnt(0)8377; GCN-HSA-NEXT: v_readfirstlane_b32 s40, v28378; GCN-HSA-NEXT: v_readfirstlane_b32 s41, v38379; GCN-HSA-NEXT: s_bfe_i64 s[42:43], s[10:11], 0x800008380; GCN-HSA-NEXT: v_readfirstlane_b32 s44, v08381; GCN-HSA-NEXT: v_readfirstlane_b32 s45, v18382; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x800008383; GCN-HSA-NEXT: s_mov_b32 s22, s78384; GCN-HSA-NEXT: s_lshr_b32 s8, s9, 88385; GCN-HSA-NEXT: v_mov_b32_e32 v8, s248386; GCN-HSA-NEXT: v_mov_b32_e32 v9, s258387; GCN-HSA-NEXT: s_bfe_i64 s[30:31], s[16:17], 0x800008388; GCN-HSA-NEXT: s_bfe_i64 s[10:11], s[28:29], 0x800008389; GCN-HSA-NEXT: s_bfe_i64 s[16:17], s[6:7], 0x800008390; GCN-HSA-NEXT: s_bfe_i64 s[18:19], s[14:15], 0x800008391; GCN-HSA-NEXT: s_bfe_i64 s[24:25], s[12:13], 0x800008392; GCN-HSA-NEXT: s_bfe_i64 s[46:47], s[4:5], 0x800008393; GCN-HSA-NEXT: v_mov_b32_e32 v12, s208394; GCN-HSA-NEXT: v_mov_b32_e32 v14, s268395; GCN-HSA-NEXT: v_mov_b32_e32 v15, s278396; GCN-HSA-NEXT: v_mov_b32_e32 v0, s428397; GCN-HSA-NEXT: v_mov_b32_e32 v2, s28398; GCN-HSA-NEXT: s_lshr_b32 s42, s44, 168399; GCN-HSA-NEXT: s_lshr_b32 s48, s44, 248400; GCN-HSA-NEXT: s_lshr_b32 s28, s44, 88401; GCN-HSA-NEXT: s_lshr_b32 s6, s45, 168402; GCN-HSA-NEXT: s_lshr_b32 s2, s45, 88403; GCN-HSA-NEXT: s_mov_b32 s4, s458404; GCN-HSA-NEXT: s_bfe_i64 s[26:27], s[44:45], 0x800008405; GCN-HSA-NEXT: s_lshr_b32 s44, s40, 168406; GCN-HSA-NEXT: s_lshr_b32 s50, s40, 248407; GCN-HSA-NEXT: s_lshr_b32 s52, s40, 88408; GCN-HSA-NEXT: s_lshr_b32 s20, s41, 168409; GCN-HSA-NEXT: s_lshr_b32 s12, s41, 88410; GCN-HSA-NEXT: s_mov_b32 s14, s418411; GCN-HSA-NEXT: s_ashr_i32 s33, s9, 318412; GCN-HSA-NEXT: s_ashr_i32 s37, s7, 318413; GCN-HSA-NEXT: s_ashr_i32 s38, s7, 248414; GCN-HSA-NEXT: s_ashr_i32 s34, s9, 248415; GCN-HSA-NEXT: s_bfe_i64 s[8:9], s[8:9], 0x800008416; GCN-HSA-NEXT: s_bfe_i64 s[22:23], s[22:23], 0x800008417; GCN-HSA-NEXT: v_mov_b32_e32 v13, s218418; GCN-HSA-NEXT: v_mov_b32_e32 v10, s308419; GCN-HSA-NEXT: v_mov_b32_e32 v11, s318420; GCN-HSA-NEXT: v_mov_b32_e32 v1, s438421; GCN-HSA-NEXT: v_mov_b32_e32 v3, s38422; GCN-HSA-NEXT: s_ashr_i32 s30, s45, 318423; GCN-HSA-NEXT: s_ashr_i32 s31, s45, 248424; GCN-HSA-NEXT: s_ashr_i32 s35, s41, 318425; GCN-HSA-NEXT: s_ashr_i32 s36, s41, 248426; GCN-HSA-NEXT: s_bfe_i64 s[40:41], s[40:41], 0x800008427; GCN-HSA-NEXT: s_bfe_i64 s[4:5], s[4:5], 0x800008428; GCN-HSA-NEXT: s_bfe_i64 s[2:3], s[2:3], 0x800008429; GCN-HSA-NEXT: s_bfe_i64 s[6:7], s[6:7], 0x800008430; GCN-HSA-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x800008431; GCN-HSA-NEXT: s_bfe_i64 s[12:13], s[12:13], 0x800008432; GCN-HSA-NEXT: s_bfe_i64 s[20:21], s[20:21], 0x800008433; GCN-HSA-NEXT: s_bfe_i64 s[28:29], s[28:29], 0x800008434; GCN-HSA-NEXT: s_bfe_i64 s[48:49], s[48:49], 0x800008435; GCN-HSA-NEXT: s_bfe_i64 s[42:43], s[42:43], 0x800008436; GCN-HSA-NEXT: s_bfe_i64 s[52:53], s[52:53], 0x800008437; GCN-HSA-NEXT: s_bfe_i64 s[50:51], s[50:51], 0x800008438; GCN-HSA-NEXT: s_bfe_i64 s[44:45], s[44:45], 0x800008439; GCN-HSA-NEXT: s_add_u32 s54, s0, 0x508440; GCN-HSA-NEXT: s_addc_u32 s55, s1, 08441; GCN-HSA-NEXT: v_mov_b32_e32 v24, s548442; GCN-HSA-NEXT: v_mov_b32_e32 v25, s558443; GCN-HSA-NEXT: s_add_u32 s54, s0, 648444; GCN-HSA-NEXT: s_addc_u32 s55, s1, 08445; GCN-HSA-NEXT: v_mov_b32_e32 v26, s548446; GCN-HSA-NEXT: v_mov_b32_e32 v27, s558447; GCN-HSA-NEXT: s_add_u32 s54, s0, 168448; GCN-HSA-NEXT: s_addc_u32 s55, s1, 08449; GCN-HSA-NEXT: v_mov_b32_e32 v20, s408450; GCN-HSA-NEXT: s_add_u32 s40, s0, 0xd08451; GCN-HSA-NEXT: v_mov_b32_e32 v21, s418452; GCN-HSA-NEXT: s_addc_u32 s41, s1, 08453; GCN-HSA-NEXT: flat_store_dwordx4 v[26:27], v[8:11]8454; GCN-HSA-NEXT: v_mov_b32_e32 v28, s548455; GCN-HSA-NEXT: v_mov_b32_e32 v8, s408456; GCN-HSA-NEXT: v_mov_b32_e32 v9, s418457; GCN-HSA-NEXT: s_add_u32 s40, s0, 0xc08458; GCN-HSA-NEXT: v_mov_b32_e32 v29, s558459; GCN-HSA-NEXT: s_addc_u32 s41, s1, 08460; GCN-HSA-NEXT: flat_store_dwordx4 v[28:29], v[0:3]8461; GCN-HSA-NEXT: flat_store_dwordx4 v[24:25], v[12:15]8462; GCN-HSA-NEXT: v_mov_b32_e32 v0, s268463; GCN-HSA-NEXT: s_add_u32 s26, s0, 0x908464; GCN-HSA-NEXT: v_mov_b32_e32 v1, s278465; GCN-HSA-NEXT: s_addc_u32 s27, s1, 08466; GCN-HSA-NEXT: v_mov_b32_e32 v24, s268467; GCN-HSA-NEXT: v_mov_b32_e32 v25, s278468; GCN-HSA-NEXT: v_mov_b32_e32 v3, s18469; GCN-HSA-NEXT: s_add_u32 s26, s0, 0x808470; GCN-HSA-NEXT: v_mov_b32_e32 v6, s468471; GCN-HSA-NEXT: v_mov_b32_e32 v7, s478472; GCN-HSA-NEXT: v_mov_b32_e32 v2, s08473; GCN-HSA-NEXT: s_addc_u32 s27, s1, 08474; GCN-HSA-NEXT: flat_store_dwordx4 v[2:3], v[4:7]8475; GCN-HSA-NEXT: v_mov_b32_e32 v16, s448476; GCN-HSA-NEXT: v_mov_b32_e32 v4, s248477; GCN-HSA-NEXT: s_add_u32 s24, s0, 0x708478; GCN-HSA-NEXT: v_mov_b32_e32 v17, s458479; GCN-HSA-NEXT: v_mov_b32_e32 v18, s508480; GCN-HSA-NEXT: v_mov_b32_e32 v19, s518481; GCN-HSA-NEXT: v_mov_b32_e32 v10, s408482; GCN-HSA-NEXT: v_mov_b32_e32 v5, s258483; GCN-HSA-NEXT: s_addc_u32 s25, s1, 08484; GCN-HSA-NEXT: v_mov_b32_e32 v22, s528485; GCN-HSA-NEXT: v_mov_b32_e32 v23, s538486; GCN-HSA-NEXT: v_mov_b32_e32 v12, s428487; GCN-HSA-NEXT: v_mov_b32_e32 v13, s438488; GCN-HSA-NEXT: v_mov_b32_e32 v11, s418489; GCN-HSA-NEXT: v_mov_b32_e32 v14, s488490; GCN-HSA-NEXT: v_mov_b32_e32 v15, s498491; GCN-HSA-NEXT: v_mov_b32_e32 v26, s268492; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[16:19]8493; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[20:23]8494; GCN-HSA-NEXT: v_mov_b32_e32 v10, s188495; GCN-HSA-NEXT: s_add_u32 s18, s0, 0x608496; GCN-HSA-NEXT: v_mov_b32_e32 v2, s288497; GCN-HSA-NEXT: v_mov_b32_e32 v3, s298498; GCN-HSA-NEXT: v_mov_b32_e32 v27, s278499; GCN-HSA-NEXT: flat_store_dwordx4 v[24:25], v[12:15]8500; GCN-HSA-NEXT: v_mov_b32_e32 v11, s198501; GCN-HSA-NEXT: v_mov_b32_e32 v12, s248502; GCN-HSA-NEXT: s_addc_u32 s19, s1, 08503; GCN-HSA-NEXT: v_mov_b32_e32 v14, s188504; GCN-HSA-NEXT: v_mov_b32_e32 v8, s228505; GCN-HSA-NEXT: v_mov_b32_e32 v6, s388506; GCN-HSA-NEXT: v_mov_b32_e32 v7, s378507; GCN-HSA-NEXT: v_mov_b32_e32 v9, s238508; GCN-HSA-NEXT: v_mov_b32_e32 v13, s258509; GCN-HSA-NEXT: v_mov_b32_e32 v15, s198510; GCN-HSA-NEXT: flat_store_dwordx4 v[26:27], v[0:3]8511; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[4:7]8512; GCN-HSA-NEXT: flat_store_dwordx4 v[14:15], v[8:11]8513; GCN-HSA-NEXT: v_mov_b32_e32 v0, s168514; GCN-HSA-NEXT: s_add_u32 s16, s0, 488515; GCN-HSA-NEXT: v_mov_b32_e32 v1, s178516; GCN-HSA-NEXT: s_addc_u32 s17, s1, 08517; GCN-HSA-NEXT: v_mov_b32_e32 v4, s168518; GCN-HSA-NEXT: v_mov_b32_e32 v2, s348519; GCN-HSA-NEXT: v_mov_b32_e32 v3, s338520; GCN-HSA-NEXT: v_mov_b32_e32 v5, s178521; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8522; GCN-HSA-NEXT: s_nop 08523; GCN-HSA-NEXT: v_mov_b32_e32 v2, s88524; GCN-HSA-NEXT: s_add_u32 s8, s0, 328525; GCN-HSA-NEXT: v_mov_b32_e32 v3, s98526; GCN-HSA-NEXT: s_addc_u32 s9, s1, 08527; GCN-HSA-NEXT: v_mov_b32_e32 v4, s88528; GCN-HSA-NEXT: v_mov_b32_e32 v0, s108529; GCN-HSA-NEXT: v_mov_b32_e32 v1, s118530; GCN-HSA-NEXT: v_mov_b32_e32 v5, s98531; GCN-HSA-NEXT: s_add_u32 s8, s0, 0xf08532; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8533; GCN-HSA-NEXT: s_addc_u32 s9, s1, 08534; GCN-HSA-NEXT: v_mov_b32_e32 v4, s88535; GCN-HSA-NEXT: v_mov_b32_e32 v0, s208536; GCN-HSA-NEXT: v_mov_b32_e32 v1, s218537; GCN-HSA-NEXT: v_mov_b32_e32 v2, s368538; GCN-HSA-NEXT: v_mov_b32_e32 v3, s358539; GCN-HSA-NEXT: v_mov_b32_e32 v5, s98540; GCN-HSA-NEXT: s_add_u32 s8, s0, 0xe08541; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8542; GCN-HSA-NEXT: s_addc_u32 s9, s1, 08543; GCN-HSA-NEXT: v_mov_b32_e32 v4, s88544; GCN-HSA-NEXT: v_mov_b32_e32 v0, s148545; GCN-HSA-NEXT: v_mov_b32_e32 v1, s158546; GCN-HSA-NEXT: v_mov_b32_e32 v2, s128547; GCN-HSA-NEXT: v_mov_b32_e32 v3, s138548; GCN-HSA-NEXT: v_mov_b32_e32 v5, s98549; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8550; GCN-HSA-NEXT: s_nop 08551; GCN-HSA-NEXT: v_mov_b32_e32 v0, s68552; GCN-HSA-NEXT: s_add_u32 s6, s0, 0xb08553; GCN-HSA-NEXT: v_mov_b32_e32 v1, s78554; GCN-HSA-NEXT: s_addc_u32 s7, s1, 08555; GCN-HSA-NEXT: v_mov_b32_e32 v4, s68556; GCN-HSA-NEXT: s_add_u32 s0, s0, 0xa08557; GCN-HSA-NEXT: v_mov_b32_e32 v2, s318558; GCN-HSA-NEXT: v_mov_b32_e32 v3, s308559; GCN-HSA-NEXT: v_mov_b32_e32 v5, s78560; GCN-HSA-NEXT: s_addc_u32 s1, s1, 08561; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8562; GCN-HSA-NEXT: v_mov_b32_e32 v5, s18563; GCN-HSA-NEXT: v_mov_b32_e32 v0, s48564; GCN-HSA-NEXT: v_mov_b32_e32 v1, s58565; GCN-HSA-NEXT: v_mov_b32_e32 v2, s28566; GCN-HSA-NEXT: v_mov_b32_e32 v3, s38567; GCN-HSA-NEXT: v_mov_b32_e32 v4, s08568; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]8569; GCN-HSA-NEXT: s_endpgm8570;8571; GCN-NOHSA-VI-LABEL: global_sextload_v32i8_to_v32i64:8572; GCN-NOHSA-VI: ; %bb.0:8573; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x248574; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf0008575; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -18576; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s28577; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s38578; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)8579; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s68580; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s78581; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:168582; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 08583; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s48584; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s58585; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)8586; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s4, v28587; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)8588; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s9, v78589; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s11, v58590; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s5, v38591; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s6, v08592; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s10, v48593; GCN-NOHSA-VI-NEXT: s_lshr_b32 s38, s4, 168594; GCN-NOHSA-VI-NEXT: s_lshr_b32 s40, s4, 248595; GCN-NOHSA-VI-NEXT: s_lshr_b32 s42, s4, 88596; GCN-NOHSA-VI-NEXT: s_lshr_b32 s60, s9, 88597; GCN-NOHSA-VI-NEXT: s_ashr_i32 s39, s11, 248598; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s7, v18599; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s8, v68600; GCN-NOHSA-VI-NEXT: s_lshr_b32 s48, s6, 88601; GCN-NOHSA-VI-NEXT: s_lshr_b32 s56, s10, 168602; GCN-NOHSA-VI-NEXT: s_lshr_b32 s58, s10, 248603; GCN-NOHSA-VI-NEXT: s_lshr_b32 s36, s10, 88604; GCN-NOHSA-VI-NEXT: s_lshr_b32 s62, s11, 168605; GCN-NOHSA-VI-NEXT: s_lshr_b32 s64, s11, 88606; GCN-NOHSA-VI-NEXT: s_mov_b32 s66, s118607; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[20:21], s[10:11], 0x800008608; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[68:69], s[4:5], 0x800008609; GCN-NOHSA-VI-NEXT: s_ashr_i32 s33, s11, 318610; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[10:11], s[60:61], 0x800008611; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[42:43], s[42:43], 0x800008612; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[40:41], s[40:41], 0x800008613; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[60:61], s[38:39], 0x800008614; GCN-NOHSA-VI-NEXT: s_lshr_b32 s50, s8, 168615; GCN-NOHSA-VI-NEXT: s_lshr_b32 s52, s8, 248616; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[34:35], s[6:7], 0x800008617; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[48:49], s[48:49], 0x800008618; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s688619; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s698620; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s608621; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s618622; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s408623; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s418624; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s428625; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s438626; GCN-NOHSA-VI-NEXT: s_lshr_b32 s54, s8, 88627; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[52:53], s[52:53], 0x800008628; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[50:51], s[50:51], 0x800008629; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:2088630; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1928631; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[28:29], s[8:9], 0x800008632; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s348633; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s358634; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s488635; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s498636; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[54:55], s[54:55], 0x800008637; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1288638; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[58:59], s[58:59], 0x800008639; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s508640; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s518641; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s528642; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s538643; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[56:57], s[56:57], 0x800008644; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:808645; GCN-NOHSA-VI-NEXT: s_lshr_b32 s30, s5, 168646; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s288647; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s298648; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s548649; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s558650; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[36:37], s[36:37], 0x800008651; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:648652; GCN-NOHSA-VI-NEXT: s_lshr_b32 s24, s5, 88653; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s568654; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s578655; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s588656; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s598657; GCN-NOHSA-VI-NEXT: s_mov_b32 s26, s58658; GCN-NOHSA-VI-NEXT: s_ashr_i32 s71, s5, 318659; GCN-NOHSA-VI-NEXT: s_ashr_i32 s72, s5, 248660; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[30:31], s[30:31], 0x800008661; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:168662; GCN-NOHSA-VI-NEXT: s_lshr_b32 s22, s7, 168663; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s208664; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s218665; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s368666; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s378667; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[26:27], s[26:27], 0x800008668; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[24:25], s[24:25], 0x800008669; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 08670; GCN-NOHSA-VI-NEXT: s_lshr_b32 s16, s7, 88671; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s308672; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s318673; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s728674; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s718675; GCN-NOHSA-VI-NEXT: s_mov_b32 s18, s78676; GCN-NOHSA-VI-NEXT: s_ashr_i32 s67, s7, 318677; GCN-NOHSA-VI-NEXT: s_ashr_i32 s70, s7, 248678; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[22:23], s[22:23], 0x800008679; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2408680; GCN-NOHSA-VI-NEXT: s_lshr_b32 s14, s9, 168681; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s268682; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s278683; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s248684; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s258685; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[18:19], s[18:19], 0x800008686; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[16:17], s[16:17], 0x800008687; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:2248688; GCN-NOHSA-VI-NEXT: s_mov_b32 s12, s98689; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s228690; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s238691; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s708692; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s678693; GCN-NOHSA-VI-NEXT: s_ashr_i32 s63, s9, 318694; GCN-NOHSA-VI-NEXT: s_ashr_i32 s65, s9, 248695; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[14:15], s[14:15], 0x800008696; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1768697; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[12:13], s[12:13], 0x800008698; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s188699; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s198700; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s168701; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s178702; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1608703; GCN-NOHSA-VI-NEXT: s_lshr_b32 s44, s6, 168704; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s148705; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s158706; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s658707; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s638708; GCN-NOHSA-VI-NEXT: s_lshr_b32 s46, s6, 248709; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[8:9], s[62:63], 0x800008710; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1128711; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[6:7], s[66:67], 0x800008712; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s128713; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s138714; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s108715; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s118716; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[4:5], s[64:65], 0x800008717; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[46:47], s[46:47], 0x800008718; GCN-NOHSA-VI-NEXT: s_bfe_i64 s[44:45], s[44:45], 0x800008719; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:968720; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v8, s448721; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s88722; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s98723; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s398724; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s338725; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v9, s458726; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v10, s468727; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v11, s478728; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:488729; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1448730; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s68731; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s78732; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s48733; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s58734; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:328735; GCN-NOHSA-VI-NEXT: s_endpgm8736;8737; EG-LABEL: global_sextload_v32i8_to_v32i64:8738; EG: ; %bb.0:8739; EG-NEXT: ALU 0, @26, KC0[CB0:0-32], KC1[]8740; EG-NEXT: TEX 1 @228741; EG-NEXT: ALU 84, @27, KC0[CB0:0-32], KC1[]8742; EG-NEXT: ALU 71, @112, KC0[], KC1[]8743; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T41.XYZW, T42.X, 08744; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T26.XYZW, T31.X, 08745; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T40.XYZW, T30.X, 08746; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T11.XYZW, T25.X, 08747; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T39.XYZW, T24.X, 08748; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T27.XYZW, T23.X, 08749; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T22.X, 08750; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T28.XYZW, T21.X, 08751; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T37.XYZW, T20.X, 08752; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T29.XYZW, T19.X, 08753; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T35.XYZW, T18.X, 08754; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T33.XYZW, T17.X, 08755; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T34.XYZW, T16.X, 08756; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T38.XYZW, T15.X, 08757; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T32.XYZW, T14.X, 08758; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T36.XYZW, T13.X, 18759; EG-NEXT: CF_END8760; EG-NEXT: PAD8761; EG-NEXT: Fetch clause starting at 22:8762; EG-NEXT: VTX_READ_128 T12.XYZW, T11.X, 0, #18763; EG-NEXT: VTX_READ_128 T11.XYZW, T11.X, 16, #18764; EG-NEXT: ALU clause starting at 26:8765; EG-NEXT: MOV * T11.X, KC0[2].Z,8766; EG-NEXT: ALU clause starting at 27:8767; EG-NEXT: LSHR T13.X, KC0[2].Y, literal.x,8768; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8769; EG-NEXT: 2(2.802597e-45), 16(2.242078e-44)8770; EG-NEXT: LSHR T14.X, PV.W, literal.x,8771; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8772; EG-NEXT: 2(2.802597e-45), 32(4.484155e-44)8773; EG-NEXT: LSHR T15.X, PV.W, literal.x,8774; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8775; EG-NEXT: 2(2.802597e-45), 48(6.726233e-44)8776; EG-NEXT: LSHR T16.X, PV.W, literal.x,8777; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8778; EG-NEXT: 2(2.802597e-45), 64(8.968310e-44)8779; EG-NEXT: LSHR T17.X, PV.W, literal.x,8780; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8781; EG-NEXT: 2(2.802597e-45), 80(1.121039e-43)8782; EG-NEXT: LSHR T18.X, PV.W, literal.x,8783; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8784; EG-NEXT: 2(2.802597e-45), 96(1.345247e-43)8785; EG-NEXT: LSHR T19.X, PV.W, literal.x,8786; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8787; EG-NEXT: 2(2.802597e-45), 112(1.569454e-43)8788; EG-NEXT: LSHR T20.X, PV.W, literal.x,8789; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8790; EG-NEXT: 2(2.802597e-45), 128(1.793662e-43)8791; EG-NEXT: LSHR T21.X, PV.W, literal.x,8792; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8793; EG-NEXT: 2(2.802597e-45), 144(2.017870e-43)8794; EG-NEXT: LSHR T22.X, PV.W, literal.x,8795; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8796; EG-NEXT: 2(2.802597e-45), 160(2.242078e-43)8797; EG-NEXT: LSHR T23.X, PV.W, literal.x,8798; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8799; EG-NEXT: 2(2.802597e-45), 176(2.466285e-43)8800; EG-NEXT: LSHR T24.X, PV.W, literal.x,8801; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8802; EG-NEXT: 2(2.802597e-45), 192(2.690493e-43)8803; EG-NEXT: LSHR * T25.X, PV.W, literal.x,8804; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)8805; EG-NEXT: BFE_INT * T26.X, T11.W, 0.0, literal.x,8806; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)8807; EG-NEXT: BFE_INT T27.X, T11.Y, 0.0, literal.x,8808; EG-NEXT: ASHR T26.Y, PV.X, literal.y,8809; EG-NEXT: LSHR * T0.W, T11.W, literal.x,8810; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8811; EG-NEXT: BFE_INT T28.X, T11.X, 0.0, literal.x,8812; EG-NEXT: ASHR T27.Y, PV.X, literal.y,8813; EG-NEXT: BFE_INT T26.Z, PV.W, 0.0, literal.x,8814; EG-NEXT: LSHR * T0.W, T11.Y, literal.x,8815; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8816; EG-NEXT: BFE_INT T29.X, T12.W, 0.0, literal.x,8817; EG-NEXT: ASHR T28.Y, PV.X, literal.y,8818; EG-NEXT: BFE_INT T27.Z, PV.W, 0.0, literal.x,8819; EG-NEXT: LSHR T0.W, T11.X, literal.x,8820; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.z,8821; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8822; EG-NEXT: 208(2.914701e-43), 0(0.000000e+00)8823; EG-NEXT: LSHR T30.X, PS, literal.x,8824; EG-NEXT: ASHR T29.Y, PV.X, literal.y,8825; EG-NEXT: BFE_INT T28.Z, PV.W, 0.0, literal.z,8826; EG-NEXT: LSHR T0.W, T12.W, literal.z,8827; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.w,8828; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)8829; EG-NEXT: 8(1.121039e-44), 224(3.138909e-43)8830; EG-NEXT: LSHR T31.X, PS, literal.x,8831; EG-NEXT: BFE_INT T29.Z, PV.W, 0.0, literal.y,8832; EG-NEXT: ADD_INT T0.W, KC0[2].Y, literal.z,8833; EG-NEXT: ASHR * T32.W, T12.X, literal.w,8834; EG-NEXT: 2(2.802597e-45), 8(1.121039e-44)8835; EG-NEXT: 240(3.363116e-43), 31(4.344025e-44)8836; EG-NEXT: BFE_INT T33.X, T12.Z, 0.0, literal.x,8837; EG-NEXT: LSHR T0.Y, T11.Z, literal.x, BS:VEC_120/SCL_2128838; EG-NEXT: ASHR T32.Z, T12.X, literal.y,8839; EG-NEXT: LSHR T1.W, T12.X, literal.z,8840; EG-NEXT: ASHR * T34.W, T12.Y, literal.w,8841; EG-NEXT: 8(1.121039e-44), 24(3.363116e-44)8842; EG-NEXT: 16(2.242078e-44), 31(4.344025e-44)8843; EG-NEXT: BFE_INT T32.X, PV.W, 0.0, literal.x,8844; EG-NEXT: ASHR T33.Y, PV.X, literal.y,8845; EG-NEXT: ASHR T34.Z, T12.Y, literal.z,8846; EG-NEXT: LSHR T1.W, T12.Z, literal.x,8847; EG-NEXT: LSHR * T2.W, T12.Y, literal.w,8848; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8849; EG-NEXT: 24(3.363116e-44), 16(2.242078e-44)8850; EG-NEXT: BFE_INT * T34.X, PS, 0.0, literal.x,8851; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)8852; EG-NEXT: ALU clause starting at 112:8853; EG-NEXT: ASHR T32.Y, T32.X, literal.x,8854; EG-NEXT: BFE_INT T33.Z, T1.W, 0.0, literal.y,8855; EG-NEXT: LSHR T1.W, T11.W, literal.z, BS:VEC_120/SCL_2128856; EG-NEXT: ASHR * T35.W, T12.Z, literal.x,8857; EG-NEXT: 31(4.344025e-44), 8(1.121039e-44)8858; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8859; EG-NEXT: BFE_INT T36.X, T12.X, 0.0, literal.x,8860; EG-NEXT: ASHR T34.Y, T34.X, literal.y, BS:VEC_120/SCL_2128861; EG-NEXT: ASHR T35.Z, T12.Z, literal.z,8862; EG-NEXT: LSHR T2.W, T12.Z, literal.w,8863; EG-NEXT: ASHR * T37.W, T12.W, literal.y,8864; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8865; EG-NEXT: 24(3.363116e-44), 16(2.242078e-44)8866; EG-NEXT: BFE_INT T35.X, PV.W, 0.0, literal.x,8867; EG-NEXT: ASHR T36.Y, PV.X, literal.y,8868; EG-NEXT: ASHR T37.Z, T12.W, literal.z,8869; EG-NEXT: LSHR T2.W, T12.X, literal.x,8870; EG-NEXT: LSHR * T3.W, T12.W, literal.w,8871; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8872; EG-NEXT: 24(3.363116e-44), 16(2.242078e-44)8873; EG-NEXT: BFE_INT T37.X, PS, 0.0, literal.x,8874; EG-NEXT: ASHR T35.Y, PV.X, literal.y,8875; EG-NEXT: BFE_INT T36.Z, PV.W, 0.0, literal.x,8876; EG-NEXT: LSHR T2.W, T11.Z, literal.z,8877; EG-NEXT: ASHR * T12.W, T11.X, literal.y,8878; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8879; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)8880; EG-NEXT: BFE_INT T38.X, T12.Y, 0.0, literal.x,8881; EG-NEXT: ASHR T37.Y, PV.X, literal.y,8882; EG-NEXT: ASHR T12.Z, T11.X, literal.z,8883; EG-NEXT: LSHR T3.W, T11.X, literal.w,8884; EG-NEXT: ASHR * T39.W, T11.Y, literal.y,8885; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8886; EG-NEXT: 24(3.363116e-44), 16(2.242078e-44)8887; EG-NEXT: BFE_INT T12.X, PV.W, 0.0, literal.x,8888; EG-NEXT: ASHR T38.Y, PV.X, literal.y,8889; EG-NEXT: ASHR T39.Z, T11.Y, literal.z,8890; EG-NEXT: LSHR T3.W, T12.Y, literal.x, BS:VEC_120/SCL_2128891; EG-NEXT: LSHR * T4.W, T11.Y, literal.w,8892; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8893; EG-NEXT: 24(3.363116e-44), 16(2.242078e-44)8894; EG-NEXT: BFE_INT T39.X, PS, 0.0, literal.x,8895; EG-NEXT: ASHR T12.Y, PV.X, literal.y,8896; EG-NEXT: BFE_INT T38.Z, PV.W, 0.0, literal.x,8897; EG-NEXT: ASHR T36.W, T36.Z, literal.y,8898; EG-NEXT: ASHR * T40.W, T11.Z, literal.y,8899; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8900; EG-NEXT: BFE_INT T11.X, T11.Z, 0.0, literal.x,8901; EG-NEXT: ASHR T39.Y, PV.X, literal.y,8902; EG-NEXT: ASHR T40.Z, T11.Z, literal.z,8903; EG-NEXT: ASHR T38.W, PV.Z, literal.y,8904; EG-NEXT: ASHR * T41.W, T11.W, literal.y,8905; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8906; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)8907; EG-NEXT: BFE_INT T40.X, T2.W, 0.0, literal.x,8908; EG-NEXT: ASHR T11.Y, PV.X, literal.y,8909; EG-NEXT: ASHR T41.Z, T11.W, literal.z, BS:VEC_120/SCL_2128910; EG-NEXT: ASHR T33.W, T33.Z, literal.y,8911; EG-NEXT: ASHR * T29.W, T29.Z, literal.y,8912; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8913; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)8914; EG-NEXT: BFE_INT T41.X, T1.W, 0.0, literal.x,8915; EG-NEXT: ASHR T40.Y, PV.X, literal.y,8916; EG-NEXT: BFE_INT T11.Z, T0.Y, 0.0, literal.x,8917; EG-NEXT: ASHR T28.W, T28.Z, literal.y,8918; EG-NEXT: ASHR * T27.W, T27.Z, literal.y,8919; EG-NEXT: 8(1.121039e-44), 31(4.344025e-44)8920; EG-NEXT: LSHR T42.X, T0.W, literal.x,8921; EG-NEXT: ASHR T41.Y, PV.X, literal.y,8922; EG-NEXT: ASHR T11.W, PV.Z, literal.y,8923; EG-NEXT: ASHR * T26.W, T26.Z, literal.y,8924; EG-NEXT: 2(2.802597e-45), 31(4.344025e-44)8925;8926; CM-LABEL: global_sextload_v32i8_to_v32i64:8927; CM: ; %bb.0:8928; CM-NEXT: ALU 0, @26, KC0[CB0:0-32], KC1[]8929; CM-NEXT: TEX 1 @228930; CM-NEXT: ALU 84, @27, KC0[CB0:0-32], KC1[]8931; CM-NEXT: ALU 74, @112, KC0[CB0:0-32], KC1[]8932; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T41, T42.X8933; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T11, T31.X8934; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T28, T30.X8935; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T40, T25.X8936; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T38, T24.X8937; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T39, T23.X8938; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T36, T22.X8939; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T37, T21.X8940; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T33, T20.X8941; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T19.X8942; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T29, T18.X8943; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T35, T17.X8944; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T27, T16.X8945; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T34, T15.X8946; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T26, T14.X8947; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T32, T13.X8948; CM-NEXT: CF_END8949; CM-NEXT: PAD8950; CM-NEXT: Fetch clause starting at 22:8951; CM-NEXT: VTX_READ_128 T12.XYZW, T11.X, 16, #18952; CM-NEXT: VTX_READ_128 T11.XYZW, T11.X, 0, #18953; CM-NEXT: ALU clause starting at 26:8954; CM-NEXT: MOV * T11.X, KC0[2].Z,8955; CM-NEXT: ALU clause starting at 27:8956; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,8957; CM-NEXT: 240(3.363116e-43), 0(0.000000e+00)8958; CM-NEXT: LSHR T13.X, PV.W, literal.x,8959; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8960; CM-NEXT: 2(2.802597e-45), 224(3.138909e-43)8961; CM-NEXT: LSHR T14.X, PV.W, literal.x,8962; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8963; CM-NEXT: 2(2.802597e-45), 208(2.914701e-43)8964; CM-NEXT: LSHR T15.X, PV.W, literal.x,8965; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8966; CM-NEXT: 2(2.802597e-45), 192(2.690493e-43)8967; CM-NEXT: LSHR T16.X, PV.W, literal.x,8968; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8969; CM-NEXT: 2(2.802597e-45), 176(2.466285e-43)8970; CM-NEXT: LSHR T17.X, PV.W, literal.x,8971; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8972; CM-NEXT: 2(2.802597e-45), 160(2.242078e-43)8973; CM-NEXT: LSHR T18.X, PV.W, literal.x,8974; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8975; CM-NEXT: 2(2.802597e-45), 144(2.017870e-43)8976; CM-NEXT: LSHR T19.X, PV.W, literal.x,8977; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8978; CM-NEXT: 2(2.802597e-45), 128(1.793662e-43)8979; CM-NEXT: LSHR T20.X, PV.W, literal.x,8980; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,8981; CM-NEXT: 2(2.802597e-45), 112(1.569454e-43)8982; CM-NEXT: LSHR T21.X, PV.W, literal.x,8983; CM-NEXT: LSHR T0.Z, T11.X, literal.y,8984; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,8985; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)8986; CM-NEXT: 96(1.345247e-43), 0(0.000000e+00)8987; CM-NEXT: LSHR T22.X, PV.W, literal.x,8988; CM-NEXT: LSHR T0.Y, T11.X, literal.y,8989; CM-NEXT: LSHR T1.Z, T11.Y, literal.y,8990; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,8991; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)8992; CM-NEXT: 80(1.121039e-43), 0(0.000000e+00)8993; CM-NEXT: LSHR T23.X, PV.W, literal.x,8994; CM-NEXT: LSHR T1.Y, T11.Z, literal.y,8995; CM-NEXT: LSHR T2.Z, T11.Z, literal.z,8996; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.w,8997; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)8998; CM-NEXT: 16(2.242078e-44), 64(8.968310e-44)8999; CM-NEXT: LSHR T24.X, PV.W, literal.x,9000; CM-NEXT: LSHR T2.Y, T11.W, literal.y,9001; CM-NEXT: LSHR T3.Z, T11.W, literal.z,9002; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.w,9003; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)9004; CM-NEXT: 8(1.121039e-44), 48(6.726233e-44)9005; CM-NEXT: LSHR T25.X, PV.W, literal.x,9006; CM-NEXT: LSHR T3.Y, T12.X, literal.y,9007; CM-NEXT: LSHR T4.Z, T12.Y, literal.y,9008; CM-NEXT: LSHR * T0.W, T12.X, literal.z,9009; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)9010; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)9011; CM-NEXT: BFE_INT T26.X, T12.W, 0.0, literal.x,9012; CM-NEXT: LSHR T4.Y, T12.Y, literal.x,9013; CM-NEXT: ADD_INT T5.Z, KC0[2].Y, literal.y,9014; CM-NEXT: LSHR * T1.W, T11.Y, literal.x, BS:VEC_120/SCL_2129015; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)9016; CM-NEXT: BFE_INT T27.X, T12.Z, 0.0, literal.x,9017; CM-NEXT: ASHR T26.Y, PV.X, literal.y,9018; CM-NEXT: ADD_INT T6.Z, KC0[2].Y, literal.z,9019; CM-NEXT: LSHR * T2.W, T12.W, literal.x,9020; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9021; CM-NEXT: 32(4.484155e-44), 0(0.000000e+00)9022; CM-NEXT: BFE_INT T28.X, T11.Y, 0.0, literal.x,9023; CM-NEXT: ASHR T27.Y, PV.X, literal.y,9024; CM-NEXT: BFE_INT T26.Z, PV.W, 0.0, literal.x,9025; CM-NEXT: LSHR * T2.W, T12.Z, literal.x,9026; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9027; CM-NEXT: BFE_INT T29.X, T12.Y, 0.0, literal.x,9028; CM-NEXT: ASHR T28.Y, PV.X, literal.y,9029; CM-NEXT: BFE_INT T27.Z, PV.W, 0.0, literal.x,9030; CM-NEXT: ASHR * T26.W, PV.Z, literal.y,9031; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9032; CM-NEXT: LSHR T30.X, T6.Z, literal.x,9033; CM-NEXT: ASHR T29.Y, PV.X, literal.y,9034; CM-NEXT: BFE_INT T28.Z, T1.W, 0.0, literal.z,9035; CM-NEXT: ASHR * T27.W, PV.Z, literal.y,9036; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)9037; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)9038; CM-NEXT: LSHR T31.X, T5.Z, literal.x,9039; CM-NEXT: LSHR * T5.Y, T12.Z, literal.y, BS:VEC_120/SCL_2129040; CM-NEXT: 2(2.802597e-45), 16(2.242078e-44)9041; CM-NEXT: ALU clause starting at 112:9042; CM-NEXT: BFE_INT T29.Z, T4.Y, 0.0, literal.x,9043; CM-NEXT: ASHR * T32.W, T12.W, literal.y,9044; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9045; CM-NEXT: BFE_INT T33.X, T12.X, 0.0, literal.x,9046; CM-NEXT: LSHR T4.Y, T12.W, literal.y,9047; CM-NEXT: ASHR T32.Z, T12.W, literal.z,9048; CM-NEXT: ASHR * T34.W, T12.Z, literal.w,9049; CM-NEXT: 8(1.121039e-44), 16(2.242078e-44)9050; CM-NEXT: 24(3.363116e-44), 31(4.344025e-44)9051; CM-NEXT: BFE_INT T32.X, PV.Y, 0.0, literal.x,9052; CM-NEXT: ASHR T33.Y, PV.X, literal.y,9053; CM-NEXT: ASHR T34.Z, T12.Z, literal.z,9054; CM-NEXT: ASHR * T29.W, T29.Z, literal.y, BS:VEC_120/SCL_2129055; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9056; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)9057; CM-NEXT: BFE_INT T34.X, T5.Y, 0.0, literal.x,9058; CM-NEXT: ASHR T32.Y, PV.X, literal.y,9059; CM-NEXT: BFE_INT T33.Z, T0.W, 0.0, literal.x,9060; CM-NEXT: ASHR * T35.W, T12.Y, literal.y, BS:VEC_120/SCL_2129061; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9062; CM-NEXT: BFE_INT T36.X, T11.W, 0.0, literal.x,9063; CM-NEXT: ASHR T34.Y, PV.X, literal.y,9064; CM-NEXT: ASHR T35.Z, T12.Y, literal.z,9065; CM-NEXT: ASHR * T12.W, T12.X, literal.y,9066; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9067; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)9068; CM-NEXT: BFE_INT T35.X, T4.Z, 0.0, literal.x,9069; CM-NEXT: ASHR T36.Y, PV.X, literal.y,9070; CM-NEXT: ASHR T12.Z, T12.X, literal.z,9071; CM-NEXT: ASHR * T33.W, T33.Z, literal.y, BS:VEC_120/SCL_2129072; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9073; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)9074; CM-NEXT: BFE_INT T12.X, T3.Y, 0.0, literal.x,9075; CM-NEXT: ASHR T35.Y, PV.X, literal.y,9076; CM-NEXT: BFE_INT T36.Z, T3.Z, 0.0, literal.x,9077; CM-NEXT: ASHR * T37.W, T11.W, literal.y,9078; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9079; CM-NEXT: BFE_INT T38.X, T11.Z, 0.0, literal.x,9080; CM-NEXT: ASHR T12.Y, PV.X, literal.y,9081; CM-NEXT: ASHR T37.Z, T11.W, literal.z,9082; CM-NEXT: ASHR * T39.W, T11.Z, literal.y,9083; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9084; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)9085; CM-NEXT: BFE_INT T37.X, T2.Y, 0.0, literal.x,9086; CM-NEXT: ASHR T38.Y, PV.X, literal.y,9087; CM-NEXT: ASHR T39.Z, T11.Z, literal.z,9088; CM-NEXT: ASHR * T36.W, T36.Z, literal.y, BS:VEC_120/SCL_2129089; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9090; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)9091; CM-NEXT: BFE_INT T39.X, T2.Z, 0.0, literal.x,9092; CM-NEXT: ASHR T37.Y, PV.X, literal.y,9093; CM-NEXT: BFE_INT T38.Z, T1.Y, 0.0, literal.x,9094; CM-NEXT: ASHR * T40.W, T11.Y, literal.y, BS:VEC_120/SCL_2129095; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9096; CM-NEXT: BFE_INT T41.X, T11.X, 0.0, literal.x,9097; CM-NEXT: ASHR T39.Y, PV.X, literal.y,9098; CM-NEXT: ASHR T40.Z, T11.Y, literal.z,9099; CM-NEXT: ASHR * T11.W, T11.X, literal.y,9100; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9101; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)9102; CM-NEXT: BFE_INT T40.X, T1.Z, 0.0, literal.x,9103; CM-NEXT: ASHR T41.Y, PV.X, literal.y,9104; CM-NEXT: ASHR T11.Z, T11.X, literal.z,9105; CM-NEXT: ASHR * T38.W, T38.Z, literal.y, BS:VEC_120/SCL_2129106; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9107; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)9108; CM-NEXT: BFE_INT T11.X, T0.Y, 0.0, literal.x,9109; CM-NEXT: ASHR T40.Y, PV.X, literal.y,9110; CM-NEXT: BFE_INT T41.Z, T0.Z, 0.0, literal.x,9111; CM-NEXT: ASHR * T28.W, T28.Z, literal.y, BS:VEC_120/SCL_2129112; CM-NEXT: 8(1.121039e-44), 31(4.344025e-44)9113; CM-NEXT: LSHR T42.X, KC0[2].Y, literal.x,9114; CM-NEXT: ASHR T11.Y, PV.X, literal.y,9115; CM-NEXT: ASHR * T41.W, PV.Z, literal.y,9116; CM-NEXT: 2(2.802597e-45), 31(4.344025e-44)9117 %load = load <32 x i8>, ptr addrspace(1) %in9118 %ext = sext <32 x i8> %load to <32 x i64>9119 store <32 x i64> %ext, ptr addrspace(1) %out9120 ret void9121}9122 9123; XFUNC-LABEL: {{^}}global_zextload_v64i8_to_v64i64:9124; define amdgpu_kernel void @global_zextload_v64i8_to_v64i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {9125; %load = load <64 x i8>, ptr addrspace(1) %in9126; %ext = zext <64 x i8> %load to <64 x i64>9127; store <64 x i64> %ext, ptr addrspace(1) %out9128; ret void9129; }9130 9131; XFUNC-LABEL: {{^}}global_sextload_v64i8_to_v64i64:9132; define amdgpu_kernel void @global_sextload_v64i8_to_v64i64(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {9133; %load = load <64 x i8>, ptr addrspace(1) %in9134; %ext = sext <64 x i8> %load to <64 x i64>9135; store <64 x i64> %ext, ptr addrspace(1) %out9136; ret void9137; }9138 9139define amdgpu_kernel void @global_zextload_i8_to_i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {9140; GCN-NOHSA-SI-LABEL: global_zextload_i8_to_i16:9141; GCN-NOHSA-SI: ; %bb.0:9142; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x99143; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0009144; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -19145; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s69146; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s79147; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)9148; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s29149; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s39150; GCN-NOHSA-SI-NEXT: buffer_load_ubyte v0, off, s[8:11], 09151; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s09152; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s19153; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)9154; GCN-NOHSA-SI-NEXT: buffer_store_short v0, off, s[4:7], 09155; GCN-NOHSA-SI-NEXT: s_endpgm9156;9157; GCN-HSA-LABEL: global_zextload_i8_to_i16:9158; GCN-HSA: ; %bb.0:9159; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x09160; GCN-HSA-NEXT: s_add_i32 s12, s12, s179161; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s139162; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 89163; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)9164; GCN-HSA-NEXT: v_mov_b32_e32 v0, s29165; GCN-HSA-NEXT: v_mov_b32_e32 v1, s39166; GCN-HSA-NEXT: flat_load_ubyte v2, v[0:1]9167; GCN-HSA-NEXT: v_mov_b32_e32 v0, s09168; GCN-HSA-NEXT: v_mov_b32_e32 v1, s19169; GCN-HSA-NEXT: s_waitcnt vmcnt(0)9170; GCN-HSA-NEXT: flat_store_short v[0:1], v29171; GCN-HSA-NEXT: s_endpgm9172;9173; GCN-NOHSA-VI-LABEL: global_zextload_i8_to_i16:9174; GCN-NOHSA-VI: ; %bb.0:9175; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x249176; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0009177; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -19178; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s69179; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s79180; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)9181; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s29182; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s39183; GCN-NOHSA-VI-NEXT: buffer_load_ubyte v0, off, s[8:11], 09184; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s09185; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s19186; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)9187; GCN-NOHSA-VI-NEXT: buffer_store_short v0, off, s[4:7], 09188; GCN-NOHSA-VI-NEXT: s_endpgm9189;9190; EG-LABEL: global_zextload_i8_to_i16:9191; EG: ; %bb.0:9192; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]9193; EG-NEXT: TEX 0 @69194; EG-NEXT: ALU 10, @9, KC0[CB0:0-32], KC1[]9195; EG-NEXT: MEM_RAT MSKOR T0.XW, T1.X9196; EG-NEXT: CF_END9197; EG-NEXT: PAD9198; EG-NEXT: Fetch clause starting at 6:9199; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #19200; EG-NEXT: ALU clause starting at 8:9201; EG-NEXT: MOV * T0.X, KC0[2].Z,9202; EG-NEXT: ALU clause starting at 9:9203; EG-NEXT: AND_INT * T0.W, KC0[2].Y, literal.x,9204; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)9205; EG-NEXT: LSHL * T0.W, PV.W, literal.x,9206; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)9207; EG-NEXT: LSHL T0.X, T0.X, PV.W,9208; EG-NEXT: LSHL * T0.W, literal.x, PV.W,9209; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)9210; EG-NEXT: MOV T0.Y, 0.0,9211; EG-NEXT: MOV * T0.Z, 0.0,9212; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,9213; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)9214;9215; CM-LABEL: global_zextload_i8_to_i16:9216; CM: ; %bb.0:9217; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]9218; CM-NEXT: TEX 0 @69219; CM-NEXT: ALU 10, @9, KC0[CB0:0-32], KC1[]9220; CM-NEXT: MEM_RAT MSKOR T0.XW, T1.X9221; CM-NEXT: CF_END9222; CM-NEXT: PAD9223; CM-NEXT: Fetch clause starting at 6:9224; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #19225; CM-NEXT: ALU clause starting at 8:9226; CM-NEXT: MOV * T0.X, KC0[2].Z,9227; CM-NEXT: ALU clause starting at 9:9228; CM-NEXT: AND_INT * T0.W, KC0[2].Y, literal.x,9229; CM-NEXT: 3(4.203895e-45), 0(0.000000e+00)9230; CM-NEXT: LSHL * T0.W, PV.W, literal.x,9231; CM-NEXT: 3(4.203895e-45), 0(0.000000e+00)9232; CM-NEXT: LSHL T0.X, T0.X, PV.W,9233; CM-NEXT: LSHL * T0.W, literal.x, PV.W,9234; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)9235; CM-NEXT: MOV T0.Y, 0.0,9236; CM-NEXT: MOV * T0.Z, 0.0,9237; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,9238; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)9239 %a = load i8, ptr addrspace(1) %in9240 %ext = zext i8 %a to i169241 store i16 %ext, ptr addrspace(1) %out9242 ret void9243}9244 9245define amdgpu_kernel void @global_sextload_i8_to_i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {9246; GCN-NOHSA-SI-LABEL: global_sextload_i8_to_i16:9247; GCN-NOHSA-SI: ; %bb.0:9248; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x99249; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0009250; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -19251; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s69252; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s79253; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)9254; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s29255; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s39256; GCN-NOHSA-SI-NEXT: buffer_load_sbyte v0, off, s[8:11], 09257; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s09258; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s19259; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)9260; GCN-NOHSA-SI-NEXT: buffer_store_short v0, off, s[4:7], 09261; GCN-NOHSA-SI-NEXT: s_endpgm9262;9263; GCN-HSA-LABEL: global_sextload_i8_to_i16:9264; GCN-HSA: ; %bb.0:9265; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x09266; GCN-HSA-NEXT: s_add_i32 s12, s12, s179267; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s139268; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 89269; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)9270; GCN-HSA-NEXT: v_mov_b32_e32 v0, s29271; GCN-HSA-NEXT: v_mov_b32_e32 v1, s39272; GCN-HSA-NEXT: flat_load_sbyte v2, v[0:1]9273; GCN-HSA-NEXT: v_mov_b32_e32 v0, s09274; GCN-HSA-NEXT: v_mov_b32_e32 v1, s19275; GCN-HSA-NEXT: s_waitcnt vmcnt(0)9276; GCN-HSA-NEXT: flat_store_short v[0:1], v29277; GCN-HSA-NEXT: s_endpgm9278;9279; GCN-NOHSA-VI-LABEL: global_sextload_i8_to_i16:9280; GCN-NOHSA-VI: ; %bb.0:9281; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x249282; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0009283; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -19284; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s69285; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s79286; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)9287; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s29288; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s39289; GCN-NOHSA-VI-NEXT: buffer_load_sbyte v0, off, s[8:11], 09290; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s09291; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s19292; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)9293; GCN-NOHSA-VI-NEXT: buffer_store_short v0, off, s[4:7], 09294; GCN-NOHSA-VI-NEXT: s_endpgm9295;9296; EG-LABEL: global_sextload_i8_to_i16:9297; EG: ; %bb.0:9298; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]9299; EG-NEXT: TEX 0 @69300; EG-NEXT: ALU 12, @9, KC0[CB0:0-32], KC1[]9301; EG-NEXT: MEM_RAT MSKOR T0.XW, T1.X9302; EG-NEXT: CF_END9303; EG-NEXT: PAD9304; EG-NEXT: Fetch clause starting at 6:9305; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #19306; EG-NEXT: ALU clause starting at 8:9307; EG-NEXT: MOV * T0.X, KC0[2].Z,9308; EG-NEXT: ALU clause starting at 9:9309; EG-NEXT: BFE_INT T0.W, T0.X, 0.0, literal.x,9310; EG-NEXT: AND_INT * T1.W, KC0[2].Y, literal.y,9311; EG-NEXT: 8(1.121039e-44), 3(4.203895e-45)9312; EG-NEXT: AND_INT T0.W, PV.W, literal.x,9313; EG-NEXT: LSHL * T1.W, PS, literal.y,9314; EG-NEXT: 65535(9.183409e-41), 3(4.203895e-45)9315; EG-NEXT: LSHL T0.X, PV.W, PS,9316; EG-NEXT: LSHL * T0.W, literal.x, PS,9317; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)9318; EG-NEXT: MOV T0.Y, 0.0,9319; EG-NEXT: MOV * T0.Z, 0.0,9320; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,9321; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)9322;9323; CM-LABEL: global_sextload_i8_to_i16:9324; CM: ; %bb.0:9325; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]9326; CM-NEXT: TEX 0 @69327; CM-NEXT: ALU 12, @9, KC0[CB0:0-32], KC1[]9328; CM-NEXT: MEM_RAT MSKOR T0.XW, T1.X9329; CM-NEXT: CF_END9330; CM-NEXT: PAD9331; CM-NEXT: Fetch clause starting at 6:9332; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #19333; CM-NEXT: ALU clause starting at 8:9334; CM-NEXT: MOV * T0.X, KC0[2].Z,9335; CM-NEXT: ALU clause starting at 9:9336; CM-NEXT: AND_INT T0.Z, KC0[2].Y, literal.x,9337; CM-NEXT: BFE_INT * T0.W, T0.X, 0.0, literal.y,9338; CM-NEXT: 3(4.203895e-45), 8(1.121039e-44)9339; CM-NEXT: AND_INT T1.Z, PV.W, literal.x,9340; CM-NEXT: LSHL * T0.W, PV.Z, literal.y,9341; CM-NEXT: 65535(9.183409e-41), 3(4.203895e-45)9342; CM-NEXT: LSHL T0.X, PV.Z, PV.W,9343; CM-NEXT: LSHL * T0.W, literal.x, PV.W,9344; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)9345; CM-NEXT: MOV T0.Y, 0.0,9346; CM-NEXT: MOV * T0.Z, 0.0,9347; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,9348; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)9349 %a = load i8, ptr addrspace(1) %in9350 %ext = sext i8 %a to i169351 store i16 %ext, ptr addrspace(1) %out9352 ret void9353}9354 9355define amdgpu_kernel void @global_zextload_v1i8_to_v1i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {9356; GCN-NOHSA-SI-LABEL: global_zextload_v1i8_to_v1i16:9357; GCN-NOHSA-SI: ; %bb.0:9358; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x99359; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0009360; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -19361; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s69362; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s79363; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)9364; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s29365; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s39366; GCN-NOHSA-SI-NEXT: buffer_load_ubyte v0, off, s[8:11], 09367; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s09368; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s19369; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)9370; GCN-NOHSA-SI-NEXT: buffer_store_short v0, off, s[4:7], 09371; GCN-NOHSA-SI-NEXT: s_endpgm9372;9373; GCN-HSA-LABEL: global_zextload_v1i8_to_v1i16:9374; GCN-HSA: ; %bb.0:9375; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x09376; GCN-HSA-NEXT: s_add_i32 s12, s12, s179377; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s139378; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 89379; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)9380; GCN-HSA-NEXT: v_mov_b32_e32 v0, s29381; GCN-HSA-NEXT: v_mov_b32_e32 v1, s39382; GCN-HSA-NEXT: flat_load_ubyte v2, v[0:1]9383; GCN-HSA-NEXT: v_mov_b32_e32 v0, s09384; GCN-HSA-NEXT: v_mov_b32_e32 v1, s19385; GCN-HSA-NEXT: s_waitcnt vmcnt(0)9386; GCN-HSA-NEXT: flat_store_short v[0:1], v29387; GCN-HSA-NEXT: s_endpgm9388;9389; GCN-NOHSA-VI-LABEL: global_zextload_v1i8_to_v1i16:9390; GCN-NOHSA-VI: ; %bb.0:9391; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x249392; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0009393; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -19394; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s69395; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s79396; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)9397; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s29398; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s39399; GCN-NOHSA-VI-NEXT: buffer_load_ubyte v0, off, s[8:11], 09400; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s09401; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s19402; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)9403; GCN-NOHSA-VI-NEXT: buffer_store_short v0, off, s[4:7], 09404; GCN-NOHSA-VI-NEXT: s_endpgm9405;9406; EG-LABEL: global_zextload_v1i8_to_v1i16:9407; EG: ; %bb.0:9408; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]9409; EG-NEXT: TEX 0 @69410; EG-NEXT: ALU 10, @9, KC0[CB0:0-32], KC1[]9411; EG-NEXT: MEM_RAT MSKOR T0.XW, T1.X9412; EG-NEXT: CF_END9413; EG-NEXT: PAD9414; EG-NEXT: Fetch clause starting at 6:9415; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #19416; EG-NEXT: ALU clause starting at 8:9417; EG-NEXT: MOV * T0.X, KC0[2].Z,9418; EG-NEXT: ALU clause starting at 9:9419; EG-NEXT: AND_INT * T0.W, KC0[2].Y, literal.x,9420; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)9421; EG-NEXT: LSHL * T0.W, PV.W, literal.x,9422; EG-NEXT: 3(4.203895e-45), 0(0.000000e+00)9423; EG-NEXT: LSHL T0.X, T0.X, PV.W,9424; EG-NEXT: LSHL * T0.W, literal.x, PV.W,9425; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)9426; EG-NEXT: MOV T0.Y, 0.0,9427; EG-NEXT: MOV * T0.Z, 0.0,9428; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,9429; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)9430;9431; CM-LABEL: global_zextload_v1i8_to_v1i16:9432; CM: ; %bb.0:9433; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]9434; CM-NEXT: TEX 0 @69435; CM-NEXT: ALU 10, @9, KC0[CB0:0-32], KC1[]9436; CM-NEXT: MEM_RAT MSKOR T0.XW, T1.X9437; CM-NEXT: CF_END9438; CM-NEXT: PAD9439; CM-NEXT: Fetch clause starting at 6:9440; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #19441; CM-NEXT: ALU clause starting at 8:9442; CM-NEXT: MOV * T0.X, KC0[2].Z,9443; CM-NEXT: ALU clause starting at 9:9444; CM-NEXT: AND_INT * T0.W, KC0[2].Y, literal.x,9445; CM-NEXT: 3(4.203895e-45), 0(0.000000e+00)9446; CM-NEXT: LSHL * T0.W, PV.W, literal.x,9447; CM-NEXT: 3(4.203895e-45), 0(0.000000e+00)9448; CM-NEXT: LSHL T0.X, T0.X, PV.W,9449; CM-NEXT: LSHL * T0.W, literal.x, PV.W,9450; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)9451; CM-NEXT: MOV T0.Y, 0.0,9452; CM-NEXT: MOV * T0.Z, 0.0,9453; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,9454; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)9455 %load = load <1 x i8>, ptr addrspace(1) %in9456 %ext = zext <1 x i8> %load to <1 x i16>9457 store <1 x i16> %ext, ptr addrspace(1) %out9458 ret void9459}9460 9461define amdgpu_kernel void @global_sextload_v1i8_to_v1i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {9462; GCN-NOHSA-SI-LABEL: global_sextload_v1i8_to_v1i16:9463; GCN-NOHSA-SI: ; %bb.0:9464; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x99465; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0009466; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -19467; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s69468; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s79469; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)9470; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s29471; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s39472; GCN-NOHSA-SI-NEXT: buffer_load_sbyte v0, off, s[8:11], 09473; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s09474; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s19475; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)9476; GCN-NOHSA-SI-NEXT: buffer_store_short v0, off, s[4:7], 09477; GCN-NOHSA-SI-NEXT: s_endpgm9478;9479; GCN-HSA-LABEL: global_sextload_v1i8_to_v1i16:9480; GCN-HSA: ; %bb.0:9481; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x09482; GCN-HSA-NEXT: s_add_i32 s12, s12, s179483; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s139484; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 89485; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)9486; GCN-HSA-NEXT: v_mov_b32_e32 v0, s29487; GCN-HSA-NEXT: v_mov_b32_e32 v1, s39488; GCN-HSA-NEXT: flat_load_sbyte v2, v[0:1]9489; GCN-HSA-NEXT: v_mov_b32_e32 v0, s09490; GCN-HSA-NEXT: v_mov_b32_e32 v1, s19491; GCN-HSA-NEXT: s_waitcnt vmcnt(0)9492; GCN-HSA-NEXT: flat_store_short v[0:1], v29493; GCN-HSA-NEXT: s_endpgm9494;9495; GCN-NOHSA-VI-LABEL: global_sextload_v1i8_to_v1i16:9496; GCN-NOHSA-VI: ; %bb.0:9497; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x249498; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0009499; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -19500; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s69501; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s79502; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)9503; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s29504; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s39505; GCN-NOHSA-VI-NEXT: buffer_load_sbyte v0, off, s[8:11], 09506; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s09507; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s19508; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)9509; GCN-NOHSA-VI-NEXT: buffer_store_short v0, off, s[4:7], 09510; GCN-NOHSA-VI-NEXT: s_endpgm9511;9512; EG-LABEL: global_sextload_v1i8_to_v1i16:9513; EG: ; %bb.0:9514; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]9515; EG-NEXT: TEX 0 @69516; EG-NEXT: ALU 12, @9, KC0[CB0:0-32], KC1[]9517; EG-NEXT: MEM_RAT MSKOR T0.XW, T1.X9518; EG-NEXT: CF_END9519; EG-NEXT: PAD9520; EG-NEXT: Fetch clause starting at 6:9521; EG-NEXT: VTX_READ_8 T0.X, T0.X, 0, #19522; EG-NEXT: ALU clause starting at 8:9523; EG-NEXT: MOV * T0.X, KC0[2].Z,9524; EG-NEXT: ALU clause starting at 9:9525; EG-NEXT: BFE_INT T0.W, T0.X, 0.0, literal.x,9526; EG-NEXT: AND_INT * T1.W, KC0[2].Y, literal.y,9527; EG-NEXT: 8(1.121039e-44), 3(4.203895e-45)9528; EG-NEXT: AND_INT T0.W, PV.W, literal.x,9529; EG-NEXT: LSHL * T1.W, PS, literal.y,9530; EG-NEXT: 65535(9.183409e-41), 3(4.203895e-45)9531; EG-NEXT: LSHL T0.X, PV.W, PS,9532; EG-NEXT: LSHL * T0.W, literal.x, PS,9533; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)9534; EG-NEXT: MOV T0.Y, 0.0,9535; EG-NEXT: MOV * T0.Z, 0.0,9536; EG-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,9537; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)9538;9539; CM-LABEL: global_sextload_v1i8_to_v1i16:9540; CM: ; %bb.0:9541; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]9542; CM-NEXT: TEX 0 @69543; CM-NEXT: ALU 12, @9, KC0[CB0:0-32], KC1[]9544; CM-NEXT: MEM_RAT MSKOR T0.XW, T1.X9545; CM-NEXT: CF_END9546; CM-NEXT: PAD9547; CM-NEXT: Fetch clause starting at 6:9548; CM-NEXT: VTX_READ_8 T0.X, T0.X, 0, #19549; CM-NEXT: ALU clause starting at 8:9550; CM-NEXT: MOV * T0.X, KC0[2].Z,9551; CM-NEXT: ALU clause starting at 9:9552; CM-NEXT: AND_INT T0.Z, KC0[2].Y, literal.x,9553; CM-NEXT: BFE_INT * T0.W, T0.X, 0.0, literal.y,9554; CM-NEXT: 3(4.203895e-45), 8(1.121039e-44)9555; CM-NEXT: AND_INT T1.Z, PV.W, literal.x,9556; CM-NEXT: LSHL * T0.W, PV.Z, literal.y,9557; CM-NEXT: 65535(9.183409e-41), 3(4.203895e-45)9558; CM-NEXT: LSHL T0.X, PV.Z, PV.W,9559; CM-NEXT: LSHL * T0.W, literal.x, PV.W,9560; CM-NEXT: 65535(9.183409e-41), 0(0.000000e+00)9561; CM-NEXT: MOV T0.Y, 0.0,9562; CM-NEXT: MOV * T0.Z, 0.0,9563; CM-NEXT: LSHR * T1.X, KC0[2].Y, literal.x,9564; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)9565 %load = load <1 x i8>, ptr addrspace(1) %in9566 %ext = sext <1 x i8> %load to <1 x i16>9567 store <1 x i16> %ext, ptr addrspace(1) %out9568 ret void9569}9570 9571define amdgpu_kernel void @global_zextload_v2i8_to_v2i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {9572; GCN-NOHSA-SI-LABEL: global_zextload_v2i8_to_v2i16:9573; GCN-NOHSA-SI: ; %bb.0:9574; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x99575; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0009576; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -19577; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s69578; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s79579; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)9580; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s29581; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s39582; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 09583; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s09584; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s19585; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)9586; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v1, 8, v09587; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v0, v0, v19588; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xff00ff, v09589; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 09590; GCN-NOHSA-SI-NEXT: s_endpgm9591;9592; GCN-HSA-LABEL: global_zextload_v2i8_to_v2i16:9593; GCN-HSA: ; %bb.0:9594; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x09595; GCN-HSA-NEXT: s_add_i32 s12, s12, s179596; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s139597; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 89598; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)9599; GCN-HSA-NEXT: v_mov_b32_e32 v0, s29600; GCN-HSA-NEXT: v_mov_b32_e32 v1, s39601; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]9602; GCN-HSA-NEXT: v_mov_b32_e32 v0, s09603; GCN-HSA-NEXT: v_mov_b32_e32 v1, s19604; GCN-HSA-NEXT: s_waitcnt vmcnt(0)9605; GCN-HSA-NEXT: v_lshlrev_b32_e32 v3, 8, v29606; GCN-HSA-NEXT: v_or_b32_e32 v2, v2, v39607; GCN-HSA-NEXT: v_and_b32_e32 v2, 0xff00ff, v29608; GCN-HSA-NEXT: flat_store_dword v[0:1], v29609; GCN-HSA-NEXT: s_endpgm9610;9611; GCN-NOHSA-VI-LABEL: global_zextload_v2i8_to_v2i16:9612; GCN-NOHSA-VI: ; %bb.0:9613; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x249614; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0009615; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -19616; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s69617; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s79618; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)9619; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s29620; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s39621; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 09622; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s09623; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s19624; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)9625; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v1, 8, v09626; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v1, 0xff0000, v19627; GCN-NOHSA-VI-NEXT: v_or_b32_sdwa v0, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD9628; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 09629; GCN-NOHSA-VI-NEXT: s_endpgm9630;9631; EG-LABEL: global_zextload_v2i8_to_v2i16:9632; EG: ; %bb.0:9633; EG-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]9634; EG-NEXT: TEX 0 @69635; EG-NEXT: ALU 7, @9, KC0[CB0:0-32], KC1[]9636; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.X, T6.X, 19637; EG-NEXT: CF_END9638; EG-NEXT: PAD9639; EG-NEXT: Fetch clause starting at 6:9640; EG-NEXT: VTX_READ_16 T5.X, T5.X, 0, #19641; EG-NEXT: ALU clause starting at 8:9642; EG-NEXT: MOV * T5.X, KC0[2].Z,9643; EG-NEXT: ALU clause starting at 9:9644; EG-NEXT: LSHL * T0.W, T5.X, literal.x,9645; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)9646; EG-NEXT: AND_INT T0.W, PV.W, literal.x,9647; EG-NEXT: AND_INT * T1.W, T5.X, literal.y,9648; EG-NEXT: 16711680(2.341805e-38), 255(3.573311e-43)9649; EG-NEXT: OR_INT T5.X, PS, PV.W,9650; EG-NEXT: LSHR * T6.X, KC0[2].Y, literal.x,9651; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)9652;9653; CM-LABEL: global_zextload_v2i8_to_v2i16:9654; CM: ; %bb.0:9655; CM-NEXT: ALU 0, @8, KC0[CB0:0-32], KC1[]9656; CM-NEXT: TEX 0 @69657; CM-NEXT: ALU 7, @9, KC0[CB0:0-32], KC1[]9658; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5.X, T6.X9659; CM-NEXT: CF_END9660; CM-NEXT: PAD9661; CM-NEXT: Fetch clause starting at 6:9662; CM-NEXT: VTX_READ_16 T5.X, T5.X, 0, #19663; CM-NEXT: ALU clause starting at 8:9664; CM-NEXT: MOV * T5.X, KC0[2].Z,9665; CM-NEXT: ALU clause starting at 9:9666; CM-NEXT: LSHL * T0.W, T5.X, literal.x,9667; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)9668; CM-NEXT: AND_INT T0.Z, PV.W, literal.x,9669; CM-NEXT: AND_INT * T0.W, T5.X, literal.y,9670; CM-NEXT: 16711680(2.341805e-38), 255(3.573311e-43)9671; CM-NEXT: OR_INT * T5.X, PV.W, PV.Z,9672; CM-NEXT: LSHR * T6.X, KC0[2].Y, literal.x,9673; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)9674 %load = load <2 x i8>, ptr addrspace(1) %in9675 %ext = zext <2 x i8> %load to <2 x i16>9676 store <2 x i16> %ext, ptr addrspace(1) %out9677 ret void9678}9679 9680define amdgpu_kernel void @global_sextload_v2i8_to_v2i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {9681; GCN-NOHSA-SI-LABEL: global_sextload_v2i8_to_v2i16:9682; GCN-NOHSA-SI: ; %bb.0:9683; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x99684; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0009685; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -19686; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s69687; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s79688; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)9689; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s29690; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s39691; GCN-NOHSA-SI-NEXT: buffer_load_ushort v0, off, s[8:11], 09692; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s09693; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s19694; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)9695; GCN-NOHSA-SI-NEXT: v_bfe_i32 v1, v0, 8, 89696; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 89697; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v1, 16, v19698; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v09699; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v0, v0, v19700; GCN-NOHSA-SI-NEXT: buffer_store_dword v0, off, s[4:7], 09701; GCN-NOHSA-SI-NEXT: s_endpgm9702;9703; GCN-HSA-LABEL: global_sextload_v2i8_to_v2i16:9704; GCN-HSA: ; %bb.0:9705; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x09706; GCN-HSA-NEXT: s_add_i32 s12, s12, s179707; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s139708; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 89709; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)9710; GCN-HSA-NEXT: v_mov_b32_e32 v0, s29711; GCN-HSA-NEXT: v_mov_b32_e32 v1, s39712; GCN-HSA-NEXT: flat_load_ushort v2, v[0:1]9713; GCN-HSA-NEXT: v_mov_b32_e32 v0, s09714; GCN-HSA-NEXT: v_mov_b32_e32 v1, s19715; GCN-HSA-NEXT: s_waitcnt vmcnt(0)9716; GCN-HSA-NEXT: v_bfe_i32 v3, v2, 8, 89717; GCN-HSA-NEXT: v_bfe_i32 v2, v2, 0, 89718; GCN-HSA-NEXT: v_lshlrev_b32_e32 v3, 16, v39719; GCN-HSA-NEXT: v_and_b32_e32 v2, 0xffff, v29720; GCN-HSA-NEXT: v_or_b32_e32 v2, v2, v39721; GCN-HSA-NEXT: flat_store_dword v[0:1], v29722; GCN-HSA-NEXT: s_endpgm9723;9724; GCN-NOHSA-VI-LABEL: global_sextload_v2i8_to_v2i16:9725; GCN-NOHSA-VI: ; %bb.0:9726; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x249727; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0009728; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -19729; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s69730; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s79731; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)9732; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s29733; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s39734; GCN-NOHSA-VI-NEXT: buffer_load_ushort v0, off, s[8:11], 09735; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 0xffff9736; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, 89737; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s09738; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s19739; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)9740; GCN-NOHSA-VI-NEXT: v_and_b32_sdwa v1, v1, sext(v0) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_09741; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_sdwa v0, v2, sext(v0) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_09742; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v0, 0xffff0000, v09743; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v0, v1, v09744; GCN-NOHSA-VI-NEXT: buffer_store_dword v0, off, s[4:7], 09745; GCN-NOHSA-VI-NEXT: s_endpgm9746;9747; EG-LABEL: global_sextload_v2i8_to_v2i16:9748; EG: ; %bb.0:9749; EG-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]9750; EG-NEXT: TEX 0 @69751; EG-NEXT: ALU 16, @10, KC0[CB0:0-32], KC1[]9752; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T5.X, T6.X, 19753; EG-NEXT: CF_END9754; EG-NEXT: PAD9755; EG-NEXT: Fetch clause starting at 6:9756; EG-NEXT: VTX_READ_16 T5.X, T5.X, 0, #19757; EG-NEXT: ALU clause starting at 8:9758; EG-NEXT: MOV * T0.Y, T2.X,9759; EG-NEXT: MOV * T5.X, KC0[2].Z,9760; EG-NEXT: ALU clause starting at 10:9761; EG-NEXT: AND_INT T0.W, T5.X, literal.x,9762; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,9763; EG-NEXT: 65535(9.183409e-41), -65536(nan)9764; EG-NEXT: OR_INT * T0.W, PS, PV.W,9765; EG-NEXT: MOV * T2.X, PV.W,9766; EG-NEXT: MOV * T0.Y, PV.X,9767; EG-NEXT: LSHR * T1.W, PV.Y, literal.x,9768; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)9769; EG-NEXT: BFE_INT T0.Z, T0.W, 0.0, literal.x,9770; EG-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,9771; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)9772; EG-NEXT: LSHL T0.W, PV.W, literal.x,9773; EG-NEXT: AND_INT * T1.W, PV.Z, literal.y,9774; EG-NEXT: 16(2.242078e-44), 65535(9.183409e-41)9775; EG-NEXT: OR_INT T5.X, PS, PV.W,9776; EG-NEXT: LSHR * T6.X, KC0[2].Y, literal.x,9777; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)9778;9779; CM-LABEL: global_sextload_v2i8_to_v2i16:9780; CM: ; %bb.0:9781; CM-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]9782; CM-NEXT: TEX 0 @69783; CM-NEXT: ALU 16, @10, KC0[CB0:0-32], KC1[]9784; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T5.X, T6.X9785; CM-NEXT: CF_END9786; CM-NEXT: PAD9787; CM-NEXT: Fetch clause starting at 6:9788; CM-NEXT: VTX_READ_16 T5.X, T5.X, 0, #19789; CM-NEXT: ALU clause starting at 8:9790; CM-NEXT: MOV * T0.Y, T2.X,9791; CM-NEXT: MOV * T5.X, KC0[2].Z,9792; CM-NEXT: ALU clause starting at 10:9793; CM-NEXT: AND_INT T0.Z, T5.X, literal.x,9794; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,9795; CM-NEXT: 65535(9.183409e-41), -65536(nan)9796; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,9797; CM-NEXT: MOV * T2.X, PV.W,9798; CM-NEXT: MOV * T0.Y, PV.X,9799; CM-NEXT: LSHR * T1.W, PV.Y, literal.x,9800; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)9801; CM-NEXT: BFE_INT T0.Z, T0.W, 0.0, literal.x,9802; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,9803; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)9804; CM-NEXT: LSHL T1.Z, PV.W, literal.x,9805; CM-NEXT: AND_INT * T0.W, PV.Z, literal.y,9806; CM-NEXT: 16(2.242078e-44), 65535(9.183409e-41)9807; CM-NEXT: OR_INT * T5.X, PV.W, PV.Z,9808; CM-NEXT: LSHR * T6.X, KC0[2].Y, literal.x,9809; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)9810 %load = load <2 x i8>, ptr addrspace(1) %in9811 %ext = sext <2 x i8> %load to <2 x i16>9812 store <2 x i16> %ext, ptr addrspace(1) %out9813 ret void9814}9815 9816define amdgpu_kernel void @global_zextload_v4i8_to_v4i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {9817; GCN-NOHSA-SI-LABEL: global_zextload_v4i8_to_v4i16:9818; GCN-NOHSA-SI: ; %bb.0:9819; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x99820; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0009821; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -19822; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s69823; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s79824; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)9825; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s29826; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s39827; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 09828; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s09829; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s19830; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)9831; GCN-NOHSA-SI-NEXT: v_lshrrev_b32_e32 v1, 24, v09832; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v2, 0xff00, v09833; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v3, 0xff, v09834; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v2, 8, v29835; GCN-NOHSA-SI-NEXT: v_lshr_b64 v[0:1], v[0:1], 169836; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v1, v3, v29837; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v2, 0xff00ff, v09838; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[1:2], off, s[4:7], 09839; GCN-NOHSA-SI-NEXT: s_endpgm9840;9841; GCN-HSA-LABEL: global_zextload_v4i8_to_v4i16:9842; GCN-HSA: ; %bb.0:9843; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x09844; GCN-HSA-NEXT: s_add_i32 s12, s12, s179845; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s139846; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 89847; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)9848; GCN-HSA-NEXT: v_mov_b32_e32 v0, s29849; GCN-HSA-NEXT: v_mov_b32_e32 v1, s39850; GCN-HSA-NEXT: flat_load_dword v0, v[0:1]9851; GCN-HSA-NEXT: v_mov_b32_e32 v2, s09852; GCN-HSA-NEXT: v_mov_b32_e32 v3, s19853; GCN-HSA-NEXT: s_waitcnt vmcnt(0)9854; GCN-HSA-NEXT: v_lshrrev_b32_e32 v1, 24, v09855; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xff00, v09856; GCN-HSA-NEXT: v_and_b32_e32 v5, 0xff, v09857; GCN-HSA-NEXT: v_lshr_b64 v[0:1], v[0:1], 169858; GCN-HSA-NEXT: v_lshlrev_b32_e32 v4, 8, v49859; GCN-HSA-NEXT: v_or_b32_e32 v4, v5, v49860; GCN-HSA-NEXT: v_and_b32_e32 v5, 0xff00ff, v09861; GCN-HSA-NEXT: flat_store_dwordx2 v[2:3], v[4:5]9862; GCN-HSA-NEXT: s_endpgm9863;9864; GCN-NOHSA-VI-LABEL: global_zextload_v4i8_to_v4i16:9865; GCN-NOHSA-VI: ; %bb.0:9866; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x249867; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf0009868; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -19869; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s69870; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s79871; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)9872; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s29873; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s39874; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 09875; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s09876; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s19877; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)9878; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v1, 24, v09879; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v2, 8, v09880; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v3, 0xff0000, v29881; GCN-NOHSA-VI-NEXT: v_lshrrev_b64 v[1:2], 16, v[0:1]9882; GCN-NOHSA-VI-NEXT: v_or_b32_sdwa v0, v0, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD9883; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v1, 0xff00ff, v19884; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 09885; GCN-NOHSA-VI-NEXT: s_endpgm9886;9887; EG-LABEL: global_zextload_v4i8_to_v4i16:9888; EG: ; %bb.0:9889; EG-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]9890; EG-NEXT: TEX 0 @69891; EG-NEXT: ALU 31, @10, KC0[CB0:0-32], KC1[]9892; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XY, T7.X, 19893; EG-NEXT: CF_END9894; EG-NEXT: PAD9895; EG-NEXT: Fetch clause starting at 6:9896; EG-NEXT: VTX_READ_32 T7.X, T7.X, 0, #19897; EG-NEXT: ALU clause starting at 8:9898; EG-NEXT: MOV * T0.Y, T4.X,9899; EG-NEXT: MOV * T7.X, KC0[2].Z,9900; EG-NEXT: ALU clause starting at 10:9901; EG-NEXT: AND_INT T0.W, T7.X, literal.x,9902; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,9903; EG-NEXT: 255(3.573311e-43), -65536(nan)9904; EG-NEXT: OR_INT * T0.W, PS, PV.W,9905; EG-NEXT: MOV * T4.X, PV.W,9906; EG-NEXT: MOV T0.Y, PV.X,9907; EG-NEXT: LSHL * T0.W, T7.X, literal.x,9908; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)9909; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,9910; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,9911; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)9912; EG-NEXT: OR_INT * T0.W, PV.W, PS,9913; EG-NEXT: MOV T4.X, PV.W,9914; EG-NEXT: MOV T0.Y, T5.X,9915; EG-NEXT: MOV * T0.W, literal.x,9916; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)9917; EG-NEXT: BFE_UINT T0.W, T7.X, literal.x, PV.W,9918; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,9919; EG-NEXT: 16(2.242078e-44), -65536(nan)9920; EG-NEXT: OR_INT * T0.W, PS, PV.W,9921; EG-NEXT: MOV * T5.X, PV.W,9922; EG-NEXT: MOV T0.Y, PV.X,9923; EG-NEXT: LSHR * T0.W, T7.X, literal.x,9924; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)9925; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,9926; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,9927; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)9928; EG-NEXT: LSHR T7.X, KC0[2].Y, literal.x,9929; EG-NEXT: OR_INT * T8.Y, PV.W, PS,9930; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)9931; EG-NEXT: MOV T5.X, PV.Y,9932; EG-NEXT: MOV * T8.X, T4.X,9933;9934; CM-LABEL: global_zextload_v4i8_to_v4i16:9935; CM: ; %bb.0:9936; CM-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]9937; CM-NEXT: TEX 0 @69938; CM-NEXT: ALU 31, @10, KC0[CB0:0-32], KC1[]9939; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T8, T7.X9940; CM-NEXT: CF_END9941; CM-NEXT: PAD9942; CM-NEXT: Fetch clause starting at 6:9943; CM-NEXT: VTX_READ_32 T7.X, T7.X, 0, #19944; CM-NEXT: ALU clause starting at 8:9945; CM-NEXT: MOV * T0.Y, T4.X,9946; CM-NEXT: MOV * T7.X, KC0[2].Z,9947; CM-NEXT: ALU clause starting at 10:9948; CM-NEXT: AND_INT T0.Z, T7.X, literal.x,9949; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,9950; CM-NEXT: 255(3.573311e-43), -65536(nan)9951; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,9952; CM-NEXT: MOV * T4.X, PV.W,9953; CM-NEXT: MOV T0.Y, PV.X,9954; CM-NEXT: LSHL * T0.W, T7.X, literal.x,9955; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)9956; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,9957; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,9958; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)9959; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,9960; CM-NEXT: MOV T4.X, PV.W,9961; CM-NEXT: MOV T0.Y, T5.X,9962; CM-NEXT: MOV * T0.W, literal.x,9963; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)9964; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,9965; CM-NEXT: BFE_UINT * T0.W, T7.X, literal.y, PV.W,9966; CM-NEXT: -65536(nan), 16(2.242078e-44)9967; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,9968; CM-NEXT: MOV * T5.X, PV.W,9969; CM-NEXT: MOV T0.Y, PV.X,9970; CM-NEXT: LSHR * T0.W, T7.X, literal.x,9971; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)9972; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,9973; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,9974; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)9975; CM-NEXT: LSHR T7.X, KC0[2].Y, literal.x,9976; CM-NEXT: OR_INT * T8.Y, PV.Z, PV.W,9977; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)9978; CM-NEXT: MOV * T5.X, PV.Y,9979; CM-NEXT: MOV * T8.X, T4.X,9980 %load = load <4 x i8>, ptr addrspace(1) %in9981 %ext = zext <4 x i8> %load to <4 x i16>9982 store <4 x i16> %ext, ptr addrspace(1) %out9983 ret void9984}9985 9986define amdgpu_kernel void @global_sextload_v4i8_to_v4i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {9987; GCN-NOHSA-SI-LABEL: global_sextload_v4i8_to_v4i16:9988; GCN-NOHSA-SI: ; %bb.0:9989; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x99990; GCN-NOHSA-SI-NEXT: s_mov_b32 s7, 0xf0009991; GCN-NOHSA-SI-NEXT: s_mov_b32 s6, -19992; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s69993; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s79994; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)9995; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s29996; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s39997; GCN-NOHSA-SI-NEXT: buffer_load_dword v0, off, s[8:11], 09998; GCN-NOHSA-SI-NEXT: s_mov_b32 s4, s09999; GCN-NOHSA-SI-NEXT: s_mov_b32 s5, s110000; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)10001; GCN-NOHSA-SI-NEXT: v_ashrrev_i32_e32 v1, 24, v010002; GCN-NOHSA-SI-NEXT: v_bfe_i32 v2, v0, 16, 810003; GCN-NOHSA-SI-NEXT: v_bfe_i32 v3, v0, 8, 810004; GCN-NOHSA-SI-NEXT: v_bfe_i32 v0, v0, 0, 810005; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v1, 16, v110006; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v2, 0xffff, v210007; GCN-NOHSA-SI-NEXT: v_lshlrev_b32_e32 v3, 16, v310008; GCN-NOHSA-SI-NEXT: v_and_b32_e32 v0, 0xffff, v010009; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v1, v2, v110010; GCN-NOHSA-SI-NEXT: v_or_b32_e32 v0, v0, v310011; GCN-NOHSA-SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 010012; GCN-NOHSA-SI-NEXT: s_endpgm10013;10014; GCN-HSA-LABEL: global_sextload_v4i8_to_v4i16:10015; GCN-HSA: ; %bb.0:10016; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x010017; GCN-HSA-NEXT: s_add_i32 s12, s12, s1710018; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s1310019; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 810020; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)10021; GCN-HSA-NEXT: v_mov_b32_e32 v0, s210022; GCN-HSA-NEXT: v_mov_b32_e32 v1, s310023; GCN-HSA-NEXT: flat_load_dword v2, v[0:1]10024; GCN-HSA-NEXT: v_mov_b32_e32 v0, s010025; GCN-HSA-NEXT: v_mov_b32_e32 v1, s110026; GCN-HSA-NEXT: s_waitcnt vmcnt(0)10027; GCN-HSA-NEXT: v_ashrrev_i32_e32 v3, 24, v210028; GCN-HSA-NEXT: v_bfe_i32 v4, v2, 16, 810029; GCN-HSA-NEXT: v_bfe_i32 v5, v2, 8, 810030; GCN-HSA-NEXT: v_bfe_i32 v2, v2, 0, 810031; GCN-HSA-NEXT: v_lshlrev_b32_e32 v3, 16, v310032; GCN-HSA-NEXT: v_and_b32_e32 v4, 0xffff, v410033; GCN-HSA-NEXT: v_lshlrev_b32_e32 v5, 16, v510034; GCN-HSA-NEXT: v_and_b32_e32 v2, 0xffff, v210035; GCN-HSA-NEXT: v_or_b32_e32 v3, v4, v310036; GCN-HSA-NEXT: v_or_b32_e32 v2, v2, v510037; GCN-HSA-NEXT: flat_store_dwordx2 v[0:1], v[2:3]10038; GCN-HSA-NEXT: s_endpgm10039;10040; GCN-NOHSA-VI-LABEL: global_sextload_v4i8_to_v4i16:10041; GCN-NOHSA-VI: ; %bb.0:10042; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x2410043; GCN-NOHSA-VI-NEXT: s_mov_b32 s7, 0xf00010044; GCN-NOHSA-VI-NEXT: s_mov_b32 s6, -110045; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s610046; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s710047; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)10048; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s210049; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s310050; GCN-NOHSA-VI-NEXT: buffer_load_dword v0, off, s[8:11], 010051; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, 810052; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, 0xffff10053; GCN-NOHSA-VI-NEXT: s_mov_b32 s4, s010054; GCN-NOHSA-VI-NEXT: s_mov_b32 s5, s110055; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)10056; GCN-NOHSA-VI-NEXT: v_lshrrev_b32_e32 v3, 16, v010057; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_sdwa v1, v1, sext(v0) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_010058; GCN-NOHSA-VI-NEXT: v_and_b32_sdwa v4, v2, sext(v0) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_010059; GCN-NOHSA-VI-NEXT: v_ashrrev_i32_e32 v0, 24, v010060; GCN-NOHSA-VI-NEXT: v_and_b32_e32 v1, 0xffff0000, v110061; GCN-NOHSA-VI-NEXT: v_lshlrev_b32_e32 v5, 16, v010062; GCN-NOHSA-VI-NEXT: v_and_b32_sdwa v2, v2, sext(v3) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_010063; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v0, v4, v110064; GCN-NOHSA-VI-NEXT: v_or_b32_e32 v1, v2, v510065; GCN-NOHSA-VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 010066; GCN-NOHSA-VI-NEXT: s_endpgm10067;10068; EG-LABEL: global_sextload_v4i8_to_v4i16:10069; EG: ; %bb.0:10070; EG-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]10071; EG-NEXT: TEX 0 @610072; EG-NEXT: ALU 37, @10, KC0[CB0:0-32], KC1[]10073; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T8.XY, T7.X, 110074; EG-NEXT: CF_END10075; EG-NEXT: PAD10076; EG-NEXT: Fetch clause starting at 6:10077; EG-NEXT: VTX_READ_32 T7.X, T7.X, 0, #110078; EG-NEXT: ALU clause starting at 8:10079; EG-NEXT: MOV * T0.Y, T4.X,10080; EG-NEXT: MOV * T7.X, KC0[2].Z,10081; EG-NEXT: ALU clause starting at 10:10082; EG-NEXT: BFE_INT * T0.W, T7.X, 0.0, literal.x,10083; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10084; EG-NEXT: AND_INT T0.W, PV.W, literal.x,10085; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,10086; EG-NEXT: 65535(9.183409e-41), -65536(nan)10087; EG-NEXT: OR_INT * T0.W, PS, PV.W,10088; EG-NEXT: MOV * T4.X, PV.W,10089; EG-NEXT: MOV T0.Y, PV.X,10090; EG-NEXT: LSHR * T0.W, T7.X, literal.x,10091; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10092; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,10093; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,10094; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)10095; EG-NEXT: LSHL * T0.W, PV.W, literal.x,10096; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)10097; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,10098; EG-NEXT: MOV T4.X, PV.W,10099; EG-NEXT: MOV T0.Y, T5.X,10100; EG-NEXT: LSHR * T0.W, T7.X, literal.x, BS:VEC_120/SCL_21210101; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)10102; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,10103; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,10104; EG-NEXT: 8(1.121039e-44), -65536(nan)10105; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,10106; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)10107; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,10108; EG-NEXT: MOV * T5.X, PV.W,10109; EG-NEXT: MOV T0.Y, PV.X,10110; EG-NEXT: ASHR * T0.W, T7.X, literal.x,10111; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)10112; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,10113; EG-NEXT: LSHL * T0.W, PV.W, literal.y,10114; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)10115; EG-NEXT: LSHR T7.X, KC0[2].Y, literal.x,10116; EG-NEXT: OR_INT * T8.Y, PV.W, PS,10117; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)10118; EG-NEXT: MOV T5.X, PV.Y,10119; EG-NEXT: MOV * T8.X, T4.X,10120;10121; CM-LABEL: global_sextload_v4i8_to_v4i16:10122; CM: ; %bb.0:10123; CM-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]10124; CM-NEXT: TEX 0 @610125; CM-NEXT: ALU 37, @10, KC0[CB0:0-32], KC1[]10126; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T8, T7.X10127; CM-NEXT: CF_END10128; CM-NEXT: PAD10129; CM-NEXT: Fetch clause starting at 6:10130; CM-NEXT: VTX_READ_32 T7.X, T7.X, 0, #110131; CM-NEXT: ALU clause starting at 8:10132; CM-NEXT: MOV * T0.Y, T4.X,10133; CM-NEXT: MOV * T7.X, KC0[2].Z,10134; CM-NEXT: ALU clause starting at 10:10135; CM-NEXT: BFE_INT * T0.W, T7.X, 0.0, literal.x,10136; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10137; CM-NEXT: AND_INT T0.Z, PV.W, literal.x,10138; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,10139; CM-NEXT: 65535(9.183409e-41), -65536(nan)10140; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,10141; CM-NEXT: MOV * T4.X, PV.W,10142; CM-NEXT: MOV T0.Y, PV.X,10143; CM-NEXT: LSHR * T0.W, T7.X, literal.x,10144; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10145; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,10146; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10147; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,10148; CM-NEXT: LSHL * T0.W, PV.W, literal.y,10149; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)10150; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,10151; CM-NEXT: MOV T4.X, PV.W,10152; CM-NEXT: MOV T0.Y, T5.X,10153; CM-NEXT: LSHR * T0.W, T7.X, literal.x, BS:VEC_120/SCL_21210154; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)10155; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,10156; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10157; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,10158; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,10159; CM-NEXT: -65536(nan), 65535(9.183409e-41)10160; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,10161; CM-NEXT: MOV * T5.X, PV.W,10162; CM-NEXT: MOV T0.Y, PV.X,10163; CM-NEXT: ASHR * T0.W, T7.X, literal.x,10164; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)10165; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10166; CM-NEXT: LSHL * T0.W, PV.W, literal.y,10167; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)10168; CM-NEXT: LSHR T7.X, KC0[2].Y, literal.x,10169; CM-NEXT: OR_INT * T8.Y, PV.Z, PV.W,10170; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)10171; CM-NEXT: MOV * T5.X, PV.Y,10172; CM-NEXT: MOV * T8.X, T4.X,10173 %load = load <4 x i8>, ptr addrspace(1) %in10174 %ext = sext <4 x i8> %load to <4 x i16>10175 store <4 x i16> %ext, ptr addrspace(1) %out10176 ret void10177}10178 10179define amdgpu_kernel void @global_zextload_v8i8_to_v8i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {10180; GCN-NOHSA-SI-LABEL: global_zextload_v8i8_to_v8i16:10181; GCN-NOHSA-SI: ; %bb.0:10182; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x910183; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf00010184; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -110185; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s210186; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s310187; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)10188; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s610189; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s710190; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 010191; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)10192; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s0, v010193; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s6, v110194; GCN-NOHSA-SI-NEXT: s_lshr_b32 s1, s0, 2410195; GCN-NOHSA-SI-NEXT: s_lshr_b32 s7, s6, 2410196; GCN-NOHSA-SI-NEXT: s_and_b32 s8, s0, 0xff0010197; GCN-NOHSA-SI-NEXT: s_and_b32 s9, s6, 0xff0010198; GCN-NOHSA-SI-NEXT: s_and_b32 s10, s6, 0xff10199; GCN-NOHSA-SI-NEXT: s_and_b32 s11, s0, 0xff10200; GCN-NOHSA-SI-NEXT: s_lshl_b32 s9, s9, 810201; GCN-NOHSA-SI-NEXT: s_lshl_b32 s8, s8, 810202; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[6:7], s[6:7], 1610203; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[0:1], s[0:1], 1610204; GCN-NOHSA-SI-NEXT: s_or_b32 s7, s10, s910205; GCN-NOHSA-SI-NEXT: s_or_b32 s8, s11, s810206; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xff00ff10207; GCN-NOHSA-SI-NEXT: s_and_b32 s9, s0, 0xff00ff10208; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s410209; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s510210; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s810211; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s910212; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s710213; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s610214; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 010215; GCN-NOHSA-SI-NEXT: s_endpgm10216;10217; GCN-HSA-LABEL: global_zextload_v8i8_to_v8i16:10218; GCN-HSA: ; %bb.0:10219; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x010220; GCN-HSA-NEXT: s_add_i32 s12, s12, s1710221; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s1310222; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 810223; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)10224; GCN-HSA-NEXT: v_mov_b32_e32 v0, s210225; GCN-HSA-NEXT: v_mov_b32_e32 v1, s310226; GCN-HSA-NEXT: flat_load_dwordx2 v[0:1], v[0:1]10227; GCN-HSA-NEXT: v_mov_b32_e32 v4, s010228; GCN-HSA-NEXT: v_mov_b32_e32 v5, s110229; GCN-HSA-NEXT: s_waitcnt vmcnt(0)10230; GCN-HSA-NEXT: v_readfirstlane_b32 s0, v010231; GCN-HSA-NEXT: v_readfirstlane_b32 s2, v110232; GCN-HSA-NEXT: s_lshr_b32 s1, s0, 2410233; GCN-HSA-NEXT: s_lshr_b32 s3, s2, 2410234; GCN-HSA-NEXT: s_and_b32 s4, s0, 0xff0010235; GCN-HSA-NEXT: s_and_b32 s5, s2, 0xff0010236; GCN-HSA-NEXT: s_and_b32 s6, s2, 0xff10237; GCN-HSA-NEXT: s_and_b32 s7, s0, 0xff10238; GCN-HSA-NEXT: s_lshl_b32 s5, s5, 810239; GCN-HSA-NEXT: s_lshl_b32 s4, s4, 810240; GCN-HSA-NEXT: s_lshr_b64 s[2:3], s[2:3], 1610241; GCN-HSA-NEXT: s_lshr_b64 s[0:1], s[0:1], 1610242; GCN-HSA-NEXT: s_or_b32 s1, s6, s510243; GCN-HSA-NEXT: s_or_b32 s3, s7, s410244; GCN-HSA-NEXT: s_and_b32 s2, s2, 0xff00ff10245; GCN-HSA-NEXT: s_and_b32 s0, s0, 0xff00ff10246; GCN-HSA-NEXT: v_mov_b32_e32 v0, s310247; GCN-HSA-NEXT: v_mov_b32_e32 v1, s010248; GCN-HSA-NEXT: v_mov_b32_e32 v2, s110249; GCN-HSA-NEXT: v_mov_b32_e32 v3, s210250; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]10251; GCN-HSA-NEXT: s_endpgm10252;10253; GCN-NOHSA-VI-LABEL: global_zextload_v8i8_to_v8i16:10254; GCN-NOHSA-VI: ; %bb.0:10255; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x2410256; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf00010257; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -110258; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s210259; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s310260; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)10261; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s610262; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s710263; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 010264; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s410265; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s510266; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)10267; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s4, v010268; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s6, v110269; GCN-NOHSA-VI-NEXT: s_lshr_b32 s5, s4, 2410270; GCN-NOHSA-VI-NEXT: s_lshr_b32 s7, s6, 2410271; GCN-NOHSA-VI-NEXT: s_bfe_u32 s8, s6, 0x8001010272; GCN-NOHSA-VI-NEXT: s_and_b32 s9, s6, 0xff10273; GCN-NOHSA-VI-NEXT: s_lshl_b32 s6, s6, 810274; GCN-NOHSA-VI-NEXT: s_lshl_b32 s11, s4, 810275; GCN-NOHSA-VI-NEXT: s_and_b32 s10, s4, 0xff10276; GCN-NOHSA-VI-NEXT: s_lshl_b32 s7, s7, 1610277; GCN-NOHSA-VI-NEXT: s_and_b32 s6, s6, 0xff000010278; GCN-NOHSA-VI-NEXT: s_and_b32 s11, s11, 0xff000010279; GCN-NOHSA-VI-NEXT: s_lshr_b64 s[4:5], s[4:5], 1610280; GCN-NOHSA-VI-NEXT: s_or_b32 s5, s8, s710281; GCN-NOHSA-VI-NEXT: s_or_b32 s6, s9, s610282; GCN-NOHSA-VI-NEXT: s_or_b32 s7, s10, s1110283; GCN-NOHSA-VI-NEXT: s_and_b32 s4, s4, 0xff00ff10284; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s710285; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s410286; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s610287; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s510288; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 010289; GCN-NOHSA-VI-NEXT: s_endpgm10290;10291; EG-LABEL: global_zextload_v8i8_to_v8i16:10292; EG: ; %bb.0:10293; EG-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]10294; EG-NEXT: TEX 0 @610295; EG-NEXT: ALU 61, @10, KC0[CB0:0-32], KC1[]10296; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T11.X, 110297; EG-NEXT: CF_END10298; EG-NEXT: PAD10299; EG-NEXT: Fetch clause starting at 6:10300; EG-NEXT: VTX_READ_64 T11.XY, T11.X, 0, #110301; EG-NEXT: ALU clause starting at 8:10302; EG-NEXT: MOV * T0.Y, T8.X,10303; EG-NEXT: MOV * T11.X, KC0[2].Z,10304; EG-NEXT: ALU clause starting at 10:10305; EG-NEXT: AND_INT T0.W, T11.X, literal.x,10306; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,10307; EG-NEXT: 255(3.573311e-43), -65536(nan)10308; EG-NEXT: OR_INT * T0.W, PS, PV.W,10309; EG-NEXT: MOV * T8.X, PV.W,10310; EG-NEXT: MOV T0.Y, PV.X,10311; EG-NEXT: LSHL * T0.W, T11.X, literal.x,10312; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10313; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,10314; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,10315; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)10316; EG-NEXT: OR_INT * T0.W, PV.W, PS,10317; EG-NEXT: MOV T8.X, PV.W,10318; EG-NEXT: MOV T0.Y, T9.X,10319; EG-NEXT: MOV * T0.W, literal.x,10320; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10321; EG-NEXT: BFE_UINT T1.W, T11.X, literal.x, PV.W,10322; EG-NEXT: AND_INT * T2.W, PV.Y, literal.y,10323; EG-NEXT: 16(2.242078e-44), -65536(nan)10324; EG-NEXT: OR_INT * T1.W, PS, PV.W,10325; EG-NEXT: MOV * T9.X, PV.W,10326; EG-NEXT: MOV T0.Y, PV.X,10327; EG-NEXT: LSHR * T1.W, T11.X, literal.x,10328; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10329; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,10330; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,10331; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)10332; EG-NEXT: OR_INT * T12.Y, PV.W, PS,10333; EG-NEXT: MOV T9.X, PV.Y,10334; EG-NEXT: MOV * T0.Y, T4.X,10335; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,10336; EG-NEXT: AND_INT * T2.W, T11.Y, literal.y,10337; EG-NEXT: -65536(nan), 255(3.573311e-43)10338; EG-NEXT: OR_INT * T1.W, PV.W, PS,10339; EG-NEXT: MOV * T4.X, PV.W,10340; EG-NEXT: MOV T0.Y, PV.X,10341; EG-NEXT: LSHL * T1.W, T11.Y, literal.x,10342; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10343; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,10344; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,10345; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)10346; EG-NEXT: OR_INT * T1.W, PV.W, PS,10347; EG-NEXT: MOV T4.X, PV.W,10348; EG-NEXT: MOV T0.Y, T5.X,10349; EG-NEXT: BFE_UINT * T0.W, T11.Y, literal.x, T0.W,10350; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)10351; EG-NEXT: AND_INT * T1.W, PV.Y, literal.x,10352; EG-NEXT: -65536(nan), 0(0.000000e+00)10353; EG-NEXT: OR_INT * T0.W, PV.W, T0.W,10354; EG-NEXT: MOV * T5.X, PV.W,10355; EG-NEXT: MOV T0.Y, PV.X,10356; EG-NEXT: LSHR * T0.W, T11.Y, literal.x,10357; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10358; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,10359; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,10360; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)10361; EG-NEXT: LSHR T11.X, KC0[2].Y, literal.x,10362; EG-NEXT: OR_INT * T12.W, PV.W, PS,10363; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)10364; EG-NEXT: MOV T5.X, PV.W,10365; EG-NEXT: MOV * T12.X, T8.X,10366; EG-NEXT: MOV * T12.Z, T4.X,10367;10368; CM-LABEL: global_zextload_v8i8_to_v8i16:10369; CM: ; %bb.0:10370; CM-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]10371; CM-NEXT: TEX 0 @610372; CM-NEXT: ALU 60, @10, KC0[CB0:0-32], KC1[]10373; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T11.X10374; CM-NEXT: CF_END10375; CM-NEXT: PAD10376; CM-NEXT: Fetch clause starting at 6:10377; CM-NEXT: VTX_READ_64 T11.XY, T11.X, 0, #110378; CM-NEXT: ALU clause starting at 8:10379; CM-NEXT: MOV * T0.Y, T8.X,10380; CM-NEXT: MOV * T11.X, KC0[2].Z,10381; CM-NEXT: ALU clause starting at 10:10382; CM-NEXT: AND_INT T0.Z, T11.X, literal.x,10383; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,10384; CM-NEXT: 255(3.573311e-43), -65536(nan)10385; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,10386; CM-NEXT: MOV * T8.X, PV.W,10387; CM-NEXT: MOV T0.Y, PV.X,10388; CM-NEXT: LSHL * T0.W, T11.X, literal.x,10389; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10390; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10391; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,10392; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)10393; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,10394; CM-NEXT: MOV T8.X, PV.W,10395; CM-NEXT: MOV T0.Y, T9.X,10396; CM-NEXT: MOV * T0.W, literal.x,10397; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10398; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10399; CM-NEXT: BFE_UINT * T1.W, T11.X, literal.y, PV.W,10400; CM-NEXT: -65536(nan), 16(2.242078e-44)10401; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,10402; CM-NEXT: MOV * T9.X, PV.W,10403; CM-NEXT: MOV T0.Y, PV.X,10404; CM-NEXT: LSHR * T1.W, T11.X, literal.x,10405; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10406; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10407; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,10408; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)10409; CM-NEXT: OR_INT * T12.Y, PV.Z, PV.W,10410; CM-NEXT: MOV T9.X, PV.Y,10411; CM-NEXT: MOV * T0.Y, T4.X,10412; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10413; CM-NEXT: AND_INT * T1.W, T11.Y, literal.y,10414; CM-NEXT: -65536(nan), 255(3.573311e-43)10415; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,10416; CM-NEXT: MOV * T4.X, PV.W,10417; CM-NEXT: MOV T0.Y, PV.X,10418; CM-NEXT: LSHL * T1.W, T11.Y, literal.x,10419; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10420; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10421; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,10422; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)10423; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,10424; CM-NEXT: MOV T4.X, PV.W,10425; CM-NEXT: MOV * T0.Y, T5.X,10426; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10427; CM-NEXT: BFE_UINT * T0.W, T11.Y, literal.y, T0.W,10428; CM-NEXT: -65536(nan), 16(2.242078e-44)10429; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,10430; CM-NEXT: MOV * T5.X, PV.W,10431; CM-NEXT: MOV T0.Y, PV.X,10432; CM-NEXT: LSHR * T0.W, T11.Y, literal.x,10433; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10434; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10435; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,10436; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)10437; CM-NEXT: LSHR T11.X, KC0[2].Y, literal.x,10438; CM-NEXT: OR_INT * T12.W, PV.Z, PV.W,10439; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)10440; CM-NEXT: MOV * T5.X, PV.W,10441; CM-NEXT: MOV T12.X, T8.X,10442; CM-NEXT: MOV * T12.Z, T4.X, BS:VEC_120/SCL_21210443 %load = load <8 x i8>, ptr addrspace(1) %in10444 %ext = zext <8 x i8> %load to <8 x i16>10445 store <8 x i16> %ext, ptr addrspace(1) %out10446 ret void10447}10448 10449define amdgpu_kernel void @global_sextload_v8i8_to_v8i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {10450; GCN-NOHSA-SI-LABEL: global_sextload_v8i8_to_v8i16:10451; GCN-NOHSA-SI: ; %bb.0:10452; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x910453; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf00010454; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -110455; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s210456; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s310457; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)10458; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s610459; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s710460; GCN-NOHSA-SI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 010461; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)10462; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s0, v010463; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s1, v110464; GCN-NOHSA-SI-NEXT: s_ashr_i32 s6, s1, 2410465; GCN-NOHSA-SI-NEXT: s_bfe_i32 s7, s1, 0x8001010466; GCN-NOHSA-SI-NEXT: s_bfe_i32 s8, s1, 0x8000810467; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s1, s110468; GCN-NOHSA-SI-NEXT: s_ashr_i32 s9, s0, 2410469; GCN-NOHSA-SI-NEXT: s_bfe_i32 s10, s0, 0x8001010470; GCN-NOHSA-SI-NEXT: s_bfe_i32 s11, s0, 0x8000810471; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s0, s010472; GCN-NOHSA-SI-NEXT: s_lshl_b32 s6, s6, 1610473; GCN-NOHSA-SI-NEXT: s_and_b32 s7, s7, 0xffff10474; GCN-NOHSA-SI-NEXT: s_lshl_b32 s8, s8, 1610475; GCN-NOHSA-SI-NEXT: s_and_b32 s1, s1, 0xffff10476; GCN-NOHSA-SI-NEXT: s_lshl_b32 s9, s9, 1610477; GCN-NOHSA-SI-NEXT: s_and_b32 s10, s10, 0xffff10478; GCN-NOHSA-SI-NEXT: s_lshl_b32 s11, s11, 1610479; GCN-NOHSA-SI-NEXT: s_and_b32 s0, s0, 0xffff10480; GCN-NOHSA-SI-NEXT: s_or_b32 s6, s7, s610481; GCN-NOHSA-SI-NEXT: s_or_b32 s7, s1, s810482; GCN-NOHSA-SI-NEXT: s_or_b32 s8, s10, s910483; GCN-NOHSA-SI-NEXT: s_or_b32 s9, s0, s1110484; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s410485; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s510486; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s910487; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s810488; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s710489; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s610490; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 010491; GCN-NOHSA-SI-NEXT: s_endpgm10492;10493; GCN-HSA-LABEL: global_sextload_v8i8_to_v8i16:10494; GCN-HSA: ; %bb.0:10495; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x010496; GCN-HSA-NEXT: s_add_i32 s12, s12, s1710497; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s1310498; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 810499; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)10500; GCN-HSA-NEXT: v_mov_b32_e32 v0, s210501; GCN-HSA-NEXT: v_mov_b32_e32 v1, s310502; GCN-HSA-NEXT: flat_load_dwordx2 v[0:1], v[0:1]10503; GCN-HSA-NEXT: v_mov_b32_e32 v4, s010504; GCN-HSA-NEXT: v_mov_b32_e32 v5, s110505; GCN-HSA-NEXT: s_waitcnt vmcnt(0)10506; GCN-HSA-NEXT: v_readfirstlane_b32 s0, v010507; GCN-HSA-NEXT: v_readfirstlane_b32 s1, v110508; GCN-HSA-NEXT: s_ashr_i32 s2, s1, 2410509; GCN-HSA-NEXT: s_bfe_i32 s3, s1, 0x8001010510; GCN-HSA-NEXT: s_bfe_i32 s4, s1, 0x8000810511; GCN-HSA-NEXT: s_sext_i32_i8 s1, s110512; GCN-HSA-NEXT: s_ashr_i32 s5, s0, 2410513; GCN-HSA-NEXT: s_bfe_i32 s6, s0, 0x8001010514; GCN-HSA-NEXT: s_bfe_i32 s7, s0, 0x8000810515; GCN-HSA-NEXT: s_sext_i32_i8 s0, s010516; GCN-HSA-NEXT: s_lshl_b32 s2, s2, 1610517; GCN-HSA-NEXT: s_and_b32 s3, s3, 0xffff10518; GCN-HSA-NEXT: s_lshl_b32 s4, s4, 1610519; GCN-HSA-NEXT: s_and_b32 s1, s1, 0xffff10520; GCN-HSA-NEXT: s_lshl_b32 s5, s5, 1610521; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xffff10522; GCN-HSA-NEXT: s_lshl_b32 s7, s7, 1610523; GCN-HSA-NEXT: s_and_b32 s0, s0, 0xffff10524; GCN-HSA-NEXT: s_or_b32 s2, s3, s210525; GCN-HSA-NEXT: s_or_b32 s1, s1, s410526; GCN-HSA-NEXT: s_or_b32 s3, s6, s510527; GCN-HSA-NEXT: s_or_b32 s0, s0, s710528; GCN-HSA-NEXT: v_mov_b32_e32 v0, s010529; GCN-HSA-NEXT: v_mov_b32_e32 v1, s310530; GCN-HSA-NEXT: v_mov_b32_e32 v2, s110531; GCN-HSA-NEXT: v_mov_b32_e32 v3, s210532; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]10533; GCN-HSA-NEXT: s_endpgm10534;10535; GCN-NOHSA-VI-LABEL: global_sextload_v8i8_to_v8i16:10536; GCN-NOHSA-VI: ; %bb.0:10537; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x2410538; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf00010539; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -110540; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s210541; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s310542; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)10543; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s610544; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s710545; GCN-NOHSA-VI-NEXT: buffer_load_dwordx2 v[0:1], off, s[8:11], 010546; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s410547; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s510548; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)10549; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s4, v010550; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s5, v110551; GCN-NOHSA-VI-NEXT: s_lshr_b32 s6, s4, 1610552; GCN-NOHSA-VI-NEXT: s_lshr_b32 s7, s5, 1610553; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s8, s510554; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s11, s410555; GCN-NOHSA-VI-NEXT: s_bfe_i32 s9, s5, 0x8000010556; GCN-NOHSA-VI-NEXT: s_bfe_i32 s10, s4, 0x8000010557; GCN-NOHSA-VI-NEXT: s_ashr_i32 s5, s5, 2410558; GCN-NOHSA-VI-NEXT: s_ashr_i32 s4, s4, 2410559; GCN-NOHSA-VI-NEXT: s_lshl_b32 s8, s8, 810560; GCN-NOHSA-VI-NEXT: s_lshl_b32 s11, s11, 810561; GCN-NOHSA-VI-NEXT: s_bfe_i32 s7, s7, 0x8000010562; GCN-NOHSA-VI-NEXT: s_bfe_i32 s6, s6, 0x8000010563; GCN-NOHSA-VI-NEXT: s_and_b32 s9, 0xffff, s910564; GCN-NOHSA-VI-NEXT: s_and_b32 s10, 0xffff, s1010565; GCN-NOHSA-VI-NEXT: s_lshl_b32 s5, s5, 1610566; GCN-NOHSA-VI-NEXT: s_lshl_b32 s4, s4, 1610567; GCN-NOHSA-VI-NEXT: s_and_b32 s8, s8, 0xffff000010568; GCN-NOHSA-VI-NEXT: s_and_b32 s11, s11, 0xffff000010569; GCN-NOHSA-VI-NEXT: s_and_b32 s7, 0xffff, s710570; GCN-NOHSA-VI-NEXT: s_and_b32 s6, 0xffff, s610571; GCN-NOHSA-VI-NEXT: s_or_b32 s8, s9, s810572; GCN-NOHSA-VI-NEXT: s_or_b32 s9, s10, s1110573; GCN-NOHSA-VI-NEXT: s_or_b32 s5, s7, s510574; GCN-NOHSA-VI-NEXT: s_or_b32 s4, s6, s410575; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s910576; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s410577; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s810578; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s510579; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 010580; GCN-NOHSA-VI-NEXT: s_endpgm10581;10582; EG-LABEL: global_sextload_v8i8_to_v8i16:10583; EG: ; %bb.0:10584; EG-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]10585; EG-NEXT: TEX 0 @610586; EG-NEXT: ALU 74, @10, KC0[CB0:0-32], KC1[]10587; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T12.XYZW, T11.X, 110588; EG-NEXT: CF_END10589; EG-NEXT: PAD10590; EG-NEXT: Fetch clause starting at 6:10591; EG-NEXT: VTX_READ_64 T11.XY, T11.X, 0, #110592; EG-NEXT: ALU clause starting at 8:10593; EG-NEXT: MOV * T0.Y, T8.X,10594; EG-NEXT: MOV * T11.X, KC0[2].Z,10595; EG-NEXT: ALU clause starting at 10:10596; EG-NEXT: BFE_INT * T0.W, T11.X, 0.0, literal.x,10597; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10598; EG-NEXT: AND_INT T0.W, PV.W, literal.x,10599; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,10600; EG-NEXT: 65535(9.183409e-41), -65536(nan)10601; EG-NEXT: OR_INT * T0.W, PS, PV.W,10602; EG-NEXT: MOV * T8.X, PV.W,10603; EG-NEXT: MOV T0.Y, PV.X,10604; EG-NEXT: LSHR * T0.W, T11.X, literal.x,10605; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10606; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,10607; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,10608; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)10609; EG-NEXT: LSHL * T0.W, PV.W, literal.x,10610; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)10611; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,10612; EG-NEXT: MOV T8.X, PV.W,10613; EG-NEXT: MOV T0.Y, T9.X,10614; EG-NEXT: LSHR * T0.W, T11.X, literal.x, BS:VEC_120/SCL_21210615; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)10616; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,10617; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,10618; EG-NEXT: 8(1.121039e-44), -65536(nan)10619; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,10620; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)10621; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,10622; EG-NEXT: MOV * T9.X, PV.W,10623; EG-NEXT: MOV T0.Y, PV.X,10624; EG-NEXT: ASHR * T0.W, T11.X, literal.x,10625; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)10626; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,10627; EG-NEXT: LSHL * T0.W, PV.W, literal.y,10628; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)10629; EG-NEXT: OR_INT * T12.Y, PV.W, PS,10630; EG-NEXT: MOV T9.X, PV.Y,10631; EG-NEXT: MOV T0.Y, T4.X,10632; EG-NEXT: BFE_INT * T0.W, T11.Y, 0.0, literal.x,10633; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10634; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,10635; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,10636; EG-NEXT: -65536(nan), 65535(9.183409e-41)10637; EG-NEXT: OR_INT * T0.W, PV.W, PS,10638; EG-NEXT: MOV * T4.X, PV.W,10639; EG-NEXT: MOV T0.Y, PV.X,10640; EG-NEXT: LSHR * T0.W, T11.Y, literal.x,10641; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10642; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,10643; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,10644; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)10645; EG-NEXT: LSHL * T0.W, PV.W, literal.x,10646; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)10647; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,10648; EG-NEXT: MOV T4.X, PV.W,10649; EG-NEXT: MOV T0.Y, T5.X,10650; EG-NEXT: LSHR * T0.W, T11.Y, literal.x,10651; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)10652; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,10653; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,10654; EG-NEXT: 8(1.121039e-44), -65536(nan)10655; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,10656; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)10657; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,10658; EG-NEXT: MOV * T5.X, PV.W,10659; EG-NEXT: MOV T0.Y, PV.X,10660; EG-NEXT: ASHR * T0.W, T11.Y, literal.x,10661; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)10662; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,10663; EG-NEXT: LSHL * T0.W, PV.W, literal.y,10664; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)10665; EG-NEXT: LSHR T11.X, KC0[2].Y, literal.x,10666; EG-NEXT: OR_INT * T12.W, PV.W, PS,10667; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)10668; EG-NEXT: MOV T5.X, PV.W,10669; EG-NEXT: MOV * T12.X, T8.X,10670; EG-NEXT: MOV * T12.Z, T4.X,10671;10672; CM-LABEL: global_sextload_v8i8_to_v8i16:10673; CM: ; %bb.0:10674; CM-NEXT: ALU 1, @8, KC0[CB0:0-32], KC1[]10675; CM-NEXT: TEX 0 @610676; CM-NEXT: ALU 74, @10, KC0[CB0:0-32], KC1[]10677; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T12, T11.X10678; CM-NEXT: CF_END10679; CM-NEXT: PAD10680; CM-NEXT: Fetch clause starting at 6:10681; CM-NEXT: VTX_READ_64 T11.XY, T11.X, 0, #110682; CM-NEXT: ALU clause starting at 8:10683; CM-NEXT: MOV * T0.Y, T8.X,10684; CM-NEXT: MOV * T11.X, KC0[2].Z,10685; CM-NEXT: ALU clause starting at 10:10686; CM-NEXT: BFE_INT * T0.W, T11.X, 0.0, literal.x,10687; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10688; CM-NEXT: AND_INT T0.Z, PV.W, literal.x,10689; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,10690; CM-NEXT: 65535(9.183409e-41), -65536(nan)10691; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,10692; CM-NEXT: MOV * T8.X, PV.W,10693; CM-NEXT: MOV T0.Y, PV.X,10694; CM-NEXT: LSHR * T0.W, T11.X, literal.x,10695; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10696; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,10697; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10698; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,10699; CM-NEXT: LSHL * T0.W, PV.W, literal.y,10700; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)10701; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,10702; CM-NEXT: MOV T8.X, PV.W,10703; CM-NEXT: MOV T0.Y, T9.X,10704; CM-NEXT: LSHR * T0.W, T11.X, literal.x, BS:VEC_120/SCL_21210705; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)10706; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,10707; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10708; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,10709; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,10710; CM-NEXT: -65536(nan), 65535(9.183409e-41)10711; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,10712; CM-NEXT: MOV * T9.X, PV.W,10713; CM-NEXT: MOV T0.Y, PV.X,10714; CM-NEXT: ASHR * T0.W, T11.X, literal.x,10715; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)10716; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10717; CM-NEXT: LSHL * T0.W, PV.W, literal.y,10718; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)10719; CM-NEXT: OR_INT * T12.Y, PV.Z, PV.W,10720; CM-NEXT: MOV T9.X, PV.Y,10721; CM-NEXT: MOV T0.Y, T4.X,10722; CM-NEXT: BFE_INT * T0.W, T11.Y, 0.0, literal.x,10723; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10724; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10725; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,10726; CM-NEXT: -65536(nan), 65535(9.183409e-41)10727; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,10728; CM-NEXT: MOV * T4.X, PV.W,10729; CM-NEXT: MOV T0.Y, PV.X,10730; CM-NEXT: LSHR * T0.W, T11.Y, literal.x,10731; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10732; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,10733; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10734; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,10735; CM-NEXT: LSHL * T0.W, PV.W, literal.y,10736; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)10737; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,10738; CM-NEXT: MOV T4.X, PV.W,10739; CM-NEXT: MOV T0.Y, T5.X,10740; CM-NEXT: LSHR * T0.W, T11.Y, literal.x,10741; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)10742; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,10743; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)10744; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,10745; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,10746; CM-NEXT: -65536(nan), 65535(9.183409e-41)10747; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,10748; CM-NEXT: MOV * T5.X, PV.W,10749; CM-NEXT: MOV T0.Y, PV.X,10750; CM-NEXT: ASHR * T0.W, T11.Y, literal.x,10751; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)10752; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,10753; CM-NEXT: LSHL * T0.W, PV.W, literal.y,10754; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)10755; CM-NEXT: LSHR T11.X, KC0[2].Y, literal.x,10756; CM-NEXT: OR_INT * T12.W, PV.Z, PV.W,10757; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)10758; CM-NEXT: MOV * T5.X, PV.W,10759; CM-NEXT: MOV T12.X, T8.X,10760; CM-NEXT: MOV * T12.Z, T4.X, BS:VEC_120/SCL_21210761 %load = load <8 x i8>, ptr addrspace(1) %in10762 %ext = sext <8 x i8> %load to <8 x i16>10763 store <8 x i16> %ext, ptr addrspace(1) %out10764 ret void10765}10766 10767define amdgpu_kernel void @global_zextload_v16i8_to_v16i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {10768; GCN-NOHSA-SI-LABEL: global_zextload_v16i8_to_v16i16:10769; GCN-NOHSA-SI: ; %bb.0:10770; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x910771; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf00010772; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -110773; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s210774; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s310775; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)10776; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s610777; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s710778; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 010779; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s410780; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s510781; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)10782; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s4, v210783; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s6, v310784; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s8, v010785; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s10, v110786; GCN-NOHSA-SI-NEXT: s_lshr_b32 s5, s4, 2410787; GCN-NOHSA-SI-NEXT: s_lshr_b32 s7, s6, 2410788; GCN-NOHSA-SI-NEXT: s_and_b32 s12, s4, 0xff0010789; GCN-NOHSA-SI-NEXT: s_and_b32 s13, s6, 0xff0010790; GCN-NOHSA-SI-NEXT: s_lshr_b32 s9, s8, 2410791; GCN-NOHSA-SI-NEXT: s_lshr_b32 s11, s10, 2410792; GCN-NOHSA-SI-NEXT: s_and_b32 s14, s8, 0xff0010793; GCN-NOHSA-SI-NEXT: s_and_b32 s15, s10, 0xff0010794; GCN-NOHSA-SI-NEXT: s_and_b32 s16, s10, 0xff10795; GCN-NOHSA-SI-NEXT: s_and_b32 s17, s8, 0xff10796; GCN-NOHSA-SI-NEXT: s_and_b32 s18, s6, 0xff10797; GCN-NOHSA-SI-NEXT: s_and_b32 s19, s4, 0xff10798; GCN-NOHSA-SI-NEXT: s_lshl_b32 s15, s15, 810799; GCN-NOHSA-SI-NEXT: s_lshl_b32 s14, s14, 810800; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[10:11], s[10:11], 1610801; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[8:9], s[8:9], 1610802; GCN-NOHSA-SI-NEXT: s_lshl_b32 s9, s13, 810803; GCN-NOHSA-SI-NEXT: s_lshl_b32 s11, s12, 810804; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[6:7], s[6:7], 1610805; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[4:5], s[4:5], 1610806; GCN-NOHSA-SI-NEXT: s_or_b32 s5, s16, s1510807; GCN-NOHSA-SI-NEXT: s_or_b32 s7, s17, s1410808; GCN-NOHSA-SI-NEXT: s_and_b32 s10, s10, 0xff00ff10809; GCN-NOHSA-SI-NEXT: s_or_b32 s9, s18, s910810; GCN-NOHSA-SI-NEXT: s_or_b32 s11, s19, s1110811; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xff00ff10812; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xff00ff10813; GCN-NOHSA-SI-NEXT: s_and_b32 s8, s8, 0xff00ff10814; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s1110815; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s410816; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s910817; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s610818; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1610819; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)10820; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s710821; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s810822; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s510823; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s1010824; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 010825; GCN-NOHSA-SI-NEXT: s_endpgm10826;10827; GCN-HSA-LABEL: global_zextload_v16i8_to_v16i16:10828; GCN-HSA: ; %bb.0:10829; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x010830; GCN-HSA-NEXT: s_add_i32 s12, s12, s1710831; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s1310832; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 810833; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)10834; GCN-HSA-NEXT: v_mov_b32_e32 v0, s210835; GCN-HSA-NEXT: v_mov_b32_e32 v1, s310836; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]10837; GCN-HSA-NEXT: v_mov_b32_e32 v9, s110838; GCN-HSA-NEXT: v_mov_b32_e32 v8, s010839; GCN-HSA-NEXT: s_waitcnt vmcnt(0)10840; GCN-HSA-NEXT: v_readfirstlane_b32 s6, v010841; GCN-HSA-NEXT: v_readfirstlane_b32 s8, v110842; GCN-HSA-NEXT: v_readfirstlane_b32 s2, v210843; GCN-HSA-NEXT: v_readfirstlane_b32 s4, v310844; GCN-HSA-NEXT: s_lshr_b32 s7, s6, 2410845; GCN-HSA-NEXT: s_lshr_b32 s9, s8, 2410846; GCN-HSA-NEXT: s_lshr_b32 s3, s2, 2410847; GCN-HSA-NEXT: s_lshr_b32 s5, s4, 2410848; GCN-HSA-NEXT: s_and_b32 s10, s2, 0xff0010849; GCN-HSA-NEXT: s_and_b32 s11, s4, 0xff0010850; GCN-HSA-NEXT: s_and_b32 s12, s6, 0xff0010851; GCN-HSA-NEXT: s_and_b32 s13, s8, 0xff0010852; GCN-HSA-NEXT: s_and_b32 s14, s8, 0xff10853; GCN-HSA-NEXT: s_and_b32 s15, s6, 0xff10854; GCN-HSA-NEXT: s_lshr_b64 s[8:9], s[8:9], 1610855; GCN-HSA-NEXT: s_lshr_b64 s[6:7], s[6:7], 1610856; GCN-HSA-NEXT: s_and_b32 s16, s4, 0xff10857; GCN-HSA-NEXT: s_and_b32 s17, s2, 0xff10858; GCN-HSA-NEXT: s_lshl_b32 s13, s13, 810859; GCN-HSA-NEXT: s_lshl_b32 s12, s12, 810860; GCN-HSA-NEXT: s_lshl_b32 s7, s11, 810861; GCN-HSA-NEXT: s_lshl_b32 s9, s10, 810862; GCN-HSA-NEXT: s_lshr_b64 s[4:5], s[4:5], 1610863; GCN-HSA-NEXT: s_lshr_b64 s[2:3], s[2:3], 1610864; GCN-HSA-NEXT: s_or_b32 s3, s14, s1310865; GCN-HSA-NEXT: s_or_b32 s5, s15, s1210866; GCN-HSA-NEXT: s_and_b32 s8, s8, 0xff00ff10867; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xff00ff10868; GCN-HSA-NEXT: s_or_b32 s7, s16, s710869; GCN-HSA-NEXT: s_or_b32 s9, s17, s910870; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xff00ff10871; GCN-HSA-NEXT: s_and_b32 s2, s2, 0xff00ff10872; GCN-HSA-NEXT: s_add_u32 s0, s0, 1610873; GCN-HSA-NEXT: s_addc_u32 s1, s1, 010874; GCN-HSA-NEXT: v_mov_b32_e32 v11, s110875; GCN-HSA-NEXT: v_mov_b32_e32 v0, s910876; GCN-HSA-NEXT: v_mov_b32_e32 v1, s210877; GCN-HSA-NEXT: v_mov_b32_e32 v2, s710878; GCN-HSA-NEXT: v_mov_b32_e32 v3, s410879; GCN-HSA-NEXT: v_mov_b32_e32 v10, s010880; GCN-HSA-NEXT: v_mov_b32_e32 v4, s510881; GCN-HSA-NEXT: v_mov_b32_e32 v5, s610882; GCN-HSA-NEXT: v_mov_b32_e32 v6, s310883; GCN-HSA-NEXT: v_mov_b32_e32 v7, s810884; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[0:3]10885; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[4:7]10886; GCN-HSA-NEXT: s_endpgm10887;10888; GCN-NOHSA-VI-LABEL: global_zextload_v16i8_to_v16i16:10889; GCN-NOHSA-VI: ; %bb.0:10890; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x2410891; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf00010892; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -110893; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s210894; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s310895; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)10896; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s610897; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s710898; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 010899; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s410900; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s510901; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)10902; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s6, v010903; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s4, v210904; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s8, v310905; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s9, v110906; GCN-NOHSA-VI-NEXT: s_lshr_b32 s7, s6, 2410907; GCN-NOHSA-VI-NEXT: s_lshr_b32 s5, s4, 2410908; GCN-NOHSA-VI-NEXT: s_lshr_b32 s10, s9, 2410909; GCN-NOHSA-VI-NEXT: s_and_b32 s13, s6, 0xff10910; GCN-NOHSA-VI-NEXT: s_lshl_b32 s14, s6, 810911; GCN-NOHSA-VI-NEXT: s_lshr_b32 s15, s8, 2410912; GCN-NOHSA-VI-NEXT: s_bfe_u32 s16, s8, 0x8001010913; GCN-NOHSA-VI-NEXT: s_and_b32 s17, s8, 0xff10914; GCN-NOHSA-VI-NEXT: s_lshl_b32 s8, s8, 810915; GCN-NOHSA-VI-NEXT: s_lshl_b32 s19, s4, 810916; GCN-NOHSA-VI-NEXT: s_lshr_b64 s[6:7], s[6:7], 1610917; GCN-NOHSA-VI-NEXT: s_bfe_u32 s11, s9, 0x8001010918; GCN-NOHSA-VI-NEXT: s_and_b32 s12, s9, 0xff10919; GCN-NOHSA-VI-NEXT: s_lshl_b32 s9, s9, 810920; GCN-NOHSA-VI-NEXT: s_and_b32 s18, s4, 0xff10921; GCN-NOHSA-VI-NEXT: s_lshl_b32 s10, s10, 1610922; GCN-NOHSA-VI-NEXT: s_lshl_b32 s7, s15, 1610923; GCN-NOHSA-VI-NEXT: s_and_b32 s8, s8, 0xff000010924; GCN-NOHSA-VI-NEXT: s_and_b32 s15, s19, 0xff000010925; GCN-NOHSA-VI-NEXT: s_lshr_b64 s[4:5], s[4:5], 1610926; GCN-NOHSA-VI-NEXT: s_and_b32 s9, s9, 0xff000010927; GCN-NOHSA-VI-NEXT: s_and_b32 s14, s14, 0xff000010928; GCN-NOHSA-VI-NEXT: s_or_b32 s5, s11, s1010929; GCN-NOHSA-VI-NEXT: s_or_b32 s7, s16, s710930; GCN-NOHSA-VI-NEXT: s_or_b32 s8, s17, s810931; GCN-NOHSA-VI-NEXT: s_or_b32 s11, s18, s1510932; GCN-NOHSA-VI-NEXT: s_and_b32 s4, s4, 0xff00ff10933; GCN-NOHSA-VI-NEXT: s_or_b32 s9, s12, s910934; GCN-NOHSA-VI-NEXT: s_or_b32 s10, s13, s1410935; GCN-NOHSA-VI-NEXT: s_and_b32 s6, s6, 0xff00ff10936; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s1110937; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s410938; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s810939; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s710940; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s1010941; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s610942; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s910943; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s510944; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1610945; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 010946; GCN-NOHSA-VI-NEXT: s_endpgm10947;10948; EG-LABEL: global_zextload_v16i8_to_v16i16:10949; EG: ; %bb.0:10950; EG-NEXT: ALU 1, @10, KC0[CB0:0-32], KC1[]10951; EG-NEXT: TEX 0 @810952; EG-NEXT: ALU 103, @12, KC0[], KC1[]10953; EG-NEXT: ALU 20, @116, KC0[CB0:0-32], KC1[]10954; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T22.X, 010955; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T21.X, 110956; EG-NEXT: CF_END10957; EG-NEXT: PAD10958; EG-NEXT: Fetch clause starting at 8:10959; EG-NEXT: VTX_READ_128 T19.XYZW, T19.X, 0, #110960; EG-NEXT: ALU clause starting at 10:10961; EG-NEXT: MOV * T0.Y, T16.X,10962; EG-NEXT: MOV * T19.X, KC0[2].Z,10963; EG-NEXT: ALU clause starting at 12:10964; EG-NEXT: AND_INT T0.W, T19.X, literal.x,10965; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,10966; EG-NEXT: 255(3.573311e-43), -65536(nan)10967; EG-NEXT: OR_INT * T0.W, PS, PV.W,10968; EG-NEXT: MOV * T16.X, PV.W,10969; EG-NEXT: MOV T0.Y, PV.X,10970; EG-NEXT: LSHL * T0.W, T19.X, literal.x,10971; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10972; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,10973; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,10974; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)10975; EG-NEXT: OR_INT * T0.W, PV.W, PS,10976; EG-NEXT: MOV T16.X, PV.W,10977; EG-NEXT: MOV T0.Y, T17.X,10978; EG-NEXT: MOV * T0.W, literal.x,10979; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10980; EG-NEXT: BFE_UINT T1.W, T19.X, literal.x, PV.W,10981; EG-NEXT: AND_INT * T2.W, PV.Y, literal.y,10982; EG-NEXT: 16(2.242078e-44), -65536(nan)10983; EG-NEXT: OR_INT * T1.W, PS, PV.W,10984; EG-NEXT: MOV * T17.X, PV.W,10985; EG-NEXT: MOV T0.Y, PV.X,10986; EG-NEXT: LSHR * T1.W, T19.X, literal.x,10987; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)10988; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,10989; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,10990; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)10991; EG-NEXT: OR_INT * T20.Y, PV.W, PS,10992; EG-NEXT: MOV T17.X, PV.Y,10993; EG-NEXT: MOV * T0.Y, T12.X,10994; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,10995; EG-NEXT: AND_INT * T2.W, T19.Y, literal.y,10996; EG-NEXT: -65536(nan), 255(3.573311e-43)10997; EG-NEXT: OR_INT * T1.W, PV.W, PS,10998; EG-NEXT: MOV * T12.X, PV.W,10999; EG-NEXT: MOV T0.Y, PV.X,11000; EG-NEXT: LSHL * T1.W, T19.Y, literal.x,11001; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11002; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,11003; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,11004; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11005; EG-NEXT: OR_INT * T1.W, PV.W, PS,11006; EG-NEXT: MOV T12.X, PV.W,11007; EG-NEXT: MOV T0.Y, T13.X,11008; EG-NEXT: BFE_UINT * T1.W, T19.Y, literal.x, T0.W,11009; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11010; EG-NEXT: AND_INT * T2.W, PV.Y, literal.x,11011; EG-NEXT: -65536(nan), 0(0.000000e+00)11012; EG-NEXT: OR_INT * T1.W, PV.W, T1.W,11013; EG-NEXT: MOV * T13.X, PV.W,11014; EG-NEXT: MOV T0.Y, PV.X,11015; EG-NEXT: LSHR * T1.W, T19.Y, literal.x,11016; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11017; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,11018; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,11019; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11020; EG-NEXT: OR_INT * T20.W, PV.W, PS,11021; EG-NEXT: MOV T13.X, PV.W,11022; EG-NEXT: MOV * T0.Y, T8.X,11023; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,11024; EG-NEXT: AND_INT * T2.W, T19.Z, literal.y,11025; EG-NEXT: -65536(nan), 255(3.573311e-43)11026; EG-NEXT: OR_INT * T1.W, PV.W, PS,11027; EG-NEXT: MOV * T8.X, PV.W,11028; EG-NEXT: MOV T0.Y, PV.X,11029; EG-NEXT: LSHL * T1.W, T19.Z, literal.x,11030; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11031; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,11032; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,11033; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11034; EG-NEXT: OR_INT * T1.W, PV.W, PS,11035; EG-NEXT: MOV T8.X, PV.W,11036; EG-NEXT: MOV T0.Y, T9.X,11037; EG-NEXT: BFE_UINT * T1.W, T19.Z, literal.x, T0.W,11038; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11039; EG-NEXT: AND_INT * T2.W, PV.Y, literal.x,11040; EG-NEXT: -65536(nan), 0(0.000000e+00)11041; EG-NEXT: OR_INT * T1.W, PV.W, T1.W,11042; EG-NEXT: MOV * T9.X, PV.W,11043; EG-NEXT: MOV T0.Y, PV.X,11044; EG-NEXT: LSHR * T1.W, T19.Z, literal.x,11045; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11046; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,11047; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,11048; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11049; EG-NEXT: OR_INT * T19.Y, PV.W, PS,11050; EG-NEXT: MOV T9.X, PV.Y,11051; EG-NEXT: MOV * T0.Y, T4.X,11052; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,11053; EG-NEXT: AND_INT * T2.W, T19.W, literal.y,11054; EG-NEXT: -65536(nan), 255(3.573311e-43)11055; EG-NEXT: OR_INT * T1.W, PV.W, PS,11056; EG-NEXT: MOV * T4.X, PV.W,11057; EG-NEXT: MOV T0.Y, PV.X,11058; EG-NEXT: LSHL * T1.W, T19.W, literal.x,11059; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11060; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,11061; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,11062; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11063; EG-NEXT: OR_INT * T1.W, PV.W, PS,11064; EG-NEXT: MOV T4.X, PV.W,11065; EG-NEXT: MOV T0.Y, T5.X,11066; EG-NEXT: BFE_UINT * T0.W, T19.W, literal.x, T0.W,11067; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11068; EG-NEXT: ALU clause starting at 116:11069; EG-NEXT: AND_INT * T1.W, T0.Y, literal.x,11070; EG-NEXT: -65536(nan), 0(0.000000e+00)11071; EG-NEXT: OR_INT * T0.W, PV.W, T0.W,11072; EG-NEXT: MOV * T5.X, PV.W,11073; EG-NEXT: MOV T0.Y, PV.X,11074; EG-NEXT: LSHR T0.W, T19.W, literal.x,11075; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,11076; EG-NEXT: 8(1.121039e-44), 16(2.242078e-44)11077; EG-NEXT: LSHR T21.X, PS, literal.x,11078; EG-NEXT: AND_INT T1.W, PV.Y, literal.y,11079; EG-NEXT: AND_INT * T0.W, PV.W, literal.z,11080; EG-NEXT: 2(2.802597e-45), 65535(9.183409e-41)11081; EG-NEXT: 16711680(2.341805e-38), 0(0.000000e+00)11082; EG-NEXT: LSHR T22.X, KC0[2].Y, literal.x,11083; EG-NEXT: OR_INT * T19.W, PV.W, PS,11084; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)11085; EG-NEXT: MOV T5.X, PV.W,11086; EG-NEXT: MOV * T20.X, T16.X,11087; EG-NEXT: MOV * T20.Z, T12.X,11088; EG-NEXT: MOV T19.X, T8.X,11089; EG-NEXT: MOV * T19.Z, T4.X, BS:VEC_120/SCL_21211090;11091; CM-LABEL: global_zextload_v16i8_to_v16i16:11092; CM: ; %bb.0:11093; CM-NEXT: ALU 1, @10, KC0[CB0:0-32], KC1[]11094; CM-NEXT: TEX 0 @811095; CM-NEXT: ALU 101, @12, KC0[], KC1[]11096; CM-NEXT: ALU 20, @114, KC0[CB0:0-32], KC1[]11097; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T22.X11098; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T20, T21.X11099; CM-NEXT: CF_END11100; CM-NEXT: PAD11101; CM-NEXT: Fetch clause starting at 8:11102; CM-NEXT: VTX_READ_128 T19.XYZW, T19.X, 0, #111103; CM-NEXT: ALU clause starting at 10:11104; CM-NEXT: MOV * T0.Y, T16.X,11105; CM-NEXT: MOV * T19.X, KC0[2].Z,11106; CM-NEXT: ALU clause starting at 12:11107; CM-NEXT: AND_INT T0.Z, T19.X, literal.x,11108; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,11109; CM-NEXT: 255(3.573311e-43), -65536(nan)11110; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,11111; CM-NEXT: MOV * T16.X, PV.W,11112; CM-NEXT: MOV T0.Y, PV.X,11113; CM-NEXT: LSHL * T0.W, T19.X, literal.x,11114; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11115; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11116; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,11117; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11118; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11119; CM-NEXT: MOV T16.X, PV.W,11120; CM-NEXT: MOV T0.Y, T17.X,11121; CM-NEXT: MOV * T0.W, literal.x,11122; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11123; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11124; CM-NEXT: BFE_UINT * T1.W, T19.X, literal.y, PV.W,11125; CM-NEXT: -65536(nan), 16(2.242078e-44)11126; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,11127; CM-NEXT: MOV * T17.X, PV.W,11128; CM-NEXT: MOV T0.Y, PV.X,11129; CM-NEXT: LSHR * T1.W, T19.X, literal.x,11130; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11131; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11132; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,11133; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11134; CM-NEXT: OR_INT * T20.Y, PV.Z, PV.W,11135; CM-NEXT: MOV T17.X, PV.Y,11136; CM-NEXT: MOV * T0.Y, T12.X,11137; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11138; CM-NEXT: AND_INT * T1.W, T19.Y, literal.y,11139; CM-NEXT: -65536(nan), 255(3.573311e-43)11140; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,11141; CM-NEXT: MOV * T12.X, PV.W,11142; CM-NEXT: MOV T0.Y, PV.X,11143; CM-NEXT: LSHL * T1.W, T19.Y, literal.x,11144; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11145; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11146; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,11147; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11148; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,11149; CM-NEXT: MOV T12.X, PV.W,11150; CM-NEXT: MOV * T0.Y, T13.X,11151; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11152; CM-NEXT: BFE_UINT * T1.W, T19.Y, literal.y, T0.W,11153; CM-NEXT: -65536(nan), 16(2.242078e-44)11154; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,11155; CM-NEXT: MOV * T13.X, PV.W,11156; CM-NEXT: MOV T0.Y, PV.X,11157; CM-NEXT: LSHR * T1.W, T19.Y, literal.x,11158; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11159; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11160; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,11161; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11162; CM-NEXT: OR_INT * T20.W, PV.Z, PV.W,11163; CM-NEXT: MOV T13.X, PV.W,11164; CM-NEXT: MOV * T0.Y, T8.X,11165; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11166; CM-NEXT: AND_INT * T1.W, T19.Z, literal.y,11167; CM-NEXT: -65536(nan), 255(3.573311e-43)11168; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,11169; CM-NEXT: MOV * T8.X, PV.W,11170; CM-NEXT: MOV T0.Y, PV.X,11171; CM-NEXT: LSHL * T1.W, T19.Z, literal.x,11172; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11173; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11174; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,11175; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11176; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,11177; CM-NEXT: MOV T8.X, PV.W,11178; CM-NEXT: MOV * T0.Y, T9.X,11179; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11180; CM-NEXT: BFE_UINT * T1.W, T19.Z, literal.y, T0.W,11181; CM-NEXT: -65536(nan), 16(2.242078e-44)11182; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,11183; CM-NEXT: MOV * T9.X, PV.W,11184; CM-NEXT: MOV T0.Y, PV.X,11185; CM-NEXT: LSHR * T1.W, T19.Z, literal.x,11186; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11187; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11188; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,11189; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11190; CM-NEXT: OR_INT * T19.Y, PV.Z, PV.W,11191; CM-NEXT: MOV T9.X, PV.Y,11192; CM-NEXT: MOV * T0.Y, T4.X,11193; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11194; CM-NEXT: AND_INT * T1.W, T19.W, literal.y,11195; CM-NEXT: -65536(nan), 255(3.573311e-43)11196; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,11197; CM-NEXT: MOV * T4.X, PV.W,11198; CM-NEXT: MOV T0.Y, PV.X,11199; CM-NEXT: LSHL * T1.W, T19.W, literal.x,11200; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11201; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11202; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,11203; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)11204; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,11205; CM-NEXT: MOV T4.X, PV.W,11206; CM-NEXT: MOV * T0.Y, T5.X,11207; CM-NEXT: AND_INT * T0.Z, PV.Y, literal.x,11208; CM-NEXT: -65536(nan), 0(0.000000e+00)11209; CM-NEXT: ALU clause starting at 114:11210; CM-NEXT: BFE_UINT * T0.W, T19.W, literal.x, T0.W,11211; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)11212; CM-NEXT: OR_INT * T0.W, T0.Z, PV.W,11213; CM-NEXT: MOV * T5.X, PV.W,11214; CM-NEXT: MOV T0.Y, PV.X,11215; CM-NEXT: LSHR * T0.W, T19.W, literal.x,11216; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11217; CM-NEXT: LSHR T21.X, KC0[2].Y, literal.x,11218; CM-NEXT: AND_INT T0.Y, PV.Y, literal.y,11219; CM-NEXT: AND_INT T0.Z, PV.W, literal.z,11220; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.w,11221; CM-NEXT: 2(2.802597e-45), 65535(9.183409e-41)11222; CM-NEXT: 16711680(2.341805e-38), 16(2.242078e-44)11223; CM-NEXT: LSHR T22.X, PV.W, literal.x,11224; CM-NEXT: OR_INT * T19.W, PV.Y, PV.Z,11225; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)11226; CM-NEXT: MOV * T5.X, PV.W,11227; CM-NEXT: MOV T20.X, T16.X,11228; CM-NEXT: MOV * T20.Z, T12.X, BS:VEC_120/SCL_21211229; CM-NEXT: MOV T19.X, T8.X,11230; CM-NEXT: MOV * T19.Z, T4.X, BS:VEC_120/SCL_21211231 %load = load <16 x i8>, ptr addrspace(1) %in11232 %ext = zext <16 x i8> %load to <16 x i16>11233 store <16 x i16> %ext, ptr addrspace(1) %out11234 ret void11235}11236 11237define amdgpu_kernel void @global_sextload_v16i8_to_v16i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {11238; GCN-NOHSA-SI-LABEL: global_sextload_v16i8_to_v16i16:11239; GCN-NOHSA-SI: ; %bb.0:11240; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x911241; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf00011242; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -111243; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s211244; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s311245; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)11246; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s611247; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s711248; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 011249; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s411250; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s511251; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)11252; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s4, v211253; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s5, v311254; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s6, v011255; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s7, v111256; GCN-NOHSA-SI-NEXT: s_ashr_i32 s8, s7, 2411257; GCN-NOHSA-SI-NEXT: s_bfe_i32 s9, s7, 0x8001011258; GCN-NOHSA-SI-NEXT: s_bfe_i32 s10, s7, 0x8000811259; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s7, s711260; GCN-NOHSA-SI-NEXT: s_ashr_i32 s11, s6, 2411261; GCN-NOHSA-SI-NEXT: s_bfe_i32 s12, s6, 0x8001011262; GCN-NOHSA-SI-NEXT: s_bfe_i32 s13, s6, 0x8000811263; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s6, s611264; GCN-NOHSA-SI-NEXT: s_ashr_i32 s14, s5, 2411265; GCN-NOHSA-SI-NEXT: s_bfe_i32 s15, s5, 0x8001011266; GCN-NOHSA-SI-NEXT: s_bfe_i32 s16, s5, 0x8000811267; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s5, s511268; GCN-NOHSA-SI-NEXT: s_ashr_i32 s17, s4, 2411269; GCN-NOHSA-SI-NEXT: s_bfe_i32 s18, s4, 0x8001011270; GCN-NOHSA-SI-NEXT: s_bfe_i32 s19, s4, 0x8000811271; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s4, s411272; GCN-NOHSA-SI-NEXT: s_lshl_b32 s8, s8, 1611273; GCN-NOHSA-SI-NEXT: s_and_b32 s9, s9, 0xffff11274; GCN-NOHSA-SI-NEXT: s_lshl_b32 s10, s10, 1611275; GCN-NOHSA-SI-NEXT: s_and_b32 s7, s7, 0xffff11276; GCN-NOHSA-SI-NEXT: s_lshl_b32 s11, s11, 1611277; GCN-NOHSA-SI-NEXT: s_and_b32 s12, s12, 0xffff11278; GCN-NOHSA-SI-NEXT: s_lshl_b32 s13, s13, 1611279; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xffff11280; GCN-NOHSA-SI-NEXT: s_lshl_b32 s14, s14, 1611281; GCN-NOHSA-SI-NEXT: s_and_b32 s15, s15, 0xffff11282; GCN-NOHSA-SI-NEXT: s_lshl_b32 s16, s16, 1611283; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff11284; GCN-NOHSA-SI-NEXT: s_lshl_b32 s17, s17, 1611285; GCN-NOHSA-SI-NEXT: s_and_b32 s18, s18, 0xffff11286; GCN-NOHSA-SI-NEXT: s_lshl_b32 s19, s19, 1611287; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff11288; GCN-NOHSA-SI-NEXT: s_or_b32 s8, s9, s811289; GCN-NOHSA-SI-NEXT: s_or_b32 s7, s7, s1011290; GCN-NOHSA-SI-NEXT: s_or_b32 s9, s12, s1111291; GCN-NOHSA-SI-NEXT: s_or_b32 s10, s15, s1411292; GCN-NOHSA-SI-NEXT: s_or_b32 s5, s5, s1611293; GCN-NOHSA-SI-NEXT: s_or_b32 s11, s18, s1711294; GCN-NOHSA-SI-NEXT: s_or_b32 s4, s4, s1911295; GCN-NOHSA-SI-NEXT: s_or_b32 s6, s6, s1311296; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s411297; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s1111298; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s511299; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s1011300; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1611301; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)11302; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s611303; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s911304; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s711305; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s811306; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 011307; GCN-NOHSA-SI-NEXT: s_endpgm11308;11309; GCN-HSA-LABEL: global_sextload_v16i8_to_v16i16:11310; GCN-HSA: ; %bb.0:11311; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x011312; GCN-HSA-NEXT: s_add_i32 s12, s12, s1711313; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s1311314; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 811315; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)11316; GCN-HSA-NEXT: v_mov_b32_e32 v0, s211317; GCN-HSA-NEXT: v_mov_b32_e32 v1, s311318; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]11319; GCN-HSA-NEXT: v_mov_b32_e32 v9, s111320; GCN-HSA-NEXT: v_mov_b32_e32 v8, s011321; GCN-HSA-NEXT: s_waitcnt vmcnt(0)11322; GCN-HSA-NEXT: v_readfirstlane_b32 s2, v211323; GCN-HSA-NEXT: v_readfirstlane_b32 s3, v311324; GCN-HSA-NEXT: v_readfirstlane_b32 s4, v011325; GCN-HSA-NEXT: v_readfirstlane_b32 s5, v111326; GCN-HSA-NEXT: s_ashr_i32 s6, s5, 2411327; GCN-HSA-NEXT: s_bfe_i32 s7, s5, 0x8001011328; GCN-HSA-NEXT: s_bfe_i32 s8, s5, 0x8000811329; GCN-HSA-NEXT: s_sext_i32_i8 s5, s511330; GCN-HSA-NEXT: s_ashr_i32 s9, s4, 2411331; GCN-HSA-NEXT: s_bfe_i32 s10, s4, 0x8001011332; GCN-HSA-NEXT: s_bfe_i32 s11, s4, 0x8000811333; GCN-HSA-NEXT: s_sext_i32_i8 s4, s411334; GCN-HSA-NEXT: s_ashr_i32 s12, s3, 2411335; GCN-HSA-NEXT: s_bfe_i32 s13, s3, 0x8001011336; GCN-HSA-NEXT: s_bfe_i32 s14, s3, 0x8000811337; GCN-HSA-NEXT: s_sext_i32_i8 s3, s311338; GCN-HSA-NEXT: s_ashr_i32 s15, s2, 2411339; GCN-HSA-NEXT: s_bfe_i32 s16, s2, 0x8001011340; GCN-HSA-NEXT: s_bfe_i32 s17, s2, 0x8000811341; GCN-HSA-NEXT: s_sext_i32_i8 s2, s211342; GCN-HSA-NEXT: s_lshl_b32 s6, s6, 1611343; GCN-HSA-NEXT: s_and_b32 s7, s7, 0xffff11344; GCN-HSA-NEXT: s_lshl_b32 s8, s8, 1611345; GCN-HSA-NEXT: s_and_b32 s5, s5, 0xffff11346; GCN-HSA-NEXT: s_lshl_b32 s9, s9, 1611347; GCN-HSA-NEXT: s_and_b32 s10, s10, 0xffff11348; GCN-HSA-NEXT: s_lshl_b32 s11, s11, 1611349; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xffff11350; GCN-HSA-NEXT: s_lshl_b32 s12, s12, 1611351; GCN-HSA-NEXT: s_and_b32 s13, s13, 0xffff11352; GCN-HSA-NEXT: s_lshl_b32 s14, s14, 1611353; GCN-HSA-NEXT: s_and_b32 s3, s3, 0xffff11354; GCN-HSA-NEXT: s_lshl_b32 s15, s15, 1611355; GCN-HSA-NEXT: s_and_b32 s16, s16, 0xffff11356; GCN-HSA-NEXT: s_lshl_b32 s17, s17, 1611357; GCN-HSA-NEXT: s_and_b32 s2, s2, 0xffff11358; GCN-HSA-NEXT: s_or_b32 s6, s7, s611359; GCN-HSA-NEXT: s_or_b32 s5, s5, s811360; GCN-HSA-NEXT: s_or_b32 s7, s10, s911361; GCN-HSA-NEXT: s_or_b32 s4, s4, s1111362; GCN-HSA-NEXT: s_or_b32 s8, s13, s1211363; GCN-HSA-NEXT: s_or_b32 s3, s3, s1411364; GCN-HSA-NEXT: s_or_b32 s9, s16, s1511365; GCN-HSA-NEXT: s_or_b32 s2, s2, s1711366; GCN-HSA-NEXT: s_add_u32 s0, s0, 1611367; GCN-HSA-NEXT: s_addc_u32 s1, s1, 011368; GCN-HSA-NEXT: v_mov_b32_e32 v11, s111369; GCN-HSA-NEXT: v_mov_b32_e32 v0, s211370; GCN-HSA-NEXT: v_mov_b32_e32 v1, s911371; GCN-HSA-NEXT: v_mov_b32_e32 v2, s311372; GCN-HSA-NEXT: v_mov_b32_e32 v3, s811373; GCN-HSA-NEXT: v_mov_b32_e32 v10, s011374; GCN-HSA-NEXT: v_mov_b32_e32 v4, s411375; GCN-HSA-NEXT: v_mov_b32_e32 v5, s711376; GCN-HSA-NEXT: v_mov_b32_e32 v6, s511377; GCN-HSA-NEXT: v_mov_b32_e32 v7, s611378; GCN-HSA-NEXT: flat_store_dwordx4 v[10:11], v[0:3]11379; GCN-HSA-NEXT: flat_store_dwordx4 v[8:9], v[4:7]11380; GCN-HSA-NEXT: s_endpgm11381;11382; GCN-NOHSA-VI-LABEL: global_sextload_v16i8_to_v16i16:11383; GCN-NOHSA-VI: ; %bb.0:11384; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x2411385; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf00011386; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -111387; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s211388; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s311389; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)11390; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s611391; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s711392; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 011393; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s411394; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s511395; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)11396; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s4, v011397; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s5, v111398; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s6, v211399; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s7, v311400; GCN-NOHSA-VI-NEXT: s_lshr_b32 s8, s6, 1611401; GCN-NOHSA-VI-NEXT: s_lshr_b32 s9, s7, 1611402; GCN-NOHSA-VI-NEXT: s_lshr_b32 s10, s4, 1611403; GCN-NOHSA-VI-NEXT: s_lshr_b32 s11, s5, 1611404; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s12, s511405; GCN-NOHSA-VI-NEXT: s_bfe_i32 s13, s5, 0x8000011406; GCN-NOHSA-VI-NEXT: s_ashr_i32 s5, s5, 1611407; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s16, s711408; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s18, s611409; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s14, s411410; GCN-NOHSA-VI-NEXT: s_bfe_i32 s15, s4, 0x8000011411; GCN-NOHSA-VI-NEXT: s_ashr_i32 s4, s4, 2411412; GCN-NOHSA-VI-NEXT: s_bfe_i32 s17, s7, 0x8000011413; GCN-NOHSA-VI-NEXT: s_bfe_i32 s19, s6, 0x8000011414; GCN-NOHSA-VI-NEXT: s_ashr_i32 s7, s7, 2411415; GCN-NOHSA-VI-NEXT: s_ashr_i32 s6, s6, 2411416; GCN-NOHSA-VI-NEXT: s_lshl_b32 s5, s5, 811417; GCN-NOHSA-VI-NEXT: s_bfe_i32 s11, s11, 0x8000011418; GCN-NOHSA-VI-NEXT: s_bfe_i32 s10, s10, 0x8000011419; GCN-NOHSA-VI-NEXT: s_lshl_b32 s16, s16, 811420; GCN-NOHSA-VI-NEXT: s_lshl_b32 s18, s18, 811421; GCN-NOHSA-VI-NEXT: s_bfe_i32 s9, s9, 0x8000011422; GCN-NOHSA-VI-NEXT: s_bfe_i32 s8, s8, 0x8000011423; GCN-NOHSA-VI-NEXT: s_lshl_b32 s12, s12, 811424; GCN-NOHSA-VI-NEXT: s_lshl_b32 s14, s14, 811425; GCN-NOHSA-VI-NEXT: s_lshl_b32 s4, s4, 1611426; GCN-NOHSA-VI-NEXT: s_and_b32 s17, 0xffff, s1711427; GCN-NOHSA-VI-NEXT: s_and_b32 s19, 0xffff, s1911428; GCN-NOHSA-VI-NEXT: s_lshl_b32 s7, s7, 1611429; GCN-NOHSA-VI-NEXT: s_lshl_b32 s6, s6, 1611430; GCN-NOHSA-VI-NEXT: s_and_b32 s5, s5, 0xffff000011431; GCN-NOHSA-VI-NEXT: s_and_b32 s11, 0xffff, s1111432; GCN-NOHSA-VI-NEXT: s_and_b32 s10, 0xffff, s1011433; GCN-NOHSA-VI-NEXT: s_and_b32 s16, s16, 0xffff000011434; GCN-NOHSA-VI-NEXT: s_and_b32 s18, s18, 0xffff000011435; GCN-NOHSA-VI-NEXT: s_and_b32 s9, 0xffff, s911436; GCN-NOHSA-VI-NEXT: s_and_b32 s8, 0xffff, s811437; GCN-NOHSA-VI-NEXT: s_and_b32 s13, 0xffff, s1311438; GCN-NOHSA-VI-NEXT: s_and_b32 s15, 0xffff, s1511439; GCN-NOHSA-VI-NEXT: s_and_b32 s12, s12, 0xffff000011440; GCN-NOHSA-VI-NEXT: s_and_b32 s14, s14, 0xffff000011441; GCN-NOHSA-VI-NEXT: s_or_b32 s5, s11, s511442; GCN-NOHSA-VI-NEXT: s_or_b32 s4, s10, s411443; GCN-NOHSA-VI-NEXT: s_or_b32 s10, s17, s1611444; GCN-NOHSA-VI-NEXT: s_or_b32 s11, s19, s1811445; GCN-NOHSA-VI-NEXT: s_or_b32 s7, s9, s711446; GCN-NOHSA-VI-NEXT: s_or_b32 s6, s8, s611447; GCN-NOHSA-VI-NEXT: s_or_b32 s12, s13, s1211448; GCN-NOHSA-VI-NEXT: s_or_b32 s13, s15, s1411449; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s1111450; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s611451; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s1011452; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s711453; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s1311454; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s411455; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s1211456; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s511457; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1611458; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 011459; GCN-NOHSA-VI-NEXT: s_endpgm11460;11461; EG-LABEL: global_sextload_v16i8_to_v16i16:11462; EG: ; %bb.0:11463; EG-NEXT: ALU 1, @10, KC0[CB0:0-32], KC1[]11464; EG-NEXT: TEX 0 @811465; EG-NEXT: ALU 104, @12, KC0[], KC1[]11466; EG-NEXT: ALU 46, @117, KC0[CB0:0-32], KC1[]11467; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T20.XYZW, T22.X, 011468; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T19.XYZW, T21.X, 111469; EG-NEXT: CF_END11470; EG-NEXT: PAD11471; EG-NEXT: Fetch clause starting at 8:11472; EG-NEXT: VTX_READ_128 T19.XYZW, T19.X, 0, #111473; EG-NEXT: ALU clause starting at 10:11474; EG-NEXT: MOV * T0.Y, T16.X,11475; EG-NEXT: MOV * T19.X, KC0[2].Z,11476; EG-NEXT: ALU clause starting at 12:11477; EG-NEXT: BFE_INT * T0.W, T19.X, 0.0, literal.x,11478; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11479; EG-NEXT: AND_INT T0.W, PV.W, literal.x,11480; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,11481; EG-NEXT: 65535(9.183409e-41), -65536(nan)11482; EG-NEXT: OR_INT * T0.W, PS, PV.W,11483; EG-NEXT: MOV * T16.X, PV.W,11484; EG-NEXT: MOV T0.Y, PV.X,11485; EG-NEXT: LSHR * T0.W, T19.X, literal.x,11486; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11487; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,11488; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,11489; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)11490; EG-NEXT: LSHL * T0.W, PV.W, literal.x,11491; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11492; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,11493; EG-NEXT: MOV T16.X, PV.W,11494; EG-NEXT: MOV T0.Y, T17.X,11495; EG-NEXT: LSHR * T0.W, T19.X, literal.x, BS:VEC_120/SCL_21211496; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11497; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,11498; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,11499; EG-NEXT: 8(1.121039e-44), -65536(nan)11500; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,11501; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)11502; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,11503; EG-NEXT: MOV * T17.X, PV.W,11504; EG-NEXT: MOV T0.Y, PV.X,11505; EG-NEXT: ASHR * T0.W, T19.X, literal.x,11506; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)11507; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,11508; EG-NEXT: LSHL * T0.W, PV.W, literal.y,11509; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)11510; EG-NEXT: OR_INT * T20.Y, PV.W, PS,11511; EG-NEXT: MOV T17.X, PV.Y,11512; EG-NEXT: MOV T0.Y, T12.X,11513; EG-NEXT: BFE_INT * T0.W, T19.Y, 0.0, literal.x,11514; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11515; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,11516; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,11517; EG-NEXT: -65536(nan), 65535(9.183409e-41)11518; EG-NEXT: OR_INT * T0.W, PV.W, PS,11519; EG-NEXT: MOV * T12.X, PV.W,11520; EG-NEXT: MOV T0.Y, PV.X,11521; EG-NEXT: LSHR * T0.W, T19.Y, literal.x,11522; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11523; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,11524; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,11525; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)11526; EG-NEXT: LSHL * T0.W, PV.W, literal.x,11527; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11528; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,11529; EG-NEXT: MOV T12.X, PV.W,11530; EG-NEXT: MOV T0.Y, T13.X,11531; EG-NEXT: LSHR * T0.W, T19.Y, literal.x,11532; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11533; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,11534; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,11535; EG-NEXT: 8(1.121039e-44), -65536(nan)11536; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,11537; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)11538; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,11539; EG-NEXT: MOV * T13.X, PV.W,11540; EG-NEXT: MOV T0.Y, PV.X,11541; EG-NEXT: ASHR * T0.W, T19.Y, literal.x,11542; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)11543; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,11544; EG-NEXT: LSHL * T0.W, PV.W, literal.y,11545; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)11546; EG-NEXT: OR_INT * T20.W, PV.W, PS,11547; EG-NEXT: MOV T13.X, PV.W,11548; EG-NEXT: MOV T0.Y, T8.X,11549; EG-NEXT: BFE_INT * T0.W, T19.Z, 0.0, literal.x,11550; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11551; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,11552; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,11553; EG-NEXT: -65536(nan), 65535(9.183409e-41)11554; EG-NEXT: OR_INT * T0.W, PV.W, PS,11555; EG-NEXT: MOV * T8.X, PV.W,11556; EG-NEXT: MOV T0.Y, PV.X,11557; EG-NEXT: LSHR * T0.W, T19.Z, literal.x,11558; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11559; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,11560; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,11561; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)11562; EG-NEXT: LSHL * T0.W, PV.W, literal.x,11563; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11564; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,11565; EG-NEXT: MOV T8.X, PV.W,11566; EG-NEXT: MOV T0.Y, T9.X,11567; EG-NEXT: LSHR * T0.W, T19.Z, literal.x,11568; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11569; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,11570; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,11571; EG-NEXT: 8(1.121039e-44), -65536(nan)11572; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,11573; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)11574; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,11575; EG-NEXT: MOV * T9.X, PV.W,11576; EG-NEXT: MOV T0.Y, PV.X,11577; EG-NEXT: ASHR * T0.W, T19.Z, literal.x,11578; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)11579; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,11580; EG-NEXT: LSHL * T0.W, PV.W, literal.y,11581; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)11582; EG-NEXT: ALU clause starting at 117:11583; EG-NEXT: OR_INT * T19.Y, T1.W, T0.W,11584; EG-NEXT: MOV T9.X, PV.Y,11585; EG-NEXT: MOV T0.Y, T4.X,11586; EG-NEXT: BFE_INT * T0.W, T19.W, 0.0, literal.x,11587; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11588; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,11589; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,11590; EG-NEXT: -65536(nan), 65535(9.183409e-41)11591; EG-NEXT: OR_INT * T0.W, PV.W, PS,11592; EG-NEXT: MOV * T4.X, PV.W,11593; EG-NEXT: MOV T0.Y, PV.X,11594; EG-NEXT: LSHR * T0.W, T19.W, literal.x,11595; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)11596; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,11597; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,11598; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)11599; EG-NEXT: LSHL * T0.W, PV.W, literal.x,11600; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11601; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,11602; EG-NEXT: MOV T4.X, PV.W,11603; EG-NEXT: MOV T0.Y, T5.X,11604; EG-NEXT: LSHR * T0.W, T19.W, literal.x,11605; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11606; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,11607; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,11608; EG-NEXT: 8(1.121039e-44), -65536(nan)11609; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,11610; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)11611; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,11612; EG-NEXT: MOV * T5.X, PV.W,11613; EG-NEXT: MOV T0.Y, PV.X,11614; EG-NEXT: ASHR T0.W, T19.W, literal.x,11615; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,11616; EG-NEXT: 24(3.363116e-44), 16(2.242078e-44)11617; EG-NEXT: LSHR T21.X, PS, literal.x,11618; EG-NEXT: AND_INT T1.W, PV.Y, literal.y,11619; EG-NEXT: LSHL * T0.W, PV.W, literal.z,11620; EG-NEXT: 2(2.802597e-45), 65535(9.183409e-41)11621; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)11622; EG-NEXT: LSHR T22.X, KC0[2].Y, literal.x,11623; EG-NEXT: OR_INT * T19.W, PV.W, PS,11624; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)11625; EG-NEXT: MOV T5.X, PV.W,11626; EG-NEXT: MOV * T20.X, T16.X,11627; EG-NEXT: MOV * T20.Z, T12.X,11628; EG-NEXT: MOV T19.X, T8.X,11629; EG-NEXT: MOV * T19.Z, T4.X, BS:VEC_120/SCL_21211630;11631; CM-LABEL: global_sextload_v16i8_to_v16i16:11632; CM: ; %bb.0:11633; CM-NEXT: ALU 1, @10, KC0[CB0:0-32], KC1[]11634; CM-NEXT: TEX 0 @811635; CM-NEXT: ALU 104, @12, KC0[], KC1[]11636; CM-NEXT: ALU 46, @117, KC0[CB0:0-32], KC1[]11637; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T19, T22.X11638; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T20, T21.X11639; CM-NEXT: CF_END11640; CM-NEXT: PAD11641; CM-NEXT: Fetch clause starting at 8:11642; CM-NEXT: VTX_READ_128 T19.XYZW, T19.X, 0, #111643; CM-NEXT: ALU clause starting at 10:11644; CM-NEXT: MOV * T0.Y, T16.X,11645; CM-NEXT: MOV * T19.X, KC0[2].Z,11646; CM-NEXT: ALU clause starting at 12:11647; CM-NEXT: BFE_INT * T0.W, T19.X, 0.0, literal.x,11648; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11649; CM-NEXT: AND_INT T0.Z, PV.W, literal.x,11650; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,11651; CM-NEXT: 65535(9.183409e-41), -65536(nan)11652; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,11653; CM-NEXT: MOV * T16.X, PV.W,11654; CM-NEXT: MOV T0.Y, PV.X,11655; CM-NEXT: LSHR * T0.W, T19.X, literal.x,11656; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11657; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,11658; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11659; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,11660; CM-NEXT: LSHL * T0.W, PV.W, literal.y,11661; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)11662; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11663; CM-NEXT: MOV T16.X, PV.W,11664; CM-NEXT: MOV T0.Y, T17.X,11665; CM-NEXT: LSHR * T0.W, T19.X, literal.x, BS:VEC_120/SCL_21211666; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)11667; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,11668; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11669; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,11670; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,11671; CM-NEXT: -65536(nan), 65535(9.183409e-41)11672; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11673; CM-NEXT: MOV * T17.X, PV.W,11674; CM-NEXT: MOV T0.Y, PV.X,11675; CM-NEXT: ASHR * T0.W, T19.X, literal.x,11676; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)11677; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11678; CM-NEXT: LSHL * T0.W, PV.W, literal.y,11679; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)11680; CM-NEXT: OR_INT * T20.Y, PV.Z, PV.W,11681; CM-NEXT: MOV T17.X, PV.Y,11682; CM-NEXT: MOV T0.Y, T12.X,11683; CM-NEXT: BFE_INT * T0.W, T19.Y, 0.0, literal.x,11684; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11685; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11686; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,11687; CM-NEXT: -65536(nan), 65535(9.183409e-41)11688; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11689; CM-NEXT: MOV * T12.X, PV.W,11690; CM-NEXT: MOV T0.Y, PV.X,11691; CM-NEXT: LSHR * T0.W, T19.Y, literal.x,11692; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11693; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,11694; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11695; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,11696; CM-NEXT: LSHL * T0.W, PV.W, literal.y,11697; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)11698; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11699; CM-NEXT: MOV T12.X, PV.W,11700; CM-NEXT: MOV T0.Y, T13.X,11701; CM-NEXT: LSHR * T0.W, T19.Y, literal.x,11702; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)11703; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,11704; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11705; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,11706; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,11707; CM-NEXT: -65536(nan), 65535(9.183409e-41)11708; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11709; CM-NEXT: MOV * T13.X, PV.W,11710; CM-NEXT: MOV T0.Y, PV.X,11711; CM-NEXT: ASHR * T0.W, T19.Y, literal.x,11712; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)11713; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11714; CM-NEXT: LSHL * T0.W, PV.W, literal.y,11715; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)11716; CM-NEXT: OR_INT * T20.W, PV.Z, PV.W,11717; CM-NEXT: MOV T13.X, PV.W,11718; CM-NEXT: MOV T0.Y, T8.X,11719; CM-NEXT: BFE_INT * T0.W, T19.Z, 0.0, literal.x,11720; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11721; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11722; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,11723; CM-NEXT: -65536(nan), 65535(9.183409e-41)11724; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11725; CM-NEXT: MOV * T8.X, PV.W,11726; CM-NEXT: MOV T0.Y, PV.X,11727; CM-NEXT: LSHR * T0.W, T19.Z, literal.x,11728; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11729; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,11730; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11731; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,11732; CM-NEXT: LSHL * T0.W, PV.W, literal.y,11733; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)11734; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11735; CM-NEXT: MOV T8.X, PV.W,11736; CM-NEXT: MOV T0.Y, T9.X,11737; CM-NEXT: LSHR * T0.W, T19.Z, literal.x,11738; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)11739; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,11740; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11741; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,11742; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,11743; CM-NEXT: -65536(nan), 65535(9.183409e-41)11744; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11745; CM-NEXT: MOV * T9.X, PV.W,11746; CM-NEXT: MOV T0.Y, PV.X,11747; CM-NEXT: ASHR * T0.W, T19.Z, literal.x,11748; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)11749; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11750; CM-NEXT: LSHL * T0.W, PV.W, literal.y,11751; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)11752; CM-NEXT: ALU clause starting at 117:11753; CM-NEXT: OR_INT * T19.Y, T0.Z, T0.W,11754; CM-NEXT: MOV T9.X, PV.Y,11755; CM-NEXT: MOV T0.Y, T4.X,11756; CM-NEXT: BFE_INT * T0.W, T19.W, 0.0, literal.x,11757; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11758; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,11759; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,11760; CM-NEXT: -65536(nan), 65535(9.183409e-41)11761; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11762; CM-NEXT: MOV * T4.X, PV.W,11763; CM-NEXT: MOV T0.Y, PV.X,11764; CM-NEXT: LSHR * T0.W, T19.W, literal.x,11765; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11766; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,11767; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11768; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,11769; CM-NEXT: LSHL * T0.W, PV.W, literal.y,11770; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)11771; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11772; CM-NEXT: MOV T4.X, PV.W,11773; CM-NEXT: MOV T0.Y, T5.X,11774; CM-NEXT: LSHR * T0.W, T19.W, literal.x,11775; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)11776; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,11777; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)11778; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,11779; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,11780; CM-NEXT: -65536(nan), 65535(9.183409e-41)11781; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,11782; CM-NEXT: MOV * T5.X, PV.W,11783; CM-NEXT: MOV T0.Y, PV.X,11784; CM-NEXT: ASHR * T0.W, T19.W, literal.x,11785; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)11786; CM-NEXT: LSHR T21.X, KC0[2].Y, literal.x,11787; CM-NEXT: AND_INT T0.Y, PV.Y, literal.y,11788; CM-NEXT: LSHL T0.Z, PV.W, literal.z,11789; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,11790; CM-NEXT: 2(2.802597e-45), 65535(9.183409e-41)11791; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)11792; CM-NEXT: LSHR T22.X, PV.W, literal.x,11793; CM-NEXT: OR_INT * T19.W, PV.Y, PV.Z,11794; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)11795; CM-NEXT: MOV * T5.X, PV.W,11796; CM-NEXT: MOV T20.X, T16.X,11797; CM-NEXT: MOV * T20.Z, T12.X, BS:VEC_120/SCL_21211798; CM-NEXT: MOV T19.X, T8.X,11799; CM-NEXT: MOV * T19.Z, T4.X, BS:VEC_120/SCL_21211800 %load = load <16 x i8>, ptr addrspace(1) %in11801 %ext = sext <16 x i8> %load to <16 x i16>11802 store <16 x i16> %ext, ptr addrspace(1) %out11803 ret void11804}11805 11806define amdgpu_kernel void @global_zextload_v32i8_to_v32i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {11807; GCN-NOHSA-SI-LABEL: global_zextload_v32i8_to_v32i16:11808; GCN-NOHSA-SI: ; %bb.0:11809; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x911810; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf00011811; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -111812; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s211813; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s311814; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)11815; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s611816; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s711817; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:1611818; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 011819; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s411820; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s511821; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)11822; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s4, v211823; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s6, v311824; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s8, v011825; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s10, v111826; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)11827; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s12, v611828; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s14, v711829; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s16, v411830; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s18, v511831; GCN-NOHSA-SI-NEXT: s_lshr_b32 s5, s4, 2411832; GCN-NOHSA-SI-NEXT: s_lshr_b32 s7, s6, 2411833; GCN-NOHSA-SI-NEXT: s_and_b32 s20, s4, 0xff0011834; GCN-NOHSA-SI-NEXT: s_and_b32 s21, s6, 0xff0011835; GCN-NOHSA-SI-NEXT: s_lshr_b32 s9, s8, 2411836; GCN-NOHSA-SI-NEXT: s_lshr_b32 s11, s10, 2411837; GCN-NOHSA-SI-NEXT: s_and_b32 s22, s8, 0xff0011838; GCN-NOHSA-SI-NEXT: s_and_b32 s23, s10, 0xff0011839; GCN-NOHSA-SI-NEXT: s_lshr_b32 s13, s12, 2411840; GCN-NOHSA-SI-NEXT: s_lshr_b32 s15, s14, 2411841; GCN-NOHSA-SI-NEXT: s_and_b32 s24, s12, 0xff0011842; GCN-NOHSA-SI-NEXT: s_and_b32 s25, s14, 0xff0011843; GCN-NOHSA-SI-NEXT: s_lshr_b32 s17, s16, 2411844; GCN-NOHSA-SI-NEXT: s_lshr_b32 s19, s18, 2411845; GCN-NOHSA-SI-NEXT: s_and_b32 s26, s16, 0xff0011846; GCN-NOHSA-SI-NEXT: s_and_b32 s27, s18, 0xff0011847; GCN-NOHSA-SI-NEXT: s_and_b32 s28, s18, 0xff11848; GCN-NOHSA-SI-NEXT: s_and_b32 s29, s16, 0xff11849; GCN-NOHSA-SI-NEXT: s_and_b32 s30, s14, 0xff11850; GCN-NOHSA-SI-NEXT: s_and_b32 s31, s12, 0xff11851; GCN-NOHSA-SI-NEXT: s_and_b32 s33, s10, 0xff11852; GCN-NOHSA-SI-NEXT: s_and_b32 s34, s8, 0xff11853; GCN-NOHSA-SI-NEXT: s_and_b32 s35, s6, 0xff11854; GCN-NOHSA-SI-NEXT: s_and_b32 s36, s4, 0xff11855; GCN-NOHSA-SI-NEXT: s_lshl_b32 s27, s27, 811856; GCN-NOHSA-SI-NEXT: s_lshl_b32 s26, s26, 811857; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[18:19], s[18:19], 1611858; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[16:17], s[16:17], 1611859; GCN-NOHSA-SI-NEXT: s_lshl_b32 s17, s25, 811860; GCN-NOHSA-SI-NEXT: s_lshl_b32 s19, s24, 811861; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[14:15], s[14:15], 1611862; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[12:13], s[12:13], 1611863; GCN-NOHSA-SI-NEXT: s_lshl_b32 s13, s23, 811864; GCN-NOHSA-SI-NEXT: s_lshl_b32 s15, s22, 811865; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[10:11], s[10:11], 1611866; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[8:9], s[8:9], 1611867; GCN-NOHSA-SI-NEXT: s_lshl_b32 s9, s21, 811868; GCN-NOHSA-SI-NEXT: s_lshl_b32 s11, s20, 811869; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[6:7], s[6:7], 1611870; GCN-NOHSA-SI-NEXT: s_lshr_b64 s[4:5], s[4:5], 1611871; GCN-NOHSA-SI-NEXT: s_or_b32 s5, s28, s2711872; GCN-NOHSA-SI-NEXT: s_or_b32 s7, s29, s2611873; GCN-NOHSA-SI-NEXT: s_and_b32 s18, s18, 0xff00ff11874; GCN-NOHSA-SI-NEXT: s_and_b32 s16, s16, 0xff00ff11875; GCN-NOHSA-SI-NEXT: s_or_b32 s17, s30, s1711876; GCN-NOHSA-SI-NEXT: s_or_b32 s19, s31, s1911877; GCN-NOHSA-SI-NEXT: s_and_b32 s14, s14, 0xff00ff11878; GCN-NOHSA-SI-NEXT: s_and_b32 s12, s12, 0xff00ff11879; GCN-NOHSA-SI-NEXT: s_or_b32 s13, s33, s1311880; GCN-NOHSA-SI-NEXT: s_or_b32 s15, s34, s1511881; GCN-NOHSA-SI-NEXT: s_and_b32 s10, s10, 0xff00ff11882; GCN-NOHSA-SI-NEXT: s_or_b32 s9, s35, s911883; GCN-NOHSA-SI-NEXT: s_or_b32 s11, s36, s1111884; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xff00ff11885; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xff00ff11886; GCN-NOHSA-SI-NEXT: s_and_b32 s8, s8, 0xff00ff11887; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s1111888; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s411889; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s911890; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s611891; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:4811892; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)11893; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s1511894; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s811895; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s1311896; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s1011897; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:3211898; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)11899; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s1911900; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s1211901; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s1711902; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s1411903; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1611904; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)11905; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s711906; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s1611907; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s511908; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s1811909; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 011910; GCN-NOHSA-SI-NEXT: s_endpgm11911;11912; GCN-HSA-LABEL: global_zextload_v32i8_to_v32i16:11913; GCN-HSA: ; %bb.0:11914; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x011915; GCN-HSA-NEXT: s_add_i32 s12, s12, s1711916; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s1311917; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 811918; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)11919; GCN-HSA-NEXT: v_mov_b32_e32 v0, s211920; GCN-HSA-NEXT: v_mov_b32_e32 v1, s311921; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]11922; GCN-HSA-NEXT: v_mov_b32_e32 v13, s111923; GCN-HSA-NEXT: v_mov_b32_e32 v12, s011924; GCN-HSA-NEXT: s_waitcnt vmcnt(0)11925; GCN-HSA-NEXT: v_readfirstlane_b32 s4, v211926; GCN-HSA-NEXT: v_readfirstlane_b32 s6, v311927; GCN-HSA-NEXT: v_readfirstlane_b32 s8, v011928; GCN-HSA-NEXT: v_readfirstlane_b32 s10, v111929; GCN-HSA-NEXT: s_lshr_b32 s5, s4, 2411930; GCN-HSA-NEXT: s_lshr_b32 s7, s6, 2411931; GCN-HSA-NEXT: s_and_b32 s12, s4, 0xff0011932; GCN-HSA-NEXT: s_and_b32 s13, s6, 0xff0011933; GCN-HSA-NEXT: s_lshr_b32 s9, s8, 2411934; GCN-HSA-NEXT: s_lshr_b32 s11, s10, 2411935; GCN-HSA-NEXT: s_and_b32 s14, s8, 0xff0011936; GCN-HSA-NEXT: s_and_b32 s15, s10, 0xff0011937; GCN-HSA-NEXT: s_add_u32 s2, s2, 1611938; GCN-HSA-NEXT: s_addc_u32 s3, s3, 011939; GCN-HSA-NEXT: v_mov_b32_e32 v0, s211940; GCN-HSA-NEXT: v_mov_b32_e32 v1, s311941; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]11942; GCN-HSA-NEXT: s_lshr_b64 s[2:3], s[10:11], 1611943; GCN-HSA-NEXT: s_and_b32 s17, s8, 0xff11944; GCN-HSA-NEXT: s_lshr_b64 s[8:9], s[8:9], 1611945; GCN-HSA-NEXT: s_and_b32 s3, s6, 0xff11946; GCN-HSA-NEXT: s_lshr_b64 s[6:7], s[6:7], 1611947; GCN-HSA-NEXT: s_and_b32 s16, s10, 0xff11948; GCN-HSA-NEXT: s_lshl_b32 s14, s14, 811949; GCN-HSA-NEXT: s_lshl_b32 s9, s13, 811950; GCN-HSA-NEXT: s_and_b32 s10, s4, 0xff11951; GCN-HSA-NEXT: s_lshl_b32 s11, s12, 811952; GCN-HSA-NEXT: s_lshr_b64 s[4:5], s[4:5], 1611953; GCN-HSA-NEXT: s_and_b32 s8, s8, 0xff00ff11954; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xff00ff11955; GCN-HSA-NEXT: s_lshl_b32 s15, s15, 811956; GCN-HSA-NEXT: s_or_b32 s7, s17, s1411957; GCN-HSA-NEXT: s_and_b32 s2, s2, 0xff00ff11958; GCN-HSA-NEXT: s_or_b32 s3, s3, s911959; GCN-HSA-NEXT: s_or_b32 s9, s10, s1111960; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xff00ff11961; GCN-HSA-NEXT: v_mov_b32_e32 v7, s611962; GCN-HSA-NEXT: v_mov_b32_e32 v9, s811963; GCN-HSA-NEXT: s_or_b32 s5, s16, s1511964; GCN-HSA-NEXT: v_mov_b32_e32 v4, s911965; GCN-HSA-NEXT: v_mov_b32_e32 v5, s411966; GCN-HSA-NEXT: v_mov_b32_e32 v8, s711967; GCN-HSA-NEXT: v_mov_b32_e32 v11, s211968; GCN-HSA-NEXT: v_mov_b32_e32 v6, s311969; GCN-HSA-NEXT: v_mov_b32_e32 v10, s511970; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[8:11]11971; GCN-HSA-NEXT: s_waitcnt vmcnt(1)11972; GCN-HSA-NEXT: v_readfirstlane_b32 s6, v011973; GCN-HSA-NEXT: v_readfirstlane_b32 s8, v111974; GCN-HSA-NEXT: v_readfirstlane_b32 s2, v211975; GCN-HSA-NEXT: v_readfirstlane_b32 s4, v311976; GCN-HSA-NEXT: s_lshr_b32 s7, s6, 2411977; GCN-HSA-NEXT: s_lshr_b32 s9, s8, 2411978; GCN-HSA-NEXT: s_lshr_b32 s3, s2, 2411979; GCN-HSA-NEXT: s_lshr_b32 s5, s4, 2411980; GCN-HSA-NEXT: s_and_b32 s10, s2, 0xff0011981; GCN-HSA-NEXT: s_and_b32 s11, s4, 0xff0011982; GCN-HSA-NEXT: s_and_b32 s12, s6, 0xff0011983; GCN-HSA-NEXT: s_and_b32 s13, s8, 0xff0011984; GCN-HSA-NEXT: s_and_b32 s14, s8, 0xff11985; GCN-HSA-NEXT: s_and_b32 s15, s6, 0xff11986; GCN-HSA-NEXT: s_lshr_b64 s[8:9], s[8:9], 1611987; GCN-HSA-NEXT: s_lshr_b64 s[6:7], s[6:7], 1611988; GCN-HSA-NEXT: s_and_b32 s16, s4, 0xff11989; GCN-HSA-NEXT: s_and_b32 s17, s2, 0xff11990; GCN-HSA-NEXT: s_lshl_b32 s13, s13, 811991; GCN-HSA-NEXT: s_lshl_b32 s12, s12, 811992; GCN-HSA-NEXT: s_lshl_b32 s7, s11, 811993; GCN-HSA-NEXT: s_lshl_b32 s9, s10, 811994; GCN-HSA-NEXT: s_lshr_b64 s[4:5], s[4:5], 1611995; GCN-HSA-NEXT: s_lshr_b64 s[2:3], s[2:3], 1611996; GCN-HSA-NEXT: s_or_b32 s3, s14, s1311997; GCN-HSA-NEXT: s_or_b32 s5, s15, s1211998; GCN-HSA-NEXT: s_and_b32 s8, s8, 0xff00ff11999; GCN-HSA-NEXT: s_and_b32 s6, s6, 0xff00ff12000; GCN-HSA-NEXT: s_or_b32 s7, s16, s712001; GCN-HSA-NEXT: s_or_b32 s9, s17, s912002; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xff00ff12003; GCN-HSA-NEXT: s_and_b32 s10, s2, 0xff00ff12004; GCN-HSA-NEXT: s_add_u32 s2, s0, 1612005; GCN-HSA-NEXT: v_mov_b32_e32 v10, s312006; GCN-HSA-NEXT: s_addc_u32 s3, s1, 012007; GCN-HSA-NEXT: v_mov_b32_e32 v13, s312008; GCN-HSA-NEXT: v_mov_b32_e32 v12, s212009; GCN-HSA-NEXT: s_add_u32 s2, s0, 4812010; GCN-HSA-NEXT: s_addc_u32 s3, s1, 012011; GCN-HSA-NEXT: flat_store_dwordx4 v[12:13], v[4:7]12012; GCN-HSA-NEXT: v_mov_b32_e32 v0, s912013; GCN-HSA-NEXT: v_mov_b32_e32 v5, s312014; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1012015; GCN-HSA-NEXT: v_mov_b32_e32 v2, s712016; GCN-HSA-NEXT: v_mov_b32_e32 v3, s412017; GCN-HSA-NEXT: v_mov_b32_e32 v4, s212018; GCN-HSA-NEXT: s_add_u32 s0, s0, 3212019; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]12020; GCN-HSA-NEXT: s_addc_u32 s1, s1, 012021; GCN-HSA-NEXT: v_mov_b32_e32 v0, s012022; GCN-HSA-NEXT: v_mov_b32_e32 v8, s512023; GCN-HSA-NEXT: v_mov_b32_e32 v9, s612024; GCN-HSA-NEXT: v_mov_b32_e32 v11, s812025; GCN-HSA-NEXT: v_mov_b32_e32 v1, s112026; GCN-HSA-NEXT: flat_store_dwordx4 v[0:1], v[8:11]12027; GCN-HSA-NEXT: s_endpgm12028;12029; GCN-NOHSA-VI-LABEL: global_zextload_v32i8_to_v32i16:12030; GCN-NOHSA-VI: ; %bb.0:12031; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x2412032; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf00012033; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -112034; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s212035; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s312036; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)12037; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s612038; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s712039; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:1612040; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 012041; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s412042; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s512043; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)12044; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s6, v012045; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)12046; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s8, v612047; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s4, v212048; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s12, v312049; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s13, v112050; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s10, v412051; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s15, v512052; GCN-NOHSA-VI-NEXT: s_lshr_b32 s7, s6, 2412053; GCN-NOHSA-VI-NEXT: s_lshr_b32 s9, s8, 2412054; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s14, v712055; GCN-NOHSA-VI-NEXT: s_lshr_b32 s5, s4, 2412056; GCN-NOHSA-VI-NEXT: s_lshr_b32 s11, s10, 2412057; GCN-NOHSA-VI-NEXT: s_lshr_b32 s16, s15, 2412058; GCN-NOHSA-VI-NEXT: s_lshl_b32 s20, s10, 812059; GCN-NOHSA-VI-NEXT: s_and_b32 s24, s8, 0xff12060; GCN-NOHSA-VI-NEXT: s_lshl_b32 s25, s8, 812061; GCN-NOHSA-VI-NEXT: s_lshr_b32 s26, s13, 2412062; GCN-NOHSA-VI-NEXT: s_and_b32 s29, s6, 0xff12063; GCN-NOHSA-VI-NEXT: s_lshl_b32 s30, s6, 812064; GCN-NOHSA-VI-NEXT: s_lshr_b32 s31, s12, 2412065; GCN-NOHSA-VI-NEXT: s_bfe_u32 s33, s12, 0x8001012066; GCN-NOHSA-VI-NEXT: s_and_b32 s34, s12, 0xff12067; GCN-NOHSA-VI-NEXT: s_lshl_b32 s12, s12, 812068; GCN-NOHSA-VI-NEXT: s_lshl_b32 s36, s4, 812069; GCN-NOHSA-VI-NEXT: s_lshr_b64 s[8:9], s[8:9], 1612070; GCN-NOHSA-VI-NEXT: s_lshr_b64 s[6:7], s[6:7], 1612071; GCN-NOHSA-VI-NEXT: s_bfe_u32 s17, s15, 0x8001012072; GCN-NOHSA-VI-NEXT: s_and_b32 s18, s15, 0xff12073; GCN-NOHSA-VI-NEXT: s_lshl_b32 s15, s15, 812074; GCN-NOHSA-VI-NEXT: s_and_b32 s19, s10, 0xff12075; GCN-NOHSA-VI-NEXT: s_lshr_b32 s21, s14, 2412076; GCN-NOHSA-VI-NEXT: s_bfe_u32 s22, s14, 0x8001012077; GCN-NOHSA-VI-NEXT: s_and_b32 s23, s14, 0xff12078; GCN-NOHSA-VI-NEXT: s_lshl_b32 s14, s14, 812079; GCN-NOHSA-VI-NEXT: s_bfe_u32 s27, s13, 0x8001012080; GCN-NOHSA-VI-NEXT: s_and_b32 s28, s13, 0xff12081; GCN-NOHSA-VI-NEXT: s_lshl_b32 s13, s13, 812082; GCN-NOHSA-VI-NEXT: s_and_b32 s35, s4, 0xff12083; GCN-NOHSA-VI-NEXT: s_lshl_b32 s16, s16, 1612084; GCN-NOHSA-VI-NEXT: s_and_b32 s20, s20, 0xff000012085; GCN-NOHSA-VI-NEXT: s_lshr_b64 s[10:11], s[10:11], 1612086; GCN-NOHSA-VI-NEXT: s_lshl_b32 s9, s26, 1612087; GCN-NOHSA-VI-NEXT: s_lshl_b32 s7, s31, 1612088; GCN-NOHSA-VI-NEXT: s_and_b32 s12, s12, 0xff000012089; GCN-NOHSA-VI-NEXT: s_and_b32 s26, s36, 0xff000012090; GCN-NOHSA-VI-NEXT: s_lshr_b64 s[4:5], s[4:5], 1612091; GCN-NOHSA-VI-NEXT: s_and_b32 s15, s15, 0xff000012092; GCN-NOHSA-VI-NEXT: s_lshl_b32 s11, s21, 1612093; GCN-NOHSA-VI-NEXT: s_and_b32 s14, s14, 0xff000012094; GCN-NOHSA-VI-NEXT: s_and_b32 s21, s25, 0xff000012095; GCN-NOHSA-VI-NEXT: s_and_b32 s13, s13, 0xff000012096; GCN-NOHSA-VI-NEXT: s_and_b32 s25, s30, 0xff000012097; GCN-NOHSA-VI-NEXT: s_or_b32 s5, s17, s1612098; GCN-NOHSA-VI-NEXT: s_or_b32 s16, s19, s2012099; GCN-NOHSA-VI-NEXT: s_or_b32 s7, s33, s712100; GCN-NOHSA-VI-NEXT: s_or_b32 s12, s34, s1212101; GCN-NOHSA-VI-NEXT: s_or_b32 s19, s35, s2612102; GCN-NOHSA-VI-NEXT: s_and_b32 s4, s4, 0xff00ff12103; GCN-NOHSA-VI-NEXT: s_or_b32 s15, s18, s1512104; GCN-NOHSA-VI-NEXT: s_and_b32 s10, s10, 0xff00ff12105; GCN-NOHSA-VI-NEXT: s_or_b32 s11, s22, s1112106; GCN-NOHSA-VI-NEXT: s_or_b32 s14, s23, s1412107; GCN-NOHSA-VI-NEXT: s_or_b32 s17, s24, s2112108; GCN-NOHSA-VI-NEXT: s_and_b32 s8, s8, 0xff00ff12109; GCN-NOHSA-VI-NEXT: s_or_b32 s9, s27, s912110; GCN-NOHSA-VI-NEXT: s_or_b32 s13, s28, s1312111; GCN-NOHSA-VI-NEXT: s_or_b32 s18, s29, s2512112; GCN-NOHSA-VI-NEXT: s_and_b32 s6, s6, 0xff00ff12113; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s1912114; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s412115; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s1212116; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s712117; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v4, s1812118; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v5, s612119; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v6, s1312120; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v7, s912121; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v8, s1712122; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v9, s812123; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v10, s1412124; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:4812125; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:3212126; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v11, s1112127; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s1612128; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s1012129; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s1512130; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s512131; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:1612132; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 012133; GCN-NOHSA-VI-NEXT: s_endpgm12134;12135; EG-LABEL: global_zextload_v32i8_to_v32i16:12136; EG: ; %bb.0:12137; EG-NEXT: ALU 1, @14, KC0[CB0:0-32], KC1[]12138; EG-NEXT: TEX 1 @1012139; EG-NEXT: ALU 103, @16, KC0[], KC1[]12140; EG-NEXT: ALU 104, @120, KC0[], KC1[]12141; EG-NEXT: ALU 41, @225, KC0[CB0:0-32], KC1[]12142; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T36.XYZW, T42.X, 012143; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T37.XYZW, T41.X, 012144; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T38.XYZW, T40.X, 012145; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T35.XYZW, T39.X, 112146; EG-NEXT: CF_END12147; EG-NEXT: Fetch clause starting at 10:12148; EG-NEXT: VTX_READ_128 T37.XYZW, T35.X, 16, #112149; EG-NEXT: VTX_READ_128 T35.XYZW, T35.X, 0, #112150; EG-NEXT: ALU clause starting at 14:12151; EG-NEXT: MOV * T0.Y, T16.X,12152; EG-NEXT: MOV * T35.X, KC0[2].Z,12153; EG-NEXT: ALU clause starting at 16:12154; EG-NEXT: AND_INT T0.W, T37.X, literal.x,12155; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,12156; EG-NEXT: 255(3.573311e-43), -65536(nan)12157; EG-NEXT: OR_INT * T0.W, PS, PV.W,12158; EG-NEXT: MOV * T16.X, PV.W,12159; EG-NEXT: MOV T0.Y, PV.X,12160; EG-NEXT: LSHL * T0.W, T37.X, literal.x,12161; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12162; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,12163; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,12164; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12165; EG-NEXT: OR_INT * T0.W, PV.W, PS,12166; EG-NEXT: MOV T16.X, PV.W,12167; EG-NEXT: MOV T0.Y, T17.X,12168; EG-NEXT: MOV * T0.W, literal.x,12169; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12170; EG-NEXT: BFE_UINT T1.W, T37.X, literal.x, PV.W,12171; EG-NEXT: AND_INT * T2.W, PV.Y, literal.y,12172; EG-NEXT: 16(2.242078e-44), -65536(nan)12173; EG-NEXT: OR_INT * T1.W, PS, PV.W,12174; EG-NEXT: MOV * T17.X, PV.W,12175; EG-NEXT: MOV T0.Y, PV.X,12176; EG-NEXT: LSHR * T1.W, T37.X, literal.x,12177; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12178; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12179; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12180; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12181; EG-NEXT: OR_INT * T36.Y, PV.W, PS,12182; EG-NEXT: MOV T17.X, PV.Y,12183; EG-NEXT: MOV * T0.Y, T12.X,12184; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,12185; EG-NEXT: AND_INT * T2.W, T37.Y, literal.y,12186; EG-NEXT: -65536(nan), 255(3.573311e-43)12187; EG-NEXT: OR_INT * T1.W, PV.W, PS,12188; EG-NEXT: MOV * T12.X, PV.W,12189; EG-NEXT: MOV T0.Y, PV.X,12190; EG-NEXT: LSHL * T1.W, T37.Y, literal.x,12191; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12192; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12193; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12194; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12195; EG-NEXT: OR_INT * T1.W, PV.W, PS,12196; EG-NEXT: MOV T12.X, PV.W,12197; EG-NEXT: MOV T0.Y, T13.X,12198; EG-NEXT: BFE_UINT * T1.W, T37.Y, literal.x, T0.W,12199; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)12200; EG-NEXT: AND_INT * T2.W, PV.Y, literal.x,12201; EG-NEXT: -65536(nan), 0(0.000000e+00)12202; EG-NEXT: OR_INT * T1.W, PV.W, T1.W,12203; EG-NEXT: MOV * T13.X, PV.W,12204; EG-NEXT: MOV T0.Y, PV.X,12205; EG-NEXT: LSHR * T1.W, T37.Y, literal.x,12206; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12207; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12208; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12209; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12210; EG-NEXT: OR_INT * T36.W, PV.W, PS,12211; EG-NEXT: MOV T13.X, PV.W,12212; EG-NEXT: MOV * T0.Y, T8.X,12213; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,12214; EG-NEXT: AND_INT * T2.W, T37.Z, literal.y,12215; EG-NEXT: -65536(nan), 255(3.573311e-43)12216; EG-NEXT: OR_INT * T1.W, PV.W, PS,12217; EG-NEXT: MOV * T8.X, PV.W,12218; EG-NEXT: MOV T0.Y, PV.X,12219; EG-NEXT: LSHL * T1.W, T37.Z, literal.x,12220; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12221; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12222; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12223; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12224; EG-NEXT: OR_INT * T1.W, PV.W, PS,12225; EG-NEXT: MOV T8.X, PV.W,12226; EG-NEXT: MOV T0.Y, T9.X,12227; EG-NEXT: BFE_UINT * T1.W, T37.Z, literal.x, T0.W,12228; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)12229; EG-NEXT: AND_INT * T2.W, PV.Y, literal.x,12230; EG-NEXT: -65536(nan), 0(0.000000e+00)12231; EG-NEXT: OR_INT * T1.W, PV.W, T1.W,12232; EG-NEXT: MOV * T9.X, PV.W,12233; EG-NEXT: MOV T0.Y, PV.X,12234; EG-NEXT: LSHR * T1.W, T37.Z, literal.x,12235; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12236; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12237; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12238; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12239; EG-NEXT: OR_INT * T37.Y, PV.W, PS,12240; EG-NEXT: MOV T9.X, PV.Y,12241; EG-NEXT: MOV * T0.Y, T4.X,12242; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,12243; EG-NEXT: AND_INT * T2.W, T37.W, literal.y,12244; EG-NEXT: -65536(nan), 255(3.573311e-43)12245; EG-NEXT: OR_INT * T1.W, PV.W, PS,12246; EG-NEXT: MOV * T4.X, PV.W,12247; EG-NEXT: MOV T0.Y, PV.X,12248; EG-NEXT: LSHL * T1.W, T37.W, literal.x,12249; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12250; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12251; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12252; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12253; EG-NEXT: OR_INT * T1.W, PV.W, PS,12254; EG-NEXT: MOV T4.X, PV.W,12255; EG-NEXT: MOV T0.Y, T5.X,12256; EG-NEXT: BFE_UINT * T1.W, T37.W, literal.x, T0.W,12257; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)12258; EG-NEXT: ALU clause starting at 120:12259; EG-NEXT: AND_INT * T2.W, T0.Y, literal.x,12260; EG-NEXT: -65536(nan), 0(0.000000e+00)12261; EG-NEXT: OR_INT * T1.W, PV.W, T1.W,12262; EG-NEXT: MOV * T5.X, PV.W,12263; EG-NEXT: MOV T0.Y, PV.X,12264; EG-NEXT: LSHR * T1.W, T37.W, literal.x,12265; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12266; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12267; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12268; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12269; EG-NEXT: OR_INT * T37.W, PV.W, PS,12270; EG-NEXT: MOV T5.X, PV.W,12271; EG-NEXT: MOV * T0.Y, T32.X,12272; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,12273; EG-NEXT: AND_INT * T2.W, T35.X, literal.y,12274; EG-NEXT: -65536(nan), 255(3.573311e-43)12275; EG-NEXT: OR_INT * T1.W, PV.W, PS,12276; EG-NEXT: MOV * T32.X, PV.W,12277; EG-NEXT: MOV T0.Y, PV.X,12278; EG-NEXT: LSHL * T1.W, T35.X, literal.x,12279; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12280; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12281; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12282; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12283; EG-NEXT: OR_INT * T1.W, PV.W, PS,12284; EG-NEXT: MOV T32.X, PV.W,12285; EG-NEXT: MOV T0.Y, T33.X,12286; EG-NEXT: BFE_UINT * T1.W, T35.X, literal.x, T0.W, BS:VEC_120/SCL_21212287; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)12288; EG-NEXT: AND_INT * T2.W, PV.Y, literal.x,12289; EG-NEXT: -65536(nan), 0(0.000000e+00)12290; EG-NEXT: OR_INT * T1.W, PV.W, T1.W,12291; EG-NEXT: MOV * T33.X, PV.W,12292; EG-NEXT: MOV T0.Y, PV.X,12293; EG-NEXT: LSHR * T1.W, T35.X, literal.x,12294; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12295; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12296; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12297; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12298; EG-NEXT: OR_INT * T38.Y, PV.W, PS,12299; EG-NEXT: MOV T33.X, PV.Y,12300; EG-NEXT: MOV * T0.Y, T28.X,12301; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,12302; EG-NEXT: AND_INT * T2.W, T35.Y, literal.y,12303; EG-NEXT: -65536(nan), 255(3.573311e-43)12304; EG-NEXT: OR_INT * T1.W, PV.W, PS,12305; EG-NEXT: MOV * T28.X, PV.W,12306; EG-NEXT: MOV T0.Y, PV.X,12307; EG-NEXT: LSHL * T1.W, T35.Y, literal.x,12308; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12309; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12310; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12311; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12312; EG-NEXT: OR_INT * T1.W, PV.W, PS,12313; EG-NEXT: MOV T28.X, PV.W,12314; EG-NEXT: MOV T0.Y, T29.X,12315; EG-NEXT: BFE_UINT * T1.W, T35.Y, literal.x, T0.W,12316; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)12317; EG-NEXT: AND_INT * T2.W, PV.Y, literal.x,12318; EG-NEXT: -65536(nan), 0(0.000000e+00)12319; EG-NEXT: OR_INT * T1.W, PV.W, T1.W,12320; EG-NEXT: MOV * T29.X, PV.W,12321; EG-NEXT: MOV T0.Y, PV.X,12322; EG-NEXT: LSHR * T1.W, T35.Y, literal.x,12323; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12324; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12325; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12326; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12327; EG-NEXT: OR_INT * T38.W, PV.W, PS,12328; EG-NEXT: MOV T29.X, PV.W,12329; EG-NEXT: MOV * T0.Y, T24.X,12330; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,12331; EG-NEXT: AND_INT * T2.W, T35.Z, literal.y,12332; EG-NEXT: -65536(nan), 255(3.573311e-43)12333; EG-NEXT: OR_INT * T1.W, PV.W, PS,12334; EG-NEXT: MOV * T24.X, PV.W,12335; EG-NEXT: MOV T0.Y, PV.X,12336; EG-NEXT: LSHL * T1.W, T35.Z, literal.x,12337; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12338; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12339; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12340; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12341; EG-NEXT: OR_INT * T1.W, PV.W, PS,12342; EG-NEXT: MOV T24.X, PV.W,12343; EG-NEXT: MOV T0.Y, T25.X,12344; EG-NEXT: BFE_UINT * T1.W, T35.Z, literal.x, T0.W,12345; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)12346; EG-NEXT: AND_INT * T2.W, PV.Y, literal.x,12347; EG-NEXT: -65536(nan), 0(0.000000e+00)12348; EG-NEXT: OR_INT * T1.W, PV.W, T1.W,12349; EG-NEXT: MOV * T25.X, PV.W,12350; EG-NEXT: MOV T0.Y, PV.X,12351; EG-NEXT: LSHR * T1.W, T35.Z, literal.x,12352; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12353; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12354; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12355; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12356; EG-NEXT: OR_INT * T35.Y, PV.W, PS,12357; EG-NEXT: MOV T25.X, PV.Y,12358; EG-NEXT: MOV * T0.Y, T20.X,12359; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,12360; EG-NEXT: AND_INT * T2.W, T35.W, literal.y,12361; EG-NEXT: -65536(nan), 255(3.573311e-43)12362; EG-NEXT: OR_INT * T1.W, PV.W, PS,12363; EG-NEXT: MOV * T20.X, PV.W,12364; EG-NEXT: ALU clause starting at 225:12365; EG-NEXT: MOV T0.Y, T20.X,12366; EG-NEXT: LSHL * T1.W, T35.W, literal.x,12367; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)12368; EG-NEXT: AND_INT T2.W, PV.Y, literal.x,12369; EG-NEXT: AND_INT * T1.W, PV.W, literal.y,12370; EG-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12371; EG-NEXT: OR_INT * T1.W, PV.W, PS,12372; EG-NEXT: MOV T20.X, PV.W,12373; EG-NEXT: MOV T0.Y, T21.X,12374; EG-NEXT: BFE_UINT * T0.W, T35.W, literal.x, T0.W,12375; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)12376; EG-NEXT: AND_INT * T1.W, PV.Y, literal.x,12377; EG-NEXT: -65536(nan), 0(0.000000e+00)12378; EG-NEXT: OR_INT * T0.W, PV.W, T0.W,12379; EG-NEXT: MOV * T21.X, PV.W,12380; EG-NEXT: MOV T0.Y, PV.X,12381; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,12382; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)12383; EG-NEXT: LSHR T39.X, PV.W, literal.x,12384; EG-NEXT: LSHR * T40.X, KC0[2].Y, literal.x,12385; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)12386; EG-NEXT: LSHR T0.W, T35.W, literal.x,12387; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,12388; EG-NEXT: 8(1.121039e-44), 48(6.726233e-44)12389; EG-NEXT: LSHR T41.X, PS, literal.x,12390; EG-NEXT: AND_INT T0.Z, T0.Y, literal.y,12391; EG-NEXT: AND_INT T0.W, PV.W, literal.z,12392; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.w,12393; EG-NEXT: 2(2.802597e-45), 65535(9.183409e-41)12394; EG-NEXT: 16711680(2.341805e-38), 32(4.484155e-44)12395; EG-NEXT: LSHR T42.X, PS, literal.x,12396; EG-NEXT: OR_INT * T35.W, PV.Z, PV.W,12397; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)12398; EG-NEXT: MOV T21.X, PV.W,12399; EG-NEXT: MOV * T36.X, T16.X,12400; EG-NEXT: MOV * T36.Z, T12.X,12401; EG-NEXT: MOV T37.X, T8.X,12402; EG-NEXT: MOV T37.Z, T4.X, BS:VEC_120/SCL_21212403; EG-NEXT: MOV * T38.X, T32.X,12404; EG-NEXT: MOV * T38.Z, T28.X,12405; EG-NEXT: MOV T35.X, T24.X,12406; EG-NEXT: MOV * T35.Z, T20.X, BS:VEC_120/SCL_21212407;12408; CM-LABEL: global_zextload_v32i8_to_v32i16:12409; CM: ; %bb.0:12410; CM-NEXT: ALU 1, @14, KC0[CB0:0-32], KC1[]12411; CM-NEXT: TEX 1 @1012412; CM-NEXT: ALU 101, @16, KC0[], KC1[]12413; CM-NEXT: ALU 101, @118, KC0[], KC1[]12414; CM-NEXT: ALU 40, @220, KC0[CB0:0-32], KC1[]12415; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T36, T42.X12416; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T38, T41.X12417; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T37, T40.X12418; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T35, T39.X12419; CM-NEXT: CF_END12420; CM-NEXT: Fetch clause starting at 10:12421; CM-NEXT: VTX_READ_128 T37.XYZW, T35.X, 16, #112422; CM-NEXT: VTX_READ_128 T36.XYZW, T35.X, 0, #112423; CM-NEXT: ALU clause starting at 14:12424; CM-NEXT: MOV * T0.Y, T16.X,12425; CM-NEXT: MOV * T35.X, KC0[2].Z,12426; CM-NEXT: ALU clause starting at 16:12427; CM-NEXT: AND_INT T0.Z, T37.X, literal.x,12428; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,12429; CM-NEXT: 255(3.573311e-43), -65536(nan)12430; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,12431; CM-NEXT: MOV * T16.X, PV.W,12432; CM-NEXT: MOV T0.Y, PV.X,12433; CM-NEXT: LSHL * T0.W, T37.X, literal.x,12434; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12435; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12436; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,12437; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12438; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,12439; CM-NEXT: MOV T16.X, PV.W,12440; CM-NEXT: MOV T0.Y, T17.X,12441; CM-NEXT: MOV * T0.W, literal.x,12442; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12443; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12444; CM-NEXT: BFE_UINT * T1.W, T37.X, literal.y, PV.W,12445; CM-NEXT: -65536(nan), 16(2.242078e-44)12446; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12447; CM-NEXT: MOV * T17.X, PV.W,12448; CM-NEXT: MOV T0.Y, PV.X,12449; CM-NEXT: LSHR * T1.W, T37.X, literal.x,12450; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12451; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12452; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12453; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12454; CM-NEXT: OR_INT * T35.Y, PV.Z, PV.W,12455; CM-NEXT: MOV T17.X, PV.Y,12456; CM-NEXT: MOV * T0.Y, T12.X,12457; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12458; CM-NEXT: AND_INT * T1.W, T37.Y, literal.y,12459; CM-NEXT: -65536(nan), 255(3.573311e-43)12460; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12461; CM-NEXT: MOV * T12.X, PV.W,12462; CM-NEXT: MOV T0.Y, PV.X,12463; CM-NEXT: LSHL * T1.W, T37.Y, literal.x,12464; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12465; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12466; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12467; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12468; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12469; CM-NEXT: MOV T12.X, PV.W,12470; CM-NEXT: MOV * T0.Y, T13.X,12471; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12472; CM-NEXT: BFE_UINT * T1.W, T37.Y, literal.y, T0.W,12473; CM-NEXT: -65536(nan), 16(2.242078e-44)12474; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12475; CM-NEXT: MOV * T13.X, PV.W,12476; CM-NEXT: MOV T0.Y, PV.X,12477; CM-NEXT: LSHR * T1.W, T37.Y, literal.x,12478; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12479; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12480; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12481; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12482; CM-NEXT: OR_INT * T35.W, PV.Z, PV.W,12483; CM-NEXT: MOV T13.X, PV.W,12484; CM-NEXT: MOV * T0.Y, T8.X,12485; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12486; CM-NEXT: AND_INT * T1.W, T37.Z, literal.y,12487; CM-NEXT: -65536(nan), 255(3.573311e-43)12488; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12489; CM-NEXT: MOV * T8.X, PV.W,12490; CM-NEXT: MOV T0.Y, PV.X,12491; CM-NEXT: LSHL * T1.W, T37.Z, literal.x,12492; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12493; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12494; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12495; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12496; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12497; CM-NEXT: MOV T8.X, PV.W,12498; CM-NEXT: MOV * T0.Y, T9.X,12499; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12500; CM-NEXT: BFE_UINT * T1.W, T37.Z, literal.y, T0.W,12501; CM-NEXT: -65536(nan), 16(2.242078e-44)12502; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12503; CM-NEXT: MOV * T9.X, PV.W,12504; CM-NEXT: MOV T0.Y, PV.X,12505; CM-NEXT: LSHR * T1.W, T37.Z, literal.x,12506; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12507; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12508; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12509; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12510; CM-NEXT: OR_INT * T37.Y, PV.Z, PV.W,12511; CM-NEXT: MOV T9.X, PV.Y,12512; CM-NEXT: MOV * T0.Y, T4.X,12513; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12514; CM-NEXT: AND_INT * T1.W, T37.W, literal.y,12515; CM-NEXT: -65536(nan), 255(3.573311e-43)12516; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12517; CM-NEXT: MOV * T4.X, PV.W,12518; CM-NEXT: MOV T0.Y, PV.X,12519; CM-NEXT: LSHL * T1.W, T37.W, literal.x,12520; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12521; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12522; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12523; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12524; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12525; CM-NEXT: MOV T4.X, PV.W,12526; CM-NEXT: MOV * T0.Y, T5.X,12527; CM-NEXT: AND_INT * T0.Z, PV.Y, literal.x,12528; CM-NEXT: -65536(nan), 0(0.000000e+00)12529; CM-NEXT: ALU clause starting at 118:12530; CM-NEXT: BFE_UINT * T1.W, T37.W, literal.x, T0.W,12531; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)12532; CM-NEXT: OR_INT * T1.W, T0.Z, PV.W,12533; CM-NEXT: MOV * T5.X, PV.W,12534; CM-NEXT: MOV T0.Y, PV.X,12535; CM-NEXT: LSHR * T1.W, T37.W, literal.x,12536; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12537; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12538; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12539; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12540; CM-NEXT: OR_INT * T37.W, PV.Z, PV.W,12541; CM-NEXT: MOV T5.X, PV.W,12542; CM-NEXT: MOV * T0.Y, T32.X,12543; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12544; CM-NEXT: AND_INT * T1.W, T36.X, literal.y,12545; CM-NEXT: -65536(nan), 255(3.573311e-43)12546; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12547; CM-NEXT: MOV * T32.X, PV.W,12548; CM-NEXT: MOV T0.Y, PV.X,12549; CM-NEXT: LSHL * T1.W, T36.X, literal.x,12550; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12551; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12552; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12553; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12554; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12555; CM-NEXT: MOV T32.X, PV.W,12556; CM-NEXT: MOV * T0.Y, T33.X,12557; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12558; CM-NEXT: BFE_UINT * T1.W, T36.X, literal.y, T0.W,12559; CM-NEXT: -65536(nan), 16(2.242078e-44)12560; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12561; CM-NEXT: MOV * T33.X, PV.W,12562; CM-NEXT: MOV T0.Y, PV.X,12563; CM-NEXT: LSHR * T1.W, T36.X, literal.x,12564; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12565; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12566; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12567; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12568; CM-NEXT: OR_INT * T38.Y, PV.Z, PV.W,12569; CM-NEXT: MOV T33.X, PV.Y,12570; CM-NEXT: MOV * T0.Y, T28.X,12571; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12572; CM-NEXT: AND_INT * T1.W, T36.Y, literal.y,12573; CM-NEXT: -65536(nan), 255(3.573311e-43)12574; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12575; CM-NEXT: MOV * T28.X, PV.W,12576; CM-NEXT: MOV T0.Y, PV.X,12577; CM-NEXT: LSHL * T1.W, T36.Y, literal.x,12578; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12579; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12580; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12581; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12582; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12583; CM-NEXT: MOV T28.X, PV.W,12584; CM-NEXT: MOV * T0.Y, T29.X,12585; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12586; CM-NEXT: BFE_UINT * T1.W, T36.Y, literal.y, T0.W,12587; CM-NEXT: -65536(nan), 16(2.242078e-44)12588; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12589; CM-NEXT: MOV * T29.X, PV.W,12590; CM-NEXT: MOV T0.Y, PV.X,12591; CM-NEXT: LSHR * T1.W, T36.Y, literal.x,12592; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12593; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12594; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12595; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12596; CM-NEXT: OR_INT * T38.W, PV.Z, PV.W,12597; CM-NEXT: MOV T29.X, PV.W,12598; CM-NEXT: MOV * T0.Y, T24.X,12599; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12600; CM-NEXT: AND_INT * T1.W, T36.Z, literal.y,12601; CM-NEXT: -65536(nan), 255(3.573311e-43)12602; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12603; CM-NEXT: MOV * T24.X, PV.W,12604; CM-NEXT: MOV T0.Y, PV.X,12605; CM-NEXT: LSHL * T1.W, T36.Z, literal.x,12606; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12607; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12608; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12609; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12610; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12611; CM-NEXT: MOV T24.X, PV.W,12612; CM-NEXT: MOV * T0.Y, T25.X,12613; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12614; CM-NEXT: BFE_UINT * T1.W, T36.Z, literal.y, T0.W,12615; CM-NEXT: -65536(nan), 16(2.242078e-44)12616; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12617; CM-NEXT: MOV * T25.X, PV.W,12618; CM-NEXT: MOV T0.Y, PV.X,12619; CM-NEXT: LSHR * T1.W, T36.Z, literal.x,12620; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12621; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12622; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12623; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12624; CM-NEXT: OR_INT * T36.Y, PV.Z, PV.W,12625; CM-NEXT: MOV T25.X, PV.Y,12626; CM-NEXT: MOV * T0.Y, T20.X,12627; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12628; CM-NEXT: AND_INT * T1.W, T36.W, literal.y,12629; CM-NEXT: -65536(nan), 255(3.573311e-43)12630; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12631; CM-NEXT: MOV * T20.X, PV.W,12632; CM-NEXT: ALU clause starting at 220:12633; CM-NEXT: MOV T0.Y, T20.X,12634; CM-NEXT: LSHL * T1.W, T36.W, literal.x,12635; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)12636; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12637; CM-NEXT: AND_INT * T1.W, PV.W, literal.y,12638; CM-NEXT: 65535(9.183409e-41), 16711680(2.341805e-38)12639; CM-NEXT: OR_INT * T1.W, PV.Z, PV.W,12640; CM-NEXT: MOV T20.X, PV.W,12641; CM-NEXT: MOV * T0.Y, T21.X,12642; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,12643; CM-NEXT: BFE_UINT * T0.W, T36.W, literal.y, T0.W,12644; CM-NEXT: -65536(nan), 16(2.242078e-44)12645; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,12646; CM-NEXT: MOV * T21.X, PV.W,12647; CM-NEXT: MOV T0.Y, PV.X,12648; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,12649; CM-NEXT: 32(4.484155e-44), 0(0.000000e+00)12650; CM-NEXT: LSHR T39.X, PV.W, literal.x,12651; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,12652; CM-NEXT: 2(2.802597e-45), 48(6.726233e-44)12653; CM-NEXT: LSHR T40.X, PV.W, literal.x,12654; CM-NEXT: LSHR * T0.W, T36.W, literal.y,12655; CM-NEXT: 2(2.802597e-45), 8(1.121039e-44)12656; CM-NEXT: LSHR T41.X, KC0[2].Y, literal.x,12657; CM-NEXT: AND_INT T0.Y, T0.Y, literal.y,12658; CM-NEXT: AND_INT T0.Z, PV.W, literal.z,12659; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.w,12660; CM-NEXT: 2(2.802597e-45), 65535(9.183409e-41)12661; CM-NEXT: 16711680(2.341805e-38), 16(2.242078e-44)12662; CM-NEXT: LSHR T42.X, PV.W, literal.x,12663; CM-NEXT: OR_INT * T36.W, PV.Y, PV.Z,12664; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)12665; CM-NEXT: MOV * T21.X, PV.W,12666; CM-NEXT: MOV T35.X, T16.X,12667; CM-NEXT: MOV * T35.Z, T12.X, BS:VEC_120/SCL_21212668; CM-NEXT: MOV T37.X, T8.X,12669; CM-NEXT: MOV * T37.Z, T4.X, BS:VEC_120/SCL_21212670; CM-NEXT: MOV T38.X, T32.X,12671; CM-NEXT: MOV * T38.Z, T28.X, BS:VEC_120/SCL_21212672; CM-NEXT: MOV T36.X, T24.X,12673; CM-NEXT: MOV * T36.Z, T20.X, BS:VEC_120/SCL_21212674 %load = load <32 x i8>, ptr addrspace(1) %in12675 %ext = zext <32 x i8> %load to <32 x i16>12676 store <32 x i16> %ext, ptr addrspace(1) %out12677 ret void12678}12679 12680define amdgpu_kernel void @global_sextload_v32i8_to_v32i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {12681; GCN-NOHSA-SI-LABEL: global_sextload_v32i8_to_v32i16:12682; GCN-NOHSA-SI: ; %bb.0:12683; GCN-NOHSA-SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x912684; GCN-NOHSA-SI-NEXT: s_mov_b32 s3, 0xf00012685; GCN-NOHSA-SI-NEXT: s_mov_b32 s2, -112686; GCN-NOHSA-SI-NEXT: s_mov_b32 s10, s212687; GCN-NOHSA-SI-NEXT: s_mov_b32 s11, s312688; GCN-NOHSA-SI-NEXT: s_waitcnt lgkmcnt(0)12689; GCN-NOHSA-SI-NEXT: s_mov_b32 s8, s612690; GCN-NOHSA-SI-NEXT: s_mov_b32 s9, s712691; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 0 offset:1612692; GCN-NOHSA-SI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 012693; GCN-NOHSA-SI-NEXT: s_mov_b32 s0, s412694; GCN-NOHSA-SI-NEXT: s_mov_b32 s1, s512695; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(1)12696; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s4, v212697; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s5, v312698; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s6, v012699; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s7, v112700; GCN-NOHSA-SI-NEXT: s_waitcnt vmcnt(0)12701; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s8, v612702; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s9, v712703; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s10, v412704; GCN-NOHSA-SI-NEXT: v_readfirstlane_b32 s11, v512705; GCN-NOHSA-SI-NEXT: s_ashr_i32 s12, s11, 2412706; GCN-NOHSA-SI-NEXT: s_bfe_i32 s13, s11, 0x8001012707; GCN-NOHSA-SI-NEXT: s_bfe_i32 s14, s11, 0x8000812708; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s11, s1112709; GCN-NOHSA-SI-NEXT: s_ashr_i32 s15, s10, 2412710; GCN-NOHSA-SI-NEXT: s_bfe_i32 s16, s10, 0x8001012711; GCN-NOHSA-SI-NEXT: s_bfe_i32 s17, s10, 0x8000812712; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s10, s1012713; GCN-NOHSA-SI-NEXT: s_ashr_i32 s18, s9, 2412714; GCN-NOHSA-SI-NEXT: s_bfe_i32 s19, s9, 0x8001012715; GCN-NOHSA-SI-NEXT: s_bfe_i32 s20, s9, 0x8000812716; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s9, s912717; GCN-NOHSA-SI-NEXT: s_ashr_i32 s21, s8, 2412718; GCN-NOHSA-SI-NEXT: s_bfe_i32 s22, s8, 0x8001012719; GCN-NOHSA-SI-NEXT: s_bfe_i32 s23, s8, 0x8000812720; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s8, s812721; GCN-NOHSA-SI-NEXT: s_ashr_i32 s24, s7, 2412722; GCN-NOHSA-SI-NEXT: s_bfe_i32 s25, s7, 0x8001012723; GCN-NOHSA-SI-NEXT: s_bfe_i32 s26, s7, 0x8000812724; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s7, s712725; GCN-NOHSA-SI-NEXT: s_ashr_i32 s27, s6, 2412726; GCN-NOHSA-SI-NEXT: s_bfe_i32 s28, s6, 0x8001012727; GCN-NOHSA-SI-NEXT: s_bfe_i32 s29, s6, 0x8000812728; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s6, s612729; GCN-NOHSA-SI-NEXT: s_ashr_i32 s30, s5, 2412730; GCN-NOHSA-SI-NEXT: s_bfe_i32 s31, s5, 0x8001012731; GCN-NOHSA-SI-NEXT: s_bfe_i32 s33, s5, 0x8000812732; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s5, s512733; GCN-NOHSA-SI-NEXT: s_ashr_i32 s34, s4, 2412734; GCN-NOHSA-SI-NEXT: s_bfe_i32 s35, s4, 0x8001012735; GCN-NOHSA-SI-NEXT: s_bfe_i32 s36, s4, 0x8000812736; GCN-NOHSA-SI-NEXT: s_sext_i32_i8 s4, s412737; GCN-NOHSA-SI-NEXT: s_lshl_b32 s12, s12, 1612738; GCN-NOHSA-SI-NEXT: s_and_b32 s13, s13, 0xffff12739; GCN-NOHSA-SI-NEXT: s_lshl_b32 s14, s14, 1612740; GCN-NOHSA-SI-NEXT: s_and_b32 s11, s11, 0xffff12741; GCN-NOHSA-SI-NEXT: s_lshl_b32 s15, s15, 1612742; GCN-NOHSA-SI-NEXT: s_and_b32 s16, s16, 0xffff12743; GCN-NOHSA-SI-NEXT: s_lshl_b32 s17, s17, 1612744; GCN-NOHSA-SI-NEXT: s_and_b32 s10, s10, 0xffff12745; GCN-NOHSA-SI-NEXT: s_lshl_b32 s18, s18, 1612746; GCN-NOHSA-SI-NEXT: s_and_b32 s19, s19, 0xffff12747; GCN-NOHSA-SI-NEXT: s_lshl_b32 s20, s20, 1612748; GCN-NOHSA-SI-NEXT: s_and_b32 s9, s9, 0xffff12749; GCN-NOHSA-SI-NEXT: s_lshl_b32 s21, s21, 1612750; GCN-NOHSA-SI-NEXT: s_and_b32 s22, s22, 0xffff12751; GCN-NOHSA-SI-NEXT: s_lshl_b32 s23, s23, 1612752; GCN-NOHSA-SI-NEXT: s_and_b32 s8, s8, 0xffff12753; GCN-NOHSA-SI-NEXT: s_lshl_b32 s24, s24, 1612754; GCN-NOHSA-SI-NEXT: s_and_b32 s25, s25, 0xffff12755; GCN-NOHSA-SI-NEXT: s_lshl_b32 s26, s26, 1612756; GCN-NOHSA-SI-NEXT: s_and_b32 s7, s7, 0xffff12757; GCN-NOHSA-SI-NEXT: s_lshl_b32 s27, s27, 1612758; GCN-NOHSA-SI-NEXT: s_and_b32 s28, s28, 0xffff12759; GCN-NOHSA-SI-NEXT: s_lshl_b32 s29, s29, 1612760; GCN-NOHSA-SI-NEXT: s_and_b32 s6, s6, 0xffff12761; GCN-NOHSA-SI-NEXT: s_lshl_b32 s30, s30, 1612762; GCN-NOHSA-SI-NEXT: s_and_b32 s31, s31, 0xffff12763; GCN-NOHSA-SI-NEXT: s_lshl_b32 s33, s33, 1612764; GCN-NOHSA-SI-NEXT: s_and_b32 s5, s5, 0xffff12765; GCN-NOHSA-SI-NEXT: s_lshl_b32 s34, s34, 1612766; GCN-NOHSA-SI-NEXT: s_and_b32 s35, s35, 0xffff12767; GCN-NOHSA-SI-NEXT: s_lshl_b32 s36, s36, 1612768; GCN-NOHSA-SI-NEXT: s_and_b32 s4, s4, 0xffff12769; GCN-NOHSA-SI-NEXT: s_or_b32 s12, s13, s1212770; GCN-NOHSA-SI-NEXT: s_or_b32 s11, s11, s1412771; GCN-NOHSA-SI-NEXT: s_or_b32 s13, s16, s1512772; GCN-NOHSA-SI-NEXT: s_or_b32 s10, s10, s1712773; GCN-NOHSA-SI-NEXT: s_or_b32 s14, s19, s1812774; GCN-NOHSA-SI-NEXT: s_or_b32 s9, s9, s2012775; GCN-NOHSA-SI-NEXT: s_or_b32 s15, s22, s2112776; GCN-NOHSA-SI-NEXT: s_or_b32 s8, s8, s2312777; GCN-NOHSA-SI-NEXT: s_or_b32 s16, s25, s2412778; GCN-NOHSA-SI-NEXT: s_or_b32 s7, s7, s2612779; GCN-NOHSA-SI-NEXT: s_or_b32 s17, s28, s2712780; GCN-NOHSA-SI-NEXT: s_or_b32 s18, s31, s3012781; GCN-NOHSA-SI-NEXT: s_or_b32 s5, s5, s3312782; GCN-NOHSA-SI-NEXT: s_or_b32 s19, s35, s3412783; GCN-NOHSA-SI-NEXT: s_or_b32 s4, s4, s3612784; GCN-NOHSA-SI-NEXT: s_or_b32 s6, s6, s2912785; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s412786; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s1912787; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s512788; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s1812789; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:4812790; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)12791; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s612792; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s1712793; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s712794; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s1612795; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:3212796; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)12797; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s812798; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s1512799; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s912800; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s1412801; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1612802; GCN-NOHSA-SI-NEXT: s_waitcnt expcnt(0)12803; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v0, s1012804; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v1, s1312805; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v2, s1112806; GCN-NOHSA-SI-NEXT: v_mov_b32_e32 v3, s1212807; GCN-NOHSA-SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 012808; GCN-NOHSA-SI-NEXT: s_endpgm12809;12810; GCN-HSA-LABEL: global_sextload_v32i8_to_v32i16:12811; GCN-HSA: ; %bb.0:12812; GCN-HSA-NEXT: s_load_dwordx4 s[0:3], s[8:9], 0x012813; GCN-HSA-NEXT: s_add_i32 s12, s12, s1712814; GCN-HSA-NEXT: s_lshr_b32 flat_scratch_hi, s12, 812815; GCN-HSA-NEXT: s_mov_b32 flat_scratch_lo, s1312816; GCN-HSA-NEXT: s_waitcnt lgkmcnt(0)12817; GCN-HSA-NEXT: v_mov_b32_e32 v0, s212818; GCN-HSA-NEXT: v_mov_b32_e32 v1, s312819; GCN-HSA-NEXT: s_add_u32 s2, s2, 1612820; GCN-HSA-NEXT: s_addc_u32 s3, s3, 012821; GCN-HSA-NEXT: v_mov_b32_e32 v5, s312822; GCN-HSA-NEXT: v_mov_b32_e32 v4, s212823; GCN-HSA-NEXT: flat_load_dwordx4 v[0:3], v[0:1]12824; GCN-HSA-NEXT: flat_load_dwordx4 v[4:7], v[4:5]12825; GCN-HSA-NEXT: s_waitcnt vmcnt(1)12826; GCN-HSA-NEXT: v_readfirstlane_b32 s2, v212827; GCN-HSA-NEXT: v_readfirstlane_b32 s3, v312828; GCN-HSA-NEXT: v_readfirstlane_b32 s4, v012829; GCN-HSA-NEXT: v_readfirstlane_b32 s5, v112830; GCN-HSA-NEXT: s_waitcnt vmcnt(0)12831; GCN-HSA-NEXT: v_readfirstlane_b32 s21, v512832; GCN-HSA-NEXT: s_ashr_i32 s6, s5, 2412833; GCN-HSA-NEXT: s_bfe_i32 s7, s5, 0x8001012834; GCN-HSA-NEXT: s_bfe_i32 s8, s5, 0x8000812835; GCN-HSA-NEXT: s_sext_i32_i8 s5, s512836; GCN-HSA-NEXT: s_ashr_i32 s9, s4, 2412837; GCN-HSA-NEXT: s_bfe_i32 s10, s4, 0x8001012838; GCN-HSA-NEXT: s_bfe_i32 s11, s4, 0x8000812839; GCN-HSA-NEXT: s_sext_i32_i8 s4, s412840; GCN-HSA-NEXT: s_ashr_i32 s12, s3, 2412841; GCN-HSA-NEXT: s_bfe_i32 s13, s3, 0x8001012842; GCN-HSA-NEXT: s_bfe_i32 s14, s3, 0x8000812843; GCN-HSA-NEXT: s_sext_i32_i8 s3, s312844; GCN-HSA-NEXT: s_ashr_i32 s15, s2, 2412845; GCN-HSA-NEXT: s_bfe_i32 s16, s2, 0x8001012846; GCN-HSA-NEXT: s_ashr_i32 s22, s21, 2412847; GCN-HSA-NEXT: s_bfe_i32 s23, s21, 0x8001012848; GCN-HSA-NEXT: v_readfirstlane_b32 s18, v612849; GCN-HSA-NEXT: v_readfirstlane_b32 s19, v712850; GCN-HSA-NEXT: v_readfirstlane_b32 s20, v412851; GCN-HSA-NEXT: s_lshl_b32 s6, s6, 1612852; GCN-HSA-NEXT: s_and_b32 s7, s7, 0xffff12853; GCN-HSA-NEXT: s_lshl_b32 s8, s8, 1612854; GCN-HSA-NEXT: s_and_b32 s5, s5, 0xffff12855; GCN-HSA-NEXT: s_lshl_b32 s9, s9, 1612856; GCN-HSA-NEXT: s_and_b32 s10, s10, 0xffff12857; GCN-HSA-NEXT: s_lshl_b32 s11, s11, 1612858; GCN-HSA-NEXT: s_and_b32 s4, s4, 0xffff12859; GCN-HSA-NEXT: s_lshl_b32 s12, s12, 1612860; GCN-HSA-NEXT: s_and_b32 s13, s13, 0xffff12861; GCN-HSA-NEXT: s_lshl_b32 s14, s14, 1612862; GCN-HSA-NEXT: s_and_b32 s3, s3, 0xffff12863; GCN-HSA-NEXT: s_lshl_b32 s15, s15, 1612864; GCN-HSA-NEXT: s_and_b32 s16, s16, 0xffff12865; GCN-HSA-NEXT: s_lshl_b32 s22, s22, 1612866; GCN-HSA-NEXT: s_and_b32 s23, s23, 0xffff12867; GCN-HSA-NEXT: s_bfe_i32 s17, s2, 0x8000812868; GCN-HSA-NEXT: s_bfe_i32 s24, s21, 0x8000812869; GCN-HSA-NEXT: s_sext_i32_i8 s21, s2112870; GCN-HSA-NEXT: s_ashr_i32 s25, s20, 2412871; GCN-HSA-NEXT: s_or_b32 s6, s7, s612872; GCN-HSA-NEXT: s_bfe_i32 s7, s20, 0x8001012873; GCN-HSA-NEXT: s_or_b32 s5, s5, s812874; GCN-HSA-NEXT: s_bfe_i32 s8, s20, 0x8000812875; GCN-HSA-NEXT: s_sext_i32_i8 s20, s2012876; GCN-HSA-NEXT: s_or_b32 s9, s10, s912877; GCN-HSA-NEXT: s_ashr_i32 s10, s19, 2412878; GCN-HSA-NEXT: s_or_b32 s4, s4, s1112879; GCN-HSA-NEXT: s_bfe_i32 s11, s19, 0x8001012880; GCN-HSA-NEXT: s_or_b32 s12, s13, s1212881; GCN-HSA-NEXT: s_bfe_i32 s13, s19, 0x8000812882; GCN-HSA-NEXT: s_sext_i32_i8 s19, s1912883; GCN-HSA-NEXT: s_or_b32 s3, s3, s1412884; GCN-HSA-NEXT: s_ashr_i32 s14, s18, 2412885; GCN-HSA-NEXT: s_or_b32 s15, s16, s1512886; GCN-HSA-NEXT: s_bfe_i32 s16, s18, 0x8001012887; GCN-HSA-NEXT: s_or_b32 s22, s23, s2212888; GCN-HSA-NEXT: s_bfe_i32 s23, s18, 0x8000812889; GCN-HSA-NEXT: s_sext_i32_i8 s18, s1812890; GCN-HSA-NEXT: s_sext_i32_i8 s2, s212891; GCN-HSA-NEXT: s_lshl_b32 s17, s17, 1612892; GCN-HSA-NEXT: s_lshl_b32 s24, s24, 1612893; GCN-HSA-NEXT: s_and_b32 s21, s21, 0xffff12894; GCN-HSA-NEXT: s_lshl_b32 s25, s25, 1612895; GCN-HSA-NEXT: s_and_b32 s7, s7, 0xffff12896; GCN-HSA-NEXT: s_lshl_b32 s8, s8, 1612897; GCN-HSA-NEXT: s_and_b32 s20, s20, 0xffff12898; GCN-HSA-NEXT: s_lshl_b32 s10, s10, 1612899; GCN-HSA-NEXT: s_and_b32 s11, s11, 0xffff12900; GCN-HSA-NEXT: s_lshl_b32 s13, s13, 1612901; GCN-HSA-NEXT: s_and_b32 s19, s19, 0xffff12902; GCN-HSA-NEXT: s_lshl_b32 s14, s14, 1612903; GCN-HSA-NEXT: s_and_b32 s16, s16, 0xffff12904; GCN-HSA-NEXT: s_lshl_b32 s23, s23, 1612905; GCN-HSA-NEXT: s_and_b32 s18, s18, 0xffff12906; GCN-HSA-NEXT: s_and_b32 s2, s2, 0xffff12907; GCN-HSA-NEXT: s_or_b32 s21, s21, s2412908; GCN-HSA-NEXT: s_or_b32 s7, s7, s2512909; GCN-HSA-NEXT: s_or_b32 s8, s20, s812910; GCN-HSA-NEXT: s_or_b32 s10, s11, s1012911; GCN-HSA-NEXT: s_or_b32 s11, s19, s1312912; GCN-HSA-NEXT: s_or_b32 s13, s16, s1412913; GCN-HSA-NEXT: s_or_b32 s14, s18, s2312914; GCN-HSA-NEXT: s_or_b32 s2, s2, s1712915; GCN-HSA-NEXT: v_mov_b32_e32 v0, s212916; GCN-HSA-NEXT: s_add_u32 s2, s0, 1612917; GCN-HSA-NEXT: v_mov_b32_e32 v2, s312918; GCN-HSA-NEXT: s_addc_u32 s3, s1, 012919; GCN-HSA-NEXT: v_mov_b32_e32 v5, s312920; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1512921; GCN-HSA-NEXT: v_mov_b32_e32 v3, s1212922; GCN-HSA-NEXT: v_mov_b32_e32 v4, s212923; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]12924; GCN-HSA-NEXT: v_mov_b32_e32 v5, s112925; GCN-HSA-NEXT: s_add_u32 s2, s0, 4812926; GCN-HSA-NEXT: v_mov_b32_e32 v0, s412927; GCN-HSA-NEXT: v_mov_b32_e32 v1, s912928; GCN-HSA-NEXT: v_mov_b32_e32 v2, s512929; GCN-HSA-NEXT: v_mov_b32_e32 v3, s612930; GCN-HSA-NEXT: v_mov_b32_e32 v4, s012931; GCN-HSA-NEXT: s_addc_u32 s3, s1, 012932; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]12933; GCN-HSA-NEXT: v_mov_b32_e32 v5, s312934; GCN-HSA-NEXT: s_add_u32 s0, s0, 3212935; GCN-HSA-NEXT: v_mov_b32_e32 v0, s1412936; GCN-HSA-NEXT: v_mov_b32_e32 v1, s1312937; GCN-HSA-NEXT: v_mov_b32_e32 v2, s1112938; GCN-HSA-NEXT: v_mov_b32_e32 v3, s1012939; GCN-HSA-NEXT: v_mov_b32_e32 v4, s212940; GCN-HSA-NEXT: s_addc_u32 s1, s1, 012941; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]12942; GCN-HSA-NEXT: v_mov_b32_e32 v5, s112943; GCN-HSA-NEXT: v_mov_b32_e32 v0, s812944; GCN-HSA-NEXT: v_mov_b32_e32 v1, s712945; GCN-HSA-NEXT: v_mov_b32_e32 v2, s2112946; GCN-HSA-NEXT: v_mov_b32_e32 v3, s2212947; GCN-HSA-NEXT: v_mov_b32_e32 v4, s012948; GCN-HSA-NEXT: flat_store_dwordx4 v[4:5], v[0:3]12949; GCN-HSA-NEXT: s_endpgm12950;12951; GCN-NOHSA-VI-LABEL: global_sextload_v32i8_to_v32i16:12952; GCN-NOHSA-VI: ; %bb.0:12953; GCN-NOHSA-VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x2412954; GCN-NOHSA-VI-NEXT: s_mov_b32 s3, 0xf00012955; GCN-NOHSA-VI-NEXT: s_mov_b32 s2, -112956; GCN-NOHSA-VI-NEXT: s_mov_b32 s10, s212957; GCN-NOHSA-VI-NEXT: s_mov_b32 s11, s312958; GCN-NOHSA-VI-NEXT: s_waitcnt lgkmcnt(0)12959; GCN-NOHSA-VI-NEXT: s_mov_b32 s8, s612960; GCN-NOHSA-VI-NEXT: s_mov_b32 s9, s712961; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[0:3], off, s[8:11], 012962; GCN-NOHSA-VI-NEXT: buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:1612963; GCN-NOHSA-VI-NEXT: s_mov_b32 s1, s512964; GCN-NOHSA-VI-NEXT: s_mov_b32 s0, s412965; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(1)12966; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s6, v012967; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s7, v112968; GCN-NOHSA-VI-NEXT: s_lshr_b32 s14, s6, 1612969; GCN-NOHSA-VI-NEXT: s_lshr_b32 s15, s7, 1612970; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s28, s712971; GCN-NOHSA-VI-NEXT: s_bfe_i32 s29, s7, 0x8000012972; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s30, s612973; GCN-NOHSA-VI-NEXT: s_bfe_i32 s31, s6, 0x8000012974; GCN-NOHSA-VI-NEXT: s_ashr_i32 s7, s7, 1612975; GCN-NOHSA-VI-NEXT: s_ashr_i32 s6, s6, 2412976; GCN-NOHSA-VI-NEXT: s_bfe_i32 s14, s14, 0x8000012977; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s5, v312978; GCN-NOHSA-VI-NEXT: s_lshl_b32 s7, s7, 812979; GCN-NOHSA-VI-NEXT: s_bfe_i32 s15, s15, 0x8000012980; GCN-NOHSA-VI-NEXT: s_lshl_b32 s6, s6, 1612981; GCN-NOHSA-VI-NEXT: s_and_b32 s14, 0xffff, s1412982; GCN-NOHSA-VI-NEXT: s_waitcnt vmcnt(0)12983; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s8, v412984; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s9, v512985; GCN-NOHSA-VI-NEXT: s_and_b32 s7, s7, 0xffff000012986; GCN-NOHSA-VI-NEXT: s_and_b32 s15, 0xffff, s1512987; GCN-NOHSA-VI-NEXT: s_or_b32 s6, s14, s612988; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s14, s512989; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s20, s912990; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s22, s812991; GCN-NOHSA-VI-NEXT: s_or_b32 s7, s15, s712992; GCN-NOHSA-VI-NEXT: s_lshl_b32 s14, s14, 812993; GCN-NOHSA-VI-NEXT: s_bfe_i32 s15, s5, 0x8000012994; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s4, v212995; GCN-NOHSA-VI-NEXT: s_bfe_i32 s21, s9, 0x8000012996; GCN-NOHSA-VI-NEXT: s_bfe_i32 s23, s8, 0x8000012997; GCN-NOHSA-VI-NEXT: s_lshl_b32 s20, s20, 812998; GCN-NOHSA-VI-NEXT: s_lshl_b32 s22, s22, 812999; GCN-NOHSA-VI-NEXT: s_and_b32 s14, s14, 0xffff000013000; GCN-NOHSA-VI-NEXT: s_and_b32 s15, 0xffff, s1513001; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s10, v613002; GCN-NOHSA-VI-NEXT: v_readfirstlane_b32 s11, v713003; GCN-NOHSA-VI-NEXT: s_lshr_b32 s12, s4, 1613004; GCN-NOHSA-VI-NEXT: s_lshr_b32 s13, s5, 1613005; GCN-NOHSA-VI-NEXT: s_and_b32 s21, 0xffff, s2113006; GCN-NOHSA-VI-NEXT: s_and_b32 s23, 0xffff, s2313007; GCN-NOHSA-VI-NEXT: s_and_b32 s20, s20, 0xffff000013008; GCN-NOHSA-VI-NEXT: s_and_b32 s22, s22, 0xffff000013009; GCN-NOHSA-VI-NEXT: s_or_b32 s14, s15, s1413010; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s15, s413011; GCN-NOHSA-VI-NEXT: s_ashr_i32 s5, s5, 1613012; GCN-NOHSA-VI-NEXT: s_lshr_b32 s16, s10, 1613013; GCN-NOHSA-VI-NEXT: s_lshr_b32 s17, s11, 1613014; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s24, s1113015; GCN-NOHSA-VI-NEXT: s_bfe_i32 s25, s11, 0x8000013016; GCN-NOHSA-VI-NEXT: s_ashr_i32 s11, s11, 1613017; GCN-NOHSA-VI-NEXT: s_or_b32 s20, s21, s2013018; GCN-NOHSA-VI-NEXT: s_or_b32 s21, s23, s2213019; GCN-NOHSA-VI-NEXT: s_lshl_b32 s15, s15, 813020; GCN-NOHSA-VI-NEXT: s_bfe_i32 s22, s4, 0x8000013021; GCN-NOHSA-VI-NEXT: s_lshl_b32 s5, s5, 813022; GCN-NOHSA-VI-NEXT: s_bfe_i32 s13, s13, 0x8000013023; GCN-NOHSA-VI-NEXT: s_ashr_i32 s4, s4, 2413024; GCN-NOHSA-VI-NEXT: s_bfe_i32 s12, s12, 0x8000013025; GCN-NOHSA-VI-NEXT: s_lshr_b32 s18, s8, 1613026; GCN-NOHSA-VI-NEXT: s_lshr_b32 s19, s9, 1613027; GCN-NOHSA-VI-NEXT: s_sext_i32_i16 s26, s1013028; GCN-NOHSA-VI-NEXT: s_bfe_i32 s27, s10, 0x8000013029; GCN-NOHSA-VI-NEXT: s_ashr_i32 s10, s10, 2413030; GCN-NOHSA-VI-NEXT: s_lshl_b32 s11, s11, 813031; GCN-NOHSA-VI-NEXT: s_bfe_i32 s17, s17, 0x8000013032; GCN-NOHSA-VI-NEXT: s_bfe_i32 s16, s16, 0x8000013033; GCN-NOHSA-VI-NEXT: s_lshl_b32 s28, s28, 813034; GCN-NOHSA-VI-NEXT: s_lshl_b32 s30, s30, 813035; GCN-NOHSA-VI-NEXT: s_and_b32 s15, s15, 0xffff000013036; GCN-NOHSA-VI-NEXT: s_and_b32 s22, 0xffff, s2213037; GCN-NOHSA-VI-NEXT: s_and_b32 s5, s5, 0xffff000013038; GCN-NOHSA-VI-NEXT: s_and_b32 s13, 0xffff, s1313039; GCN-NOHSA-VI-NEXT: s_lshl_b32 s4, s4, 1613040; GCN-NOHSA-VI-NEXT: s_and_b32 s12, 0xffff, s1213041; GCN-NOHSA-VI-NEXT: s_ashr_i32 s9, s9, 2413042; GCN-NOHSA-VI-NEXT: s_ashr_i32 s8, s8, 2413043; GCN-NOHSA-VI-NEXT: s_bfe_i32 s19, s19, 0x8000013044; GCN-NOHSA-VI-NEXT: s_bfe_i32 s18, s18, 0x8000013045; GCN-NOHSA-VI-NEXT: s_lshl_b32 s24, s24, 813046; GCN-NOHSA-VI-NEXT: s_lshl_b32 s26, s26, 813047; GCN-NOHSA-VI-NEXT: s_lshl_b32 s10, s10, 1613048; GCN-NOHSA-VI-NEXT: s_and_b32 s29, 0xffff, s2913049; GCN-NOHSA-VI-NEXT: s_and_b32 s31, 0xffff, s3113050; GCN-NOHSA-VI-NEXT: s_and_b32 s11, s11, 0xffff000013051; GCN-NOHSA-VI-NEXT: s_and_b32 s17, 0xffff, s1713052; GCN-NOHSA-VI-NEXT: s_and_b32 s16, 0xffff, s1613053; GCN-NOHSA-VI-NEXT: s_and_b32 s28, s28, 0xffff000013054; GCN-NOHSA-VI-NEXT: s_and_b32 s30, s30, 0xffff000013055; GCN-NOHSA-VI-NEXT: s_or_b32 s15, s22, s1513056; GCN-NOHSA-VI-NEXT: s_or_b32 s5, s13, s513057; GCN-NOHSA-VI-NEXT: s_or_b32 s4, s12, s413058; GCN-NOHSA-VI-NEXT: s_lshl_b32 s9, s9, 1613059; GCN-NOHSA-VI-NEXT: s_lshl_b32 s8, s8, 1613060; GCN-NOHSA-VI-NEXT: s_and_b32 s25, 0xffff, s2513061; GCN-NOHSA-VI-NEXT: s_and_b32 s27, 0xffff, s2713062; GCN-NOHSA-VI-NEXT: s_and_b32 s19, 0xffff, s1913063; GCN-NOHSA-VI-NEXT: s_and_b32 s18, 0xffff, s1813064; GCN-NOHSA-VI-NEXT: s_and_b32 s24, s24, 0xffff000013065; GCN-NOHSA-VI-NEXT: s_and_b32 s26, s26, 0xffff000013066; GCN-NOHSA-VI-NEXT: s_or_b32 s11, s17, s1113067; GCN-NOHSA-VI-NEXT: s_or_b32 s10, s16, s1013068; GCN-NOHSA-VI-NEXT: s_or_b32 s16, s29, s2813069; GCN-NOHSA-VI-NEXT: s_or_b32 s17, s31, s3013070; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s1513071; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s413072; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s1413073; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s513074; GCN-NOHSA-VI-NEXT: s_or_b32 s9, s19, s913075; GCN-NOHSA-VI-NEXT: s_or_b32 s8, s18, s813076; GCN-NOHSA-VI-NEXT: s_or_b32 s18, s25, s2413077; GCN-NOHSA-VI-NEXT: s_or_b32 s19, s27, s2613078; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1613079; GCN-NOHSA-VI-NEXT: s_nop 013080; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s1713081; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s613082; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s1613083; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s713084; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 013085; GCN-NOHSA-VI-NEXT: s_nop 013086; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s1913087; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s1013088; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s1813089; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s1113090; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:4813091; GCN-NOHSA-VI-NEXT: s_nop 013092; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v0, s2113093; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v1, s813094; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v2, s2013095; GCN-NOHSA-VI-NEXT: v_mov_b32_e32 v3, s913096; GCN-NOHSA-VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:3213097; GCN-NOHSA-VI-NEXT: s_endpgm13098;13099; EG-LABEL: global_sextload_v32i8_to_v32i16:13100; EG: ; %bb.0:13101; EG-NEXT: ALU 1, @14, KC0[CB0:0-32], KC1[]13102; EG-NEXT: TEX 1 @1013103; EG-NEXT: ALU 104, @16, KC0[], KC1[]13104; EG-NEXT: ALU 104, @121, KC0[], KC1[]13105; EG-NEXT: ALU 95, @226, KC0[CB0:0-32], KC1[]13106; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T36.XYZW, T42.X, 013107; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T37.XYZW, T41.X, 013108; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T38.XYZW, T40.X, 013109; EG-NEXT: MEM_RAT_CACHELESS STORE_RAW T35.XYZW, T39.X, 113110; EG-NEXT: CF_END13111; EG-NEXT: Fetch clause starting at 10:13112; EG-NEXT: VTX_READ_128 T37.XYZW, T35.X, 16, #113113; EG-NEXT: VTX_READ_128 T35.XYZW, T35.X, 0, #113114; EG-NEXT: ALU clause starting at 14:13115; EG-NEXT: MOV * T0.Y, T16.X,13116; EG-NEXT: MOV * T35.X, KC0[2].Z,13117; EG-NEXT: ALU clause starting at 16:13118; EG-NEXT: BFE_INT * T0.W, T37.X, 0.0, literal.x,13119; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13120; EG-NEXT: AND_INT T0.W, PV.W, literal.x,13121; EG-NEXT: AND_INT * T1.W, T0.Y, literal.y,13122; EG-NEXT: 65535(9.183409e-41), -65536(nan)13123; EG-NEXT: OR_INT * T0.W, PS, PV.W,13124; EG-NEXT: MOV * T16.X, PV.W,13125; EG-NEXT: MOV T0.Y, PV.X,13126; EG-NEXT: LSHR * T0.W, T37.X, literal.x,13127; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13128; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13129; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13130; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)13131; EG-NEXT: LSHL * T0.W, PV.W, literal.x,13132; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13133; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13134; EG-NEXT: MOV T16.X, PV.W,13135; EG-NEXT: MOV T0.Y, T17.X,13136; EG-NEXT: LSHR * T0.W, T37.X, literal.x, BS:VEC_120/SCL_21213137; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13138; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13139; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13140; EG-NEXT: 8(1.121039e-44), -65536(nan)13141; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,13142; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)13143; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13144; EG-NEXT: MOV * T17.X, PV.W,13145; EG-NEXT: MOV T0.Y, PV.X,13146; EG-NEXT: ASHR * T0.W, T37.X, literal.x,13147; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)13148; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13149; EG-NEXT: LSHL * T0.W, PV.W, literal.y,13150; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13151; EG-NEXT: OR_INT * T36.Y, PV.W, PS,13152; EG-NEXT: MOV T17.X, PV.Y,13153; EG-NEXT: MOV T0.Y, T12.X,13154; EG-NEXT: BFE_INT * T0.W, T37.Y, 0.0, literal.x,13155; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13156; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13157; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,13158; EG-NEXT: -65536(nan), 65535(9.183409e-41)13159; EG-NEXT: OR_INT * T0.W, PV.W, PS,13160; EG-NEXT: MOV * T12.X, PV.W,13161; EG-NEXT: MOV T0.Y, PV.X,13162; EG-NEXT: LSHR * T0.W, T37.Y, literal.x,13163; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13164; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13165; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13166; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)13167; EG-NEXT: LSHL * T0.W, PV.W, literal.x,13168; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13169; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13170; EG-NEXT: MOV T12.X, PV.W,13171; EG-NEXT: MOV T0.Y, T13.X,13172; EG-NEXT: LSHR * T0.W, T37.Y, literal.x,13173; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13174; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13175; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13176; EG-NEXT: 8(1.121039e-44), -65536(nan)13177; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,13178; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)13179; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13180; EG-NEXT: MOV * T13.X, PV.W,13181; EG-NEXT: MOV T0.Y, PV.X,13182; EG-NEXT: ASHR * T0.W, T37.Y, literal.x,13183; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)13184; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13185; EG-NEXT: LSHL * T0.W, PV.W, literal.y,13186; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13187; EG-NEXT: OR_INT * T36.W, PV.W, PS,13188; EG-NEXT: MOV T13.X, PV.W,13189; EG-NEXT: MOV T0.Y, T8.X,13190; EG-NEXT: BFE_INT * T0.W, T37.Z, 0.0, literal.x,13191; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13192; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13193; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,13194; EG-NEXT: -65536(nan), 65535(9.183409e-41)13195; EG-NEXT: OR_INT * T0.W, PV.W, PS,13196; EG-NEXT: MOV * T8.X, PV.W,13197; EG-NEXT: MOV T0.Y, PV.X,13198; EG-NEXT: LSHR * T0.W, T37.Z, literal.x,13199; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13200; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13201; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13202; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)13203; EG-NEXT: LSHL * T0.W, PV.W, literal.x,13204; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13205; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13206; EG-NEXT: MOV T8.X, PV.W,13207; EG-NEXT: MOV T0.Y, T9.X,13208; EG-NEXT: LSHR * T0.W, T37.Z, literal.x,13209; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13210; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13211; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13212; EG-NEXT: 8(1.121039e-44), -65536(nan)13213; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,13214; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)13215; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13216; EG-NEXT: MOV * T9.X, PV.W,13217; EG-NEXT: MOV T0.Y, PV.X,13218; EG-NEXT: ASHR * T0.W, T37.Z, literal.x,13219; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)13220; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13221; EG-NEXT: LSHL * T0.W, PV.W, literal.y,13222; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13223; EG-NEXT: ALU clause starting at 121:13224; EG-NEXT: OR_INT * T37.Y, T1.W, T0.W,13225; EG-NEXT: MOV T9.X, PV.Y,13226; EG-NEXT: MOV T0.Y, T4.X,13227; EG-NEXT: BFE_INT * T0.W, T37.W, 0.0, literal.x,13228; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13229; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13230; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,13231; EG-NEXT: -65536(nan), 65535(9.183409e-41)13232; EG-NEXT: OR_INT * T0.W, PV.W, PS,13233; EG-NEXT: MOV * T4.X, PV.W,13234; EG-NEXT: MOV T0.Y, PV.X,13235; EG-NEXT: LSHR * T0.W, T37.W, literal.x,13236; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13237; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13238; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13239; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)13240; EG-NEXT: LSHL * T0.W, PV.W, literal.x,13241; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13242; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13243; EG-NEXT: MOV T4.X, PV.W,13244; EG-NEXT: MOV T0.Y, T5.X,13245; EG-NEXT: LSHR * T0.W, T37.W, literal.x,13246; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13247; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13248; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13249; EG-NEXT: 8(1.121039e-44), -65536(nan)13250; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,13251; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)13252; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13253; EG-NEXT: MOV * T5.X, PV.W,13254; EG-NEXT: MOV T0.Y, PV.X,13255; EG-NEXT: ASHR * T0.W, T37.W, literal.x,13256; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)13257; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13258; EG-NEXT: LSHL * T0.W, PV.W, literal.y,13259; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13260; EG-NEXT: OR_INT * T37.W, PV.W, PS,13261; EG-NEXT: MOV T5.X, PV.W,13262; EG-NEXT: MOV T0.Y, T32.X,13263; EG-NEXT: BFE_INT * T0.W, T35.X, 0.0, literal.x, BS:VEC_120/SCL_21213264; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13265; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13266; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,13267; EG-NEXT: -65536(nan), 65535(9.183409e-41)13268; EG-NEXT: OR_INT * T0.W, PV.W, PS,13269; EG-NEXT: MOV * T32.X, PV.W,13270; EG-NEXT: MOV T0.Y, PV.X,13271; EG-NEXT: LSHR * T0.W, T35.X, literal.x,13272; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13273; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13274; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13275; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)13276; EG-NEXT: LSHL * T0.W, PV.W, literal.x,13277; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13278; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13279; EG-NEXT: MOV T32.X, PV.W,13280; EG-NEXT: MOV T0.Y, T33.X,13281; EG-NEXT: LSHR * T0.W, T35.X, literal.x, BS:VEC_120/SCL_21213282; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13283; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13284; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13285; EG-NEXT: 8(1.121039e-44), -65536(nan)13286; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,13287; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)13288; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13289; EG-NEXT: MOV * T33.X, PV.W,13290; EG-NEXT: MOV T0.Y, PV.X,13291; EG-NEXT: ASHR * T0.W, T35.X, literal.x,13292; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)13293; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13294; EG-NEXT: LSHL * T0.W, PV.W, literal.y,13295; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13296; EG-NEXT: OR_INT * T38.Y, PV.W, PS,13297; EG-NEXT: MOV T33.X, PV.Y,13298; EG-NEXT: MOV T0.Y, T28.X,13299; EG-NEXT: BFE_INT * T0.W, T35.Y, 0.0, literal.x,13300; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13301; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13302; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,13303; EG-NEXT: -65536(nan), 65535(9.183409e-41)13304; EG-NEXT: OR_INT * T0.W, PV.W, PS,13305; EG-NEXT: MOV * T28.X, PV.W,13306; EG-NEXT: MOV T0.Y, PV.X,13307; EG-NEXT: LSHR * T0.W, T35.Y, literal.x,13308; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13309; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13310; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13311; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)13312; EG-NEXT: LSHL * T0.W, PV.W, literal.x,13313; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13314; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13315; EG-NEXT: MOV T28.X, PV.W,13316; EG-NEXT: MOV T0.Y, T29.X,13317; EG-NEXT: LSHR * T0.W, T35.Y, literal.x,13318; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13319; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13320; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13321; EG-NEXT: 8(1.121039e-44), -65536(nan)13322; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,13323; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)13324; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13325; EG-NEXT: MOV * T29.X, PV.W,13326; EG-NEXT: MOV T0.Y, PV.X,13327; EG-NEXT: ASHR * T0.W, T35.Y, literal.x,13328; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)13329; EG-NEXT: ALU clause starting at 226:13330; EG-NEXT: AND_INT T1.W, T0.Y, literal.x,13331; EG-NEXT: LSHL * T0.W, T0.W, literal.y,13332; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13333; EG-NEXT: OR_INT * T38.W, PV.W, PS,13334; EG-NEXT: MOV T29.X, PV.W,13335; EG-NEXT: MOV T0.Y, T24.X,13336; EG-NEXT: BFE_INT * T0.W, T35.Z, 0.0, literal.x,13337; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13338; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13339; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,13340; EG-NEXT: -65536(nan), 65535(9.183409e-41)13341; EG-NEXT: OR_INT * T0.W, PV.W, PS,13342; EG-NEXT: MOV * T24.X, PV.W,13343; EG-NEXT: MOV T0.Y, PV.X,13344; EG-NEXT: LSHR * T0.W, T35.Z, literal.x,13345; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13346; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13347; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13348; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)13349; EG-NEXT: LSHL * T0.W, PV.W, literal.x,13350; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13351; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13352; EG-NEXT: MOV T24.X, PV.W,13353; EG-NEXT: MOV T0.Y, T25.X,13354; EG-NEXT: LSHR * T0.W, T35.Z, literal.x,13355; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13356; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13357; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13358; EG-NEXT: 8(1.121039e-44), -65536(nan)13359; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,13360; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)13361; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13362; EG-NEXT: MOV * T25.X, PV.W,13363; EG-NEXT: MOV T0.Y, PV.X,13364; EG-NEXT: ASHR * T0.W, T35.Z, literal.x,13365; EG-NEXT: 24(3.363116e-44), 0(0.000000e+00)13366; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13367; EG-NEXT: LSHL * T0.W, PV.W, literal.y,13368; EG-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13369; EG-NEXT: OR_INT * T35.Y, PV.W, PS,13370; EG-NEXT: MOV T25.X, PV.Y,13371; EG-NEXT: MOV T0.Y, T20.X,13372; EG-NEXT: BFE_INT * T0.W, T35.W, 0.0, literal.x,13373; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13374; EG-NEXT: AND_INT T1.W, PV.Y, literal.x,13375; EG-NEXT: AND_INT * T0.W, PV.W, literal.y,13376; EG-NEXT: -65536(nan), 65535(9.183409e-41)13377; EG-NEXT: OR_INT * T0.W, PV.W, PS,13378; EG-NEXT: MOV * T20.X, PV.W,13379; EG-NEXT: MOV T0.Y, PV.X,13380; EG-NEXT: LSHR * T0.W, T35.W, literal.x,13381; EG-NEXT: 8(1.121039e-44), 0(0.000000e+00)13382; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13383; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13384; EG-NEXT: 8(1.121039e-44), 65535(9.183409e-41)13385; EG-NEXT: LSHL * T0.W, PV.W, literal.x,13386; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13387; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13388; EG-NEXT: MOV T20.X, PV.W,13389; EG-NEXT: MOV T0.Y, T21.X,13390; EG-NEXT: LSHR * T0.W, T35.W, literal.x,13391; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13392; EG-NEXT: BFE_INT T0.W, PV.W, 0.0, literal.x,13393; EG-NEXT: AND_INT * T1.W, PV.Y, literal.y,13394; EG-NEXT: 8(1.121039e-44), -65536(nan)13395; EG-NEXT: AND_INT * T0.W, PV.W, literal.x,13396; EG-NEXT: 65535(9.183409e-41), 0(0.000000e+00)13397; EG-NEXT: OR_INT * T0.W, T1.W, PV.W,13398; EG-NEXT: MOV * T21.X, PV.W,13399; EG-NEXT: MOV T0.Y, PV.X,13400; EG-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,13401; EG-NEXT: 16(2.242078e-44), 0(0.000000e+00)13402; EG-NEXT: LSHR T39.X, PV.W, literal.x,13403; EG-NEXT: LSHR * T40.X, KC0[2].Y, literal.x,13404; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)13405; EG-NEXT: ASHR T0.W, T35.W, literal.x,13406; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.y,13407; EG-NEXT: 24(3.363116e-44), 48(6.726233e-44)13408; EG-NEXT: LSHR T41.X, PS, literal.x,13409; EG-NEXT: AND_INT T0.Z, T0.Y, literal.y,13410; EG-NEXT: LSHL T0.W, PV.W, literal.z,13411; EG-NEXT: ADD_INT * T1.W, KC0[2].Y, literal.w,13412; EG-NEXT: 2(2.802597e-45), 65535(9.183409e-41)13413; EG-NEXT: 16(2.242078e-44), 32(4.484155e-44)13414; EG-NEXT: LSHR T42.X, PS, literal.x,13415; EG-NEXT: OR_INT * T35.W, PV.Z, PV.W,13416; EG-NEXT: 2(2.802597e-45), 0(0.000000e+00)13417; EG-NEXT: MOV T21.X, PV.W,13418; EG-NEXT: MOV * T36.X, T16.X,13419; EG-NEXT: MOV * T36.Z, T12.X,13420; EG-NEXT: MOV T37.X, T8.X,13421; EG-NEXT: MOV T37.Z, T4.X, BS:VEC_120/SCL_21213422; EG-NEXT: MOV * T38.X, T32.X,13423; EG-NEXT: MOV * T38.Z, T28.X,13424; EG-NEXT: MOV T35.X, T24.X,13425; EG-NEXT: MOV * T35.Z, T20.X, BS:VEC_120/SCL_21213426;13427; CM-LABEL: global_sextload_v32i8_to_v32i16:13428; CM: ; %bb.0:13429; CM-NEXT: ALU 1, @14, KC0[CB0:0-32], KC1[]13430; CM-NEXT: TEX 1 @1013431; CM-NEXT: ALU 104, @16, KC0[], KC1[]13432; CM-NEXT: ALU 104, @121, KC0[], KC1[]13433; CM-NEXT: ALU 95, @226, KC0[CB0:0-32], KC1[]13434; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T35, T42.X13435; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T38, T41.X13436; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T37, T40.X13437; CM-NEXT: MEM_RAT_CACHELESS STORE_DWORD T36, T39.X13438; CM-NEXT: CF_END13439; CM-NEXT: Fetch clause starting at 10:13440; CM-NEXT: VTX_READ_128 T37.XYZW, T35.X, 16, #113441; CM-NEXT: VTX_READ_128 T35.XYZW, T35.X, 0, #113442; CM-NEXT: ALU clause starting at 14:13443; CM-NEXT: MOV * T0.Y, T16.X,13444; CM-NEXT: MOV * T35.X, KC0[2].Z,13445; CM-NEXT: ALU clause starting at 16:13446; CM-NEXT: BFE_INT * T0.W, T37.X, 0.0, literal.x,13447; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13448; CM-NEXT: AND_INT T0.Z, PV.W, literal.x,13449; CM-NEXT: AND_INT * T0.W, T0.Y, literal.y,13450; CM-NEXT: 65535(9.183409e-41), -65536(nan)13451; CM-NEXT: OR_INT * T0.W, PV.W, PV.Z,13452; CM-NEXT: MOV * T16.X, PV.W,13453; CM-NEXT: MOV T0.Y, PV.X,13454; CM-NEXT: LSHR * T0.W, T37.X, literal.x,13455; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13456; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13457; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13458; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13459; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13460; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13461; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13462; CM-NEXT: MOV T16.X, PV.W,13463; CM-NEXT: MOV T0.Y, T17.X,13464; CM-NEXT: LSHR * T0.W, T37.X, literal.x, BS:VEC_120/SCL_21213465; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)13466; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13467; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13468; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13469; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13470; CM-NEXT: -65536(nan), 65535(9.183409e-41)13471; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13472; CM-NEXT: MOV * T17.X, PV.W,13473; CM-NEXT: MOV T0.Y, PV.X,13474; CM-NEXT: ASHR * T0.W, T37.X, literal.x,13475; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)13476; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13477; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13478; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13479; CM-NEXT: OR_INT * T36.Y, PV.Z, PV.W,13480; CM-NEXT: MOV T17.X, PV.Y,13481; CM-NEXT: MOV T0.Y, T12.X,13482; CM-NEXT: BFE_INT * T0.W, T37.Y, 0.0, literal.x,13483; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13484; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13485; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13486; CM-NEXT: -65536(nan), 65535(9.183409e-41)13487; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13488; CM-NEXT: MOV * T12.X, PV.W,13489; CM-NEXT: MOV T0.Y, PV.X,13490; CM-NEXT: LSHR * T0.W, T37.Y, literal.x,13491; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13492; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13493; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13494; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13495; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13496; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13497; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13498; CM-NEXT: MOV T12.X, PV.W,13499; CM-NEXT: MOV T0.Y, T13.X,13500; CM-NEXT: LSHR * T0.W, T37.Y, literal.x,13501; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)13502; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13503; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13504; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13505; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13506; CM-NEXT: -65536(nan), 65535(9.183409e-41)13507; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13508; CM-NEXT: MOV * T13.X, PV.W,13509; CM-NEXT: MOV T0.Y, PV.X,13510; CM-NEXT: ASHR * T0.W, T37.Y, literal.x,13511; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)13512; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13513; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13514; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13515; CM-NEXT: OR_INT * T36.W, PV.Z, PV.W,13516; CM-NEXT: MOV T13.X, PV.W,13517; CM-NEXT: MOV T0.Y, T8.X,13518; CM-NEXT: BFE_INT * T0.W, T37.Z, 0.0, literal.x,13519; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13520; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13521; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13522; CM-NEXT: -65536(nan), 65535(9.183409e-41)13523; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13524; CM-NEXT: MOV * T8.X, PV.W,13525; CM-NEXT: MOV T0.Y, PV.X,13526; CM-NEXT: LSHR * T0.W, T37.Z, literal.x,13527; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13528; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13529; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13530; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13531; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13532; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13533; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13534; CM-NEXT: MOV T8.X, PV.W,13535; CM-NEXT: MOV T0.Y, T9.X,13536; CM-NEXT: LSHR * T0.W, T37.Z, literal.x,13537; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)13538; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13539; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13540; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13541; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13542; CM-NEXT: -65536(nan), 65535(9.183409e-41)13543; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13544; CM-NEXT: MOV * T9.X, PV.W,13545; CM-NEXT: MOV T0.Y, PV.X,13546; CM-NEXT: ASHR * T0.W, T37.Z, literal.x,13547; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)13548; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13549; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13550; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13551; CM-NEXT: ALU clause starting at 121:13552; CM-NEXT: OR_INT * T37.Y, T0.Z, T0.W,13553; CM-NEXT: MOV T9.X, PV.Y,13554; CM-NEXT: MOV T0.Y, T4.X,13555; CM-NEXT: BFE_INT * T0.W, T37.W, 0.0, literal.x,13556; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13557; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13558; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13559; CM-NEXT: -65536(nan), 65535(9.183409e-41)13560; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13561; CM-NEXT: MOV * T4.X, PV.W,13562; CM-NEXT: MOV T0.Y, PV.X,13563; CM-NEXT: LSHR * T0.W, T37.W, literal.x,13564; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13565; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13566; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13567; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13568; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13569; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13570; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13571; CM-NEXT: MOV T4.X, PV.W,13572; CM-NEXT: MOV T0.Y, T5.X,13573; CM-NEXT: LSHR * T0.W, T37.W, literal.x,13574; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)13575; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13576; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13577; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13578; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13579; CM-NEXT: -65536(nan), 65535(9.183409e-41)13580; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13581; CM-NEXT: MOV * T5.X, PV.W,13582; CM-NEXT: MOV T0.Y, PV.X,13583; CM-NEXT: ASHR * T0.W, T37.W, literal.x,13584; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)13585; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13586; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13587; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13588; CM-NEXT: OR_INT * T37.W, PV.Z, PV.W,13589; CM-NEXT: MOV T5.X, PV.W,13590; CM-NEXT: MOV T0.Y, T32.X,13591; CM-NEXT: BFE_INT * T0.W, T35.X, 0.0, literal.x, BS:VEC_120/SCL_21213592; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13593; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13594; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13595; CM-NEXT: -65536(nan), 65535(9.183409e-41)13596; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13597; CM-NEXT: MOV * T32.X, PV.W,13598; CM-NEXT: MOV T0.Y, PV.X,13599; CM-NEXT: LSHR * T0.W, T35.X, literal.x,13600; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13601; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13602; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13603; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13604; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13605; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13606; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13607; CM-NEXT: MOV T32.X, PV.W,13608; CM-NEXT: MOV T0.Y, T33.X,13609; CM-NEXT: LSHR * T0.W, T35.X, literal.x, BS:VEC_120/SCL_21213610; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)13611; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13612; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13613; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13614; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13615; CM-NEXT: -65536(nan), 65535(9.183409e-41)13616; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13617; CM-NEXT: MOV * T33.X, PV.W,13618; CM-NEXT: MOV T0.Y, PV.X,13619; CM-NEXT: ASHR * T0.W, T35.X, literal.x,13620; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)13621; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13622; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13623; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13624; CM-NEXT: OR_INT * T38.Y, PV.Z, PV.W,13625; CM-NEXT: MOV T33.X, PV.Y,13626; CM-NEXT: MOV T0.Y, T28.X,13627; CM-NEXT: BFE_INT * T0.W, T35.Y, 0.0, literal.x,13628; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13629; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13630; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13631; CM-NEXT: -65536(nan), 65535(9.183409e-41)13632; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13633; CM-NEXT: MOV * T28.X, PV.W,13634; CM-NEXT: MOV T0.Y, PV.X,13635; CM-NEXT: LSHR * T0.W, T35.Y, literal.x,13636; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13637; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13638; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13639; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13640; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13641; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13642; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13643; CM-NEXT: MOV T28.X, PV.W,13644; CM-NEXT: MOV T0.Y, T29.X,13645; CM-NEXT: LSHR * T0.W, T35.Y, literal.x,13646; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)13647; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13648; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13649; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13650; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13651; CM-NEXT: -65536(nan), 65535(9.183409e-41)13652; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13653; CM-NEXT: MOV * T29.X, PV.W,13654; CM-NEXT: MOV T0.Y, PV.X,13655; CM-NEXT: ASHR * T0.W, T35.Y, literal.x,13656; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)13657; CM-NEXT: ALU clause starting at 226:13658; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13659; CM-NEXT: LSHL * T0.W, T0.W, literal.y,13660; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13661; CM-NEXT: OR_INT * T38.W, PV.Z, PV.W,13662; CM-NEXT: MOV T29.X, PV.W,13663; CM-NEXT: MOV T0.Y, T24.X,13664; CM-NEXT: BFE_INT * T0.W, T35.Z, 0.0, literal.x,13665; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13666; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13667; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13668; CM-NEXT: -65536(nan), 65535(9.183409e-41)13669; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13670; CM-NEXT: MOV * T24.X, PV.W,13671; CM-NEXT: MOV T0.Y, PV.X,13672; CM-NEXT: LSHR * T0.W, T35.Z, literal.x,13673; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13674; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13675; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13676; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13677; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13678; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13679; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13680; CM-NEXT: MOV T24.X, PV.W,13681; CM-NEXT: MOV T0.Y, T25.X,13682; CM-NEXT: LSHR * T0.W, T35.Z, literal.x,13683; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)13684; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13685; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13686; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13687; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13688; CM-NEXT: -65536(nan), 65535(9.183409e-41)13689; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13690; CM-NEXT: MOV * T25.X, PV.W,13691; CM-NEXT: MOV T0.Y, PV.X,13692; CM-NEXT: ASHR * T0.W, T35.Z, literal.x,13693; CM-NEXT: 24(3.363116e-44), 0(0.000000e+00)13694; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13695; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13696; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13697; CM-NEXT: OR_INT * T35.Y, PV.Z, PV.W,13698; CM-NEXT: MOV T25.X, PV.Y,13699; CM-NEXT: MOV T0.Y, T20.X,13700; CM-NEXT: BFE_INT * T0.W, T35.W, 0.0, literal.x,13701; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13702; CM-NEXT: AND_INT T0.Z, PV.Y, literal.x,13703; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13704; CM-NEXT: -65536(nan), 65535(9.183409e-41)13705; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13706; CM-NEXT: MOV * T20.X, PV.W,13707; CM-NEXT: MOV T0.Y, PV.X,13708; CM-NEXT: LSHR * T0.W, T35.W, literal.x,13709; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13710; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13711; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13712; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13713; CM-NEXT: LSHL * T0.W, PV.W, literal.y,13714; CM-NEXT: 65535(9.183409e-41), 16(2.242078e-44)13715; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13716; CM-NEXT: MOV T20.X, PV.W,13717; CM-NEXT: MOV T0.Y, T21.X,13718; CM-NEXT: LSHR * T0.W, T35.W, literal.x,13719; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)13720; CM-NEXT: BFE_INT * T0.W, PV.W, 0.0, literal.x,13721; CM-NEXT: 8(1.121039e-44), 0(0.000000e+00)13722; CM-NEXT: AND_INT T0.Z, T0.Y, literal.x,13723; CM-NEXT: AND_INT * T0.W, PV.W, literal.y,13724; CM-NEXT: -65536(nan), 65535(9.183409e-41)13725; CM-NEXT: OR_INT * T0.W, PV.Z, PV.W,13726; CM-NEXT: MOV * T21.X, PV.W,13727; CM-NEXT: MOV T0.Y, PV.X,13728; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.x,13729; CM-NEXT: 32(4.484155e-44), 0(0.000000e+00)13730; CM-NEXT: LSHR T39.X, PV.W, literal.x,13731; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.y,13732; CM-NEXT: 2(2.802597e-45), 48(6.726233e-44)13733; CM-NEXT: LSHR T40.X, PV.W, literal.x,13734; CM-NEXT: ASHR * T0.W, T35.W, literal.y,13735; CM-NEXT: 2(2.802597e-45), 24(3.363116e-44)13736; CM-NEXT: LSHR T41.X, KC0[2].Y, literal.x,13737; CM-NEXT: AND_INT T0.Y, T0.Y, literal.y,13738; CM-NEXT: LSHL T0.Z, PV.W, literal.z,13739; CM-NEXT: ADD_INT * T0.W, KC0[2].Y, literal.z,13740; CM-NEXT: 2(2.802597e-45), 65535(9.183409e-41)13741; CM-NEXT: 16(2.242078e-44), 0(0.000000e+00)13742; CM-NEXT: LSHR T42.X, PV.W, literal.x,13743; CM-NEXT: OR_INT * T35.W, PV.Y, PV.Z,13744; CM-NEXT: 2(2.802597e-45), 0(0.000000e+00)13745; CM-NEXT: MOV * T21.X, PV.W,13746; CM-NEXT: MOV T36.X, T16.X,13747; CM-NEXT: MOV * T36.Z, T12.X, BS:VEC_120/SCL_21213748; CM-NEXT: MOV T37.X, T8.X,13749; CM-NEXT: MOV * T37.Z, T4.X, BS:VEC_120/SCL_21213750; CM-NEXT: MOV T38.X, T32.X,13751; CM-NEXT: MOV * T38.Z, T28.X, BS:VEC_120/SCL_21213752; CM-NEXT: MOV T35.X, T24.X,13753; CM-NEXT: MOV * T35.Z, T20.X, BS:VEC_120/SCL_21213754 %load = load <32 x i8>, ptr addrspace(1) %in13755 %ext = sext <32 x i8> %load to <32 x i16>13756 store <32 x i16> %ext, ptr addrspace(1) %out13757 ret void13758}13759 13760; XFUNC-LABEL: {{^}}global_zextload_v64i8_to_v64i16:13761; define amdgpu_kernel void @global_zextload_v64i8_to_v64i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {13762; %load = load <64 x i8>, ptr addrspace(1) %in13763; %ext = zext <64 x i8> %load to <64 x i16>13764; store <64 x i16> %ext, ptr addrspace(1) %out13765; ret void13766; }13767 13768; XFUNC-LABEL: {{^}}global_sextload_v64i8_to_v64i16:13769; define amdgpu_kernel void @global_sextload_v64i8_to_v64i16(ptr addrspace(1) %out, ptr addrspace(1) %in) #0 {13770; %load = load <64 x i8>, ptr addrspace(1) %in13771; %ext = sext <64 x i8> %load to <64 x i16>13772; store <64 x i16> %ext, ptr addrspace(1) %out13773; ret void13774; }13775 13776attributes #0 = { nounwind }13777