brintos

brintos / llvm-project-archived public Read only

0
0
Text · 465.5 KiB · 8fcf1ad Raw
9913 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=amdgcn < %s | FileCheck -check-prefix=GENERIC %s3; RUN: llc -mtriple=amdgcn -mcpu=tahiti -O0 < %s | FileCheck -check-prefix=NOOPT %s4; RUN: llc -mtriple=amdgcn -mcpu=tahiti < %s | FileCheck -check-prefix=SI-MOVREL %s5; RUN: llc -mtriple=amdgcn -mcpu=tonga < %s | FileCheck -check-prefixes=VI,VI-MOVREL %s6; RUN: llc -mtriple=amdgcn -mcpu=tonga -amdgpu-vgpr-index-mode < %s | FileCheck -check-prefixes=VI,VI-IDXMODE %s7; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -check-prefix=GFX9-IDXMODE %s8 9; Tests for indirect addressing on SI, which is implemented using dynamic10; indexing of vectors.11define amdgpu_kernel void @extract_w_offset(ptr addrspace(1) %out, i32 %in) {12; GENERIC-LABEL: extract_w_offset:13; GENERIC:       ; %bb.0: ; %entry14; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x915; GENERIC-NEXT:    s_load_dword s4, s[4:5], 0xb16; GENERIC-NEXT:    s_mov_b32 s3, 0xf00017; GENERIC-NEXT:    s_mov_b32 s2, -118; GENERIC-NEXT:    v_mov_b32_e32 v0, 0x4040000019; GENERIC-NEXT:    v_mov_b32_e32 v1, 0x40a0000020; GENERIC-NEXT:    v_mov_b32_e32 v2, 0x40c0000021; GENERIC-NEXT:    v_mov_b32_e32 v3, 0x40e0000022; GENERIC-NEXT:    v_mov_b32_e32 v4, 0x4100000023; GENERIC-NEXT:    v_mov_b32_e32 v5, 0x4110000024; GENERIC-NEXT:    v_mov_b32_e32 v6, 0x4120000025; GENERIC-NEXT:    v_mov_b32_e32 v7, 0x4130000026; GENERIC-NEXT:    v_mov_b32_e32 v8, 0x4140000027; GENERIC-NEXT:    v_mov_b32_e32 v9, 0x4150000028; GENERIC-NEXT:    v_mov_b32_e32 v10, 0x4160000029; GENERIC-NEXT:    v_mov_b32_e32 v11, 0x4170000030; GENERIC-NEXT:    v_mov_b32_e32 v12, 0x4180000031; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)32; GENERIC-NEXT:    s_add_i32 s6, s4, 133; GENERIC-NEXT:    s_cmp_eq_u32 s6, 134; GENERIC-NEXT:    s_cselect_b64 s[4:5], -1, 035; GENERIC-NEXT:    v_cndmask_b32_e64 v13, 1.0, 2.0, s[4:5]36; GENERIC-NEXT:    s_cmp_lg_u32 s6, 237; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 038; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v13, vcc39; GENERIC-NEXT:    s_cmp_lg_u32 s6, 340; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 041; GENERIC-NEXT:    v_cndmask_b32_e32 v0, 4.0, v0, vcc42; GENERIC-NEXT:    s_cmp_lg_u32 s6, 443; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 044; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v1, v0, vcc45; GENERIC-NEXT:    s_cmp_lg_u32 s6, 546; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 047; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v2, v0, vcc48; GENERIC-NEXT:    s_cmp_lg_u32 s6, 649; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 050; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v3, v0, vcc51; GENERIC-NEXT:    s_cmp_lg_u32 s6, 752; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 053; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v4, v0, vcc54; GENERIC-NEXT:    s_cmp_lg_u32 s6, 855; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 056; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v5, v0, vcc57; GENERIC-NEXT:    s_cmp_lg_u32 s6, 958; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 059; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v6, v0, vcc60; GENERIC-NEXT:    s_cmp_lg_u32 s6, 1061; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 062; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v7, v0, vcc63; GENERIC-NEXT:    s_cmp_lg_u32 s6, 1164; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 065; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v8, v0, vcc66; GENERIC-NEXT:    s_cmp_lg_u32 s6, 1267; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 068; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v9, v0, vcc69; GENERIC-NEXT:    s_cmp_lg_u32 s6, 1370; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 071; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v10, v0, vcc72; GENERIC-NEXT:    s_cmp_lg_u32 s6, 1473; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 074; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v11, v0, vcc75; GENERIC-NEXT:    s_cmp_lg_u32 s6, 1576; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 077; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v12, v0, vcc78; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 079; GENERIC-NEXT:    s_endpgm80;81; NOOPT-LABEL: extract_w_offset:82; NOOPT:       ; %bb.0: ; %entry83; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x984; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xb85; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)86; NOOPT-NEXT:    s_mov_b32 s7, s187; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr188; NOOPT-NEXT:    s_mov_b32 s5, 0xf00089; NOOPT-NEXT:    s_mov_b32 s6, -190; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr391; NOOPT-NEXT:    s_mov_b32 s1, s792; NOOPT-NEXT:    s_mov_b32 s2, s693; NOOPT-NEXT:    s_mov_b32 s3, s594; NOOPT-NEXT:    s_mov_b32 s5, 195; NOOPT-NEXT:    s_add_i32 s4, s4, s596; NOOPT-NEXT:    s_mov_b32 s5, 0x4180000097; NOOPT-NEXT:    s_mov_b32 s6, 0x4170000098; NOOPT-NEXT:    s_mov_b32 s7, 0x4160000099; NOOPT-NEXT:    s_mov_b32 s8, 0x41500000100; NOOPT-NEXT:    s_mov_b32 s9, 0x41400000101; NOOPT-NEXT:    s_mov_b32 s10, 0x41300000102; NOOPT-NEXT:    s_mov_b32 s11, 0x41200000103; NOOPT-NEXT:    s_mov_b32 s12, 0x41100000104; NOOPT-NEXT:    s_mov_b32 s13, 0x41000000105; NOOPT-NEXT:    s_mov_b32 s14, 0x40e00000106; NOOPT-NEXT:    s_mov_b32 s15, 0x40c00000107; NOOPT-NEXT:    s_mov_b32 s16, 0x40a00000108; NOOPT-NEXT:    s_mov_b32 s17, 4.0109; NOOPT-NEXT:    s_mov_b32 s18, 0x40400000110; NOOPT-NEXT:    s_mov_b32 s19, 2.0111; NOOPT-NEXT:    s_mov_b32 s20, 1.0112; NOOPT-NEXT:    v_mov_b32_e32 v0, s20113; NOOPT-NEXT:    v_mov_b32_e32 v30, s19114; NOOPT-NEXT:    v_mov_b32_e32 v29, s18115; NOOPT-NEXT:    v_mov_b32_e32 v28, s17116; NOOPT-NEXT:    v_mov_b32_e32 v27, s16117; NOOPT-NEXT:    v_mov_b32_e32 v26, s15118; NOOPT-NEXT:    v_mov_b32_e32 v25, s14119; NOOPT-NEXT:    v_mov_b32_e32 v24, s13120; NOOPT-NEXT:    v_mov_b32_e32 v23, s12121; NOOPT-NEXT:    v_mov_b32_e32 v22, s11122; NOOPT-NEXT:    v_mov_b32_e32 v21, s10123; NOOPT-NEXT:    v_mov_b32_e32 v20, s9124; NOOPT-NEXT:    v_mov_b32_e32 v19, s8125; NOOPT-NEXT:    v_mov_b32_e32 v18, s7126; NOOPT-NEXT:    v_mov_b32_e32 v17, s6127; NOOPT-NEXT:    v_mov_b32_e32 v16, s5128; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec129; NOOPT-NEXT:    v_mov_b32_e32 v1, v30130; NOOPT-NEXT:    v_mov_b32_e32 v2, v29131; NOOPT-NEXT:    v_mov_b32_e32 v3, v28132; NOOPT-NEXT:    v_mov_b32_e32 v4, v27133; NOOPT-NEXT:    v_mov_b32_e32 v5, v26134; NOOPT-NEXT:    v_mov_b32_e32 v6, v25135; NOOPT-NEXT:    v_mov_b32_e32 v7, v24136; NOOPT-NEXT:    v_mov_b32_e32 v8, v23137; NOOPT-NEXT:    v_mov_b32_e32 v9, v22138; NOOPT-NEXT:    v_mov_b32_e32 v10, v21139; NOOPT-NEXT:    v_mov_b32_e32 v11, v20140; NOOPT-NEXT:    v_mov_b32_e32 v12, v19141; NOOPT-NEXT:    v_mov_b32_e32 v13, v18142; NOOPT-NEXT:    v_mov_b32_e32 v14, v17143; NOOPT-NEXT:    v_mov_b32_e32 v15, v16144; NOOPT-NEXT:    s_mov_b32 m0, s4145; NOOPT-NEXT:    v_movrels_b32_e32 v0, v0146; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 0147; NOOPT-NEXT:    s_endpgm148;149; SI-MOVREL-LABEL: extract_w_offset:150; SI-MOVREL:       ; %bb.0: ; %entry151; SI-MOVREL-NEXT:    s_load_dword s6, s[4:5], 0xb152; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x9153; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.0154; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf000155; SI-MOVREL-NEXT:    s_mov_b32 s2, -1156; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)157; SI-MOVREL-NEXT:    s_add_i32 m0, s6, 1158; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.0159; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x40400000160; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.0161; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a00000162; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c00000163; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e00000164; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x41000000165; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x41100000166; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x41200000167; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x41300000168; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x41400000169; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x41500000170; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x41600000171; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x41700000172; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x41800000173; SI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v0174; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[0:3], 0175; SI-MOVREL-NEXT:    s_endpgm176;177; VI-MOVREL-LABEL: extract_w_offset:178; VI-MOVREL:       ; %bb.0: ; %entry179; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0x2c180; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24181; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.0182; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.0183; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x40400000184; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)185; VI-MOVREL-NEXT:    s_add_i32 m0, s2, 1186; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.0187; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a00000188; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c00000189; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e00000190; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x41000000191; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x41100000192; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x41200000193; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x41300000194; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x41400000195; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x41500000196; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x41600000197; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x41700000198; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x41800000199; VI-MOVREL-NEXT:    v_movrels_b32_e32 v2, v0200; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s0201; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s1202; VI-MOVREL-NEXT:    flat_store_dword v[0:1], v2203; VI-MOVREL-NEXT:    s_endpgm204;205; VI-IDXMODE-LABEL: extract_w_offset:206; VI-IDXMODE:       ; %bb.0: ; %entry207; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c208; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24209; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.0210; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.0211; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x40400000212; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)213; VI-IDXMODE-NEXT:    s_add_i32 s2, s2, 1214; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.0215; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a00000216; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c00000217; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e00000218; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x41000000219; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x41100000220; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x41200000221; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x41300000222; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x41400000223; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x41500000224; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x41600000225; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x41700000226; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x41800000227; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)228; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, v0229; VI-IDXMODE-NEXT:    s_set_gpr_idx_off230; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s0231; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s1232; VI-IDXMODE-NEXT:    flat_store_dword v[0:1], v2233; VI-IDXMODE-NEXT:    s_endpgm234;235; GFX9-IDXMODE-LABEL: extract_w_offset:236; GFX9-IDXMODE:       ; %bb.0: ; %entry237; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c238; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24239; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 0240; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.0241; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.0242; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)243; GFX9-IDXMODE-NEXT:    s_add_i32 s2, s2, 1244; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x40400000245; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.0246; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a00000247; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c00000248; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e00000249; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x41000000250; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x41100000251; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x41200000252; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x41300000253; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x41400000254; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x41500000255; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x41600000256; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x41700000257; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x41800000258; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)259; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v0260; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off261; GFX9-IDXMODE-NEXT:    global_store_dword v16, v0, s[0:1]262; GFX9-IDXMODE-NEXT:    s_endpgm263entry:264  %idx = add i32 %in, 1265  %elt = extractelement <16 x float> <float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, float 11.0, float 12.0, float 13.0, float 14.0, float 15.0, float 16.0>, i32 %idx266  store float %elt, ptr addrspace(1) %out267  ret void268}269 270; XXX: Could do v_or_b32 directly271define amdgpu_kernel void @extract_w_offset_salu_use_vector(ptr addrspace(1) %out, i32 %in, <16 x i32> %or.val) {272; GENERIC-LABEL: extract_w_offset_salu_use_vector:273; GENERIC:       ; %bb.0: ; %entry274; GENERIC-NEXT:    s_load_dword s2, s[4:5], 0xb275; GENERIC-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x19276; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x9277; GENERIC-NEXT:    s_mov_b32 s3, 0xf000278; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)279; GENERIC-NEXT:    s_add_i32 s2, s2, 1280; GENERIC-NEXT:    s_or_b32 s4, s23, 16281; GENERIC-NEXT:    s_or_b32 s5, s22, 15282; GENERIC-NEXT:    s_or_b32 s6, s21, 14283; GENERIC-NEXT:    s_or_b32 s7, s20, 13284; GENERIC-NEXT:    s_or_b32 s19, s19, 12285; GENERIC-NEXT:    s_or_b32 s18, s18, 11286; GENERIC-NEXT:    s_or_b32 s17, s17, 10287; GENERIC-NEXT:    s_or_b32 s16, s16, 9288; GENERIC-NEXT:    s_or_b32 s15, s15, 8289; GENERIC-NEXT:    s_or_b32 s14, s14, 7290; GENERIC-NEXT:    s_or_b32 s13, s13, 6291; GENERIC-NEXT:    s_or_b32 s12, s12, 5292; GENERIC-NEXT:    s_or_b32 s11, s11, 4293; GENERIC-NEXT:    s_or_b32 s10, s10, 3294; GENERIC-NEXT:    s_or_b32 s8, s8, 1295; GENERIC-NEXT:    s_or_b32 s9, s9, 2296; GENERIC-NEXT:    s_cmp_eq_u32 s2, 1297; GENERIC-NEXT:    s_cselect_b32 s8, s9, s8298; GENERIC-NEXT:    s_cmp_eq_u32 s2, 2299; GENERIC-NEXT:    s_cselect_b32 s8, s10, s8300; GENERIC-NEXT:    s_cmp_eq_u32 s2, 3301; GENERIC-NEXT:    s_cselect_b32 s8, s11, s8302; GENERIC-NEXT:    s_cmp_eq_u32 s2, 4303; GENERIC-NEXT:    s_cselect_b32 s8, s12, s8304; GENERIC-NEXT:    s_cmp_eq_u32 s2, 5305; GENERIC-NEXT:    s_cselect_b32 s8, s13, s8306; GENERIC-NEXT:    s_cmp_eq_u32 s2, 6307; GENERIC-NEXT:    s_cselect_b32 s8, s14, s8308; GENERIC-NEXT:    s_cmp_eq_u32 s2, 7309; GENERIC-NEXT:    s_cselect_b32 s8, s15, s8310; GENERIC-NEXT:    s_cmp_eq_u32 s2, 8311; GENERIC-NEXT:    s_cselect_b32 s8, s16, s8312; GENERIC-NEXT:    s_cmp_eq_u32 s2, 9313; GENERIC-NEXT:    s_cselect_b32 s8, s17, s8314; GENERIC-NEXT:    s_cmp_eq_u32 s2, 10315; GENERIC-NEXT:    s_cselect_b32 s8, s18, s8316; GENERIC-NEXT:    s_cmp_eq_u32 s2, 11317; GENERIC-NEXT:    s_cselect_b32 s8, s19, s8318; GENERIC-NEXT:    s_cmp_eq_u32 s2, 12319; GENERIC-NEXT:    s_cselect_b32 s7, s7, s8320; GENERIC-NEXT:    s_cmp_eq_u32 s2, 13321; GENERIC-NEXT:    s_cselect_b32 s6, s6, s7322; GENERIC-NEXT:    s_cmp_eq_u32 s2, 14323; GENERIC-NEXT:    s_cselect_b32 s5, s5, s6324; GENERIC-NEXT:    s_cmp_eq_u32 s2, 15325; GENERIC-NEXT:    s_cselect_b32 s4, s4, s5326; GENERIC-NEXT:    s_mov_b32 s2, -1327; GENERIC-NEXT:    v_mov_b32_e32 v0, s4328; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 0329; GENERIC-NEXT:    s_endpgm330;331; NOOPT-LABEL: extract_w_offset_salu_use_vector:332; NOOPT:       ; %bb.0: ; %entry333; NOOPT-NEXT:    s_mov_b64 s[2:3], s[4:5]334; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[2:3], 0x9335; NOOPT-NEXT:    s_load_dword s4, s[2:3], 0xb336; NOOPT-NEXT:    s_load_dwordx16 s[36:51], s[2:3], 0x19337; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)338; NOOPT-NEXT:    s_mov_b32 s7, s1339; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr1340; NOOPT-NEXT:    s_mov_b32 s5, 0xf000341; NOOPT-NEXT:    s_mov_b32 s6, -1342; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr3343; NOOPT-NEXT:    s_mov_b32 s1, s7344; NOOPT-NEXT:    s_mov_b32 s2, s6345; NOOPT-NEXT:    s_mov_b32 s3, s5346; NOOPT-NEXT:    s_mov_b32 s21, 1347; NOOPT-NEXT:    s_add_i32 s4, s4, s21348; NOOPT-NEXT:    s_mov_b32 s5, s51349; NOOPT-NEXT:    s_mov_b32 s6, 16350; NOOPT-NEXT:    s_or_b32 s5, s5, s6351; NOOPT-NEXT:    s_mov_b32 s6, s50352; NOOPT-NEXT:    s_mov_b32 s7, 15353; NOOPT-NEXT:    s_or_b32 s6, s6, s7354; NOOPT-NEXT:    s_mov_b32 s7, s49355; NOOPT-NEXT:    s_mov_b32 s8, 14356; NOOPT-NEXT:    s_or_b32 s7, s7, s8357; NOOPT-NEXT:    s_mov_b32 s8, s48358; NOOPT-NEXT:    s_mov_b32 s9, 13359; NOOPT-NEXT:    s_or_b32 s8, s8, s9360; NOOPT-NEXT:    s_mov_b32 s9, s47361; NOOPT-NEXT:    s_mov_b32 s10, 12362; NOOPT-NEXT:    s_or_b32 s9, s9, s10363; NOOPT-NEXT:    s_mov_b32 s10, s46364; NOOPT-NEXT:    s_mov_b32 s11, 11365; NOOPT-NEXT:    s_or_b32 s10, s10, s11366; NOOPT-NEXT:    s_mov_b32 s11, s45367; NOOPT-NEXT:    s_mov_b32 s12, 10368; NOOPT-NEXT:    s_or_b32 s11, s11, s12369; NOOPT-NEXT:    s_mov_b32 s12, s44370; NOOPT-NEXT:    s_mov_b32 s13, 9371; NOOPT-NEXT:    s_or_b32 s12, s12, s13372; NOOPT-NEXT:    s_mov_b32 s13, s43373; NOOPT-NEXT:    s_mov_b32 s14, 8374; NOOPT-NEXT:    s_or_b32 s13, s13, s14375; NOOPT-NEXT:    s_mov_b32 s14, s42376; NOOPT-NEXT:    s_mov_b32 s15, 7377; NOOPT-NEXT:    s_or_b32 s14, s14, s15378; NOOPT-NEXT:    s_mov_b32 s15, s41379; NOOPT-NEXT:    s_mov_b32 s16, 6380; NOOPT-NEXT:    s_or_b32 s15, s15, s16381; NOOPT-NEXT:    s_mov_b32 s16, s40382; NOOPT-NEXT:    s_mov_b32 s17, 5383; NOOPT-NEXT:    s_or_b32 s16, s16, s17384; NOOPT-NEXT:    s_mov_b32 s17, s39385; NOOPT-NEXT:    s_mov_b32 s18, 4386; NOOPT-NEXT:    s_or_b32 s17, s17, s18387; NOOPT-NEXT:    s_mov_b32 s18, s38388; NOOPT-NEXT:    s_mov_b32 s19, 3389; NOOPT-NEXT:    s_or_b32 s18, s18, s19390; NOOPT-NEXT:    s_mov_b32 s19, s37391; NOOPT-NEXT:    s_mov_b32 s20, 2392; NOOPT-NEXT:    s_or_b32 s19, s19, s20393; NOOPT-NEXT:    s_mov_b32 s20, s36394; NOOPT-NEXT:    s_or_b32 s20, s20, s21395; NOOPT-NEXT:    v_mov_b32_e32 v0, s20396; NOOPT-NEXT:    v_mov_b32_e32 v30, s19397; NOOPT-NEXT:    v_mov_b32_e32 v29, s18398; NOOPT-NEXT:    v_mov_b32_e32 v28, s17399; NOOPT-NEXT:    v_mov_b32_e32 v27, s16400; NOOPT-NEXT:    v_mov_b32_e32 v26, s15401; NOOPT-NEXT:    v_mov_b32_e32 v25, s14402; NOOPT-NEXT:    v_mov_b32_e32 v24, s13403; NOOPT-NEXT:    v_mov_b32_e32 v23, s12404; NOOPT-NEXT:    v_mov_b32_e32 v22, s11405; NOOPT-NEXT:    v_mov_b32_e32 v21, s10406; NOOPT-NEXT:    v_mov_b32_e32 v20, s9407; NOOPT-NEXT:    v_mov_b32_e32 v19, s8408; NOOPT-NEXT:    v_mov_b32_e32 v18, s7409; NOOPT-NEXT:    v_mov_b32_e32 v17, s6410; NOOPT-NEXT:    v_mov_b32_e32 v16, s5411; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec412; NOOPT-NEXT:    v_mov_b32_e32 v1, v30413; NOOPT-NEXT:    v_mov_b32_e32 v2, v29414; NOOPT-NEXT:    v_mov_b32_e32 v3, v28415; NOOPT-NEXT:    v_mov_b32_e32 v4, v27416; NOOPT-NEXT:    v_mov_b32_e32 v5, v26417; NOOPT-NEXT:    v_mov_b32_e32 v6, v25418; NOOPT-NEXT:    v_mov_b32_e32 v7, v24419; NOOPT-NEXT:    v_mov_b32_e32 v8, v23420; NOOPT-NEXT:    v_mov_b32_e32 v9, v22421; NOOPT-NEXT:    v_mov_b32_e32 v10, v21422; NOOPT-NEXT:    v_mov_b32_e32 v11, v20423; NOOPT-NEXT:    v_mov_b32_e32 v12, v19424; NOOPT-NEXT:    v_mov_b32_e32 v13, v18425; NOOPT-NEXT:    v_mov_b32_e32 v14, v17426; NOOPT-NEXT:    v_mov_b32_e32 v15, v16427; NOOPT-NEXT:    s_mov_b32 m0, s4428; NOOPT-NEXT:    v_movrels_b32_e32 v0, v0429; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 0430; NOOPT-NEXT:    s_endpgm431;432; SI-MOVREL-LABEL: extract_w_offset_salu_use_vector:433; SI-MOVREL:       ; %bb.0: ; %entry434; SI-MOVREL-NEXT:    s_load_dword s6, s[4:5], 0xb435; SI-MOVREL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x19436; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x9437; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf000438; SI-MOVREL-NEXT:    s_mov_b32 s2, -1439; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)440; SI-MOVREL-NEXT:    s_add_i32 m0, s6, 1441; SI-MOVREL-NEXT:    s_or_b32 s8, s8, 1442; SI-MOVREL-NEXT:    s_or_b32 s4, s23, 16443; SI-MOVREL-NEXT:    s_or_b32 s5, s22, 15444; SI-MOVREL-NEXT:    s_or_b32 s6, s21, 14445; SI-MOVREL-NEXT:    s_or_b32 s7, s20, 13446; SI-MOVREL-NEXT:    s_or_b32 s19, s19, 12447; SI-MOVREL-NEXT:    s_or_b32 s18, s18, 11448; SI-MOVREL-NEXT:    s_or_b32 s17, s17, 10449; SI-MOVREL-NEXT:    s_or_b32 s16, s16, 9450; SI-MOVREL-NEXT:    s_or_b32 s15, s15, 8451; SI-MOVREL-NEXT:    s_or_b32 s14, s14, 7452; SI-MOVREL-NEXT:    s_or_b32 s13, s13, 6453; SI-MOVREL-NEXT:    s_or_b32 s12, s12, 5454; SI-MOVREL-NEXT:    s_or_b32 s11, s11, 4455; SI-MOVREL-NEXT:    s_or_b32 s10, s10, 3456; SI-MOVREL-NEXT:    s_or_b32 s9, s9, 2457; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, s8458; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, s9459; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, s10460; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, s11461; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, s12462; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, s13463; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, s14464; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, s15465; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, s16466; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, s17467; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, s18468; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, s19469; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, s7470; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, s6471; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, s5472; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, s4473; SI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v0474; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[0:3], 0475; SI-MOVREL-NEXT:    s_endpgm476;477; VI-MOVREL-LABEL: extract_w_offset_salu_use_vector:478; VI-MOVREL:       ; %bb.0: ; %entry479; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0x2c480; VI-MOVREL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x64481; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24482; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)483; VI-MOVREL-NEXT:    s_add_i32 m0, s2, 1484; VI-MOVREL-NEXT:    s_or_b32 s10, s10, 3485; VI-MOVREL-NEXT:    s_or_b32 s9, s9, 2486; VI-MOVREL-NEXT:    s_or_b32 s8, s8, 1487; VI-MOVREL-NEXT:    s_or_b32 s2, s23, 16488; VI-MOVREL-NEXT:    s_or_b32 s3, s22, 15489; VI-MOVREL-NEXT:    s_or_b32 s4, s21, 14490; VI-MOVREL-NEXT:    s_or_b32 s5, s20, 13491; VI-MOVREL-NEXT:    s_or_b32 s6, s19, 12492; VI-MOVREL-NEXT:    s_or_b32 s7, s18, 11493; VI-MOVREL-NEXT:    s_or_b32 s17, s17, 10494; VI-MOVREL-NEXT:    s_or_b32 s16, s16, 9495; VI-MOVREL-NEXT:    s_or_b32 s15, s15, 8496; VI-MOVREL-NEXT:    s_or_b32 s14, s14, 7497; VI-MOVREL-NEXT:    s_or_b32 s13, s13, 6498; VI-MOVREL-NEXT:    s_or_b32 s12, s12, 5499; VI-MOVREL-NEXT:    s_or_b32 s11, s11, 4500; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s8501; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s9502; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, s10503; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, s11504; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s12505; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s13506; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, s14507; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, s15508; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s16509; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s17510; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, s7511; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, s6512; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s5513; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s4514; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, s3515; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, s2516; VI-MOVREL-NEXT:    v_movrels_b32_e32 v2, v0517; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s0518; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s1519; VI-MOVREL-NEXT:    flat_store_dword v[0:1], v2520; VI-MOVREL-NEXT:    s_endpgm521;522; VI-IDXMODE-LABEL: extract_w_offset_salu_use_vector:523; VI-IDXMODE:       ; %bb.0: ; %entry524; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c525; VI-IDXMODE-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x64526; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24527; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)528; VI-IDXMODE-NEXT:    s_add_i32 s2, s2, 1529; VI-IDXMODE-NEXT:    s_or_b32 s10, s10, 3530; VI-IDXMODE-NEXT:    s_or_b32 s9, s9, 2531; VI-IDXMODE-NEXT:    s_or_b32 s8, s8, 1532; VI-IDXMODE-NEXT:    s_or_b32 s3, s23, 16533; VI-IDXMODE-NEXT:    s_or_b32 s4, s22, 15534; VI-IDXMODE-NEXT:    s_or_b32 s5, s21, 14535; VI-IDXMODE-NEXT:    s_or_b32 s6, s20, 13536; VI-IDXMODE-NEXT:    s_or_b32 s7, s19, 12537; VI-IDXMODE-NEXT:    s_or_b32 s18, s18, 11538; VI-IDXMODE-NEXT:    s_or_b32 s17, s17, 10539; VI-IDXMODE-NEXT:    s_or_b32 s16, s16, 9540; VI-IDXMODE-NEXT:    s_or_b32 s15, s15, 8541; VI-IDXMODE-NEXT:    s_or_b32 s14, s14, 7542; VI-IDXMODE-NEXT:    s_or_b32 s13, s13, 6543; VI-IDXMODE-NEXT:    s_or_b32 s12, s12, 5544; VI-IDXMODE-NEXT:    s_or_b32 s11, s11, 4545; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s8546; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s9547; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, s10548; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, s11549; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s12550; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s13551; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, s14552; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, s15553; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s16554; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s17555; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, s18556; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, s7557; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s6558; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s5559; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, s4560; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, s3561; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)562; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, v0563; VI-IDXMODE-NEXT:    s_set_gpr_idx_off564; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s0565; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s1566; VI-IDXMODE-NEXT:    flat_store_dword v[0:1], v2567; VI-IDXMODE-NEXT:    s_endpgm568;569; GFX9-IDXMODE-LABEL: extract_w_offset_salu_use_vector:570; GFX9-IDXMODE:       ; %bb.0: ; %entry571; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c572; GFX9-IDXMODE-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x64573; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24574; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 0575; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)576; GFX9-IDXMODE-NEXT:    s_add_i32 s2, s2, 1577; GFX9-IDXMODE-NEXT:    s_or_b32 s8, s8, 1578; GFX9-IDXMODE-NEXT:    s_or_b32 s3, s23, 16579; GFX9-IDXMODE-NEXT:    s_or_b32 s4, s22, 15580; GFX9-IDXMODE-NEXT:    s_or_b32 s5, s21, 14581; GFX9-IDXMODE-NEXT:    s_or_b32 s6, s20, 13582; GFX9-IDXMODE-NEXT:    s_or_b32 s7, s19, 12583; GFX9-IDXMODE-NEXT:    s_or_b32 s18, s18, 11584; GFX9-IDXMODE-NEXT:    s_or_b32 s17, s17, 10585; GFX9-IDXMODE-NEXT:    s_or_b32 s16, s16, 9586; GFX9-IDXMODE-NEXT:    s_or_b32 s15, s15, 8587; GFX9-IDXMODE-NEXT:    s_or_b32 s14, s14, 7588; GFX9-IDXMODE-NEXT:    s_or_b32 s13, s13, 6589; GFX9-IDXMODE-NEXT:    s_or_b32 s12, s12, 5590; GFX9-IDXMODE-NEXT:    s_or_b32 s11, s11, 4591; GFX9-IDXMODE-NEXT:    s_or_b32 s10, s10, 3592; GFX9-IDXMODE-NEXT:    s_or_b32 s9, s9, 2593; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, s8594; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, s9595; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, s10596; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, s11597; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, s12598; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, s13599; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, s14600; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, s15601; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, s16602; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, s17603; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, s18604; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, s7605; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, s6606; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, s5607; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, s4608; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, s3609; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)610; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v0611; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off612; GFX9-IDXMODE-NEXT:    global_store_dword v16, v0, s[0:1]613; GFX9-IDXMODE-NEXT:    s_endpgm614entry:615  %idx = add i32 %in, 1616  %vec = or <16 x i32> %or.val, <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16>617  %elt = extractelement <16 x i32> %vec, i32 %idx618  store i32 %elt, ptr addrspace(1) %out619  ret void620}621 622define amdgpu_kernel void @extract_wo_offset(ptr addrspace(1) %out, i32 %in) {623; GENERIC-LABEL: extract_wo_offset:624; GENERIC:       ; %bb.0: ; %entry625; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x9626; GENERIC-NEXT:    s_load_dword s6, s[4:5], 0xb627; GENERIC-NEXT:    s_mov_b32 s3, 0xf000628; GENERIC-NEXT:    s_mov_b32 s2, -1629; GENERIC-NEXT:    v_mov_b32_e32 v0, 0x40400000630; GENERIC-NEXT:    v_mov_b32_e32 v1, 0x40a00000631; GENERIC-NEXT:    v_mov_b32_e32 v2, 0x40c00000632; GENERIC-NEXT:    v_mov_b32_e32 v3, 0x40e00000633; GENERIC-NEXT:    v_mov_b32_e32 v4, 0x41000000634; GENERIC-NEXT:    v_mov_b32_e32 v5, 0x41100000635; GENERIC-NEXT:    v_mov_b32_e32 v6, 0x41200000636; GENERIC-NEXT:    v_mov_b32_e32 v7, 0x41300000637; GENERIC-NEXT:    v_mov_b32_e32 v8, 0x41400000638; GENERIC-NEXT:    v_mov_b32_e32 v9, 0x41500000639; GENERIC-NEXT:    v_mov_b32_e32 v10, 0x41600000640; GENERIC-NEXT:    v_mov_b32_e32 v11, 0x41700000641; GENERIC-NEXT:    v_mov_b32_e32 v12, 0x41800000642; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)643; GENERIC-NEXT:    s_cmp_eq_u32 s6, 1644; GENERIC-NEXT:    s_cselect_b64 s[4:5], -1, 0645; GENERIC-NEXT:    v_cndmask_b32_e64 v13, 1.0, 2.0, s[4:5]646; GENERIC-NEXT:    s_cmp_lg_u32 s6, 2647; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0648; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v13, vcc649; GENERIC-NEXT:    s_cmp_lg_u32 s6, 3650; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0651; GENERIC-NEXT:    v_cndmask_b32_e32 v0, 4.0, v0, vcc652; GENERIC-NEXT:    s_cmp_lg_u32 s6, 4653; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0654; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v1, v0, vcc655; GENERIC-NEXT:    s_cmp_lg_u32 s6, 5656; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0657; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v2, v0, vcc658; GENERIC-NEXT:    s_cmp_lg_u32 s6, 6659; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0660; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v3, v0, vcc661; GENERIC-NEXT:    s_cmp_lg_u32 s6, 7662; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0663; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v4, v0, vcc664; GENERIC-NEXT:    s_cmp_lg_u32 s6, 8665; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0666; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v5, v0, vcc667; GENERIC-NEXT:    s_cmp_lg_u32 s6, 9668; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0669; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v6, v0, vcc670; GENERIC-NEXT:    s_cmp_lg_u32 s6, 10671; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0672; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v7, v0, vcc673; GENERIC-NEXT:    s_cmp_lg_u32 s6, 11674; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0675; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v8, v0, vcc676; GENERIC-NEXT:    s_cmp_lg_u32 s6, 12677; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0678; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v9, v0, vcc679; GENERIC-NEXT:    s_cmp_lg_u32 s6, 13680; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0681; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v10, v0, vcc682; GENERIC-NEXT:    s_cmp_lg_u32 s6, 14683; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0684; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v11, v0, vcc685; GENERIC-NEXT:    s_cmp_lg_u32 s6, 15686; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 0687; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v12, v0, vcc688; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 0689; GENERIC-NEXT:    s_endpgm690;691; NOOPT-LABEL: extract_wo_offset:692; NOOPT:       ; %bb.0: ; %entry693; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x9694; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xb695; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)696; NOOPT-NEXT:    s_mov_b32 s7, s1697; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr1698; NOOPT-NEXT:    s_mov_b32 s5, 0xf000699; NOOPT-NEXT:    s_mov_b32 s6, -1700; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr3701; NOOPT-NEXT:    s_mov_b32 s1, s7702; NOOPT-NEXT:    s_mov_b32 s2, s6703; NOOPT-NEXT:    s_mov_b32 s3, s5704; NOOPT-NEXT:    s_mov_b32 s5, 0x41800000705; NOOPT-NEXT:    s_mov_b32 s6, 0x41700000706; NOOPT-NEXT:    s_mov_b32 s7, 0x41600000707; NOOPT-NEXT:    s_mov_b32 s8, 0x41500000708; NOOPT-NEXT:    s_mov_b32 s9, 0x41400000709; NOOPT-NEXT:    s_mov_b32 s10, 0x41300000710; NOOPT-NEXT:    s_mov_b32 s11, 0x41200000711; NOOPT-NEXT:    s_mov_b32 s12, 0x41100000712; NOOPT-NEXT:    s_mov_b32 s13, 0x41000000713; NOOPT-NEXT:    s_mov_b32 s14, 0x40e00000714; NOOPT-NEXT:    s_mov_b32 s15, 0x40c00000715; NOOPT-NEXT:    s_mov_b32 s16, 0x40a00000716; NOOPT-NEXT:    s_mov_b32 s17, 4.0717; NOOPT-NEXT:    s_mov_b32 s18, 0x40400000718; NOOPT-NEXT:    s_mov_b32 s19, 2.0719; NOOPT-NEXT:    s_mov_b32 s20, 1.0720; NOOPT-NEXT:    v_mov_b32_e32 v0, s20721; NOOPT-NEXT:    v_mov_b32_e32 v30, s19722; NOOPT-NEXT:    v_mov_b32_e32 v29, s18723; NOOPT-NEXT:    v_mov_b32_e32 v28, s17724; NOOPT-NEXT:    v_mov_b32_e32 v27, s16725; NOOPT-NEXT:    v_mov_b32_e32 v26, s15726; NOOPT-NEXT:    v_mov_b32_e32 v25, s14727; NOOPT-NEXT:    v_mov_b32_e32 v24, s13728; NOOPT-NEXT:    v_mov_b32_e32 v23, s12729; NOOPT-NEXT:    v_mov_b32_e32 v22, s11730; NOOPT-NEXT:    v_mov_b32_e32 v21, s10731; NOOPT-NEXT:    v_mov_b32_e32 v20, s9732; NOOPT-NEXT:    v_mov_b32_e32 v19, s8733; NOOPT-NEXT:    v_mov_b32_e32 v18, s7734; NOOPT-NEXT:    v_mov_b32_e32 v17, s6735; NOOPT-NEXT:    v_mov_b32_e32 v16, s5736; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec737; NOOPT-NEXT:    v_mov_b32_e32 v1, v30738; NOOPT-NEXT:    v_mov_b32_e32 v2, v29739; NOOPT-NEXT:    v_mov_b32_e32 v3, v28740; NOOPT-NEXT:    v_mov_b32_e32 v4, v27741; NOOPT-NEXT:    v_mov_b32_e32 v5, v26742; NOOPT-NEXT:    v_mov_b32_e32 v6, v25743; NOOPT-NEXT:    v_mov_b32_e32 v7, v24744; NOOPT-NEXT:    v_mov_b32_e32 v8, v23745; NOOPT-NEXT:    v_mov_b32_e32 v9, v22746; NOOPT-NEXT:    v_mov_b32_e32 v10, v21747; NOOPT-NEXT:    v_mov_b32_e32 v11, v20748; NOOPT-NEXT:    v_mov_b32_e32 v12, v19749; NOOPT-NEXT:    v_mov_b32_e32 v13, v18750; NOOPT-NEXT:    v_mov_b32_e32 v14, v17751; NOOPT-NEXT:    v_mov_b32_e32 v15, v16752; NOOPT-NEXT:    s_mov_b32 m0, s4753; NOOPT-NEXT:    v_movrels_b32_e32 v0, v0754; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 0755; NOOPT-NEXT:    s_endpgm756;757; SI-MOVREL-LABEL: extract_wo_offset:758; SI-MOVREL:       ; %bb.0: ; %entry759; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x9760; SI-MOVREL-NEXT:    s_load_dword s4, s[4:5], 0xb761; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.0762; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf000763; SI-MOVREL-NEXT:    s_mov_b32 s2, -1764; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.0765; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)766; SI-MOVREL-NEXT:    s_mov_b32 m0, s4767; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x40400000768; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.0769; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a00000770; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c00000771; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e00000772; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x41000000773; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x41100000774; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x41200000775; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x41300000776; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x41400000777; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x41500000778; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x41600000779; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x41700000780; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x41800000781; SI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v0782; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[0:3], 0783; SI-MOVREL-NEXT:    s_endpgm784;785; VI-MOVREL-LABEL: extract_wo_offset:786; VI-MOVREL:       ; %bb.0: ; %entry787; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24788; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0x2c789; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.0790; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.0791; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x40400000792; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.0793; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)794; VI-MOVREL-NEXT:    s_mov_b32 m0, s2795; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a00000796; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c00000797; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e00000798; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x41000000799; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x41100000800; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x41200000801; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x41300000802; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x41400000803; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x41500000804; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x41600000805; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x41700000806; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x41800000807; VI-MOVREL-NEXT:    v_movrels_b32_e32 v2, v0808; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s0809; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s1810; VI-MOVREL-NEXT:    flat_store_dword v[0:1], v2811; VI-MOVREL-NEXT:    s_endpgm812;813; VI-IDXMODE-LABEL: extract_wo_offset:814; VI-IDXMODE:       ; %bb.0: ; %entry815; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24816; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c817; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.0818; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.0819; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x40400000820; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.0821; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a00000822; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c00000823; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e00000824; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x41000000825; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x41100000826; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x41200000827; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x41300000828; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x41400000829; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x41500000830; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x41600000831; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x41700000832; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x41800000833; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)834; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)835; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, v0836; VI-IDXMODE-NEXT:    s_set_gpr_idx_off837; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s0838; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s1839; VI-IDXMODE-NEXT:    flat_store_dword v[0:1], v2840; VI-IDXMODE-NEXT:    s_endpgm841;842; GFX9-IDXMODE-LABEL: extract_wo_offset:843; GFX9-IDXMODE:       ; %bb.0: ; %entry844; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x24845; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c846; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 0847; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.0848; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.0849; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x40400000850; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.0851; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a00000852; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c00000853; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e00000854; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x41000000855; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x41100000856; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x41200000857; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x41300000858; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x41400000859; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x41500000860; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x41600000861; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x41700000862; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x41800000863; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)864; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)865; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v0866; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off867; GFX9-IDXMODE-NEXT:    global_store_dword v16, v0, s[0:1]868; GFX9-IDXMODE-NEXT:    s_endpgm869entry:870  %elt = extractelement <16 x float> <float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, float 11.0, float 12.0, float 13.0, float 14.0, float 15.0, float 16.0>, i32 %in871  store float %elt, ptr addrspace(1) %out872  ret void873}874 875define amdgpu_kernel void @extract_neg_offset_sgpr(ptr addrspace(1) %out, i32 %offset) {876; GENERIC-LABEL: extract_neg_offset_sgpr:877; GENERIC:       ; %bb.0: ; %entry878; GENERIC-NEXT:    s_load_dword s2, s[4:5], 0xb879; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x9880; GENERIC-NEXT:    s_mov_b32 s3, 0xf000881; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)882; GENERIC-NEXT:    s_addk_i32 s2, 0xfe00883; GENERIC-NEXT:    s_cmp_eq_u32 s2, 1884; GENERIC-NEXT:    s_cselect_b32 s4, 1, 0885; GENERIC-NEXT:    s_cmp_lg_u32 s2, 2886; GENERIC-NEXT:    s_cselect_b32 s4, s4, 2887; GENERIC-NEXT:    s_cmp_lg_u32 s2, 3888; GENERIC-NEXT:    s_cselect_b32 s4, s4, 3889; GENERIC-NEXT:    s_cmp_lg_u32 s2, 4890; GENERIC-NEXT:    s_cselect_b32 s4, s4, 5891; GENERIC-NEXT:    s_cmp_lg_u32 s2, 5892; GENERIC-NEXT:    s_cselect_b32 s4, s4, 6893; GENERIC-NEXT:    s_cmp_lg_u32 s2, 6894; GENERIC-NEXT:    s_cselect_b32 s4, s4, 7895; GENERIC-NEXT:    s_cmp_lg_u32 s2, 7896; GENERIC-NEXT:    s_cselect_b32 s4, s4, 8897; GENERIC-NEXT:    s_cmp_lg_u32 s2, 8898; GENERIC-NEXT:    s_cselect_b32 s4, s4, 9899; GENERIC-NEXT:    s_cmp_lg_u32 s2, 9900; GENERIC-NEXT:    s_cselect_b32 s4, s4, 10901; GENERIC-NEXT:    s_cmp_lg_u32 s2, 10902; GENERIC-NEXT:    s_cselect_b32 s4, s4, 11903; GENERIC-NEXT:    s_cmp_lg_u32 s2, 11904; GENERIC-NEXT:    s_cselect_b32 s4, s4, 12905; GENERIC-NEXT:    s_cmp_lg_u32 s2, 12906; GENERIC-NEXT:    s_cselect_b32 s4, s4, 13907; GENERIC-NEXT:    s_cmp_lg_u32 s2, 13908; GENERIC-NEXT:    s_cselect_b32 s4, s4, 14909; GENERIC-NEXT:    s_cmp_lg_u32 s2, 14910; GENERIC-NEXT:    s_cselect_b32 s4, s4, 15911; GENERIC-NEXT:    s_cmp_lg_u32 s2, 15912; GENERIC-NEXT:    s_cselect_b32 s4, s4, 16913; GENERIC-NEXT:    s_mov_b32 s2, -1914; GENERIC-NEXT:    v_mov_b32_e32 v0, s4915; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 0916; GENERIC-NEXT:    s_endpgm917;918; NOOPT-LABEL: extract_neg_offset_sgpr:919; NOOPT:       ; %bb.0: ; %entry920; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x9921; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xb922; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)923; NOOPT-NEXT:    s_mov_b32 s7, s1924; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr1925; NOOPT-NEXT:    s_mov_b32 s5, 0xf000926; NOOPT-NEXT:    s_mov_b32 s6, -1927; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr3928; NOOPT-NEXT:    s_mov_b32 s1, s7929; NOOPT-NEXT:    s_mov_b32 s2, s6930; NOOPT-NEXT:    s_mov_b32 s3, s5931; NOOPT-NEXT:    s_mov_b32 s5, 16932; NOOPT-NEXT:    s_mov_b32 s6, 15933; NOOPT-NEXT:    s_mov_b32 s7, 14934; NOOPT-NEXT:    s_mov_b32 s8, 13935; NOOPT-NEXT:    s_mov_b32 s9, 12936; NOOPT-NEXT:    s_mov_b32 s10, 11937; NOOPT-NEXT:    s_mov_b32 s11, 10938; NOOPT-NEXT:    s_mov_b32 s12, 9939; NOOPT-NEXT:    s_mov_b32 s13, 8940; NOOPT-NEXT:    s_mov_b32 s14, 7941; NOOPT-NEXT:    s_mov_b32 s15, 6942; NOOPT-NEXT:    s_mov_b32 s16, 5943; NOOPT-NEXT:    s_mov_b32 s17, 3944; NOOPT-NEXT:    s_mov_b32 s18, 2945; NOOPT-NEXT:    s_mov_b32 s19, 1946; NOOPT-NEXT:    s_mov_b32 s20, 0947; NOOPT-NEXT:    v_mov_b32_e32 v0, s20948; NOOPT-NEXT:    v_mov_b32_e32 v30, s19949; NOOPT-NEXT:    v_mov_b32_e32 v29, s18950; NOOPT-NEXT:    v_mov_b32_e32 v28, s17951; NOOPT-NEXT:    v_mov_b32_e32 v27, s16952; NOOPT-NEXT:    v_mov_b32_e32 v26, s15953; NOOPT-NEXT:    v_mov_b32_e32 v25, s14954; NOOPT-NEXT:    v_mov_b32_e32 v24, s13955; NOOPT-NEXT:    v_mov_b32_e32 v23, s12956; NOOPT-NEXT:    v_mov_b32_e32 v22, s11957; NOOPT-NEXT:    v_mov_b32_e32 v21, s10958; NOOPT-NEXT:    v_mov_b32_e32 v20, s9959; NOOPT-NEXT:    v_mov_b32_e32 v19, s8960; NOOPT-NEXT:    v_mov_b32_e32 v18, s7961; NOOPT-NEXT:    v_mov_b32_e32 v17, s6962; NOOPT-NEXT:    v_mov_b32_e32 v16, s5963; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec964; NOOPT-NEXT:    v_mov_b32_e32 v1, v30965; NOOPT-NEXT:    v_mov_b32_e32 v2, v29966; NOOPT-NEXT:    v_mov_b32_e32 v3, v28967; NOOPT-NEXT:    v_mov_b32_e32 v4, v27968; NOOPT-NEXT:    v_mov_b32_e32 v5, v26969; NOOPT-NEXT:    v_mov_b32_e32 v6, v25970; NOOPT-NEXT:    v_mov_b32_e32 v7, v24971; NOOPT-NEXT:    v_mov_b32_e32 v8, v23972; NOOPT-NEXT:    v_mov_b32_e32 v9, v22973; NOOPT-NEXT:    v_mov_b32_e32 v10, v21974; NOOPT-NEXT:    v_mov_b32_e32 v11, v20975; NOOPT-NEXT:    v_mov_b32_e32 v12, v19976; NOOPT-NEXT:    v_mov_b32_e32 v13, v18977; NOOPT-NEXT:    v_mov_b32_e32 v14, v17978; NOOPT-NEXT:    v_mov_b32_e32 v15, v16979; NOOPT-NEXT:    s_add_i32 m0, s4, 0xfffffe00980; NOOPT-NEXT:    v_movrels_b32_e32 v0, v0981; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 0982; NOOPT-NEXT:    s_endpgm983;984; SI-MOVREL-LABEL: extract_neg_offset_sgpr:985; SI-MOVREL:       ; %bb.0: ; %entry986; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x9987; SI-MOVREL-NEXT:    s_load_dword s4, s[4:5], 0xb988; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, 0989; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf000990; SI-MOVREL-NEXT:    s_mov_b32 s2, -1991; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, 1992; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)993; SI-MOVREL-NEXT:    s_add_i32 m0, s4, 0xfffffe00994; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 2995; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, 3996; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, 5997; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, 6998; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, 7999; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, 81000; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, 91001; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, 101002; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, 111003; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, 121004; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, 131005; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, 141006; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, 151007; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, 161008; SI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v01009; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[0:3], 01010; SI-MOVREL-NEXT:    s_endpgm1011;1012; VI-MOVREL-LABEL: extract_neg_offset_sgpr:1013; VI-MOVREL:       ; %bb.0: ; %entry1014; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241015; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0x2c1016; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, 01017; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, 11018; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, 21019; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, 31020; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)1021; VI-MOVREL-NEXT:    s_add_i32 m0, s2, 0xfffffe001022; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, 51023; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, 61024; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, 71025; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, 81026; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, 91027; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, 101028; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, 111029; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, 121030; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, 131031; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, 141032; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, 151033; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, 161034; VI-MOVREL-NEXT:    v_movrels_b32_e32 v2, v01035; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s01036; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s11037; VI-MOVREL-NEXT:    flat_store_dword v[0:1], v21038; VI-MOVREL-NEXT:    s_endpgm1039;1040; VI-IDXMODE-LABEL: extract_neg_offset_sgpr:1041; VI-IDXMODE:       ; %bb.0: ; %entry1042; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241043; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c1044; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 01045; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, 11046; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, 21047; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, 31048; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)1049; VI-IDXMODE-NEXT:    s_addk_i32 s2, 0xfe001050; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, 51051; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, 61052; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, 71053; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, 81054; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, 91055; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, 101056; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, 111057; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, 121058; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, 131059; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, 141060; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, 151061; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, 161062; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)1063; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, v01064; VI-IDXMODE-NEXT:    s_set_gpr_idx_off1065; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s01066; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s11067; VI-IDXMODE-NEXT:    flat_store_dword v[0:1], v21068; VI-IDXMODE-NEXT:    s_endpgm1069;1070; GFX9-IDXMODE-LABEL: extract_neg_offset_sgpr:1071; GFX9-IDXMODE:       ; %bb.0: ; %entry1072; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241073; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c1074; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 01075; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 11076; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, 21077; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, 31078; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)1079; GFX9-IDXMODE-NEXT:    s_addk_i32 s2, 0xfe001080; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, 51081; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, 61082; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, 71083; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, 81084; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, 91085; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, 101086; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, 111087; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, 121088; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, 131089; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, 141090; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, 151091; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, 161092; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)1093; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, v01094; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off1095; GFX9-IDXMODE-NEXT:    global_store_dword v0, v1, s[0:1]1096; GFX9-IDXMODE-NEXT:    s_endpgm1097entry:1098  %index = add i32 %offset, -5121099  %value = extractelement <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16>, i32 %index1100  store i32 %value, ptr addrspace(1) %out1101  ret void1102}1103 1104define amdgpu_kernel void @extract_neg_offset_sgpr_loaded(ptr addrspace(1) %out, <16 x i32> %vec0, <16 x i32> %vec1, i32 %offset) {1105; GENERIC-LABEL: extract_neg_offset_sgpr_loaded:1106; GENERIC:       ; %bb.0: ; %entry1107; GENERIC-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x191108; GENERIC-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x291109; GENERIC-NEXT:    s_load_dword s2, s[4:5], 0x391110; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)1111; GENERIC-NEXT:    s_or_b32 s6, s23, s511112; GENERIC-NEXT:    s_or_b32 s7, s22, s501113; GENERIC-NEXT:    s_or_b32 s21, s21, s491114; GENERIC-NEXT:    s_or_b32 s20, s20, s481115; GENERIC-NEXT:    s_or_b32 s19, s19, s471116; GENERIC-NEXT:    s_or_b32 s18, s18, s461117; GENERIC-NEXT:    s_or_b32 s17, s17, s451118; GENERIC-NEXT:    s_or_b32 s16, s16, s441119; GENERIC-NEXT:    s_or_b32 s15, s15, s431120; GENERIC-NEXT:    s_or_b32 s14, s14, s421121; GENERIC-NEXT:    s_or_b32 s13, s13, s411122; GENERIC-NEXT:    s_or_b32 s12, s12, s401123; GENERIC-NEXT:    s_or_b32 s11, s11, s391124; GENERIC-NEXT:    s_or_b32 s10, s10, s381125; GENERIC-NEXT:    s_or_b32 s8, s8, s361126; GENERIC-NEXT:    s_or_b32 s9, s9, s371127; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x91128; GENERIC-NEXT:    s_mov_b32 s3, 0xf0001129; GENERIC-NEXT:    s_addk_i32 s2, 0xfe001130; GENERIC-NEXT:    s_cmp_eq_u32 s2, 11131; GENERIC-NEXT:    s_cselect_b32 s4, s9, s81132; GENERIC-NEXT:    s_cmp_eq_u32 s2, 21133; GENERIC-NEXT:    s_cselect_b32 s4, s10, s41134; GENERIC-NEXT:    s_cmp_eq_u32 s2, 31135; GENERIC-NEXT:    s_cselect_b32 s4, s11, s41136; GENERIC-NEXT:    s_cmp_eq_u32 s2, 41137; GENERIC-NEXT:    s_cselect_b32 s4, s12, s41138; GENERIC-NEXT:    s_cmp_eq_u32 s2, 51139; GENERIC-NEXT:    s_cselect_b32 s4, s13, s41140; GENERIC-NEXT:    s_cmp_eq_u32 s2, 61141; GENERIC-NEXT:    s_cselect_b32 s4, s14, s41142; GENERIC-NEXT:    s_cmp_eq_u32 s2, 71143; GENERIC-NEXT:    s_cselect_b32 s4, s15, s41144; GENERIC-NEXT:    s_cmp_eq_u32 s2, 81145; GENERIC-NEXT:    s_cselect_b32 s4, s16, s41146; GENERIC-NEXT:    s_cmp_eq_u32 s2, 91147; GENERIC-NEXT:    s_cselect_b32 s4, s17, s41148; GENERIC-NEXT:    s_cmp_eq_u32 s2, 101149; GENERIC-NEXT:    s_cselect_b32 s4, s18, s41150; GENERIC-NEXT:    s_cmp_eq_u32 s2, 111151; GENERIC-NEXT:    s_cselect_b32 s4, s19, s41152; GENERIC-NEXT:    s_cmp_eq_u32 s2, 121153; GENERIC-NEXT:    s_cselect_b32 s4, s20, s41154; GENERIC-NEXT:    s_cmp_eq_u32 s2, 131155; GENERIC-NEXT:    s_cselect_b32 s4, s21, s41156; GENERIC-NEXT:    s_cmp_eq_u32 s2, 141157; GENERIC-NEXT:    s_cselect_b32 s4, s7, s41158; GENERIC-NEXT:    s_cmp_eq_u32 s2, 151159; GENERIC-NEXT:    s_cselect_b32 s4, s6, s41160; GENERIC-NEXT:    s_mov_b32 s2, -11161; GENERIC-NEXT:    v_mov_b32_e32 v0, s41162; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)1163; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 01164; GENERIC-NEXT:    s_endpgm1165;1166; NOOPT-LABEL: extract_neg_offset_sgpr_loaded:1167; NOOPT:       ; %bb.0: ; %entry1168; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x91169; NOOPT-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x191170; NOOPT-NEXT:    s_load_dwordx16 s[52:67], s[4:5], 0x291171; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0x391172; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)1173; NOOPT-NEXT:    s_mov_b32 s7, s11174; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr11175; NOOPT-NEXT:    s_mov_b32 s5, 0xf0001176; NOOPT-NEXT:    s_mov_b32 s6, -11177; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr31178; NOOPT-NEXT:    s_mov_b32 s1, s71179; NOOPT-NEXT:    s_mov_b32 s2, s61180; NOOPT-NEXT:    s_mov_b32 s3, s51181; NOOPT-NEXT:    s_mov_b32 s6, s671182; NOOPT-NEXT:    s_mov_b32 s5, s511183; NOOPT-NEXT:    s_or_b32 s5, s5, s61184; NOOPT-NEXT:    s_mov_b32 s7, s661185; NOOPT-NEXT:    s_mov_b32 s6, s501186; NOOPT-NEXT:    s_or_b32 s6, s6, s71187; NOOPT-NEXT:    s_mov_b32 s8, s651188; NOOPT-NEXT:    s_mov_b32 s7, s491189; NOOPT-NEXT:    s_or_b32 s7, s7, s81190; NOOPT-NEXT:    s_mov_b32 s9, s641191; NOOPT-NEXT:    s_mov_b32 s8, s481192; NOOPT-NEXT:    s_or_b32 s8, s8, s91193; NOOPT-NEXT:    s_mov_b32 s10, s631194; NOOPT-NEXT:    s_mov_b32 s9, s471195; NOOPT-NEXT:    s_or_b32 s9, s9, s101196; NOOPT-NEXT:    s_mov_b32 s11, s621197; NOOPT-NEXT:    s_mov_b32 s10, s461198; NOOPT-NEXT:    s_or_b32 s10, s10, s111199; NOOPT-NEXT:    s_mov_b32 s12, s611200; NOOPT-NEXT:    s_mov_b32 s11, s451201; NOOPT-NEXT:    s_or_b32 s11, s11, s121202; NOOPT-NEXT:    s_mov_b32 s13, s601203; NOOPT-NEXT:    s_mov_b32 s12, s441204; NOOPT-NEXT:    s_or_b32 s12, s12, s131205; NOOPT-NEXT:    s_mov_b32 s14, s591206; NOOPT-NEXT:    s_mov_b32 s13, s431207; NOOPT-NEXT:    s_or_b32 s13, s13, s141208; NOOPT-NEXT:    s_mov_b32 s15, s581209; NOOPT-NEXT:    s_mov_b32 s14, s421210; NOOPT-NEXT:    s_or_b32 s14, s14, s151211; NOOPT-NEXT:    s_mov_b32 s16, s571212; NOOPT-NEXT:    s_mov_b32 s15, s411213; NOOPT-NEXT:    s_or_b32 s15, s15, s161214; NOOPT-NEXT:    s_mov_b32 s17, s561215; NOOPT-NEXT:    s_mov_b32 s16, s401216; NOOPT-NEXT:    s_or_b32 s16, s16, s171217; NOOPT-NEXT:    s_mov_b32 s18, s551218; NOOPT-NEXT:    s_mov_b32 s17, s391219; NOOPT-NEXT:    s_or_b32 s17, s17, s181220; NOOPT-NEXT:    s_mov_b32 s19, s541221; NOOPT-NEXT:    s_mov_b32 s18, s381222; NOOPT-NEXT:    s_or_b32 s18, s18, s191223; NOOPT-NEXT:    s_mov_b32 s20, s531224; NOOPT-NEXT:    s_mov_b32 s19, s371225; NOOPT-NEXT:    s_or_b32 s19, s19, s201226; NOOPT-NEXT:    s_mov_b32 s21, s521227; NOOPT-NEXT:    s_mov_b32 s20, s361228; NOOPT-NEXT:    s_or_b32 s20, s20, s211229; NOOPT-NEXT:    v_mov_b32_e32 v0, s201230; NOOPT-NEXT:    v_mov_b32_e32 v30, s191231; NOOPT-NEXT:    v_mov_b32_e32 v29, s181232; NOOPT-NEXT:    v_mov_b32_e32 v28, s171233; NOOPT-NEXT:    v_mov_b32_e32 v27, s161234; NOOPT-NEXT:    v_mov_b32_e32 v26, s151235; NOOPT-NEXT:    v_mov_b32_e32 v25, s141236; NOOPT-NEXT:    v_mov_b32_e32 v24, s131237; NOOPT-NEXT:    v_mov_b32_e32 v23, s121238; NOOPT-NEXT:    v_mov_b32_e32 v22, s111239; NOOPT-NEXT:    v_mov_b32_e32 v21, s101240; NOOPT-NEXT:    v_mov_b32_e32 v20, s91241; NOOPT-NEXT:    v_mov_b32_e32 v19, s81242; NOOPT-NEXT:    v_mov_b32_e32 v18, s71243; NOOPT-NEXT:    v_mov_b32_e32 v17, s61244; NOOPT-NEXT:    v_mov_b32_e32 v16, s51245; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec1246; NOOPT-NEXT:    v_mov_b32_e32 v1, v301247; NOOPT-NEXT:    v_mov_b32_e32 v2, v291248; NOOPT-NEXT:    v_mov_b32_e32 v3, v281249; NOOPT-NEXT:    v_mov_b32_e32 v4, v271250; NOOPT-NEXT:    v_mov_b32_e32 v5, v261251; NOOPT-NEXT:    v_mov_b32_e32 v6, v251252; NOOPT-NEXT:    v_mov_b32_e32 v7, v241253; NOOPT-NEXT:    v_mov_b32_e32 v8, v231254; NOOPT-NEXT:    v_mov_b32_e32 v9, v221255; NOOPT-NEXT:    v_mov_b32_e32 v10, v211256; NOOPT-NEXT:    v_mov_b32_e32 v11, v201257; NOOPT-NEXT:    v_mov_b32_e32 v12, v191258; NOOPT-NEXT:    v_mov_b32_e32 v13, v181259; NOOPT-NEXT:    v_mov_b32_e32 v14, v171260; NOOPT-NEXT:    v_mov_b32_e32 v15, v161261; NOOPT-NEXT:    s_add_i32 m0, s4, 0xfffffe001262; NOOPT-NEXT:    v_movrels_b32_e32 v0, v01263; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 01264; NOOPT-NEXT:    s_endpgm1265;1266; SI-MOVREL-LABEL: extract_neg_offset_sgpr_loaded:1267; SI-MOVREL:       ; %bb.0: ; %entry1268; SI-MOVREL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x191269; SI-MOVREL-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0x291270; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x91271; SI-MOVREL-NEXT:    s_load_dword s4, s[4:5], 0x391272; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0001273; SI-MOVREL-NEXT:    s_mov_b32 s2, -11274; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)1275; SI-MOVREL-NEXT:    s_or_b32 s8, s8, s361276; SI-MOVREL-NEXT:    s_or_b32 s6, s23, s511277; SI-MOVREL-NEXT:    s_or_b32 s7, s22, s501278; SI-MOVREL-NEXT:    s_or_b32 s21, s21, s491279; SI-MOVREL-NEXT:    s_or_b32 s20, s20, s481280; SI-MOVREL-NEXT:    s_or_b32 s19, s19, s471281; SI-MOVREL-NEXT:    s_or_b32 s18, s18, s461282; SI-MOVREL-NEXT:    s_or_b32 s17, s17, s451283; SI-MOVREL-NEXT:    s_or_b32 s16, s16, s441284; SI-MOVREL-NEXT:    s_or_b32 s15, s15, s431285; SI-MOVREL-NEXT:    s_or_b32 s14, s14, s421286; SI-MOVREL-NEXT:    s_or_b32 s13, s13, s411287; SI-MOVREL-NEXT:    s_or_b32 s12, s12, s401288; SI-MOVREL-NEXT:    s_or_b32 s11, s11, s391289; SI-MOVREL-NEXT:    s_or_b32 s10, s10, s381290; SI-MOVREL-NEXT:    s_or_b32 s9, s9, s371291; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, s81292; SI-MOVREL-NEXT:    s_add_i32 m0, s4, 0xfffffe001293; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, s91294; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, s101295; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, s111296; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, s121297; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, s131298; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, s141299; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, s151300; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, s161301; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, s171302; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, s181303; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, s191304; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, s201305; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, s211306; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, s71307; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, s61308; SI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v01309; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[0:3], 01310; SI-MOVREL-NEXT:    s_endpgm1311;1312; VI-MOVREL-LABEL: extract_neg_offset_sgpr_loaded:1313; VI-MOVREL:       ; %bb.0: ; %entry1314; VI-MOVREL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x641315; VI-MOVREL-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0xa41316; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241317; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0xe41318; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)1319; VI-MOVREL-NEXT:    s_or_b32 s10, s10, s381320; VI-MOVREL-NEXT:    s_or_b32 s9, s9, s371321; VI-MOVREL-NEXT:    s_or_b32 s8, s8, s361322; VI-MOVREL-NEXT:    s_or_b32 s3, s23, s511323; VI-MOVREL-NEXT:    s_or_b32 s4, s22, s501324; VI-MOVREL-NEXT:    s_or_b32 s5, s21, s491325; VI-MOVREL-NEXT:    s_or_b32 s6, s20, s481326; VI-MOVREL-NEXT:    s_or_b32 s7, s19, s471327; VI-MOVREL-NEXT:    s_or_b32 s18, s18, s461328; VI-MOVREL-NEXT:    s_or_b32 s17, s17, s451329; VI-MOVREL-NEXT:    s_or_b32 s16, s16, s441330; VI-MOVREL-NEXT:    s_or_b32 s15, s15, s431331; VI-MOVREL-NEXT:    s_or_b32 s14, s14, s421332; VI-MOVREL-NEXT:    s_or_b32 s13, s13, s411333; VI-MOVREL-NEXT:    s_or_b32 s12, s12, s401334; VI-MOVREL-NEXT:    s_or_b32 s11, s11, s391335; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s81336; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s91337; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, s101338; VI-MOVREL-NEXT:    s_add_i32 m0, s2, 0xfffffe001339; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, s111340; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s121341; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s131342; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, s141343; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, s151344; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s161345; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s171346; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, s181347; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, s71348; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s61349; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s51350; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, s41351; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, s31352; VI-MOVREL-NEXT:    v_movrels_b32_e32 v2, v01353; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s01354; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s11355; VI-MOVREL-NEXT:    flat_store_dword v[0:1], v21356; VI-MOVREL-NEXT:    s_endpgm1357;1358; VI-IDXMODE-LABEL: extract_neg_offset_sgpr_loaded:1359; VI-IDXMODE:       ; %bb.0: ; %entry1360; VI-IDXMODE-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x641361; VI-IDXMODE-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0xa41362; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241363; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0xe41364; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)1365; VI-IDXMODE-NEXT:    s_or_b32 s10, s10, s381366; VI-IDXMODE-NEXT:    s_or_b32 s9, s9, s371367; VI-IDXMODE-NEXT:    s_or_b32 s8, s8, s361368; VI-IDXMODE-NEXT:    s_or_b32 s3, s23, s511369; VI-IDXMODE-NEXT:    s_or_b32 s4, s22, s501370; VI-IDXMODE-NEXT:    s_or_b32 s5, s21, s491371; VI-IDXMODE-NEXT:    s_or_b32 s6, s20, s481372; VI-IDXMODE-NEXT:    s_or_b32 s7, s19, s471373; VI-IDXMODE-NEXT:    s_or_b32 s18, s18, s461374; VI-IDXMODE-NEXT:    s_or_b32 s17, s17, s451375; VI-IDXMODE-NEXT:    s_or_b32 s16, s16, s441376; VI-IDXMODE-NEXT:    s_or_b32 s15, s15, s431377; VI-IDXMODE-NEXT:    s_or_b32 s14, s14, s421378; VI-IDXMODE-NEXT:    s_or_b32 s13, s13, s411379; VI-IDXMODE-NEXT:    s_or_b32 s12, s12, s401380; VI-IDXMODE-NEXT:    s_or_b32 s11, s11, s391381; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s81382; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s91383; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, s101384; VI-IDXMODE-NEXT:    s_addk_i32 s2, 0xfe001385; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, s111386; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s121387; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s131388; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, s141389; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, s151390; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s161391; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s171392; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, s181393; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, s71394; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s61395; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s51396; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, s41397; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, s31398; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)1399; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, v01400; VI-IDXMODE-NEXT:    s_set_gpr_idx_off1401; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s01402; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s11403; VI-IDXMODE-NEXT:    flat_store_dword v[0:1], v21404; VI-IDXMODE-NEXT:    s_endpgm1405;1406; GFX9-IDXMODE-LABEL: extract_neg_offset_sgpr_loaded:1407; GFX9-IDXMODE:       ; %bb.0: ; %entry1408; GFX9-IDXMODE-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x641409; GFX9-IDXMODE-NEXT:    s_load_dwordx16 s[36:51], s[4:5], 0xa41410; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241411; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0xe41412; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 01413; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)1414; GFX9-IDXMODE-NEXT:    s_or_b32 s8, s8, s361415; GFX9-IDXMODE-NEXT:    s_or_b32 s3, s23, s511416; GFX9-IDXMODE-NEXT:    s_or_b32 s4, s22, s501417; GFX9-IDXMODE-NEXT:    s_or_b32 s5, s21, s491418; GFX9-IDXMODE-NEXT:    s_or_b32 s6, s20, s481419; GFX9-IDXMODE-NEXT:    s_or_b32 s7, s19, s471420; GFX9-IDXMODE-NEXT:    s_or_b32 s18, s18, s461421; GFX9-IDXMODE-NEXT:    s_or_b32 s17, s17, s451422; GFX9-IDXMODE-NEXT:    s_or_b32 s16, s16, s441423; GFX9-IDXMODE-NEXT:    s_or_b32 s15, s15, s431424; GFX9-IDXMODE-NEXT:    s_or_b32 s14, s14, s421425; GFX9-IDXMODE-NEXT:    s_or_b32 s13, s13, s411426; GFX9-IDXMODE-NEXT:    s_or_b32 s12, s12, s401427; GFX9-IDXMODE-NEXT:    s_or_b32 s11, s11, s391428; GFX9-IDXMODE-NEXT:    s_or_b32 s10, s10, s381429; GFX9-IDXMODE-NEXT:    s_or_b32 s9, s9, s371430; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, s81431; GFX9-IDXMODE-NEXT:    s_addk_i32 s2, 0xfe001432; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, s91433; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, s101434; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, s111435; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, s121436; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, s131437; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, s141438; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, s151439; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, s161440; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, s171441; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, s181442; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, s71443; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, s61444; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, s51445; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, s41446; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, s31447; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)1448; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v01449; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off1450; GFX9-IDXMODE-NEXT:    global_store_dword v16, v0, s[0:1]1451; GFX9-IDXMODE-NEXT:    s_endpgm1452entry:1453  %index = add i32 %offset, -5121454  %or = or <16 x i32> %vec0, %vec11455  %value = extractelement <16 x i32> %or, i32 %index1456  store i32 %value, ptr addrspace(1) %out1457  ret void1458}1459 1460define amdgpu_kernel void @extract_neg_offset_vgpr(ptr addrspace(1) %out) {1461; GENERIC-LABEL: extract_neg_offset_vgpr:1462; GENERIC:       ; %bb.0: ; %entry1463; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x91464; GENERIC-NEXT:    s_mov_b32 s3, 0xf0001465; GENERIC-NEXT:    s_mov_b32 s2, -11466; GENERIC-NEXT:    v_add_i32_e32 v0, vcc, 0xfffffe00, v01467; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v01468; GENERIC-NEXT:    v_cndmask_b32_e64 v1, 0, 1, vcc1469; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 2, v01470; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 2, v1, vcc1471; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 3, v01472; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 3, v1, vcc1473; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 4, v01474; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 5, v1, vcc1475; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 5, v01476; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 6, v1, vcc1477; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 6, v01478; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 7, v1, vcc1479; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 7, v01480; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 8, v1, vcc1481; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 8, v01482; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 9, v1, vcc1483; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 9, v01484; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 10, v1, vcc1485; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 10, v01486; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 11, v1, vcc1487; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 11, v01488; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 12, v1, vcc1489; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 12, v01490; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 13, v1, vcc1491; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 13, v01492; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 14, v1, vcc1493; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 14, v01494; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 15, v1, vcc1495; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 15, v01496; GENERIC-NEXT:    v_cndmask_b32_e32 v0, 16, v1, vcc1497; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)1498; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 01499; GENERIC-NEXT:    s_endpgm1500;1501; NOOPT-LABEL: extract_neg_offset_vgpr:1502; NOOPT:       ; %bb.0: ; %entry1503; NOOPT-NEXT:    s_mov_b32 s20, SCRATCH_RSRC_DWORD01504; NOOPT-NEXT:    s_mov_b32 s21, SCRATCH_RSRC_DWORD11505; NOOPT-NEXT:    s_mov_b32 s22, -11506; NOOPT-NEXT:    s_mov_b32 s23, 0xe8f0001507; NOOPT-NEXT:    s_add_u32 s20, s20, s111508; NOOPT-NEXT:    s_addc_u32 s21, s21, 01509; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:68 ; 4-byte Folded Spill1510; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x91511; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)1512; NOOPT-NEXT:    s_mov_b32 s6, s11513; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr11514; NOOPT-NEXT:    s_mov_b32 s4, 0xf0001515; NOOPT-NEXT:    s_mov_b32 s5, -11516; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr31517; NOOPT-NEXT:    s_mov_b32 s1, s61518; NOOPT-NEXT:    s_mov_b32 s2, s51519; NOOPT-NEXT:    s_mov_b32 s3, s41520; NOOPT-NEXT:    ; implicit-def: $vgpr31 : SGPR spill to VGPR lane1521; NOOPT-NEXT:    v_writelane_b32 v31, s0, 01522; NOOPT-NEXT:    v_writelane_b32 v31, s1, 11523; NOOPT-NEXT:    v_writelane_b32 v31, s2, 21524; NOOPT-NEXT:    v_writelane_b32 v31, s3, 31525; NOOPT-NEXT:    s_mov_b32 s0, 161526; NOOPT-NEXT:    s_mov_b32 s1, 151527; NOOPT-NEXT:    s_mov_b32 s2, 141528; NOOPT-NEXT:    s_mov_b32 s3, 131529; NOOPT-NEXT:    s_mov_b32 s4, 121530; NOOPT-NEXT:    s_mov_b32 s5, 111531; NOOPT-NEXT:    s_mov_b32 s6, 101532; NOOPT-NEXT:    s_mov_b32 s7, 91533; NOOPT-NEXT:    s_mov_b32 s8, 81534; NOOPT-NEXT:    s_mov_b32 s9, 71535; NOOPT-NEXT:    s_mov_b32 s10, 61536; NOOPT-NEXT:    s_mov_b32 s11, 51537; NOOPT-NEXT:    s_mov_b32 s12, 31538; NOOPT-NEXT:    s_mov_b32 s13, 21539; NOOPT-NEXT:    s_mov_b32 s14, 11540; NOOPT-NEXT:    s_mov_b32 s15, 01541; NOOPT-NEXT:    s_waitcnt expcnt(0)1542; NOOPT-NEXT:    v_mov_b32_e32 v0, s151543; NOOPT-NEXT:    v_mov_b32_e32 v30, s141544; NOOPT-NEXT:    v_mov_b32_e32 v29, s131545; NOOPT-NEXT:    v_mov_b32_e32 v28, s121546; NOOPT-NEXT:    v_mov_b32_e32 v27, s111547; NOOPT-NEXT:    v_mov_b32_e32 v26, s101548; NOOPT-NEXT:    v_mov_b32_e32 v25, s91549; NOOPT-NEXT:    v_mov_b32_e32 v24, s81550; NOOPT-NEXT:    v_mov_b32_e32 v23, s71551; NOOPT-NEXT:    v_mov_b32_e32 v22, s61552; NOOPT-NEXT:    v_mov_b32_e32 v21, s51553; NOOPT-NEXT:    v_mov_b32_e32 v20, s41554; NOOPT-NEXT:    v_mov_b32_e32 v19, s31555; NOOPT-NEXT:    v_mov_b32_e32 v18, s21556; NOOPT-NEXT:    v_mov_b32_e32 v17, s11557; NOOPT-NEXT:    v_mov_b32_e32 v16, s01558; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec1559; NOOPT-NEXT:    v_mov_b32_e32 v1, v301560; NOOPT-NEXT:    v_mov_b32_e32 v2, v291561; NOOPT-NEXT:    v_mov_b32_e32 v3, v281562; NOOPT-NEXT:    v_mov_b32_e32 v4, v271563; NOOPT-NEXT:    v_mov_b32_e32 v5, v261564; NOOPT-NEXT:    v_mov_b32_e32 v6, v251565; NOOPT-NEXT:    v_mov_b32_e32 v7, v241566; NOOPT-NEXT:    v_mov_b32_e32 v8, v231567; NOOPT-NEXT:    v_mov_b32_e32 v9, v221568; NOOPT-NEXT:    v_mov_b32_e32 v10, v211569; NOOPT-NEXT:    v_mov_b32_e32 v11, v201570; NOOPT-NEXT:    v_mov_b32_e32 v12, v191571; NOOPT-NEXT:    v_mov_b32_e32 v13, v181572; NOOPT-NEXT:    v_mov_b32_e32 v14, v171573; NOOPT-NEXT:    v_mov_b32_e32 v15, v161574; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:4 ; 4-byte Folded Spill1575; NOOPT-NEXT:    buffer_store_dword v1, off, s[20:23], 0 offset:8 ; 4-byte Folded Spill1576; NOOPT-NEXT:    buffer_store_dword v2, off, s[20:23], 0 offset:12 ; 4-byte Folded Spill1577; NOOPT-NEXT:    buffer_store_dword v3, off, s[20:23], 0 offset:16 ; 4-byte Folded Spill1578; NOOPT-NEXT:    buffer_store_dword v4, off, s[20:23], 0 offset:20 ; 4-byte Folded Spill1579; NOOPT-NEXT:    buffer_store_dword v5, off, s[20:23], 0 offset:24 ; 4-byte Folded Spill1580; NOOPT-NEXT:    buffer_store_dword v6, off, s[20:23], 0 offset:28 ; 4-byte Folded Spill1581; NOOPT-NEXT:    buffer_store_dword v7, off, s[20:23], 0 offset:32 ; 4-byte Folded Spill1582; NOOPT-NEXT:    buffer_store_dword v8, off, s[20:23], 0 offset:36 ; 4-byte Folded Spill1583; NOOPT-NEXT:    buffer_store_dword v9, off, s[20:23], 0 offset:40 ; 4-byte Folded Spill1584; NOOPT-NEXT:    buffer_store_dword v10, off, s[20:23], 0 offset:44 ; 4-byte Folded Spill1585; NOOPT-NEXT:    buffer_store_dword v11, off, s[20:23], 0 offset:48 ; 4-byte Folded Spill1586; NOOPT-NEXT:    buffer_store_dword v12, off, s[20:23], 0 offset:52 ; 4-byte Folded Spill1587; NOOPT-NEXT:    buffer_store_dword v13, off, s[20:23], 0 offset:56 ; 4-byte Folded Spill1588; NOOPT-NEXT:    buffer_store_dword v14, off, s[20:23], 0 offset:60 ; 4-byte Folded Spill1589; NOOPT-NEXT:    buffer_store_dword v15, off, s[20:23], 0 offset:64 ; 4-byte Folded Spill1590; NOOPT-NEXT:    s_mov_b64 s[0:1], exec1591; NOOPT-NEXT:    v_writelane_b32 v31, s0, 41592; NOOPT-NEXT:    v_writelane_b32 v31, s1, 51593; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -11594; NOOPT-NEXT:    buffer_store_dword v31, off, s[20:23], 0 ; 4-byte Folded Spill1595; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]1596; NOOPT-NEXT:    ; implicit-def: $vgpr01597; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr11598; NOOPT-NEXT:  .LBB5_1: ; =>This Inner Loop Header: Depth=11599; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -11600; NOOPT-NEXT:    s_waitcnt expcnt(0)1601; NOOPT-NEXT:    buffer_load_dword v31, off, s[20:23], 0 ; 4-byte Folded Reload1602; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]1603; NOOPT-NEXT:    s_waitcnt vmcnt(0)1604; NOOPT-NEXT:    v_readlane_b32 s0, v31, 61605; NOOPT-NEXT:    v_readlane_b32 s1, v31, 71606; NOOPT-NEXT:    buffer_load_dword v17, off, s[20:23], 0 offset:72 ; 4-byte Folded Reload1607; NOOPT-NEXT:    buffer_load_dword v0, off, s[20:23], 0 offset:4 ; 4-byte Folded Reload1608; NOOPT-NEXT:    buffer_load_dword v1, off, s[20:23], 0 offset:8 ; 4-byte Folded Reload1609; NOOPT-NEXT:    buffer_load_dword v2, off, s[20:23], 0 offset:12 ; 4-byte Folded Reload1610; NOOPT-NEXT:    buffer_load_dword v3, off, s[20:23], 0 offset:16 ; 4-byte Folded Reload1611; NOOPT-NEXT:    buffer_load_dword v4, off, s[20:23], 0 offset:20 ; 4-byte Folded Reload1612; NOOPT-NEXT:    buffer_load_dword v5, off, s[20:23], 0 offset:24 ; 4-byte Folded Reload1613; NOOPT-NEXT:    buffer_load_dword v6, off, s[20:23], 0 offset:28 ; 4-byte Folded Reload1614; NOOPT-NEXT:    buffer_load_dword v7, off, s[20:23], 0 offset:32 ; 4-byte Folded Reload1615; NOOPT-NEXT:    buffer_load_dword v8, off, s[20:23], 0 offset:36 ; 4-byte Folded Reload1616; NOOPT-NEXT:    buffer_load_dword v9, off, s[20:23], 0 offset:40 ; 4-byte Folded Reload1617; NOOPT-NEXT:    buffer_load_dword v10, off, s[20:23], 0 offset:44 ; 4-byte Folded Reload1618; NOOPT-NEXT:    buffer_load_dword v11, off, s[20:23], 0 offset:48 ; 4-byte Folded Reload1619; NOOPT-NEXT:    buffer_load_dword v12, off, s[20:23], 0 offset:52 ; 4-byte Folded Reload1620; NOOPT-NEXT:    buffer_load_dword v13, off, s[20:23], 0 offset:56 ; 4-byte Folded Reload1621; NOOPT-NEXT:    buffer_load_dword v14, off, s[20:23], 0 offset:60 ; 4-byte Folded Reload1622; NOOPT-NEXT:    buffer_load_dword v15, off, s[20:23], 0 offset:64 ; 4-byte Folded Reload1623; NOOPT-NEXT:    buffer_load_dword v16, off, s[20:23], 0 offset:68 ; 4-byte Folded Reload1624; NOOPT-NEXT:    s_waitcnt vmcnt(0)1625; NOOPT-NEXT:    v_readfirstlane_b32 s2, v161626; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[0:1], s2, v161627; NOOPT-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]1628; NOOPT-NEXT:    s_add_i32 m0, s2, 0xfffffe001629; NOOPT-NEXT:    v_movrels_b32_e32 v0, v01630; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:76 ; 4-byte Folded Spill1631; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:72 ; 4-byte Folded Spill1632; NOOPT-NEXT:    s_mov_b64 s[2:3], s[0:1]1633; NOOPT-NEXT:    v_writelane_b32 v31, s2, 61634; NOOPT-NEXT:    v_writelane_b32 v31, s3, 71635; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -11636; NOOPT-NEXT:    buffer_store_dword v31, off, s[20:23], 0 ; 4-byte Folded Spill1637; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]1638; NOOPT-NEXT:    s_xor_b64 exec, exec, s[0:1]1639; NOOPT-NEXT:    s_cbranch_execnz .LBB5_11640; NOOPT-NEXT:  ; %bb.2:1641; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -11642; NOOPT-NEXT:    s_waitcnt expcnt(0)1643; NOOPT-NEXT:    buffer_load_dword v31, off, s[20:23], 0 ; 4-byte Folded Reload1644; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]1645; NOOPT-NEXT:    s_waitcnt vmcnt(0)1646; NOOPT-NEXT:    v_readlane_b32 s0, v31, 41647; NOOPT-NEXT:    v_readlane_b32 s1, v31, 51648; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]1649; NOOPT-NEXT:  ; %bb.3:1650; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -11651; NOOPT-NEXT:    buffer_load_dword v31, off, s[20:23], 0 ; 4-byte Folded Reload1652; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]1653; NOOPT-NEXT:    s_waitcnt vmcnt(0)1654; NOOPT-NEXT:    v_readlane_b32 s0, v31, 01655; NOOPT-NEXT:    v_readlane_b32 s1, v31, 11656; NOOPT-NEXT:    v_readlane_b32 s2, v31, 21657; NOOPT-NEXT:    v_readlane_b32 s3, v31, 31658; NOOPT-NEXT:    buffer_load_dword v0, off, s[20:23], 0 offset:76 ; 4-byte Folded Reload1659; NOOPT-NEXT:    s_waitcnt vmcnt(0)1660; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 01661; NOOPT-NEXT:    s_endpgm1662;1663; SI-MOVREL-LABEL: extract_neg_offset_vgpr:1664; SI-MOVREL:       ; %bb.0: ; %entry1665; SI-MOVREL-NEXT:    v_add_i32_e32 v0, vcc, 0xfffffe00, v01666; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v01667; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v1, 0, 1, vcc1668; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 2, v01669; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 2, v1, vcc1670; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 3, v01671; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 3, v1, vcc1672; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 4, v01673; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 5, v1, vcc1674; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 5, v01675; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 6, v1, vcc1676; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 6, v01677; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 7, v1, vcc1678; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 7, v01679; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 8, v1, vcc1680; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 8, v01681; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 9, v1, vcc1682; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 9, v01683; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 10, v1, vcc1684; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 10, v01685; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 11, v1, vcc1686; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 11, v01687; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x91688; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 12, v1, vcc1689; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 12, v01690; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 13, v1, vcc1691; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 13, v01692; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 14, v1, vcc1693; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 14, v01694; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 15, v1, vcc1695; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 15, v01696; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0001697; SI-MOVREL-NEXT:    s_mov_b32 s2, -11698; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v0, 16, v1, vcc1699; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)1700; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[0:3], 01701; SI-MOVREL-NEXT:    s_endpgm1702;1703; VI-LABEL: extract_neg_offset_vgpr:1704; VI:       ; %bb.0: ; %entry1705; VI-NEXT:    v_add_u32_e32 v0, vcc, 0xfffffe00, v01706; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v01707; VI-NEXT:    v_cndmask_b32_e64 v1, 0, 1, vcc1708; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 2, v01709; VI-NEXT:    v_cndmask_b32_e32 v1, 2, v1, vcc1710; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 3, v01711; VI-NEXT:    v_cndmask_b32_e32 v1, 3, v1, vcc1712; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 4, v01713; VI-NEXT:    v_cndmask_b32_e32 v1, 5, v1, vcc1714; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 5, v01715; VI-NEXT:    v_cndmask_b32_e32 v1, 6, v1, vcc1716; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 6, v01717; VI-NEXT:    v_cndmask_b32_e32 v1, 7, v1, vcc1718; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 7, v01719; VI-NEXT:    v_cndmask_b32_e32 v1, 8, v1, vcc1720; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 8, v01721; VI-NEXT:    v_cndmask_b32_e32 v1, 9, v1, vcc1722; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 9, v01723; VI-NEXT:    v_cndmask_b32_e32 v1, 10, v1, vcc1724; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 10, v01725; VI-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241726; VI-NEXT:    v_cndmask_b32_e32 v1, 11, v1, vcc1727; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 11, v01728; VI-NEXT:    v_cndmask_b32_e32 v1, 12, v1, vcc1729; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 12, v01730; VI-NEXT:    v_cndmask_b32_e32 v1, 13, v1, vcc1731; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 13, v01732; VI-NEXT:    v_cndmask_b32_e32 v1, 14, v1, vcc1733; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 14, v01734; VI-NEXT:    v_cndmask_b32_e32 v1, 15, v1, vcc1735; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 15, v01736; VI-NEXT:    v_cndmask_b32_e32 v2, 16, v1, vcc1737; VI-NEXT:    s_waitcnt lgkmcnt(0)1738; VI-NEXT:    v_mov_b32_e32 v0, s01739; VI-NEXT:    v_mov_b32_e32 v1, s11740; VI-NEXT:    flat_store_dword v[0:1], v21741; VI-NEXT:    s_endpgm1742;1743; GFX9-IDXMODE-LABEL: extract_neg_offset_vgpr:1744; GFX9-IDXMODE:       ; %bb.0: ; %entry1745; GFX9-IDXMODE-NEXT:    v_add_u32_e32 v0, 0xfffffe00, v01746; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v01747; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v2, 0, 1, vcc1748; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 2, v01749; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 2, v2, vcc1750; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 3, v01751; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 3, v2, vcc1752; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 4, v01753; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 5, v2, vcc1754; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 5, v01755; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 6, v2, vcc1756; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 6, v01757; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 7, v2, vcc1758; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 7, v01759; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 8, v2, vcc1760; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 8, v01761; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 9, v2, vcc1762; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 9, v01763; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 10, v2, vcc1764; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 10, v01765; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 11, v2, vcc1766; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 11, v01767; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x241768; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 12, v2, vcc1769; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 12, v01770; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 13, v2, vcc1771; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 13, v01772; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 14, v2, vcc1773; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 14, v01774; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 15, v2, vcc1775; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 15, v01776; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 01777; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v0, 16, v2, vcc1778; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)1779; GFX9-IDXMODE-NEXT:    global_store_dword v1, v0, s[0:1]1780; GFX9-IDXMODE-NEXT:    s_endpgm1781entry:1782  %id = call i32 @llvm.amdgcn.workitem.id.x()1783  %index = add i32 %id, -5121784  %value = extractelement <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16>, i32 %index1785  store i32 %value, ptr addrspace(1) %out1786  ret void1787}1788 1789; undefined behavior, but shouldn't crash compiler1790define amdgpu_kernel void @extract_undef_offset_sgpr(ptr addrspace(1) %out, ptr addrspace(1) %in) {1791; GENERIC-LABEL: extract_undef_offset_sgpr:1792; GENERIC:       ; %bb.0: ; %entry1793; GENERIC-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x91794; GENERIC-NEXT:    s_mov_b32 s7, 0xf0001795; GENERIC-NEXT:    s_mov_b32 s6, -11796; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)1797; GENERIC-NEXT:    s_mov_b32 s4, s21798; GENERIC-NEXT:    s_mov_b32 s5, s31799; GENERIC-NEXT:    buffer_load_dwordx4 v[0:3], off, s[4:7], 0 glc1800; GENERIC-NEXT:    s_waitcnt vmcnt(0)1801; GENERIC-NEXT:    s_endpgm1802;1803; NOOPT-LABEL: extract_undef_offset_sgpr:1804; NOOPT:       ; %bb.0: ; %entry1805; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb1806; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)1807; NOOPT-NEXT:    s_mov_b32 s6, s11808; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr11809; NOOPT-NEXT:    s_mov_b32 s4, 0xf0001810; NOOPT-NEXT:    s_mov_b32 s5, -11811; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr31812; NOOPT-NEXT:    s_mov_b32 s1, s61813; NOOPT-NEXT:    s_mov_b32 s2, s51814; NOOPT-NEXT:    s_mov_b32 s3, s41815; NOOPT-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc1816; NOOPT-NEXT:    s_waitcnt vmcnt(0)1817; NOOPT-NEXT:    s_endpgm1818;1819; SI-MOVREL-LABEL: extract_undef_offset_sgpr:1820; SI-MOVREL:       ; %bb.0: ; %entry1821; SI-MOVREL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x91822; SI-MOVREL-NEXT:    s_mov_b32 s7, 0xf0001823; SI-MOVREL-NEXT:    s_mov_b32 s6, -11824; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)1825; SI-MOVREL-NEXT:    s_mov_b32 s4, s21826; SI-MOVREL-NEXT:    s_mov_b32 s5, s31827; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[0:3], off, s[4:7], 0 glc1828; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)1829; SI-MOVREL-NEXT:    s_endpgm1830;1831; VI-LABEL: extract_undef_offset_sgpr:1832; VI:       ; %bb.0: ; %entry1833; VI-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241834; VI-NEXT:    s_waitcnt lgkmcnt(0)1835; VI-NEXT:    v_mov_b32_e32 v0, s21836; VI-NEXT:    v_mov_b32_e32 v1, s31837; VI-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc1838; VI-NEXT:    s_waitcnt vmcnt(0)1839; VI-NEXT:    s_endpgm1840;1841; GFX9-IDXMODE-LABEL: extract_undef_offset_sgpr:1842; GFX9-IDXMODE:       ; %bb.0: ; %entry1843; GFX9-IDXMODE-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x241844; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 01845; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)1846; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[0:3], v0, s[2:3] glc1847; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)1848; GFX9-IDXMODE-NEXT:    s_endpgm1849entry:1850  %ld = load volatile <4 x i32>, ptr addrspace(1) %in1851  %value = extractelement <4 x i32> %ld, i32 poison1852  store i32 %value, ptr addrspace(1) %out1853  ret void1854}1855 1856; undefined behavior, but shouldn't crash compiler1857define amdgpu_kernel void @insert_undef_offset_sgpr_vector_src(ptr addrspace(1) %out, ptr addrspace(1) %in) {1858; GENERIC-LABEL: insert_undef_offset_sgpr_vector_src:1859; GENERIC:       ; %bb.0: ; %entry1860; GENERIC-NEXT:    s_endpgm1861;1862; NOOPT-LABEL: insert_undef_offset_sgpr_vector_src:1863; NOOPT:       ; %bb.0: ; %entry1864; NOOPT-NEXT:    s_endpgm1865;1866; SI-MOVREL-LABEL: insert_undef_offset_sgpr_vector_src:1867; SI-MOVREL:       ; %bb.0: ; %entry1868; SI-MOVREL-NEXT:    s_endpgm1869;1870; VI-LABEL: insert_undef_offset_sgpr_vector_src:1871; VI:       ; %bb.0: ; %entry1872; VI-NEXT:    s_endpgm1873;1874; GFX9-IDXMODE-LABEL: insert_undef_offset_sgpr_vector_src:1875; GFX9-IDXMODE:       ; %bb.0: ; %entry1876; GFX9-IDXMODE-NEXT:    s_endpgm1877entry:1878  %ld = load <4 x i32>, ptr addrspace(1) %in1879  %value = insertelement <4 x i32> %ld, i32 5, i32 poison1880  store <4 x i32> %value, ptr addrspace(1) %out1881  ret void1882}1883 1884define amdgpu_kernel void @insert_w_offset(ptr addrspace(1) %out, i32 %in) {1885; GENERIC-LABEL: insert_w_offset:1886; GENERIC:       ; %bb.0: ; %entry1887; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x91888; GENERIC-NEXT:    s_load_dword s4, s[4:5], 0xb1889; GENERIC-NEXT:    s_mov_b32 s3, 0xf0001890; GENERIC-NEXT:    s_mov_b32 s2, -11891; GENERIC-NEXT:    v_mov_b32_e32 v10, 0x418800001892; GENERIC-NEXT:    v_mov_b32_e32 v0, 0x404000001893; GENERIC-NEXT:    v_mov_b32_e32 v4, 0x410000001894; GENERIC-NEXT:    v_mov_b32_e32 v5, 0x40e000001895; GENERIC-NEXT:    v_mov_b32_e32 v8, 0x40c000001896; GENERIC-NEXT:    v_mov_b32_e32 v9, 0x40a000001897; GENERIC-NEXT:    v_mov_b32_e32 v11, 0x414000001898; GENERIC-NEXT:    v_mov_b32_e32 v12, 0x413000001899; GENERIC-NEXT:    v_mov_b32_e32 v13, 0x412000001900; GENERIC-NEXT:    v_mov_b32_e32 v14, 0x411000001901; GENERIC-NEXT:    v_mov_b32_e32 v15, 0x418000001902; GENERIC-NEXT:    v_mov_b32_e32 v16, 0x417000001903; GENERIC-NEXT:    v_mov_b32_e32 v17, 0x416000001904; GENERIC-NEXT:    v_mov_b32_e32 v18, 0x415000001905; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)1906; GENERIC-NEXT:    s_add_i32 s4, s4, 11907; GENERIC-NEXT:    s_cmp_eq_u32 s4, 31908; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01909; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 4.0, v10, vcc1910; GENERIC-NEXT:    s_cmp_eq_u32 s4, 21911; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01912; GENERIC-NEXT:    v_cndmask_b32_e32 v2, v0, v10, vcc1913; GENERIC-NEXT:    s_cmp_eq_u32 s4, 11914; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01915; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 2.0, v10, vcc1916; GENERIC-NEXT:    s_cmp_eq_u32 s4, 01917; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01918; GENERIC-NEXT:    v_cndmask_b32_e32 v0, 1.0, v10, vcc1919; GENERIC-NEXT:    s_cmp_eq_u32 s4, 71920; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01921; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v4, v10, vcc1922; GENERIC-NEXT:    s_cmp_eq_u32 s4, 61923; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01924; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v5, v10, vcc1925; GENERIC-NEXT:    s_cmp_eq_u32 s4, 51926; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01927; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v8, v10, vcc1928; GENERIC-NEXT:    s_cmp_eq_u32 s4, 41929; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01930; GENERIC-NEXT:    v_cndmask_b32_e32 v4, v9, v10, vcc1931; GENERIC-NEXT:    s_cmp_eq_u32 s4, 111932; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01933; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v11, v10, vcc1934; GENERIC-NEXT:    s_cmp_eq_u32 s4, 101935; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:161936; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01937; GENERIC-NEXT:    s_waitcnt expcnt(0)1938; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v12, v10, vcc1939; GENERIC-NEXT:    s_cmp_eq_u32 s4, 91940; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01941; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v13, v10, vcc1942; GENERIC-NEXT:    s_cmp_eq_u32 s4, 81943; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01944; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v14, v10, vcc1945; GENERIC-NEXT:    s_cmp_eq_u32 s4, 151946; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01947; GENERIC-NEXT:    v_cndmask_b32_e32 v9, v15, v10, vcc1948; GENERIC-NEXT:    s_cmp_eq_u32 s4, 141949; GENERIC-NEXT:    buffer_store_dwordx4 v[5:8], off, s[0:3], 0 offset:321950; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01951; GENERIC-NEXT:    s_waitcnt expcnt(0)1952; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v16, v10, vcc1953; GENERIC-NEXT:    s_cmp_eq_u32 s4, 131954; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01955; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v17, v10, vcc1956; GENERIC-NEXT:    s_cmp_eq_u32 s4, 121957; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 01958; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v18, v10, vcc1959; GENERIC-NEXT:    buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:481960; GENERIC-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 01961; GENERIC-NEXT:    s_endpgm1962;1963; NOOPT-LABEL: insert_w_offset:1964; NOOPT:       ; %bb.0: ; %entry1965; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x91966; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xb1967; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)1968; NOOPT-NEXT:    s_mov_b32 s7, s11969; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr11970; NOOPT-NEXT:    s_mov_b32 s5, 0xf0001971; NOOPT-NEXT:    s_mov_b32 s6, -11972; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr31973; NOOPT-NEXT:    s_mov_b32 s1, s71974; NOOPT-NEXT:    s_mov_b32 s2, s61975; NOOPT-NEXT:    s_mov_b32 s3, s51976; NOOPT-NEXT:    s_mov_b32 s5, 11977; NOOPT-NEXT:    s_add_i32 s4, s4, s51978; NOOPT-NEXT:    s_mov_b32 s5, 0x418000001979; NOOPT-NEXT:    s_mov_b32 s6, 0x417000001980; NOOPT-NEXT:    s_mov_b32 s7, 0x416000001981; NOOPT-NEXT:    s_mov_b32 s8, 0x415000001982; NOOPT-NEXT:    s_mov_b32 s9, 0x414000001983; NOOPT-NEXT:    s_mov_b32 s10, 0x413000001984; NOOPT-NEXT:    s_mov_b32 s11, 0x412000001985; NOOPT-NEXT:    s_mov_b32 s12, 0x411000001986; NOOPT-NEXT:    s_mov_b32 s13, 0x410000001987; NOOPT-NEXT:    s_mov_b32 s14, 0x40e000001988; NOOPT-NEXT:    s_mov_b32 s15, 0x40c000001989; NOOPT-NEXT:    s_mov_b32 s16, 0x40a000001990; NOOPT-NEXT:    s_mov_b32 s17, 4.01991; NOOPT-NEXT:    s_mov_b32 s18, 0x404000001992; NOOPT-NEXT:    s_mov_b32 s19, 2.01993; NOOPT-NEXT:    s_mov_b32 s20, 1.01994; NOOPT-NEXT:    v_mov_b32_e32 v7, s201995; NOOPT-NEXT:    v_mov_b32_e32 v30, s191996; NOOPT-NEXT:    v_mov_b32_e32 v29, s181997; NOOPT-NEXT:    v_mov_b32_e32 v28, s171998; NOOPT-NEXT:    v_mov_b32_e32 v27, s161999; NOOPT-NEXT:    v_mov_b32_e32 v26, s152000; NOOPT-NEXT:    v_mov_b32_e32 v25, s142001; NOOPT-NEXT:    v_mov_b32_e32 v24, s132002; NOOPT-NEXT:    v_mov_b32_e32 v23, s122003; NOOPT-NEXT:    v_mov_b32_e32 v6, s112004; NOOPT-NEXT:    v_mov_b32_e32 v5, s102005; NOOPT-NEXT:    v_mov_b32_e32 v4, s92006; NOOPT-NEXT:    v_mov_b32_e32 v3, s82007; NOOPT-NEXT:    v_mov_b32_e32 v2, s72008; NOOPT-NEXT:    v_mov_b32_e32 v1, s62009; NOOPT-NEXT:    v_mov_b32_e32 v0, s52010; NOOPT-NEXT:    ; kill: def $vgpr7 killed $vgpr7 def $vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22 killed $exec2011; NOOPT-NEXT:    v_mov_b32_e32 v8, v302012; NOOPT-NEXT:    v_mov_b32_e32 v9, v292013; NOOPT-NEXT:    v_mov_b32_e32 v10, v282014; NOOPT-NEXT:    v_mov_b32_e32 v11, v272015; NOOPT-NEXT:    v_mov_b32_e32 v12, v262016; NOOPT-NEXT:    v_mov_b32_e32 v13, v252017; NOOPT-NEXT:    v_mov_b32_e32 v14, v242018; NOOPT-NEXT:    v_mov_b32_e32 v15, v232019; NOOPT-NEXT:    v_mov_b32_e32 v16, v62020; NOOPT-NEXT:    v_mov_b32_e32 v17, v52021; NOOPT-NEXT:    v_mov_b32_e32 v18, v42022; NOOPT-NEXT:    v_mov_b32_e32 v19, v32023; NOOPT-NEXT:    v_mov_b32_e32 v20, v22024; NOOPT-NEXT:    v_mov_b32_e32 v21, v12025; NOOPT-NEXT:    v_mov_b32_e32 v22, v02026; NOOPT-NEXT:    v_mov_b32_e32 v0, 0x418800002027; NOOPT-NEXT:    s_mov_b32 m0, s42028; NOOPT-NEXT:    v_movreld_b32_e32 v7, v02029; NOOPT-NEXT:    v_mov_b32_e32 v4, v222030; NOOPT-NEXT:    v_mov_b32_e32 v5, v212031; NOOPT-NEXT:    v_mov_b32_e32 v6, v202032; NOOPT-NEXT:    v_mov_b32_e32 v0, v192033; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2034; NOOPT-NEXT:    v_mov_b32_e32 v1, v62035; NOOPT-NEXT:    v_mov_b32_e32 v2, v52036; NOOPT-NEXT:    v_mov_b32_e32 v3, v42037; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:482038; NOOPT-NEXT:    v_mov_b32_e32 v4, v182039; NOOPT-NEXT:    v_mov_b32_e32 v5, v172040; NOOPT-NEXT:    v_mov_b32_e32 v6, v162041; NOOPT-NEXT:    s_waitcnt expcnt(0)2042; NOOPT-NEXT:    v_mov_b32_e32 v0, v152043; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2044; NOOPT-NEXT:    v_mov_b32_e32 v1, v62045; NOOPT-NEXT:    v_mov_b32_e32 v2, v52046; NOOPT-NEXT:    v_mov_b32_e32 v3, v42047; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:322048; NOOPT-NEXT:    v_mov_b32_e32 v4, v142049; NOOPT-NEXT:    v_mov_b32_e32 v5, v132050; NOOPT-NEXT:    v_mov_b32_e32 v6, v122051; NOOPT-NEXT:    s_waitcnt expcnt(0)2052; NOOPT-NEXT:    v_mov_b32_e32 v0, v112053; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2054; NOOPT-NEXT:    v_mov_b32_e32 v1, v62055; NOOPT-NEXT:    v_mov_b32_e32 v2, v52056; NOOPT-NEXT:    v_mov_b32_e32 v3, v42057; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:162058; NOOPT-NEXT:    v_mov_b32_e32 v4, v102059; NOOPT-NEXT:    v_mov_b32_e32 v5, v92060; NOOPT-NEXT:    v_mov_b32_e32 v6, v82061; NOOPT-NEXT:    s_waitcnt expcnt(0)2062; NOOPT-NEXT:    v_mov_b32_e32 v0, v72063; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2064; NOOPT-NEXT:    v_mov_b32_e32 v1, v62065; NOOPT-NEXT:    v_mov_b32_e32 v2, v52066; NOOPT-NEXT:    v_mov_b32_e32 v3, v42067; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 02068; NOOPT-NEXT:    s_endpgm2069;2070; SI-MOVREL-LABEL: insert_w_offset:2071; SI-MOVREL:       ; %bb.0: ; %entry2072; SI-MOVREL-NEXT:    s_load_dword s6, s[4:5], 0xb2073; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x92074; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.02075; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.02076; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x404000002077; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)2078; SI-MOVREL-NEXT:    s_add_i32 m0, s6, 12079; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.02080; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a000002081; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c000002082; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e000002083; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x410000002084; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x411000002085; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x412000002086; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x413000002087; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x414000002088; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x415000002089; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x416000002090; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x417000002091; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x418000002092; SI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x418800002093; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0002094; SI-MOVREL-NEXT:    s_mov_b32 s2, -12095; SI-MOVREL-NEXT:    v_movreld_b32_e32 v0, v162096; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:482097; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:322098; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:162099; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 02100; SI-MOVREL-NEXT:    s_endpgm2101;2102; VI-MOVREL-LABEL: insert_w_offset:2103; VI-MOVREL:       ; %bb.0: ; %entry2104; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0x2c2105; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242106; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.02107; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.02108; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x404000002109; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)2110; VI-MOVREL-NEXT:    s_add_i32 m0, s2, 12111; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 482112; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.02113; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a000002114; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c000002115; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e000002116; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x410000002117; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x411000002118; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x412000002119; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x413000002120; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x414000002121; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x415000002122; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x416000002123; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x417000002124; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x418000002125; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x418800002126; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 02127; VI-MOVREL-NEXT:    v_movreld_b32_e32 v0, v162128; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s32129; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, s22130; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 322131; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 02132; VI-MOVREL-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]2133; VI-MOVREL-NEXT:    s_nop 02134; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s32135; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s22136; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 162137; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 02138; VI-MOVREL-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]2139; VI-MOVREL-NEXT:    s_nop 02140; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s32141; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s22142; VI-MOVREL-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]2143; VI-MOVREL-NEXT:    s_nop 02144; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s12145; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s02146; VI-MOVREL-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]2147; VI-MOVREL-NEXT:    s_endpgm2148;2149; VI-IDXMODE-LABEL: insert_w_offset:2150; VI-IDXMODE:       ; %bb.0: ; %entry2151; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c2152; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242153; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.02154; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.02155; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x404000002156; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)2157; VI-IDXMODE-NEXT:    s_add_i32 s2, s2, 12158; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.02159; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a000002160; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c000002161; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e000002162; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x410000002163; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x411000002164; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x412000002165; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x413000002166; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x414000002167; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x415000002168; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x416000002169; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x417000002170; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x418000002171; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, 0x418800002172; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)2173; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, v162174; VI-IDXMODE-NEXT:    s_set_gpr_idx_off2175; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 482176; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 02177; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s32178; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, s22179; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 322180; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 02181; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]2182; VI-IDXMODE-NEXT:    s_nop 02183; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s32184; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s22185; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 162186; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 02187; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]2188; VI-IDXMODE-NEXT:    s_nop 02189; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s32190; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s22191; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]2192; VI-IDXMODE-NEXT:    s_nop 02193; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s12194; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s02195; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]2196; VI-IDXMODE-NEXT:    s_endpgm2197;2198; GFX9-IDXMODE-LABEL: insert_w_offset:2199; GFX9-IDXMODE:       ; %bb.0: ; %entry2200; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c2201; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242202; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 02203; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.02204; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.02205; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)2206; GFX9-IDXMODE-NEXT:    s_add_i32 s2, s2, 12207; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x404000002208; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.02209; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a000002210; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c000002211; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e000002212; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x410000002213; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x411000002214; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x412000002215; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x413000002216; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x414000002217; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x415000002218; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x416000002219; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x417000002220; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x418000002221; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v17, 0x418800002222; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)2223; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v172224; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off2225; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:482226; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1] offset:322227; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:162228; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]2229; GFX9-IDXMODE-NEXT:    s_endpgm2230entry:2231  %add = add i32 %in, 12232  %ins = insertelement <16 x float> <float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, float 11.0, float 12.0, float 13.0, float 14.0, float 15.0, float 16.0>, float 17.0, i32 %add2233  store <16 x float> %ins, ptr addrspace(1) %out2234  ret void2235}2236 2237define amdgpu_kernel void @insert_unsigned_base_plus_offset(ptr addrspace(1) %out, i16 %in) {2238; GENERIC-LABEL: insert_unsigned_base_plus_offset:2239; GENERIC:       ; %bb.0: ; %entry2240; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x92241; GENERIC-NEXT:    s_load_dword s4, s[4:5], 0xb2242; GENERIC-NEXT:    s_mov_b32 s3, 0xf0002243; GENERIC-NEXT:    s_mov_b32 s2, -12244; GENERIC-NEXT:    v_mov_b32_e32 v10, 0x418800002245; GENERIC-NEXT:    v_mov_b32_e32 v0, 0x404000002246; GENERIC-NEXT:    v_mov_b32_e32 v4, 0x410000002247; GENERIC-NEXT:    v_mov_b32_e32 v5, 0x40e000002248; GENERIC-NEXT:    v_mov_b32_e32 v8, 0x40c000002249; GENERIC-NEXT:    v_mov_b32_e32 v9, 0x40a000002250; GENERIC-NEXT:    v_mov_b32_e32 v11, 0x414000002251; GENERIC-NEXT:    v_mov_b32_e32 v12, 0x413000002252; GENERIC-NEXT:    v_mov_b32_e32 v13, 0x412000002253; GENERIC-NEXT:    v_mov_b32_e32 v14, 0x411000002254; GENERIC-NEXT:    v_mov_b32_e32 v15, 0x418000002255; GENERIC-NEXT:    v_mov_b32_e32 v16, 0x417000002256; GENERIC-NEXT:    v_mov_b32_e32 v17, 0x416000002257; GENERIC-NEXT:    v_mov_b32_e32 v18, 0x415000002258; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)2259; GENERIC-NEXT:    s_and_b32 s4, s4, 0xffff2260; GENERIC-NEXT:    s_add_i32 s4, s4, 12261; GENERIC-NEXT:    s_cmp_eq_u32 s4, 32262; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02263; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 4.0, v10, vcc2264; GENERIC-NEXT:    s_cmp_eq_u32 s4, 22265; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02266; GENERIC-NEXT:    v_cndmask_b32_e32 v2, v0, v10, vcc2267; GENERIC-NEXT:    s_cmp_eq_u32 s4, 12268; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02269; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 2.0, v10, vcc2270; GENERIC-NEXT:    s_cmp_eq_u32 s4, 02271; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02272; GENERIC-NEXT:    v_cndmask_b32_e32 v0, 1.0, v10, vcc2273; GENERIC-NEXT:    s_cmp_eq_u32 s4, 72274; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02275; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v4, v10, vcc2276; GENERIC-NEXT:    s_cmp_eq_u32 s4, 62277; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02278; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v5, v10, vcc2279; GENERIC-NEXT:    s_cmp_eq_u32 s4, 52280; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02281; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v8, v10, vcc2282; GENERIC-NEXT:    s_cmp_eq_u32 s4, 42283; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02284; GENERIC-NEXT:    v_cndmask_b32_e32 v4, v9, v10, vcc2285; GENERIC-NEXT:    s_cmp_eq_u32 s4, 112286; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02287; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v11, v10, vcc2288; GENERIC-NEXT:    s_cmp_eq_u32 s4, 102289; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:162290; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02291; GENERIC-NEXT:    s_waitcnt expcnt(0)2292; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v12, v10, vcc2293; GENERIC-NEXT:    s_cmp_eq_u32 s4, 92294; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02295; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v13, v10, vcc2296; GENERIC-NEXT:    s_cmp_eq_u32 s4, 82297; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02298; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v14, v10, vcc2299; GENERIC-NEXT:    s_cmp_eq_u32 s4, 152300; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02301; GENERIC-NEXT:    v_cndmask_b32_e32 v9, v15, v10, vcc2302; GENERIC-NEXT:    s_cmp_eq_u32 s4, 142303; GENERIC-NEXT:    buffer_store_dwordx4 v[5:8], off, s[0:3], 0 offset:322304; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02305; GENERIC-NEXT:    s_waitcnt expcnt(0)2306; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v16, v10, vcc2307; GENERIC-NEXT:    s_cmp_eq_u32 s4, 132308; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02309; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v17, v10, vcc2310; GENERIC-NEXT:    s_cmp_eq_u32 s4, 122311; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02312; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v18, v10, vcc2313; GENERIC-NEXT:    buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:482314; GENERIC-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 02315; GENERIC-NEXT:    s_endpgm2316;2317; NOOPT-LABEL: insert_unsigned_base_plus_offset:2318; NOOPT:       ; %bb.0: ; %entry2319; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x92320; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xb2321; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)2322; NOOPT-NEXT:    s_mov_b32 s7, s12323; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr12324; NOOPT-NEXT:    s_mov_b32 s5, 0xf0002325; NOOPT-NEXT:    s_mov_b32 s6, -12326; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr32327; NOOPT-NEXT:    s_mov_b32 s1, s72328; NOOPT-NEXT:    s_mov_b32 s2, s62329; NOOPT-NEXT:    s_mov_b32 s3, s52330; NOOPT-NEXT:    s_mov_b32 s5, 0xffff2331; NOOPT-NEXT:    s_and_b32 s4, s4, s52332; NOOPT-NEXT:    s_mov_b32 s5, 0x418000002333; NOOPT-NEXT:    s_mov_b32 s6, 0x417000002334; NOOPT-NEXT:    s_mov_b32 s7, 0x416000002335; NOOPT-NEXT:    s_mov_b32 s8, 0x415000002336; NOOPT-NEXT:    s_mov_b32 s9, 0x414000002337; NOOPT-NEXT:    s_mov_b32 s10, 0x413000002338; NOOPT-NEXT:    s_mov_b32 s11, 0x412000002339; NOOPT-NEXT:    s_mov_b32 s12, 0x411000002340; NOOPT-NEXT:    s_mov_b32 s13, 0x410000002341; NOOPT-NEXT:    s_mov_b32 s14, 0x40e000002342; NOOPT-NEXT:    s_mov_b32 s15, 0x40c000002343; NOOPT-NEXT:    s_mov_b32 s16, 0x40a000002344; NOOPT-NEXT:    s_mov_b32 s17, 4.02345; NOOPT-NEXT:    s_mov_b32 s18, 0x404000002346; NOOPT-NEXT:    s_mov_b32 s19, 2.02347; NOOPT-NEXT:    s_mov_b32 s20, 1.02348; NOOPT-NEXT:    v_mov_b32_e32 v7, s202349; NOOPT-NEXT:    v_mov_b32_e32 v30, s192350; NOOPT-NEXT:    v_mov_b32_e32 v29, s182351; NOOPT-NEXT:    v_mov_b32_e32 v28, s172352; NOOPT-NEXT:    v_mov_b32_e32 v27, s162353; NOOPT-NEXT:    v_mov_b32_e32 v26, s152354; NOOPT-NEXT:    v_mov_b32_e32 v25, s142355; NOOPT-NEXT:    v_mov_b32_e32 v24, s132356; NOOPT-NEXT:    v_mov_b32_e32 v23, s122357; NOOPT-NEXT:    v_mov_b32_e32 v6, s112358; NOOPT-NEXT:    v_mov_b32_e32 v5, s102359; NOOPT-NEXT:    v_mov_b32_e32 v4, s92360; NOOPT-NEXT:    v_mov_b32_e32 v3, s82361; NOOPT-NEXT:    v_mov_b32_e32 v2, s72362; NOOPT-NEXT:    v_mov_b32_e32 v1, s62363; NOOPT-NEXT:    v_mov_b32_e32 v0, s52364; NOOPT-NEXT:    ; kill: def $vgpr7 killed $vgpr7 def $vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22 killed $exec2365; NOOPT-NEXT:    v_mov_b32_e32 v8, v302366; NOOPT-NEXT:    v_mov_b32_e32 v9, v292367; NOOPT-NEXT:    v_mov_b32_e32 v10, v282368; NOOPT-NEXT:    v_mov_b32_e32 v11, v272369; NOOPT-NEXT:    v_mov_b32_e32 v12, v262370; NOOPT-NEXT:    v_mov_b32_e32 v13, v252371; NOOPT-NEXT:    v_mov_b32_e32 v14, v242372; NOOPT-NEXT:    v_mov_b32_e32 v15, v232373; NOOPT-NEXT:    v_mov_b32_e32 v16, v62374; NOOPT-NEXT:    v_mov_b32_e32 v17, v52375; NOOPT-NEXT:    v_mov_b32_e32 v18, v42376; NOOPT-NEXT:    v_mov_b32_e32 v19, v32377; NOOPT-NEXT:    v_mov_b32_e32 v20, v22378; NOOPT-NEXT:    v_mov_b32_e32 v21, v12379; NOOPT-NEXT:    v_mov_b32_e32 v22, v02380; NOOPT-NEXT:    v_mov_b32_e32 v0, 0x418800002381; NOOPT-NEXT:    s_mov_b32 m0, s42382; NOOPT-NEXT:    v_movreld_b32_e32 v8, v02383; NOOPT-NEXT:    v_mov_b32_e32 v4, v222384; NOOPT-NEXT:    v_mov_b32_e32 v5, v212385; NOOPT-NEXT:    v_mov_b32_e32 v6, v202386; NOOPT-NEXT:    v_mov_b32_e32 v0, v192387; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2388; NOOPT-NEXT:    v_mov_b32_e32 v1, v62389; NOOPT-NEXT:    v_mov_b32_e32 v2, v52390; NOOPT-NEXT:    v_mov_b32_e32 v3, v42391; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:482392; NOOPT-NEXT:    v_mov_b32_e32 v4, v182393; NOOPT-NEXT:    v_mov_b32_e32 v5, v172394; NOOPT-NEXT:    v_mov_b32_e32 v6, v162395; NOOPT-NEXT:    s_waitcnt expcnt(0)2396; NOOPT-NEXT:    v_mov_b32_e32 v0, v152397; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2398; NOOPT-NEXT:    v_mov_b32_e32 v1, v62399; NOOPT-NEXT:    v_mov_b32_e32 v2, v52400; NOOPT-NEXT:    v_mov_b32_e32 v3, v42401; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:322402; NOOPT-NEXT:    v_mov_b32_e32 v4, v142403; NOOPT-NEXT:    v_mov_b32_e32 v5, v132404; NOOPT-NEXT:    v_mov_b32_e32 v6, v122405; NOOPT-NEXT:    s_waitcnt expcnt(0)2406; NOOPT-NEXT:    v_mov_b32_e32 v0, v112407; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2408; NOOPT-NEXT:    v_mov_b32_e32 v1, v62409; NOOPT-NEXT:    v_mov_b32_e32 v2, v52410; NOOPT-NEXT:    v_mov_b32_e32 v3, v42411; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:162412; NOOPT-NEXT:    v_mov_b32_e32 v4, v102413; NOOPT-NEXT:    v_mov_b32_e32 v5, v92414; NOOPT-NEXT:    v_mov_b32_e32 v6, v82415; NOOPT-NEXT:    s_waitcnt expcnt(0)2416; NOOPT-NEXT:    v_mov_b32_e32 v0, v72417; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2418; NOOPT-NEXT:    v_mov_b32_e32 v1, v62419; NOOPT-NEXT:    v_mov_b32_e32 v2, v52420; NOOPT-NEXT:    v_mov_b32_e32 v3, v42421; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 02422; NOOPT-NEXT:    s_endpgm2423;2424; SI-MOVREL-LABEL: insert_unsigned_base_plus_offset:2425; SI-MOVREL:       ; %bb.0: ; %entry2426; SI-MOVREL-NEXT:    s_load_dword s6, s[4:5], 0xb2427; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x92428; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.02429; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.02430; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x404000002431; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)2432; SI-MOVREL-NEXT:    s_and_b32 m0, s6, 0xffff2433; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.02434; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a000002435; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c000002436; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e000002437; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x410000002438; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x411000002439; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x412000002440; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x413000002441; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x414000002442; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x415000002443; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x416000002444; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x417000002445; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x418000002446; SI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x418800002447; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0002448; SI-MOVREL-NEXT:    s_mov_b32 s2, -12449; SI-MOVREL-NEXT:    v_movreld_b32_e32 v1, v162450; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:482451; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:322452; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:162453; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 02454; SI-MOVREL-NEXT:    s_endpgm2455;2456; VI-MOVREL-LABEL: insert_unsigned_base_plus_offset:2457; VI-MOVREL:       ; %bb.0: ; %entry2458; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0x2c2459; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242460; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.02461; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.02462; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x404000002463; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)2464; VI-MOVREL-NEXT:    s_and_b32 m0, s2, 0xffff2465; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 482466; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.02467; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a000002468; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c000002469; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e000002470; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x410000002471; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x411000002472; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x412000002473; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x413000002474; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x414000002475; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x415000002476; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x416000002477; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x417000002478; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x418000002479; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x418800002480; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 02481; VI-MOVREL-NEXT:    v_movreld_b32_e32 v1, v162482; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s32483; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, s22484; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 322485; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 02486; VI-MOVREL-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]2487; VI-MOVREL-NEXT:    s_nop 02488; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s32489; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s22490; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 162491; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 02492; VI-MOVREL-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]2493; VI-MOVREL-NEXT:    s_nop 02494; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s32495; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s22496; VI-MOVREL-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]2497; VI-MOVREL-NEXT:    s_nop 02498; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s12499; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s02500; VI-MOVREL-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]2501; VI-MOVREL-NEXT:    s_endpgm2502;2503; VI-IDXMODE-LABEL: insert_unsigned_base_plus_offset:2504; VI-IDXMODE:       ; %bb.0: ; %entry2505; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c2506; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242507; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.02508; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.02509; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x404000002510; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)2511; VI-IDXMODE-NEXT:    s_and_b32 s2, s2, 0xffff2512; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.02513; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a000002514; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c000002515; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e000002516; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x410000002517; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x411000002518; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x412000002519; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x413000002520; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x414000002521; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x415000002522; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x416000002523; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x417000002524; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x418000002525; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, 0x418800002526; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)2527; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, v162528; VI-IDXMODE-NEXT:    s_set_gpr_idx_off2529; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 482530; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 02531; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s32532; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, s22533; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 322534; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 02535; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]2536; VI-IDXMODE-NEXT:    s_nop 02537; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s32538; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s22539; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 162540; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 02541; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]2542; VI-IDXMODE-NEXT:    s_nop 02543; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s32544; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s22545; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]2546; VI-IDXMODE-NEXT:    s_nop 02547; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s12548; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s02549; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]2550; VI-IDXMODE-NEXT:    s_endpgm2551;2552; GFX9-IDXMODE-LABEL: insert_unsigned_base_plus_offset:2553; GFX9-IDXMODE:       ; %bb.0: ; %entry2554; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c2555; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242556; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 02557; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.02558; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.02559; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)2560; GFX9-IDXMODE-NEXT:    s_and_b32 s2, s2, 0xffff2561; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x404000002562; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.02563; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a000002564; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c000002565; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e000002566; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x410000002567; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x411000002568; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x412000002569; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x413000002570; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x414000002571; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x415000002572; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x416000002573; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x417000002574; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x418000002575; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v17, 0x418800002576; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)2577; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, v172578; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off2579; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:482580; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1] offset:322581; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:162582; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]2583; GFX9-IDXMODE-NEXT:    s_endpgm2584entry:2585  %base = zext i16 %in to i322586  %add = add i32 %base, 12587  %ins = insertelement <16 x float> <float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, float 11.0, float 12.0, float 13.0, float 14.0, float 15.0, float 16.0>, float 17.0, i32 %add2588  store <16 x float> %ins, ptr addrspace(1) %out2589  ret void2590}2591 2592define amdgpu_kernel void @insert_signed_base_plus_offset(ptr addrspace(1) %out, i16 %in) {2593; GENERIC-LABEL: insert_signed_base_plus_offset:2594; GENERIC:       ; %bb.0: ; %entry2595; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x92596; GENERIC-NEXT:    s_load_dword s4, s[4:5], 0xb2597; GENERIC-NEXT:    s_mov_b32 s3, 0xf0002598; GENERIC-NEXT:    s_mov_b32 s2, -12599; GENERIC-NEXT:    v_mov_b32_e32 v10, 0x418800002600; GENERIC-NEXT:    v_mov_b32_e32 v0, 0x404000002601; GENERIC-NEXT:    v_mov_b32_e32 v4, 0x410000002602; GENERIC-NEXT:    v_mov_b32_e32 v5, 0x40e000002603; GENERIC-NEXT:    v_mov_b32_e32 v8, 0x40c000002604; GENERIC-NEXT:    v_mov_b32_e32 v9, 0x40a000002605; GENERIC-NEXT:    v_mov_b32_e32 v11, 0x414000002606; GENERIC-NEXT:    v_mov_b32_e32 v12, 0x413000002607; GENERIC-NEXT:    v_mov_b32_e32 v13, 0x412000002608; GENERIC-NEXT:    v_mov_b32_e32 v14, 0x411000002609; GENERIC-NEXT:    v_mov_b32_e32 v15, 0x418000002610; GENERIC-NEXT:    v_mov_b32_e32 v16, 0x417000002611; GENERIC-NEXT:    v_mov_b32_e32 v17, 0x416000002612; GENERIC-NEXT:    v_mov_b32_e32 v18, 0x415000002613; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)2614; GENERIC-NEXT:    s_sext_i32_i16 s4, s42615; GENERIC-NEXT:    s_add_i32 s4, s4, 12616; GENERIC-NEXT:    s_cmp_eq_u32 s4, 32617; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02618; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 4.0, v10, vcc2619; GENERIC-NEXT:    s_cmp_eq_u32 s4, 22620; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02621; GENERIC-NEXT:    v_cndmask_b32_e32 v2, v0, v10, vcc2622; GENERIC-NEXT:    s_cmp_eq_u32 s4, 12623; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02624; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 2.0, v10, vcc2625; GENERIC-NEXT:    s_cmp_eq_u32 s4, 02626; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02627; GENERIC-NEXT:    v_cndmask_b32_e32 v0, 1.0, v10, vcc2628; GENERIC-NEXT:    s_cmp_eq_u32 s4, 72629; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02630; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v4, v10, vcc2631; GENERIC-NEXT:    s_cmp_eq_u32 s4, 62632; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02633; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v5, v10, vcc2634; GENERIC-NEXT:    s_cmp_eq_u32 s4, 52635; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02636; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v8, v10, vcc2637; GENERIC-NEXT:    s_cmp_eq_u32 s4, 42638; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02639; GENERIC-NEXT:    v_cndmask_b32_e32 v4, v9, v10, vcc2640; GENERIC-NEXT:    s_cmp_eq_u32 s4, 112641; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02642; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v11, v10, vcc2643; GENERIC-NEXT:    s_cmp_eq_u32 s4, 102644; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:162645; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02646; GENERIC-NEXT:    s_waitcnt expcnt(0)2647; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v12, v10, vcc2648; GENERIC-NEXT:    s_cmp_eq_u32 s4, 92649; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02650; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v13, v10, vcc2651; GENERIC-NEXT:    s_cmp_eq_u32 s4, 82652; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02653; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v14, v10, vcc2654; GENERIC-NEXT:    s_cmp_eq_u32 s4, 152655; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02656; GENERIC-NEXT:    v_cndmask_b32_e32 v9, v15, v10, vcc2657; GENERIC-NEXT:    s_cmp_eq_u32 s4, 142658; GENERIC-NEXT:    buffer_store_dwordx4 v[5:8], off, s[0:3], 0 offset:322659; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02660; GENERIC-NEXT:    s_waitcnt expcnt(0)2661; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v16, v10, vcc2662; GENERIC-NEXT:    s_cmp_eq_u32 s4, 132663; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02664; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v17, v10, vcc2665; GENERIC-NEXT:    s_cmp_eq_u32 s4, 122666; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02667; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v18, v10, vcc2668; GENERIC-NEXT:    buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:482669; GENERIC-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 02670; GENERIC-NEXT:    s_endpgm2671;2672; NOOPT-LABEL: insert_signed_base_plus_offset:2673; NOOPT:       ; %bb.0: ; %entry2674; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x92675; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xb2676; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)2677; NOOPT-NEXT:    s_mov_b32 s7, s12678; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr12679; NOOPT-NEXT:    s_mov_b32 s5, 0xf0002680; NOOPT-NEXT:    s_mov_b32 s6, -12681; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr32682; NOOPT-NEXT:    s_mov_b32 s1, s72683; NOOPT-NEXT:    s_mov_b32 s2, s62684; NOOPT-NEXT:    s_mov_b32 s3, s52685; NOOPT-NEXT:    s_sext_i32_i16 s4, s42686; NOOPT-NEXT:    s_mov_b32 s5, 12687; NOOPT-NEXT:    s_add_i32 s4, s4, s52688; NOOPT-NEXT:    s_mov_b32 s5, 0x418000002689; NOOPT-NEXT:    s_mov_b32 s6, 0x417000002690; NOOPT-NEXT:    s_mov_b32 s7, 0x416000002691; NOOPT-NEXT:    s_mov_b32 s8, 0x415000002692; NOOPT-NEXT:    s_mov_b32 s9, 0x414000002693; NOOPT-NEXT:    s_mov_b32 s10, 0x413000002694; NOOPT-NEXT:    s_mov_b32 s11, 0x412000002695; NOOPT-NEXT:    s_mov_b32 s12, 0x411000002696; NOOPT-NEXT:    s_mov_b32 s13, 0x410000002697; NOOPT-NEXT:    s_mov_b32 s14, 0x40e000002698; NOOPT-NEXT:    s_mov_b32 s15, 0x40c000002699; NOOPT-NEXT:    s_mov_b32 s16, 0x40a000002700; NOOPT-NEXT:    s_mov_b32 s17, 4.02701; NOOPT-NEXT:    s_mov_b32 s18, 0x404000002702; NOOPT-NEXT:    s_mov_b32 s19, 2.02703; NOOPT-NEXT:    s_mov_b32 s20, 1.02704; NOOPT-NEXT:    v_mov_b32_e32 v7, s202705; NOOPT-NEXT:    v_mov_b32_e32 v30, s192706; NOOPT-NEXT:    v_mov_b32_e32 v29, s182707; NOOPT-NEXT:    v_mov_b32_e32 v28, s172708; NOOPT-NEXT:    v_mov_b32_e32 v27, s162709; NOOPT-NEXT:    v_mov_b32_e32 v26, s152710; NOOPT-NEXT:    v_mov_b32_e32 v25, s142711; NOOPT-NEXT:    v_mov_b32_e32 v24, s132712; NOOPT-NEXT:    v_mov_b32_e32 v23, s122713; NOOPT-NEXT:    v_mov_b32_e32 v6, s112714; NOOPT-NEXT:    v_mov_b32_e32 v5, s102715; NOOPT-NEXT:    v_mov_b32_e32 v4, s92716; NOOPT-NEXT:    v_mov_b32_e32 v3, s82717; NOOPT-NEXT:    v_mov_b32_e32 v2, s72718; NOOPT-NEXT:    v_mov_b32_e32 v1, s62719; NOOPT-NEXT:    v_mov_b32_e32 v0, s52720; NOOPT-NEXT:    ; kill: def $vgpr7 killed $vgpr7 def $vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22 killed $exec2721; NOOPT-NEXT:    v_mov_b32_e32 v8, v302722; NOOPT-NEXT:    v_mov_b32_e32 v9, v292723; NOOPT-NEXT:    v_mov_b32_e32 v10, v282724; NOOPT-NEXT:    v_mov_b32_e32 v11, v272725; NOOPT-NEXT:    v_mov_b32_e32 v12, v262726; NOOPT-NEXT:    v_mov_b32_e32 v13, v252727; NOOPT-NEXT:    v_mov_b32_e32 v14, v242728; NOOPT-NEXT:    v_mov_b32_e32 v15, v232729; NOOPT-NEXT:    v_mov_b32_e32 v16, v62730; NOOPT-NEXT:    v_mov_b32_e32 v17, v52731; NOOPT-NEXT:    v_mov_b32_e32 v18, v42732; NOOPT-NEXT:    v_mov_b32_e32 v19, v32733; NOOPT-NEXT:    v_mov_b32_e32 v20, v22734; NOOPT-NEXT:    v_mov_b32_e32 v21, v12735; NOOPT-NEXT:    v_mov_b32_e32 v22, v02736; NOOPT-NEXT:    v_mov_b32_e32 v0, 0x418800002737; NOOPT-NEXT:    s_mov_b32 m0, s42738; NOOPT-NEXT:    v_movreld_b32_e32 v7, v02739; NOOPT-NEXT:    v_mov_b32_e32 v4, v222740; NOOPT-NEXT:    v_mov_b32_e32 v5, v212741; NOOPT-NEXT:    v_mov_b32_e32 v6, v202742; NOOPT-NEXT:    v_mov_b32_e32 v0, v192743; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2744; NOOPT-NEXT:    v_mov_b32_e32 v1, v62745; NOOPT-NEXT:    v_mov_b32_e32 v2, v52746; NOOPT-NEXT:    v_mov_b32_e32 v3, v42747; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:482748; NOOPT-NEXT:    v_mov_b32_e32 v4, v182749; NOOPT-NEXT:    v_mov_b32_e32 v5, v172750; NOOPT-NEXT:    v_mov_b32_e32 v6, v162751; NOOPT-NEXT:    s_waitcnt expcnt(0)2752; NOOPT-NEXT:    v_mov_b32_e32 v0, v152753; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2754; NOOPT-NEXT:    v_mov_b32_e32 v1, v62755; NOOPT-NEXT:    v_mov_b32_e32 v2, v52756; NOOPT-NEXT:    v_mov_b32_e32 v3, v42757; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:322758; NOOPT-NEXT:    v_mov_b32_e32 v4, v142759; NOOPT-NEXT:    v_mov_b32_e32 v5, v132760; NOOPT-NEXT:    v_mov_b32_e32 v6, v122761; NOOPT-NEXT:    s_waitcnt expcnt(0)2762; NOOPT-NEXT:    v_mov_b32_e32 v0, v112763; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2764; NOOPT-NEXT:    v_mov_b32_e32 v1, v62765; NOOPT-NEXT:    v_mov_b32_e32 v2, v52766; NOOPT-NEXT:    v_mov_b32_e32 v3, v42767; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:162768; NOOPT-NEXT:    v_mov_b32_e32 v4, v102769; NOOPT-NEXT:    v_mov_b32_e32 v5, v92770; NOOPT-NEXT:    v_mov_b32_e32 v6, v82771; NOOPT-NEXT:    s_waitcnt expcnt(0)2772; NOOPT-NEXT:    v_mov_b32_e32 v0, v72773; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec2774; NOOPT-NEXT:    v_mov_b32_e32 v1, v62775; NOOPT-NEXT:    v_mov_b32_e32 v2, v52776; NOOPT-NEXT:    v_mov_b32_e32 v3, v42777; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 02778; NOOPT-NEXT:    s_endpgm2779;2780; SI-MOVREL-LABEL: insert_signed_base_plus_offset:2781; SI-MOVREL:       ; %bb.0: ; %entry2782; SI-MOVREL-NEXT:    s_load_dword s6, s[4:5], 0xb2783; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x92784; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.02785; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.02786; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x404000002787; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)2788; SI-MOVREL-NEXT:    s_sext_i32_i16 s4, s62789; SI-MOVREL-NEXT:    s_add_i32 m0, s4, 12790; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.02791; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a000002792; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c000002793; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e000002794; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x410000002795; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x411000002796; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x412000002797; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x413000002798; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x414000002799; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x415000002800; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x416000002801; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x417000002802; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x418000002803; SI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x418800002804; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0002805; SI-MOVREL-NEXT:    s_mov_b32 s2, -12806; SI-MOVREL-NEXT:    v_movreld_b32_e32 v0, v162807; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:482808; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:322809; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:162810; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 02811; SI-MOVREL-NEXT:    s_endpgm2812;2813; VI-MOVREL-LABEL: insert_signed_base_plus_offset:2814; VI-MOVREL:       ; %bb.0: ; %entry2815; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0x2c2816; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242817; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.02818; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.02819; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x404000002820; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)2821; VI-MOVREL-NEXT:    s_sext_i32_i16 s2, s22822; VI-MOVREL-NEXT:    s_add_i32 m0, s2, 12823; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 482824; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.02825; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a000002826; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c000002827; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e000002828; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x410000002829; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x411000002830; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x412000002831; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x413000002832; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x414000002833; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x415000002834; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x416000002835; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x417000002836; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x418000002837; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x418800002838; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 02839; VI-MOVREL-NEXT:    v_movreld_b32_e32 v0, v162840; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s32841; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, s22842; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 322843; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 02844; VI-MOVREL-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]2845; VI-MOVREL-NEXT:    s_nop 02846; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s32847; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s22848; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 162849; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 02850; VI-MOVREL-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]2851; VI-MOVREL-NEXT:    s_nop 02852; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s32853; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s22854; VI-MOVREL-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]2855; VI-MOVREL-NEXT:    s_nop 02856; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s12857; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s02858; VI-MOVREL-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]2859; VI-MOVREL-NEXT:    s_endpgm2860;2861; VI-IDXMODE-LABEL: insert_signed_base_plus_offset:2862; VI-IDXMODE:       ; %bb.0: ; %entry2863; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c2864; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242865; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.02866; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.02867; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x404000002868; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)2869; VI-IDXMODE-NEXT:    s_sext_i32_i16 s2, s22870; VI-IDXMODE-NEXT:    s_add_i32 s2, s2, 12871; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.02872; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a000002873; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c000002874; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e000002875; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x410000002876; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x411000002877; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x412000002878; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x413000002879; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x414000002880; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x415000002881; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x416000002882; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x417000002883; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x418000002884; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, 0x418800002885; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)2886; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, v162887; VI-IDXMODE-NEXT:    s_set_gpr_idx_off2888; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 482889; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 02890; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s32891; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, s22892; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 322893; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 02894; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]2895; VI-IDXMODE-NEXT:    s_nop 02896; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s32897; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s22898; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 162899; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 02900; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]2901; VI-IDXMODE-NEXT:    s_nop 02902; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s32903; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s22904; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]2905; VI-IDXMODE-NEXT:    s_nop 02906; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s12907; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s02908; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]2909; VI-IDXMODE-NEXT:    s_endpgm2910;2911; GFX9-IDXMODE-LABEL: insert_signed_base_plus_offset:2912; GFX9-IDXMODE:       ; %bb.0: ; %entry2913; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c2914; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x242915; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 02916; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.02917; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.02918; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)2919; GFX9-IDXMODE-NEXT:    s_sext_i32_i16 s2, s22920; GFX9-IDXMODE-NEXT:    s_add_i32 s2, s2, 12921; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x404000002922; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.02923; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a000002924; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c000002925; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e000002926; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x410000002927; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x411000002928; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x412000002929; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x413000002930; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x414000002931; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x415000002932; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x416000002933; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x417000002934; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x418000002935; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v17, 0x418800002936; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)2937; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v172938; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off2939; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:482940; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1] offset:322941; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:162942; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]2943; GFX9-IDXMODE-NEXT:    s_endpgm2944entry:2945  %base = sext i16 %in to i322946  %add = add i32 %base, 12947  %ins = insertelement <16 x float> <float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, float 11.0, float 12.0, float 13.0, float 14.0, float 15.0, float 16.0>, float 17.0, i32 %add2948  store <16 x float> %ins, ptr addrspace(1) %out2949  ret void2950}2951 2952; Make sure that TwoAddressInstructions keeps src0 as subregister sub02953; of the tied implicit use and def of the super register.2954define amdgpu_kernel void @insert_wo_offset(ptr addrspace(1) %out, i32 %in) {2955; GENERIC-LABEL: insert_wo_offset:2956; GENERIC:       ; %bb.0: ; %entry2957; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x92958; GENERIC-NEXT:    s_load_dword s4, s[4:5], 0xb2959; GENERIC-NEXT:    s_mov_b32 s3, 0xf0002960; GENERIC-NEXT:    s_mov_b32 s2, -12961; GENERIC-NEXT:    v_mov_b32_e32 v10, 0x418800002962; GENERIC-NEXT:    v_mov_b32_e32 v0, 0x404000002963; GENERIC-NEXT:    v_mov_b32_e32 v4, 0x410000002964; GENERIC-NEXT:    v_mov_b32_e32 v5, 0x40e000002965; GENERIC-NEXT:    v_mov_b32_e32 v8, 0x40c000002966; GENERIC-NEXT:    v_mov_b32_e32 v9, 0x40a000002967; GENERIC-NEXT:    v_mov_b32_e32 v11, 0x414000002968; GENERIC-NEXT:    v_mov_b32_e32 v12, 0x413000002969; GENERIC-NEXT:    v_mov_b32_e32 v13, 0x412000002970; GENERIC-NEXT:    v_mov_b32_e32 v14, 0x411000002971; GENERIC-NEXT:    v_mov_b32_e32 v15, 0x418000002972; GENERIC-NEXT:    v_mov_b32_e32 v16, 0x417000002973; GENERIC-NEXT:    v_mov_b32_e32 v17, 0x416000002974; GENERIC-NEXT:    v_mov_b32_e32 v18, 0x415000002975; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)2976; GENERIC-NEXT:    s_cmp_eq_u32 s4, 32977; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02978; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 4.0, v10, vcc2979; GENERIC-NEXT:    s_cmp_eq_u32 s4, 22980; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02981; GENERIC-NEXT:    v_cndmask_b32_e32 v2, v0, v10, vcc2982; GENERIC-NEXT:    s_cmp_eq_u32 s4, 12983; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02984; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 2.0, v10, vcc2985; GENERIC-NEXT:    s_cmp_eq_u32 s4, 02986; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02987; GENERIC-NEXT:    v_cndmask_b32_e32 v0, 1.0, v10, vcc2988; GENERIC-NEXT:    s_cmp_eq_u32 s4, 72989; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02990; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v4, v10, vcc2991; GENERIC-NEXT:    s_cmp_eq_u32 s4, 62992; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02993; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v5, v10, vcc2994; GENERIC-NEXT:    s_cmp_eq_u32 s4, 52995; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02996; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v8, v10, vcc2997; GENERIC-NEXT:    s_cmp_eq_u32 s4, 42998; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 02999; GENERIC-NEXT:    v_cndmask_b32_e32 v4, v9, v10, vcc3000; GENERIC-NEXT:    s_cmp_eq_u32 s4, 113001; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 03002; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v11, v10, vcc3003; GENERIC-NEXT:    s_cmp_eq_u32 s4, 103004; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:163005; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 03006; GENERIC-NEXT:    s_waitcnt expcnt(0)3007; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v12, v10, vcc3008; GENERIC-NEXT:    s_cmp_eq_u32 s4, 93009; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 03010; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v13, v10, vcc3011; GENERIC-NEXT:    s_cmp_eq_u32 s4, 83012; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 03013; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v14, v10, vcc3014; GENERIC-NEXT:    s_cmp_eq_u32 s4, 153015; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 03016; GENERIC-NEXT:    v_cndmask_b32_e32 v9, v15, v10, vcc3017; GENERIC-NEXT:    s_cmp_eq_u32 s4, 143018; GENERIC-NEXT:    buffer_store_dwordx4 v[5:8], off, s[0:3], 0 offset:323019; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 03020; GENERIC-NEXT:    s_waitcnt expcnt(0)3021; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v16, v10, vcc3022; GENERIC-NEXT:    s_cmp_eq_u32 s4, 133023; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 03024; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v17, v10, vcc3025; GENERIC-NEXT:    s_cmp_eq_u32 s4, 123026; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 03027; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v18, v10, vcc3028; GENERIC-NEXT:    buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:483029; GENERIC-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 03030; GENERIC-NEXT:    s_endpgm3031;3032; NOOPT-LABEL: insert_wo_offset:3033; NOOPT:       ; %bb.0: ; %entry3034; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x93035; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xb3036; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)3037; NOOPT-NEXT:    s_mov_b32 s7, s13038; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr13039; NOOPT-NEXT:    s_mov_b32 s5, 0xf0003040; NOOPT-NEXT:    s_mov_b32 s6, -13041; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr33042; NOOPT-NEXT:    s_mov_b32 s1, s73043; NOOPT-NEXT:    s_mov_b32 s2, s63044; NOOPT-NEXT:    s_mov_b32 s3, s53045; NOOPT-NEXT:    s_mov_b32 s5, 0x418000003046; NOOPT-NEXT:    s_mov_b32 s6, 0x417000003047; NOOPT-NEXT:    s_mov_b32 s7, 0x416000003048; NOOPT-NEXT:    s_mov_b32 s8, 0x415000003049; NOOPT-NEXT:    s_mov_b32 s9, 0x414000003050; NOOPT-NEXT:    s_mov_b32 s10, 0x413000003051; NOOPT-NEXT:    s_mov_b32 s11, 0x412000003052; NOOPT-NEXT:    s_mov_b32 s12, 0x411000003053; NOOPT-NEXT:    s_mov_b32 s13, 0x410000003054; NOOPT-NEXT:    s_mov_b32 s14, 0x40e000003055; NOOPT-NEXT:    s_mov_b32 s15, 0x40c000003056; NOOPT-NEXT:    s_mov_b32 s16, 0x40a000003057; NOOPT-NEXT:    s_mov_b32 s17, 4.03058; NOOPT-NEXT:    s_mov_b32 s18, 0x404000003059; NOOPT-NEXT:    s_mov_b32 s19, 2.03060; NOOPT-NEXT:    s_mov_b32 s20, 1.03061; NOOPT-NEXT:    v_mov_b32_e32 v7, s203062; NOOPT-NEXT:    v_mov_b32_e32 v30, s193063; NOOPT-NEXT:    v_mov_b32_e32 v29, s183064; NOOPT-NEXT:    v_mov_b32_e32 v28, s173065; NOOPT-NEXT:    v_mov_b32_e32 v27, s163066; NOOPT-NEXT:    v_mov_b32_e32 v26, s153067; NOOPT-NEXT:    v_mov_b32_e32 v25, s143068; NOOPT-NEXT:    v_mov_b32_e32 v24, s133069; NOOPT-NEXT:    v_mov_b32_e32 v23, s123070; NOOPT-NEXT:    v_mov_b32_e32 v6, s113071; NOOPT-NEXT:    v_mov_b32_e32 v5, s103072; NOOPT-NEXT:    v_mov_b32_e32 v4, s93073; NOOPT-NEXT:    v_mov_b32_e32 v3, s83074; NOOPT-NEXT:    v_mov_b32_e32 v2, s73075; NOOPT-NEXT:    v_mov_b32_e32 v1, s63076; NOOPT-NEXT:    v_mov_b32_e32 v0, s53077; NOOPT-NEXT:    ; kill: def $vgpr7 killed $vgpr7 def $vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22 killed $exec3078; NOOPT-NEXT:    v_mov_b32_e32 v8, v303079; NOOPT-NEXT:    v_mov_b32_e32 v9, v293080; NOOPT-NEXT:    v_mov_b32_e32 v10, v283081; NOOPT-NEXT:    v_mov_b32_e32 v11, v273082; NOOPT-NEXT:    v_mov_b32_e32 v12, v263083; NOOPT-NEXT:    v_mov_b32_e32 v13, v253084; NOOPT-NEXT:    v_mov_b32_e32 v14, v243085; NOOPT-NEXT:    v_mov_b32_e32 v15, v233086; NOOPT-NEXT:    v_mov_b32_e32 v16, v63087; NOOPT-NEXT:    v_mov_b32_e32 v17, v53088; NOOPT-NEXT:    v_mov_b32_e32 v18, v43089; NOOPT-NEXT:    v_mov_b32_e32 v19, v33090; NOOPT-NEXT:    v_mov_b32_e32 v20, v23091; NOOPT-NEXT:    v_mov_b32_e32 v21, v13092; NOOPT-NEXT:    v_mov_b32_e32 v22, v03093; NOOPT-NEXT:    v_mov_b32_e32 v0, 0x418800003094; NOOPT-NEXT:    s_mov_b32 m0, s43095; NOOPT-NEXT:    v_movreld_b32_e32 v7, v03096; NOOPT-NEXT:    v_mov_b32_e32 v4, v223097; NOOPT-NEXT:    v_mov_b32_e32 v5, v213098; NOOPT-NEXT:    v_mov_b32_e32 v6, v203099; NOOPT-NEXT:    v_mov_b32_e32 v0, v193100; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec3101; NOOPT-NEXT:    v_mov_b32_e32 v1, v63102; NOOPT-NEXT:    v_mov_b32_e32 v2, v53103; NOOPT-NEXT:    v_mov_b32_e32 v3, v43104; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:483105; NOOPT-NEXT:    v_mov_b32_e32 v4, v183106; NOOPT-NEXT:    v_mov_b32_e32 v5, v173107; NOOPT-NEXT:    v_mov_b32_e32 v6, v163108; NOOPT-NEXT:    s_waitcnt expcnt(0)3109; NOOPT-NEXT:    v_mov_b32_e32 v0, v153110; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec3111; NOOPT-NEXT:    v_mov_b32_e32 v1, v63112; NOOPT-NEXT:    v_mov_b32_e32 v2, v53113; NOOPT-NEXT:    v_mov_b32_e32 v3, v43114; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:323115; NOOPT-NEXT:    v_mov_b32_e32 v4, v143116; NOOPT-NEXT:    v_mov_b32_e32 v5, v133117; NOOPT-NEXT:    v_mov_b32_e32 v6, v123118; NOOPT-NEXT:    s_waitcnt expcnt(0)3119; NOOPT-NEXT:    v_mov_b32_e32 v0, v113120; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec3121; NOOPT-NEXT:    v_mov_b32_e32 v1, v63122; NOOPT-NEXT:    v_mov_b32_e32 v2, v53123; NOOPT-NEXT:    v_mov_b32_e32 v3, v43124; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:163125; NOOPT-NEXT:    v_mov_b32_e32 v4, v103126; NOOPT-NEXT:    v_mov_b32_e32 v5, v93127; NOOPT-NEXT:    v_mov_b32_e32 v6, v83128; NOOPT-NEXT:    s_waitcnt expcnt(0)3129; NOOPT-NEXT:    v_mov_b32_e32 v0, v73130; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec3131; NOOPT-NEXT:    v_mov_b32_e32 v1, v63132; NOOPT-NEXT:    v_mov_b32_e32 v2, v53133; NOOPT-NEXT:    v_mov_b32_e32 v3, v43134; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 03135; NOOPT-NEXT:    s_endpgm3136;3137; SI-MOVREL-LABEL: insert_wo_offset:3138; SI-MOVREL:       ; %bb.0: ; %entry3139; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x93140; SI-MOVREL-NEXT:    s_load_dword s4, s[4:5], 0xb3141; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.03142; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.03143; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x404000003144; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.03145; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a000003146; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c000003147; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e000003148; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x410000003149; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x411000003150; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x412000003151; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x413000003152; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x414000003153; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x415000003154; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x416000003155; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x417000003156; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x418000003157; SI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x418800003158; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)3159; SI-MOVREL-NEXT:    s_mov_b32 m0, s43160; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0003161; SI-MOVREL-NEXT:    s_mov_b32 s2, -13162; SI-MOVREL-NEXT:    v_movreld_b32_e32 v0, v163163; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:483164; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:323165; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:163166; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 03167; SI-MOVREL-NEXT:    s_endpgm3168;3169; VI-MOVREL-LABEL: insert_wo_offset:3170; VI-MOVREL:       ; %bb.0: ; %entry3171; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243172; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0x2c3173; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.03174; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.03175; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x404000003176; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.03177; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)3178; VI-MOVREL-NEXT:    s_mov_b32 m0, s23179; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 483180; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a000003181; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c000003182; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e000003183; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x410000003184; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x411000003185; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x412000003186; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x413000003187; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x414000003188; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x415000003189; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x416000003190; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x417000003191; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x418000003192; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x418800003193; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 03194; VI-MOVREL-NEXT:    v_movreld_b32_e32 v0, v163195; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s33196; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, s23197; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 323198; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 03199; VI-MOVREL-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]3200; VI-MOVREL-NEXT:    s_nop 03201; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s33202; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s23203; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 163204; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 03205; VI-MOVREL-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]3206; VI-MOVREL-NEXT:    s_nop 03207; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s33208; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s23209; VI-MOVREL-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]3210; VI-MOVREL-NEXT:    s_nop 03211; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s13212; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s03213; VI-MOVREL-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]3214; VI-MOVREL-NEXT:    s_endpgm3215;3216; VI-IDXMODE-LABEL: insert_wo_offset:3217; VI-IDXMODE:       ; %bb.0: ; %entry3218; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243219; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c3220; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.03221; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.03222; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x404000003223; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.03224; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a000003225; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c000003226; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e000003227; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x410000003228; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x411000003229; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x412000003230; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x413000003231; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x414000003232; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x415000003233; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x416000003234; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x417000003235; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x418000003236; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, 0x418800003237; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)3238; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)3239; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, v163240; VI-IDXMODE-NEXT:    s_set_gpr_idx_off3241; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 483242; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 03243; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s33244; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, s23245; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 323246; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 03247; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]3248; VI-IDXMODE-NEXT:    s_nop 03249; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s33250; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s23251; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 163252; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 03253; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]3254; VI-IDXMODE-NEXT:    s_nop 03255; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s33256; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s23257; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]3258; VI-IDXMODE-NEXT:    s_nop 03259; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s13260; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s03261; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]3262; VI-IDXMODE-NEXT:    s_endpgm3263;3264; GFX9-IDXMODE-LABEL: insert_wo_offset:3265; GFX9-IDXMODE:       ; %bb.0: ; %entry3266; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x243267; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c3268; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 03269; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.03270; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.03271; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x404000003272; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.03273; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a000003274; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c000003275; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e000003276; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x410000003277; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x411000003278; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x412000003279; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x413000003280; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x414000003281; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x415000003282; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x416000003283; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x417000003284; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x418000003285; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v17, 0x418800003286; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)3287; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)3288; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v173289; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off3290; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:483291; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1] offset:323292; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:163293; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]3294; GFX9-IDXMODE-NEXT:    s_endpgm3295entry:3296  %ins = insertelement <16 x float> <float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, float 11.0, float 12.0, float 13.0, float 14.0, float 15.0, float 16.0>, float 17.0, i32 %in3297  store <16 x float> %ins, ptr addrspace(1) %out3298  ret void3299}3300 3301define amdgpu_kernel void @insert_neg_offset_sgpr(ptr addrspace(1) %in, ptr addrspace(1) %out, i32 %offset) {3302; GENERIC-LABEL: insert_neg_offset_sgpr:3303; GENERIC:       ; %bb.0: ; %entry3304; GENERIC-NEXT:    s_load_dword s6, s[4:5], 0xd3305; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb3306; GENERIC-NEXT:    s_mov_b32 s3, 0xf0003307; GENERIC-NEXT:    s_mov_b32 s2, -13308; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)3309; GENERIC-NEXT:    s_addk_i32 s6, 0xfe003310; GENERIC-NEXT:    s_cmp_eq_u32 s6, 33311; GENERIC-NEXT:    s_cselect_b32 s4, 16, 33312; GENERIC-NEXT:    s_cmp_eq_u32 s6, 23313; GENERIC-NEXT:    s_cselect_b32 s5, 16, 23314; GENERIC-NEXT:    s_cmp_eq_u32 s6, 13315; GENERIC-NEXT:    v_mov_b32_e32 v3, s43316; GENERIC-NEXT:    s_cselect_b32 s4, 16, 13317; GENERIC-NEXT:    s_cmp_eq_u32 s6, 03318; GENERIC-NEXT:    v_mov_b32_e32 v2, s53319; GENERIC-NEXT:    s_cselect_b32 s5, 16, 03320; GENERIC-NEXT:    s_cmp_eq_u32 s6, 73321; GENERIC-NEXT:    v_mov_b32_e32 v1, s43322; GENERIC-NEXT:    s_cselect_b32 s4, 16, 73323; GENERIC-NEXT:    s_cmp_eq_u32 s6, 63324; GENERIC-NEXT:    v_mov_b32_e32 v0, s53325; GENERIC-NEXT:    s_cselect_b32 s5, 16, 63326; GENERIC-NEXT:    s_cmp_eq_u32 s6, 53327; GENERIC-NEXT:    v_mov_b32_e32 v7, s43328; GENERIC-NEXT:    s_cselect_b32 s4, 16, 53329; GENERIC-NEXT:    s_cmp_eq_u32 s6, 43330; GENERIC-NEXT:    v_mov_b32_e32 v6, s53331; GENERIC-NEXT:    s_cselect_b32 s5, 16, 43332; GENERIC-NEXT:    s_cmp_eq_u32 s6, 113333; GENERIC-NEXT:    v_mov_b32_e32 v5, s43334; GENERIC-NEXT:    s_cselect_b32 s4, 16, 113335; GENERIC-NEXT:    s_cmp_eq_u32 s6, 103336; GENERIC-NEXT:    v_mov_b32_e32 v4, s53337; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:163338; GENERIC-NEXT:    s_cselect_b32 s5, 16, 103339; GENERIC-NEXT:    s_cmp_eq_u32 s6, 93340; GENERIC-NEXT:    s_waitcnt expcnt(0)3341; GENERIC-NEXT:    v_mov_b32_e32 v7, s43342; GENERIC-NEXT:    s_cselect_b32 s4, 16, 93343; GENERIC-NEXT:    s_cmp_eq_u32 s6, 83344; GENERIC-NEXT:    v_mov_b32_e32 v6, s53345; GENERIC-NEXT:    s_cselect_b32 s5, 16, 83346; GENERIC-NEXT:    s_cmp_eq_u32 s6, 153347; GENERIC-NEXT:    v_mov_b32_e32 v5, s43348; GENERIC-NEXT:    s_cselect_b32 s4, 16, 153349; GENERIC-NEXT:    s_cmp_eq_u32 s6, 143350; GENERIC-NEXT:    v_mov_b32_e32 v4, s53351; GENERIC-NEXT:    s_cselect_b32 s5, 16, 143352; GENERIC-NEXT:    s_cmp_eq_u32 s6, 133353; GENERIC-NEXT:    s_cselect_b32 s7, 16, 133354; GENERIC-NEXT:    s_cmp_eq_u32 s6, 123355; GENERIC-NEXT:    s_cselect_b32 s6, 16, 123356; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:323357; GENERIC-NEXT:    s_waitcnt expcnt(0)3358; GENERIC-NEXT:    v_mov_b32_e32 v7, s43359; GENERIC-NEXT:    v_mov_b32_e32 v6, s53360; GENERIC-NEXT:    v_mov_b32_e32 v5, s73361; GENERIC-NEXT:    v_mov_b32_e32 v4, s63362; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:483363; GENERIC-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 03364; GENERIC-NEXT:    s_endpgm3365;3366; NOOPT-LABEL: insert_neg_offset_sgpr:3367; NOOPT:       ; %bb.0: ; %entry3368; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb3369; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xd3370; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)3371; NOOPT-NEXT:    s_mov_b32 s7, s13372; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr13373; NOOPT-NEXT:    s_mov_b32 s5, 0xf0003374; NOOPT-NEXT:    s_mov_b32 s6, -13375; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr33376; NOOPT-NEXT:    s_mov_b32 s1, s73377; NOOPT-NEXT:    s_mov_b32 s2, s63378; NOOPT-NEXT:    s_mov_b32 s3, s53379; NOOPT-NEXT:    s_mov_b32 s5, 153380; NOOPT-NEXT:    s_mov_b32 s6, 143381; NOOPT-NEXT:    s_mov_b32 s7, 133382; NOOPT-NEXT:    s_mov_b32 s8, 123383; NOOPT-NEXT:    s_mov_b32 s9, 113384; NOOPT-NEXT:    s_mov_b32 s10, 103385; NOOPT-NEXT:    s_mov_b32 s11, 93386; NOOPT-NEXT:    s_mov_b32 s12, 83387; NOOPT-NEXT:    s_mov_b32 s13, 73388; NOOPT-NEXT:    s_mov_b32 s14, 63389; NOOPT-NEXT:    s_mov_b32 s15, 53390; NOOPT-NEXT:    s_mov_b32 s16, 43391; NOOPT-NEXT:    s_mov_b32 s17, 33392; NOOPT-NEXT:    s_mov_b32 s18, 23393; NOOPT-NEXT:    s_mov_b32 s19, 13394; NOOPT-NEXT:    s_mov_b32 s20, 03395; NOOPT-NEXT:    v_mov_b32_e32 v15, s203396; NOOPT-NEXT:    v_mov_b32_e32 v14, s193397; NOOPT-NEXT:    v_mov_b32_e32 v13, s183398; NOOPT-NEXT:    v_mov_b32_e32 v12, s173399; NOOPT-NEXT:    v_mov_b32_e32 v11, s163400; NOOPT-NEXT:    v_mov_b32_e32 v10, s153401; NOOPT-NEXT:    v_mov_b32_e32 v9, s143402; NOOPT-NEXT:    v_mov_b32_e32 v8, s133403; NOOPT-NEXT:    v_mov_b32_e32 v7, s123404; NOOPT-NEXT:    v_mov_b32_e32 v6, s113405; NOOPT-NEXT:    v_mov_b32_e32 v5, s103406; NOOPT-NEXT:    v_mov_b32_e32 v4, s93407; NOOPT-NEXT:    v_mov_b32_e32 v3, s83408; NOOPT-NEXT:    v_mov_b32_e32 v2, s73409; NOOPT-NEXT:    v_mov_b32_e32 v1, s63410; NOOPT-NEXT:    v_mov_b32_e32 v0, s53411; NOOPT-NEXT:    ; kill: def $vgpr15 killed $vgpr15 def $vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30 killed $exec3412; NOOPT-NEXT:    v_mov_b32_e32 v16, v143413; NOOPT-NEXT:    v_mov_b32_e32 v17, v133414; NOOPT-NEXT:    v_mov_b32_e32 v18, v123415; NOOPT-NEXT:    v_mov_b32_e32 v19, v113416; NOOPT-NEXT:    v_mov_b32_e32 v20, v103417; NOOPT-NEXT:    v_mov_b32_e32 v21, v93418; NOOPT-NEXT:    v_mov_b32_e32 v22, v83419; NOOPT-NEXT:    v_mov_b32_e32 v23, v73420; NOOPT-NEXT:    v_mov_b32_e32 v24, v63421; NOOPT-NEXT:    v_mov_b32_e32 v25, v53422; NOOPT-NEXT:    v_mov_b32_e32 v26, v43423; NOOPT-NEXT:    v_mov_b32_e32 v27, v33424; NOOPT-NEXT:    v_mov_b32_e32 v28, v23425; NOOPT-NEXT:    v_mov_b32_e32 v29, v13426; NOOPT-NEXT:    v_mov_b32_e32 v30, v03427; NOOPT-NEXT:    v_mov_b32_e32 v0, 163428; NOOPT-NEXT:    s_add_i32 m0, s4, 0xfffffe003429; NOOPT-NEXT:    v_movreld_b32_e32 v15, v03430; NOOPT-NEXT:    v_mov_b32_e32 v4, v183431; NOOPT-NEXT:    v_mov_b32_e32 v5, v173432; NOOPT-NEXT:    v_mov_b32_e32 v6, v163433; NOOPT-NEXT:    v_mov_b32_e32 v0, v153434; NOOPT-NEXT:    v_mov_b32_e32 v1, v223435; NOOPT-NEXT:    v_mov_b32_e32 v2, v213436; NOOPT-NEXT:    v_mov_b32_e32 v3, v203437; NOOPT-NEXT:    v_mov_b32_e32 v7, v193438; NOOPT-NEXT:    v_mov_b32_e32 v12, v263439; NOOPT-NEXT:    v_mov_b32_e32 v13, v253440; NOOPT-NEXT:    v_mov_b32_e32 v14, v243441; NOOPT-NEXT:    v_mov_b32_e32 v8, v233442; NOOPT-NEXT:    v_mov_b32_e32 v9, v303443; NOOPT-NEXT:    v_mov_b32_e32 v10, v293444; NOOPT-NEXT:    v_mov_b32_e32 v11, v283445; NOOPT-NEXT:    v_mov_b32_e32 v15, v273446; NOOPT-NEXT:    ; kill: def $vgpr15 killed $vgpr15 def $vgpr15_vgpr16_vgpr17_vgpr18 killed $exec3447; NOOPT-NEXT:    v_mov_b32_e32 v16, v113448; NOOPT-NEXT:    v_mov_b32_e32 v17, v103449; NOOPT-NEXT:    v_mov_b32_e32 v18, v93450; NOOPT-NEXT:    buffer_store_dwordx4 v[15:18], off, s[0:3], 0 offset:483451; NOOPT-NEXT:    ; kill: def $vgpr8 killed $vgpr8 def $vgpr8_vgpr9_vgpr10_vgpr11 killed $exec3452; NOOPT-NEXT:    v_mov_b32_e32 v9, v143453; NOOPT-NEXT:    v_mov_b32_e32 v10, v133454; NOOPT-NEXT:    v_mov_b32_e32 v11, v123455; NOOPT-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:323456; NOOPT-NEXT:    ; kill: def $vgpr7 killed $vgpr7 def $vgpr7_vgpr8_vgpr9_vgpr10 killed $exec3457; NOOPT-NEXT:    s_waitcnt expcnt(0)3458; NOOPT-NEXT:    v_mov_b32_e32 v8, v33459; NOOPT-NEXT:    v_mov_b32_e32 v9, v23460; NOOPT-NEXT:    v_mov_b32_e32 v10, v13461; NOOPT-NEXT:    buffer_store_dwordx4 v[7:10], off, s[0:3], 0 offset:163462; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec3463; NOOPT-NEXT:    v_mov_b32_e32 v1, v63464; NOOPT-NEXT:    v_mov_b32_e32 v2, v53465; NOOPT-NEXT:    v_mov_b32_e32 v3, v43466; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 03467; NOOPT-NEXT:    s_endpgm3468;3469; SI-MOVREL-LABEL: insert_neg_offset_sgpr:3470; SI-MOVREL:       ; %bb.0: ; %entry3471; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb3472; SI-MOVREL-NEXT:    s_load_dword s4, s[4:5], 0xd3473; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, 03474; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, 13475; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 23476; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, 33477; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, 43478; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, 53479; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, 63480; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, 73481; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, 83482; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, 93483; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, 103484; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, 113485; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, 123486; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, 133487; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, 143488; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, 153489; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)3490; SI-MOVREL-NEXT:    s_add_i32 m0, s4, 0xfffffe003491; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0003492; SI-MOVREL-NEXT:    s_mov_b32 s2, -13493; SI-MOVREL-NEXT:    v_movreld_b32_e32 v0, 163494; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:483495; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:323496; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:163497; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 03498; SI-MOVREL-NEXT:    s_endpgm3499;3500; VI-MOVREL-LABEL: insert_neg_offset_sgpr:3501; VI-MOVREL:       ; %bb.0: ; %entry3502; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2c3503; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0x343504; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, 03505; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, 13506; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, 23507; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, 33508; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)3509; VI-MOVREL-NEXT:    s_add_i32 m0, s2, 0xfffffe003510; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 483511; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 03512; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s33513; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, 43514; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, 53515; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, 63516; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, 73517; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, 83518; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, 93519; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, 103520; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, 113521; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, 123522; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, 133523; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, 143524; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, 153525; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, s23526; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 323527; VI-MOVREL-NEXT:    v_movreld_b32_e32 v0, 163528; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 03529; VI-MOVREL-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]3530; VI-MOVREL-NEXT:    s_nop 03531; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s33532; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s23533; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 163534; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 03535; VI-MOVREL-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]3536; VI-MOVREL-NEXT:    s_nop 03537; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s33538; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s23539; VI-MOVREL-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]3540; VI-MOVREL-NEXT:    s_nop 03541; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s13542; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s03543; VI-MOVREL-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]3544; VI-MOVREL-NEXT:    s_endpgm3545;3546; VI-IDXMODE-LABEL: insert_neg_offset_sgpr:3547; VI-IDXMODE:       ; %bb.0: ; %entry3548; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2c3549; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x343550; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 03551; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, 13552; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, 23553; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, 33554; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, 43555; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, 53556; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, 63557; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, 73558; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, 83559; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, 93560; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, 103561; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, 113562; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, 123563; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, 133564; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, 143565; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, 153566; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)3567; VI-IDXMODE-NEXT:    s_addk_i32 s2, 0xfe003568; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)3569; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 163570; VI-IDXMODE-NEXT:    s_set_gpr_idx_off3571; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 483572; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 03573; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s33574; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, s23575; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 323576; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 03577; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]3578; VI-IDXMODE-NEXT:    s_nop 03579; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s33580; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s23581; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 163582; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 03583; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]3584; VI-IDXMODE-NEXT:    s_nop 03585; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s33586; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s23587; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]3588; VI-IDXMODE-NEXT:    s_nop 03589; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s13590; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s03591; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]3592; VI-IDXMODE-NEXT:    s_endpgm3593;3594; GFX9-IDXMODE-LABEL: insert_neg_offset_sgpr:3595; GFX9-IDXMODE:       ; %bb.0: ; %entry3596; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2c3597; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x343598; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 13599; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, 23600; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, 33601; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, 43602; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, 53603; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, 63604; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, 73605; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, 83606; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, 93607; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, 103608; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, 113609; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, 123610; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, 133611; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, 143612; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, 153613; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 03614; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, v153615; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)3616; GFX9-IDXMODE-NEXT:    s_addk_i32 s2, 0xfe003617; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, v143618; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, v133619; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, v123620; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, v113621; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, v103622; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, v93623; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, v83624; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, v73625; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, v63626; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, v53627; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, v43628; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, v33629; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, v23630; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, v13631; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, v03632; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)3633; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 163634; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off3635; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v0, v[13:16], s[0:1] offset:483636; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v0, v[9:12], s[0:1] offset:323637; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v0, v[5:8], s[0:1] offset:163638; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v0, v[1:4], s[0:1]3639; GFX9-IDXMODE-NEXT:    s_endpgm3640entry:3641  %index = add i32 %offset, -5123642  %value = insertelement <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>, i32 16, i32 %index3643  store <16 x i32> %value, ptr addrspace(1) %out3644  ret void3645}3646 3647; The vector indexed into is originally loaded into an SGPR rather3648; than built with a reg_sequence3649define amdgpu_kernel void @insert_neg_offset_sgpr_loadreg(ptr addrspace(1) %in, ptr addrspace(1) %out, <16 x i32> %vec, i32 %offset) {3650; GENERIC-LABEL: insert_neg_offset_sgpr_loadreg:3651; GENERIC:       ; %bb.0: ; %entry3652; GENERIC-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0xb3653; GENERIC-NEXT:    s_load_dword s20, s[4:5], 0x293654; GENERIC-NEXT:    s_load_dwordx16 s[0:15], s[4:5], 0x193655; GENERIC-NEXT:    s_mov_b32 s19, 0xf0003656; GENERIC-NEXT:    s_mov_b32 s18, -13657; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)3658; GENERIC-NEXT:    s_addk_i32 s20, 0xfe003659; GENERIC-NEXT:    s_cmp_lg_u32 s20, 33660; GENERIC-NEXT:    s_cselect_b32 s3, s3, 53661; GENERIC-NEXT:    s_cmp_lg_u32 s20, 23662; GENERIC-NEXT:    s_cselect_b32 s2, s2, 53663; GENERIC-NEXT:    s_cmp_lg_u32 s20, 13664; GENERIC-NEXT:    v_mov_b32_e32 v3, s33665; GENERIC-NEXT:    s_cselect_b32 s1, s1, 53666; GENERIC-NEXT:    s_cmp_lg_u32 s20, 03667; GENERIC-NEXT:    v_mov_b32_e32 v2, s23668; GENERIC-NEXT:    s_cselect_b32 s0, s0, 53669; GENERIC-NEXT:    s_cmp_lg_u32 s20, 73670; GENERIC-NEXT:    v_mov_b32_e32 v1, s13671; GENERIC-NEXT:    s_cselect_b32 s1, s7, 53672; GENERIC-NEXT:    s_cmp_lg_u32 s20, 63673; GENERIC-NEXT:    v_mov_b32_e32 v0, s03674; GENERIC-NEXT:    s_cselect_b32 s0, s6, 53675; GENERIC-NEXT:    s_cmp_lg_u32 s20, 53676; GENERIC-NEXT:    v_mov_b32_e32 v7, s13677; GENERIC-NEXT:    s_cselect_b32 s1, s5, 53678; GENERIC-NEXT:    s_cmp_lg_u32 s20, 43679; GENERIC-NEXT:    v_mov_b32_e32 v6, s03680; GENERIC-NEXT:    s_cselect_b32 s0, s4, 53681; GENERIC-NEXT:    s_cmp_lg_u32 s20, 113682; GENERIC-NEXT:    v_mov_b32_e32 v5, s13683; GENERIC-NEXT:    s_cselect_b32 s1, s11, 53684; GENERIC-NEXT:    s_cmp_lg_u32 s20, 103685; GENERIC-NEXT:    v_mov_b32_e32 v4, s03686; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[16:19], 0 offset:163687; GENERIC-NEXT:    s_cselect_b32 s0, s10, 53688; GENERIC-NEXT:    s_cmp_lg_u32 s20, 93689; GENERIC-NEXT:    s_waitcnt expcnt(0)3690; GENERIC-NEXT:    v_mov_b32_e32 v7, s13691; GENERIC-NEXT:    s_cselect_b32 s1, s9, 53692; GENERIC-NEXT:    s_cmp_lg_u32 s20, 83693; GENERIC-NEXT:    v_mov_b32_e32 v6, s03694; GENERIC-NEXT:    s_cselect_b32 s0, s8, 53695; GENERIC-NEXT:    s_cmp_lg_u32 s20, 153696; GENERIC-NEXT:    v_mov_b32_e32 v5, s13697; GENERIC-NEXT:    s_cselect_b32 s1, s15, 53698; GENERIC-NEXT:    s_cmp_lg_u32 s20, 143699; GENERIC-NEXT:    v_mov_b32_e32 v4, s03700; GENERIC-NEXT:    s_cselect_b32 s0, s14, 53701; GENERIC-NEXT:    s_cmp_lg_u32 s20, 133702; GENERIC-NEXT:    s_cselect_b32 s2, s13, 53703; GENERIC-NEXT:    s_cmp_lg_u32 s20, 123704; GENERIC-NEXT:    s_cselect_b32 s3, s12, 53705; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[16:19], 0 offset:323706; GENERIC-NEXT:    s_waitcnt expcnt(0)3707; GENERIC-NEXT:    v_mov_b32_e32 v7, s13708; GENERIC-NEXT:    v_mov_b32_e32 v6, s03709; GENERIC-NEXT:    v_mov_b32_e32 v5, s23710; GENERIC-NEXT:    v_mov_b32_e32 v4, s33711; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[16:19], 0 offset:483712; GENERIC-NEXT:    buffer_store_dwordx4 v[0:3], off, s[16:19], 03713; GENERIC-NEXT:    s_endpgm3714;3715; NOOPT-LABEL: insert_neg_offset_sgpr_loadreg:3716; NOOPT:       ; %bb.0: ; %entry3717; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb3718; NOOPT-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x193719; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0x293720; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)3721; NOOPT-NEXT:    s_mov_b32 s7, s13722; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr13723; NOOPT-NEXT:    s_mov_b32 s5, 0xf0003724; NOOPT-NEXT:    s_mov_b32 s6, -13725; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr33726; NOOPT-NEXT:    s_mov_b32 s1, s73727; NOOPT-NEXT:    s_mov_b32 s2, s63728; NOOPT-NEXT:    s_mov_b32 s3, s53729; NOOPT-NEXT:    v_mov_b32_e32 v0, 53730; NOOPT-NEXT:    v_mov_b32_e32 v30, s233731; NOOPT-NEXT:    v_mov_b32_e32 v29, s223732; NOOPT-NEXT:    v_mov_b32_e32 v28, s213733; NOOPT-NEXT:    v_mov_b32_e32 v27, s203734; NOOPT-NEXT:    v_mov_b32_e32 v26, s193735; NOOPT-NEXT:    v_mov_b32_e32 v25, s183736; NOOPT-NEXT:    v_mov_b32_e32 v24, s173737; NOOPT-NEXT:    v_mov_b32_e32 v23, s163738; NOOPT-NEXT:    v_mov_b32_e32 v22, s153739; NOOPT-NEXT:    v_mov_b32_e32 v21, s143740; NOOPT-NEXT:    v_mov_b32_e32 v20, s133741; NOOPT-NEXT:    v_mov_b32_e32 v19, s123742; NOOPT-NEXT:    v_mov_b32_e32 v18, s113743; NOOPT-NEXT:    v_mov_b32_e32 v17, s103744; NOOPT-NEXT:    v_mov_b32_e32 v16, s93745; NOOPT-NEXT:    v_mov_b32_e32 v15, s83746; NOOPT-NEXT:    s_add_i32 m0, s4, 0xfffffe003747; NOOPT-NEXT:    v_movreld_b32_e32 v15, v03748; NOOPT-NEXT:    v_mov_b32_e32 v4, v183749; NOOPT-NEXT:    v_mov_b32_e32 v5, v173750; NOOPT-NEXT:    v_mov_b32_e32 v6, v163751; NOOPT-NEXT:    v_mov_b32_e32 v0, v153752; NOOPT-NEXT:    v_mov_b32_e32 v1, v223753; NOOPT-NEXT:    v_mov_b32_e32 v2, v213754; NOOPT-NEXT:    v_mov_b32_e32 v3, v203755; NOOPT-NEXT:    v_mov_b32_e32 v7, v193756; NOOPT-NEXT:    v_mov_b32_e32 v12, v263757; NOOPT-NEXT:    v_mov_b32_e32 v13, v253758; NOOPT-NEXT:    v_mov_b32_e32 v14, v243759; NOOPT-NEXT:    v_mov_b32_e32 v8, v233760; NOOPT-NEXT:    v_mov_b32_e32 v9, v303761; NOOPT-NEXT:    v_mov_b32_e32 v10, v293762; NOOPT-NEXT:    v_mov_b32_e32 v11, v283763; NOOPT-NEXT:    v_mov_b32_e32 v15, v273764; NOOPT-NEXT:    ; kill: def $vgpr15 killed $vgpr15 def $vgpr15_vgpr16_vgpr17_vgpr18 killed $exec3765; NOOPT-NEXT:    v_mov_b32_e32 v16, v113766; NOOPT-NEXT:    v_mov_b32_e32 v17, v103767; NOOPT-NEXT:    v_mov_b32_e32 v18, v93768; NOOPT-NEXT:    buffer_store_dwordx4 v[15:18], off, s[0:3], 0 offset:483769; NOOPT-NEXT:    ; kill: def $vgpr8 killed $vgpr8 def $vgpr8_vgpr9_vgpr10_vgpr11 killed $exec3770; NOOPT-NEXT:    v_mov_b32_e32 v9, v143771; NOOPT-NEXT:    v_mov_b32_e32 v10, v133772; NOOPT-NEXT:    v_mov_b32_e32 v11, v123773; NOOPT-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:323774; NOOPT-NEXT:    ; kill: def $vgpr7 killed $vgpr7 def $vgpr7_vgpr8_vgpr9_vgpr10 killed $exec3775; NOOPT-NEXT:    s_waitcnt expcnt(0)3776; NOOPT-NEXT:    v_mov_b32_e32 v8, v33777; NOOPT-NEXT:    v_mov_b32_e32 v9, v23778; NOOPT-NEXT:    v_mov_b32_e32 v10, v13779; NOOPT-NEXT:    buffer_store_dwordx4 v[7:10], off, s[0:3], 0 offset:163780; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec3781; NOOPT-NEXT:    v_mov_b32_e32 v1, v63782; NOOPT-NEXT:    v_mov_b32_e32 v2, v53783; NOOPT-NEXT:    v_mov_b32_e32 v3, v43784; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 03785; NOOPT-NEXT:    s_endpgm3786;3787; SI-MOVREL-LABEL: insert_neg_offset_sgpr_loadreg:3788; SI-MOVREL:       ; %bb.0: ; %entry3789; SI-MOVREL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x193790; SI-MOVREL-NEXT:    s_load_dword s6, s[4:5], 0x293791; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb3792; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0003793; SI-MOVREL-NEXT:    s_mov_b32 s2, -13794; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)3795; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, s83796; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, s93797; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, s103798; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, s113799; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, s123800; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, s133801; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, s143802; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, s153803; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, s163804; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, s173805; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, s183806; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, s193807; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, s203808; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, s213809; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, s223810; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, s233811; SI-MOVREL-NEXT:    s_add_i32 m0, s6, 0xfffffe003812; SI-MOVREL-NEXT:    v_movreld_b32_e32 v0, 53813; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:483814; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:323815; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:163816; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 03817; SI-MOVREL-NEXT:    s_endpgm3818;3819; VI-MOVREL-LABEL: insert_neg_offset_sgpr_loadreg:3820; VI-MOVREL:       ; %bb.0: ; %entry3821; VI-MOVREL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x643822; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0xa43823; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2c3824; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)3825; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s83826; VI-MOVREL-NEXT:    s_add_i32 m0, s2, 0xfffffe003827; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 483828; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 03829; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s33830; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s93831; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, s103832; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, s113833; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s123834; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s133835; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, s143836; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, s153837; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s163838; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s173839; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, s183840; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, s193841; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s203842; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s213843; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, s223844; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, s233845; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, s23846; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 323847; VI-MOVREL-NEXT:    v_movreld_b32_e32 v0, 53848; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 03849; VI-MOVREL-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]3850; VI-MOVREL-NEXT:    s_nop 03851; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s33852; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s23853; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 163854; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 03855; VI-MOVREL-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]3856; VI-MOVREL-NEXT:    s_nop 03857; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s33858; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s23859; VI-MOVREL-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]3860; VI-MOVREL-NEXT:    s_nop 03861; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s13862; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s03863; VI-MOVREL-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]3864; VI-MOVREL-NEXT:    s_endpgm3865;3866; VI-IDXMODE-LABEL: insert_neg_offset_sgpr_loadreg:3867; VI-IDXMODE:       ; %bb.0: ; %entry3868; VI-IDXMODE-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x643869; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0xa43870; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2c3871; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)3872; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s83873; VI-IDXMODE-NEXT:    s_add_i32 s3, s2, 0xfffffe003874; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s93875; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, s103876; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, s113877; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s123878; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s133879; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, s143880; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, s153881; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s163882; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s173883; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, s183884; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, s193885; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s203886; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s213887; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, s223888; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, s233889; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 483890; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s3, gpr_idx(DST)3891; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 53892; VI-IDXMODE-NEXT:    s_set_gpr_idx_off3893; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 03894; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s33895; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, s23896; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 323897; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 03898; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]3899; VI-IDXMODE-NEXT:    s_nop 03900; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s33901; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s23902; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 163903; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 03904; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]3905; VI-IDXMODE-NEXT:    s_nop 03906; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s33907; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s23908; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]3909; VI-IDXMODE-NEXT:    s_nop 03910; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s13911; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s03912; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]3913; VI-IDXMODE-NEXT:    s_endpgm3914;3915; GFX9-IDXMODE-LABEL: insert_neg_offset_sgpr_loadreg:3916; GFX9-IDXMODE:       ; %bb.0: ; %entry3917; GFX9-IDXMODE-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x643918; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0xa43919; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2c3920; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 03921; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)3922; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, s83923; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, s93924; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, s103925; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, s113926; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, s123927; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, s133928; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, s143929; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, s153930; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, s163931; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, s173932; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, s183933; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, s193934; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, s203935; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, s213936; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, s223937; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, s233938; GFX9-IDXMODE-NEXT:    s_addk_i32 s2, 0xfe003939; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)3940; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 53941; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off3942; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:483943; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1] offset:323944; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:163945; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]3946; GFX9-IDXMODE-NEXT:    s_endpgm3947entry:3948  %index = add i32 %offset, -5123949  %value = insertelement <16 x i32> %vec, i32 5, i32 %index3950  store <16 x i32> %value, ptr addrspace(1) %out3951  ret void3952}3953 3954define amdgpu_kernel void @insert_neg_offset_vgpr(ptr addrspace(1) %in, ptr addrspace(1) %out) {3955; GENERIC-LABEL: insert_neg_offset_vgpr:3956; GENERIC:       ; %bb.0: ; %entry3957; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb3958; GENERIC-NEXT:    s_mov_b32 s3, 0xf0003959; GENERIC-NEXT:    s_mov_b32 s2, -13960; GENERIC-NEXT:    v_add_i32_e32 v12, vcc, 0xfffffe00, v03961; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v123962; GENERIC-NEXT:    v_cndmask_b32_e64 v3, 4, 33, vcc3963; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v123964; GENERIC-NEXT:    v_cndmask_b32_e64 v2, 3, 33, vcc3965; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v123966; GENERIC-NEXT:    v_cndmask_b32_e64 v1, 2, 33, vcc3967; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v123968; GENERIC-NEXT:    v_cndmask_b32_e64 v0, 1, 33, vcc3969; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v123970; GENERIC-NEXT:    v_cndmask_b32_e64 v7, 8, 33, vcc3971; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v123972; GENERIC-NEXT:    v_cndmask_b32_e64 v6, 7, 33, vcc3973; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v123974; GENERIC-NEXT:    v_cndmask_b32_e64 v5, 6, 33, vcc3975; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v123976; GENERIC-NEXT:    v_cndmask_b32_e64 v4, 5, 33, vcc3977; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v123978; GENERIC-NEXT:    v_cndmask_b32_e64 v11, 12, 33, vcc3979; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v123980; GENERIC-NEXT:    v_cndmask_b32_e64 v10, 11, 33, vcc3981; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v123982; GENERIC-NEXT:    v_cndmask_b32_e64 v9, 10, 33, vcc3983; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v123984; GENERIC-NEXT:    v_cndmask_b32_e64 v8, 9, 33, vcc3985; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v123986; GENERIC-NEXT:    v_cndmask_b32_e64 v15, 16, 33, vcc3987; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v123988; GENERIC-NEXT:    v_cndmask_b32_e64 v14, 15, 33, vcc3989; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 13, v123990; GENERIC-NEXT:    v_cndmask_b32_e64 v13, 14, 33, vcc3991; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v123992; GENERIC-NEXT:    v_cndmask_b32_e64 v12, 13, 33, vcc3993; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)3994; GENERIC-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:483995; GENERIC-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:323996; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:163997; GENERIC-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 03998; GENERIC-NEXT:    s_endpgm3999;4000; NOOPT-LABEL: insert_neg_offset_vgpr:4001; NOOPT:       ; %bb.0: ; %entry4002; NOOPT-NEXT:    s_mov_b32 s20, SCRATCH_RSRC_DWORD04003; NOOPT-NEXT:    s_mov_b32 s21, SCRATCH_RSRC_DWORD14004; NOOPT-NEXT:    s_mov_b32 s22, -14005; NOOPT-NEXT:    s_mov_b32 s23, 0xe8f0004006; NOOPT-NEXT:    s_add_u32 s20, s20, s114007; NOOPT-NEXT:    s_addc_u32 s21, s21, 04008; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:136 ; 4-byte Folded Spill4009; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb4010; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)4011; NOOPT-NEXT:    s_mov_b32 s6, s14012; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr14013; NOOPT-NEXT:    s_mov_b32 s4, 0xf0004014; NOOPT-NEXT:    s_mov_b32 s5, -14015; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr34016; NOOPT-NEXT:    s_mov_b32 s1, s64017; NOOPT-NEXT:    s_mov_b32 s2, s54018; NOOPT-NEXT:    s_mov_b32 s3, s44019; NOOPT-NEXT:    ; implicit-def: $vgpr31 : SGPR spill to VGPR lane4020; NOOPT-NEXT:    v_writelane_b32 v31, s0, 04021; NOOPT-NEXT:    v_writelane_b32 v31, s1, 14022; NOOPT-NEXT:    v_writelane_b32 v31, s2, 24023; NOOPT-NEXT:    v_writelane_b32 v31, s3, 34024; NOOPT-NEXT:    s_mov_b32 s0, 164025; NOOPT-NEXT:    s_mov_b32 s1, 154026; NOOPT-NEXT:    s_mov_b32 s2, 144027; NOOPT-NEXT:    s_mov_b32 s3, 134028; NOOPT-NEXT:    s_mov_b32 s4, 124029; NOOPT-NEXT:    s_mov_b32 s5, 114030; NOOPT-NEXT:    s_mov_b32 s6, 104031; NOOPT-NEXT:    s_mov_b32 s7, 94032; NOOPT-NEXT:    s_mov_b32 s8, 84033; NOOPT-NEXT:    s_mov_b32 s9, 74034; NOOPT-NEXT:    s_mov_b32 s10, 64035; NOOPT-NEXT:    s_mov_b32 s11, 54036; NOOPT-NEXT:    s_mov_b32 s12, 44037; NOOPT-NEXT:    s_mov_b32 s13, 34038; NOOPT-NEXT:    s_mov_b32 s14, 24039; NOOPT-NEXT:    s_mov_b32 s15, 14040; NOOPT-NEXT:    s_waitcnt expcnt(0)4041; NOOPT-NEXT:    v_mov_b32_e32 v0, s154042; NOOPT-NEXT:    v_mov_b32_e32 v30, s144043; NOOPT-NEXT:    v_mov_b32_e32 v29, s134044; NOOPT-NEXT:    v_mov_b32_e32 v28, s124045; NOOPT-NEXT:    v_mov_b32_e32 v27, s114046; NOOPT-NEXT:    v_mov_b32_e32 v26, s104047; NOOPT-NEXT:    v_mov_b32_e32 v25, s94048; NOOPT-NEXT:    v_mov_b32_e32 v24, s84049; NOOPT-NEXT:    v_mov_b32_e32 v23, s74050; NOOPT-NEXT:    v_mov_b32_e32 v22, s64051; NOOPT-NEXT:    v_mov_b32_e32 v21, s54052; NOOPT-NEXT:    v_mov_b32_e32 v20, s44053; NOOPT-NEXT:    v_mov_b32_e32 v19, s34054; NOOPT-NEXT:    v_mov_b32_e32 v18, s24055; NOOPT-NEXT:    v_mov_b32_e32 v17, s14056; NOOPT-NEXT:    v_mov_b32_e32 v16, s04057; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec4058; NOOPT-NEXT:    v_mov_b32_e32 v1, v304059; NOOPT-NEXT:    v_mov_b32_e32 v2, v294060; NOOPT-NEXT:    v_mov_b32_e32 v3, v284061; NOOPT-NEXT:    v_mov_b32_e32 v4, v274062; NOOPT-NEXT:    v_mov_b32_e32 v5, v264063; NOOPT-NEXT:    v_mov_b32_e32 v6, v254064; NOOPT-NEXT:    v_mov_b32_e32 v7, v244065; NOOPT-NEXT:    v_mov_b32_e32 v8, v234066; NOOPT-NEXT:    v_mov_b32_e32 v9, v224067; NOOPT-NEXT:    v_mov_b32_e32 v10, v214068; NOOPT-NEXT:    v_mov_b32_e32 v11, v204069; NOOPT-NEXT:    v_mov_b32_e32 v12, v194070; NOOPT-NEXT:    v_mov_b32_e32 v13, v184071; NOOPT-NEXT:    v_mov_b32_e32 v14, v174072; NOOPT-NEXT:    v_mov_b32_e32 v15, v164073; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:72 ; 4-byte Folded Spill4074; NOOPT-NEXT:    buffer_store_dword v1, off, s[20:23], 0 offset:76 ; 4-byte Folded Spill4075; NOOPT-NEXT:    buffer_store_dword v2, off, s[20:23], 0 offset:80 ; 4-byte Folded Spill4076; NOOPT-NEXT:    buffer_store_dword v3, off, s[20:23], 0 offset:84 ; 4-byte Folded Spill4077; NOOPT-NEXT:    buffer_store_dword v4, off, s[20:23], 0 offset:88 ; 4-byte Folded Spill4078; NOOPT-NEXT:    buffer_store_dword v5, off, s[20:23], 0 offset:92 ; 4-byte Folded Spill4079; NOOPT-NEXT:    buffer_store_dword v6, off, s[20:23], 0 offset:96 ; 4-byte Folded Spill4080; NOOPT-NEXT:    buffer_store_dword v7, off, s[20:23], 0 offset:100 ; 4-byte Folded Spill4081; NOOPT-NEXT:    buffer_store_dword v8, off, s[20:23], 0 offset:104 ; 4-byte Folded Spill4082; NOOPT-NEXT:    buffer_store_dword v9, off, s[20:23], 0 offset:108 ; 4-byte Folded Spill4083; NOOPT-NEXT:    buffer_store_dword v10, off, s[20:23], 0 offset:112 ; 4-byte Folded Spill4084; NOOPT-NEXT:    buffer_store_dword v11, off, s[20:23], 0 offset:116 ; 4-byte Folded Spill4085; NOOPT-NEXT:    buffer_store_dword v12, off, s[20:23], 0 offset:120 ; 4-byte Folded Spill4086; NOOPT-NEXT:    buffer_store_dword v13, off, s[20:23], 0 offset:124 ; 4-byte Folded Spill4087; NOOPT-NEXT:    buffer_store_dword v14, off, s[20:23], 0 offset:128 ; 4-byte Folded Spill4088; NOOPT-NEXT:    buffer_store_dword v15, off, s[20:23], 0 offset:132 ; 4-byte Folded Spill4089; NOOPT-NEXT:    v_mov_b32_e32 v16, 334090; NOOPT-NEXT:    buffer_store_dword v16, off, s[20:23], 0 offset:68 ; 4-byte Folded Spill4091; NOOPT-NEXT:    s_mov_b64 s[0:1], exec4092; NOOPT-NEXT:    v_writelane_b32 v31, s0, 44093; NOOPT-NEXT:    v_writelane_b32 v31, s1, 54094; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -14095; NOOPT-NEXT:    buffer_store_dword v31, off, s[20:23], 0 ; 4-byte Folded Spill4096; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]4097; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:4 ; 4-byte Folded Spill4098; NOOPT-NEXT:    buffer_store_dword v1, off, s[20:23], 0 offset:8 ; 4-byte Folded Spill4099; NOOPT-NEXT:    buffer_store_dword v2, off, s[20:23], 0 offset:12 ; 4-byte Folded Spill4100; NOOPT-NEXT:    buffer_store_dword v3, off, s[20:23], 0 offset:16 ; 4-byte Folded Spill4101; NOOPT-NEXT:    buffer_store_dword v4, off, s[20:23], 0 offset:20 ; 4-byte Folded Spill4102; NOOPT-NEXT:    buffer_store_dword v5, off, s[20:23], 0 offset:24 ; 4-byte Folded Spill4103; NOOPT-NEXT:    buffer_store_dword v6, off, s[20:23], 0 offset:28 ; 4-byte Folded Spill4104; NOOPT-NEXT:    buffer_store_dword v7, off, s[20:23], 0 offset:32 ; 4-byte Folded Spill4105; NOOPT-NEXT:    buffer_store_dword v8, off, s[20:23], 0 offset:36 ; 4-byte Folded Spill4106; NOOPT-NEXT:    buffer_store_dword v9, off, s[20:23], 0 offset:40 ; 4-byte Folded Spill4107; NOOPT-NEXT:    buffer_store_dword v10, off, s[20:23], 0 offset:44 ; 4-byte Folded Spill4108; NOOPT-NEXT:    buffer_store_dword v11, off, s[20:23], 0 offset:48 ; 4-byte Folded Spill4109; NOOPT-NEXT:    buffer_store_dword v12, off, s[20:23], 0 offset:52 ; 4-byte Folded Spill4110; NOOPT-NEXT:    buffer_store_dword v13, off, s[20:23], 0 offset:56 ; 4-byte Folded Spill4111; NOOPT-NEXT:    buffer_store_dword v14, off, s[20:23], 0 offset:60 ; 4-byte Folded Spill4112; NOOPT-NEXT:    buffer_store_dword v15, off, s[20:23], 0 offset:64 ; 4-byte Folded Spill4113; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr14114; NOOPT-NEXT:  .LBB14_1: ; =>This Inner Loop Header: Depth=14115; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -14116; NOOPT-NEXT:    s_waitcnt expcnt(0)4117; NOOPT-NEXT:    buffer_load_dword v31, off, s[20:23], 0 ; 4-byte Folded Reload4118; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]4119; NOOPT-NEXT:    s_waitcnt vmcnt(0)4120; NOOPT-NEXT:    v_readlane_b32 s0, v31, 64121; NOOPT-NEXT:    v_readlane_b32 s1, v31, 74122; NOOPT-NEXT:    buffer_load_dword v0, off, s[20:23], 0 offset:4 ; 4-byte Folded Reload4123; NOOPT-NEXT:    buffer_load_dword v1, off, s[20:23], 0 offset:8 ; 4-byte Folded Reload4124; NOOPT-NEXT:    buffer_load_dword v2, off, s[20:23], 0 offset:12 ; 4-byte Folded Reload4125; NOOPT-NEXT:    buffer_load_dword v3, off, s[20:23], 0 offset:16 ; 4-byte Folded Reload4126; NOOPT-NEXT:    buffer_load_dword v4, off, s[20:23], 0 offset:20 ; 4-byte Folded Reload4127; NOOPT-NEXT:    buffer_load_dword v5, off, s[20:23], 0 offset:24 ; 4-byte Folded Reload4128; NOOPT-NEXT:    buffer_load_dword v6, off, s[20:23], 0 offset:28 ; 4-byte Folded Reload4129; NOOPT-NEXT:    buffer_load_dword v7, off, s[20:23], 0 offset:32 ; 4-byte Folded Reload4130; NOOPT-NEXT:    buffer_load_dword v8, off, s[20:23], 0 offset:36 ; 4-byte Folded Reload4131; NOOPT-NEXT:    s_waitcnt expcnt(6)4132; NOOPT-NEXT:    buffer_load_dword v9, off, s[20:23], 0 offset:40 ; 4-byte Folded Reload4133; NOOPT-NEXT:    s_waitcnt expcnt(5)4134; NOOPT-NEXT:    buffer_load_dword v10, off, s[20:23], 0 offset:44 ; 4-byte Folded Reload4135; NOOPT-NEXT:    s_waitcnt expcnt(4)4136; NOOPT-NEXT:    buffer_load_dword v11, off, s[20:23], 0 offset:48 ; 4-byte Folded Reload4137; NOOPT-NEXT:    s_waitcnt expcnt(3)4138; NOOPT-NEXT:    buffer_load_dword v12, off, s[20:23], 0 offset:52 ; 4-byte Folded Reload4139; NOOPT-NEXT:    s_waitcnt expcnt(2)4140; NOOPT-NEXT:    buffer_load_dword v13, off, s[20:23], 0 offset:56 ; 4-byte Folded Reload4141; NOOPT-NEXT:    s_waitcnt expcnt(1)4142; NOOPT-NEXT:    buffer_load_dword v14, off, s[20:23], 0 offset:60 ; 4-byte Folded Reload4143; NOOPT-NEXT:    s_waitcnt expcnt(0)4144; NOOPT-NEXT:    buffer_load_dword v15, off, s[20:23], 0 offset:64 ; 4-byte Folded Reload4145; NOOPT-NEXT:    buffer_load_dword v16, off, s[20:23], 0 offset:68 ; 4-byte Folded Reload4146; NOOPT-NEXT:    buffer_load_dword v17, off, s[20:23], 0 offset:136 ; 4-byte Folded Reload4147; NOOPT-NEXT:    s_waitcnt vmcnt(0)4148; NOOPT-NEXT:    v_readfirstlane_b32 s2, v174149; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[0:1], s2, v174150; NOOPT-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]4151; NOOPT-NEXT:    s_add_i32 m0, s2, 0xfffffe004152; NOOPT-NEXT:    v_movreld_b32_e32 v0, v164153; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:140 ; 4-byte Folded Spill4154; NOOPT-NEXT:    buffer_store_dword v1, off, s[20:23], 0 offset:144 ; 4-byte Folded Spill4155; NOOPT-NEXT:    buffer_store_dword v2, off, s[20:23], 0 offset:148 ; 4-byte Folded Spill4156; NOOPT-NEXT:    buffer_store_dword v3, off, s[20:23], 0 offset:152 ; 4-byte Folded Spill4157; NOOPT-NEXT:    buffer_store_dword v4, off, s[20:23], 0 offset:156 ; 4-byte Folded Spill4158; NOOPT-NEXT:    buffer_store_dword v5, off, s[20:23], 0 offset:160 ; 4-byte Folded Spill4159; NOOPT-NEXT:    buffer_store_dword v6, off, s[20:23], 0 offset:164 ; 4-byte Folded Spill4160; NOOPT-NEXT:    buffer_store_dword v7, off, s[20:23], 0 offset:168 ; 4-byte Folded Spill4161; NOOPT-NEXT:    buffer_store_dword v8, off, s[20:23], 0 offset:172 ; 4-byte Folded Spill4162; NOOPT-NEXT:    buffer_store_dword v9, off, s[20:23], 0 offset:176 ; 4-byte Folded Spill4163; NOOPT-NEXT:    buffer_store_dword v10, off, s[20:23], 0 offset:180 ; 4-byte Folded Spill4164; NOOPT-NEXT:    buffer_store_dword v11, off, s[20:23], 0 offset:184 ; 4-byte Folded Spill4165; NOOPT-NEXT:    buffer_store_dword v12, off, s[20:23], 0 offset:188 ; 4-byte Folded Spill4166; NOOPT-NEXT:    buffer_store_dword v13, off, s[20:23], 0 offset:192 ; 4-byte Folded Spill4167; NOOPT-NEXT:    buffer_store_dword v14, off, s[20:23], 0 offset:196 ; 4-byte Folded Spill4168; NOOPT-NEXT:    buffer_store_dword v15, off, s[20:23], 0 offset:200 ; 4-byte Folded Spill4169; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:4 ; 4-byte Folded Spill4170; NOOPT-NEXT:    buffer_store_dword v1, off, s[20:23], 0 offset:8 ; 4-byte Folded Spill4171; NOOPT-NEXT:    buffer_store_dword v2, off, s[20:23], 0 offset:12 ; 4-byte Folded Spill4172; NOOPT-NEXT:    buffer_store_dword v3, off, s[20:23], 0 offset:16 ; 4-byte Folded Spill4173; NOOPT-NEXT:    buffer_store_dword v4, off, s[20:23], 0 offset:20 ; 4-byte Folded Spill4174; NOOPT-NEXT:    buffer_store_dword v5, off, s[20:23], 0 offset:24 ; 4-byte Folded Spill4175; NOOPT-NEXT:    buffer_store_dword v6, off, s[20:23], 0 offset:28 ; 4-byte Folded Spill4176; NOOPT-NEXT:    buffer_store_dword v7, off, s[20:23], 0 offset:32 ; 4-byte Folded Spill4177; NOOPT-NEXT:    buffer_store_dword v8, off, s[20:23], 0 offset:36 ; 4-byte Folded Spill4178; NOOPT-NEXT:    buffer_store_dword v9, off, s[20:23], 0 offset:40 ; 4-byte Folded Spill4179; NOOPT-NEXT:    buffer_store_dword v10, off, s[20:23], 0 offset:44 ; 4-byte Folded Spill4180; NOOPT-NEXT:    buffer_store_dword v11, off, s[20:23], 0 offset:48 ; 4-byte Folded Spill4181; NOOPT-NEXT:    buffer_store_dword v12, off, s[20:23], 0 offset:52 ; 4-byte Folded Spill4182; NOOPT-NEXT:    buffer_store_dword v13, off, s[20:23], 0 offset:56 ; 4-byte Folded Spill4183; NOOPT-NEXT:    buffer_store_dword v14, off, s[20:23], 0 offset:60 ; 4-byte Folded Spill4184; NOOPT-NEXT:    buffer_store_dword v15, off, s[20:23], 0 offset:64 ; 4-byte Folded Spill4185; NOOPT-NEXT:    s_mov_b64 s[2:3], s[0:1]4186; NOOPT-NEXT:    v_writelane_b32 v31, s2, 64187; NOOPT-NEXT:    v_writelane_b32 v31, s3, 74188; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -14189; NOOPT-NEXT:    buffer_store_dword v31, off, s[20:23], 0 ; 4-byte Folded Spill4190; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]4191; NOOPT-NEXT:    s_xor_b64 exec, exec, s[0:1]4192; NOOPT-NEXT:    s_cbranch_execnz .LBB14_14193; NOOPT-NEXT:  ; %bb.2:4194; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -14195; NOOPT-NEXT:    s_waitcnt expcnt(0)4196; NOOPT-NEXT:    buffer_load_dword v31, off, s[20:23], 0 ; 4-byte Folded Reload4197; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]4198; NOOPT-NEXT:    s_waitcnt vmcnt(0)4199; NOOPT-NEXT:    v_readlane_b32 s0, v31, 44200; NOOPT-NEXT:    v_readlane_b32 s1, v31, 54201; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]4202; NOOPT-NEXT:  ; %bb.3:4203; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -14204; NOOPT-NEXT:    buffer_load_dword v31, off, s[20:23], 0 ; 4-byte Folded Reload4205; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]4206; NOOPT-NEXT:    s_waitcnt vmcnt(0)4207; NOOPT-NEXT:    v_readlane_b32 s0, v31, 04208; NOOPT-NEXT:    v_readlane_b32 s1, v31, 14209; NOOPT-NEXT:    v_readlane_b32 s2, v31, 24210; NOOPT-NEXT:    v_readlane_b32 s3, v31, 34211; NOOPT-NEXT:    buffer_load_dword v15, off, s[20:23], 0 offset:140 ; 4-byte Folded Reload4212; NOOPT-NEXT:    buffer_load_dword v16, off, s[20:23], 0 offset:144 ; 4-byte Folded Reload4213; NOOPT-NEXT:    buffer_load_dword v17, off, s[20:23], 0 offset:148 ; 4-byte Folded Reload4214; NOOPT-NEXT:    buffer_load_dword v18, off, s[20:23], 0 offset:152 ; 4-byte Folded Reload4215; NOOPT-NEXT:    buffer_load_dword v19, off, s[20:23], 0 offset:156 ; 4-byte Folded Reload4216; NOOPT-NEXT:    buffer_load_dword v20, off, s[20:23], 0 offset:160 ; 4-byte Folded Reload4217; NOOPT-NEXT:    buffer_load_dword v21, off, s[20:23], 0 offset:164 ; 4-byte Folded Reload4218; NOOPT-NEXT:    buffer_load_dword v22, off, s[20:23], 0 offset:168 ; 4-byte Folded Reload4219; NOOPT-NEXT:    buffer_load_dword v23, off, s[20:23], 0 offset:172 ; 4-byte Folded Reload4220; NOOPT-NEXT:    buffer_load_dword v24, off, s[20:23], 0 offset:176 ; 4-byte Folded Reload4221; NOOPT-NEXT:    buffer_load_dword v25, off, s[20:23], 0 offset:180 ; 4-byte Folded Reload4222; NOOPT-NEXT:    buffer_load_dword v26, off, s[20:23], 0 offset:184 ; 4-byte Folded Reload4223; NOOPT-NEXT:    buffer_load_dword v27, off, s[20:23], 0 offset:188 ; 4-byte Folded Reload4224; NOOPT-NEXT:    buffer_load_dword v28, off, s[20:23], 0 offset:192 ; 4-byte Folded Reload4225; NOOPT-NEXT:    buffer_load_dword v29, off, s[20:23], 0 offset:196 ; 4-byte Folded Reload4226; NOOPT-NEXT:    buffer_load_dword v30, off, s[20:23], 0 offset:200 ; 4-byte Folded Reload4227; NOOPT-NEXT:    s_waitcnt vmcnt(12)4228; NOOPT-NEXT:    v_mov_b32_e32 v4, v184229; NOOPT-NEXT:    v_mov_b32_e32 v5, v174230; NOOPT-NEXT:    v_mov_b32_e32 v6, v164231; NOOPT-NEXT:    v_mov_b32_e32 v0, v154232; NOOPT-NEXT:    s_waitcnt vmcnt(8)4233; NOOPT-NEXT:    v_mov_b32_e32 v1, v224234; NOOPT-NEXT:    v_mov_b32_e32 v2, v214235; NOOPT-NEXT:    v_mov_b32_e32 v3, v204236; NOOPT-NEXT:    v_mov_b32_e32 v7, v194237; NOOPT-NEXT:    s_waitcnt vmcnt(4)4238; NOOPT-NEXT:    v_mov_b32_e32 v12, v264239; NOOPT-NEXT:    v_mov_b32_e32 v13, v254240; NOOPT-NEXT:    v_mov_b32_e32 v14, v244241; NOOPT-NEXT:    v_mov_b32_e32 v8, v234242; NOOPT-NEXT:    s_waitcnt vmcnt(0)4243; NOOPT-NEXT:    v_mov_b32_e32 v9, v304244; NOOPT-NEXT:    v_mov_b32_e32 v10, v294245; NOOPT-NEXT:    v_mov_b32_e32 v11, v284246; NOOPT-NEXT:    v_mov_b32_e32 v15, v274247; NOOPT-NEXT:    ; kill: def $vgpr15 killed $vgpr15 def $vgpr15_vgpr16_vgpr17_vgpr18 killed $exec4248; NOOPT-NEXT:    v_mov_b32_e32 v16, v114249; NOOPT-NEXT:    v_mov_b32_e32 v17, v104250; NOOPT-NEXT:    v_mov_b32_e32 v18, v94251; NOOPT-NEXT:    buffer_store_dwordx4 v[15:18], off, s[0:3], 0 offset:484252; NOOPT-NEXT:    ; kill: def $vgpr8 killed $vgpr8 def $vgpr8_vgpr9_vgpr10_vgpr11 killed $exec4253; NOOPT-NEXT:    v_mov_b32_e32 v9, v144254; NOOPT-NEXT:    v_mov_b32_e32 v10, v134255; NOOPT-NEXT:    v_mov_b32_e32 v11, v124256; NOOPT-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:324257; NOOPT-NEXT:    ; kill: def $vgpr7 killed $vgpr7 def $vgpr7_vgpr8_vgpr9_vgpr10 killed $exec4258; NOOPT-NEXT:    s_waitcnt expcnt(0)4259; NOOPT-NEXT:    v_mov_b32_e32 v8, v34260; NOOPT-NEXT:    v_mov_b32_e32 v9, v24261; NOOPT-NEXT:    v_mov_b32_e32 v10, v14262; NOOPT-NEXT:    buffer_store_dwordx4 v[7:10], off, s[0:3], 0 offset:164263; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec4264; NOOPT-NEXT:    v_mov_b32_e32 v1, v64265; NOOPT-NEXT:    v_mov_b32_e32 v2, v54266; NOOPT-NEXT:    v_mov_b32_e32 v3, v44267; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 04268; NOOPT-NEXT:    s_endpgm4269;4270; SI-MOVREL-LABEL: insert_neg_offset_vgpr:4271; SI-MOVREL:       ; %bb.0: ; %entry4272; SI-MOVREL-NEXT:    v_add_i32_e32 v12, vcc, 0xfffffe00, v04273; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v124274; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 4, 33, vcc4275; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v124276; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 3, 33, vcc4277; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v124278; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v1, 2, 33, vcc4279; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v124280; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v0, 1, 33, vcc4281; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v124282; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v7, 8, 33, vcc4283; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v124284; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v6, 7, 33, vcc4285; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v124286; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v5, 6, 33, vcc4287; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v124288; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v4, 5, 33, vcc4289; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v124290; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v11, 12, 33, vcc4291; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v124292; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v10, 11, 33, vcc4293; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v124294; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v9, 10, 33, vcc4295; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v124296; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb4297; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v8, 9, 33, vcc4298; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v124299; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v15, 16, 33, vcc4300; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v124301; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v14, 15, 33, vcc4302; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 13, v124303; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v13, 14, 33, vcc4304; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v124305; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0004306; SI-MOVREL-NEXT:    s_mov_b32 s2, -14307; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v12, 13, 33, vcc4308; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)4309; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:484310; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:324311; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:164312; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 04313; SI-MOVREL-NEXT:    s_endpgm4314;4315; VI-LABEL: insert_neg_offset_vgpr:4316; VI:       ; %bb.0: ; %entry4317; VI-NEXT:    v_add_u32_e32 v12, vcc, 0xfffffe00, v04318; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v124319; VI-NEXT:    v_cndmask_b32_e64 v3, 4, 33, vcc4320; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v124321; VI-NEXT:    v_cndmask_b32_e64 v2, 3, 33, vcc4322; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v124323; VI-NEXT:    v_cndmask_b32_e64 v1, 2, 33, vcc4324; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v124325; VI-NEXT:    v_cndmask_b32_e64 v0, 1, 33, vcc4326; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v124327; VI-NEXT:    v_cndmask_b32_e64 v7, 8, 33, vcc4328; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v124329; VI-NEXT:    v_cndmask_b32_e64 v6, 7, 33, vcc4330; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v124331; VI-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2c4332; VI-NEXT:    v_cndmask_b32_e64 v5, 6, 33, vcc4333; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v124334; VI-NEXT:    v_cndmask_b32_e64 v4, 5, 33, vcc4335; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v124336; VI-NEXT:    v_cndmask_b32_e64 v11, 12, 33, vcc4337; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v124338; VI-NEXT:    v_cndmask_b32_e64 v10, 11, 33, vcc4339; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v124340; VI-NEXT:    v_cndmask_b32_e64 v9, 10, 33, vcc4341; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v124342; VI-NEXT:    v_cndmask_b32_e64 v8, 9, 33, vcc4343; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v124344; VI-NEXT:    s_waitcnt lgkmcnt(0)4345; VI-NEXT:    s_add_u32 s2, s0, 484346; VI-NEXT:    v_cndmask_b32_e64 v15, 16, 33, vcc4347; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v124348; VI-NEXT:    s_addc_u32 s3, s1, 04349; VI-NEXT:    v_cndmask_b32_e64 v14, 15, 33, vcc4350; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 13, v124351; VI-NEXT:    v_mov_b32_e32 v17, s34352; VI-NEXT:    v_cndmask_b32_e64 v13, 14, 33, vcc4353; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v124354; VI-NEXT:    v_mov_b32_e32 v16, s24355; VI-NEXT:    s_add_u32 s2, s0, 324356; VI-NEXT:    v_cndmask_b32_e64 v12, 13, 33, vcc4357; VI-NEXT:    s_addc_u32 s3, s1, 04358; VI-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]4359; VI-NEXT:    s_nop 04360; VI-NEXT:    v_mov_b32_e32 v13, s34361; VI-NEXT:    v_mov_b32_e32 v12, s24362; VI-NEXT:    s_add_u32 s2, s0, 164363; VI-NEXT:    s_addc_u32 s3, s1, 04364; VI-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]4365; VI-NEXT:    s_nop 04366; VI-NEXT:    v_mov_b32_e32 v9, s34367; VI-NEXT:    v_mov_b32_e32 v8, s24368; VI-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]4369; VI-NEXT:    s_nop 04370; VI-NEXT:    v_mov_b32_e32 v5, s14371; VI-NEXT:    v_mov_b32_e32 v4, s04372; VI-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]4373; VI-NEXT:    s_endpgm4374;4375; GFX9-IDXMODE-LABEL: insert_neg_offset_vgpr:4376; GFX9-IDXMODE:       ; %bb.0: ; %entry4377; GFX9-IDXMODE-NEXT:    v_add_u32_e32 v12, 0xfffffe00, v04378; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v124379; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 4, 33, vcc4380; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v124381; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v2, 3, 33, vcc4382; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v124383; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v1, 2, 33, vcc4384; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v124385; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v0, 1, 33, vcc4386; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v124387; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v7, 8, 33, vcc4388; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v124389; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v6, 7, 33, vcc4390; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v124391; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v5, 6, 33, vcc4392; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v124393; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 5, 33, vcc4394; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v124395; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v11, 12, 33, vcc4396; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v124397; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v10, 11, 33, vcc4398; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v124399; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v9, 10, 33, vcc4400; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v124401; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2c4402; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v8, 9, 33, vcc4403; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v124404; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v15, 16, 33, vcc4405; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v124406; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v14, 15, 33, vcc4407; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 13, v124408; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v13, 14, 33, vcc4409; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v124410; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 04411; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v12, 13, 33, vcc4412; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)4413; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:484414; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1] offset:324415; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:164416; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]4417; GFX9-IDXMODE-NEXT:    s_endpgm4418entry:4419  %id = call i32 @llvm.amdgcn.workitem.id.x()4420  %index = add i32 %id, -5124421  %value = insertelement <16 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16>, i32 33, i32 %index4422  store <16 x i32> %value, ptr addrspace(1) %out4423  ret void4424}4425 4426define amdgpu_kernel void @insert_neg_inline_offset_vgpr(ptr addrspace(1) %in, ptr addrspace(1) %out) {4427; GENERIC-LABEL: insert_neg_inline_offset_vgpr:4428; GENERIC:       ; %bb.0: ; %entry4429; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb4430; GENERIC-NEXT:    s_mov_b32 s3, 0xf0004431; GENERIC-NEXT:    s_mov_b32 s2, -14432; GENERIC-NEXT:    v_add_i32_e32 v12, vcc, -16, v04433; GENERIC-NEXT:    v_mov_b32_e32 v16, 0x1f44434; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v124435; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 4, v16, vcc4436; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v124437; GENERIC-NEXT:    v_cndmask_b32_e32 v2, 3, v16, vcc4438; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v124439; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 2, v16, vcc4440; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v124441; GENERIC-NEXT:    v_cndmask_b32_e32 v0, 1, v16, vcc4442; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v124443; GENERIC-NEXT:    v_cndmask_b32_e32 v7, 8, v16, vcc4444; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v124445; GENERIC-NEXT:    v_cndmask_b32_e32 v6, 7, v16, vcc4446; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v124447; GENERIC-NEXT:    v_cndmask_b32_e32 v5, 6, v16, vcc4448; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v124449; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 5, v16, vcc4450; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v124451; GENERIC-NEXT:    v_cndmask_b32_e32 v11, 12, v16, vcc4452; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v124453; GENERIC-NEXT:    v_cndmask_b32_e32 v10, 11, v16, vcc4454; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v124455; GENERIC-NEXT:    v_cndmask_b32_e32 v9, 10, v16, vcc4456; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v124457; GENERIC-NEXT:    v_cndmask_b32_e32 v8, 9, v16, vcc4458; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v124459; GENERIC-NEXT:    v_cndmask_b32_e32 v15, 16, v16, vcc4460; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v124461; GENERIC-NEXT:    v_cndmask_b32_e32 v14, 15, v16, vcc4462; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 13, v124463; GENERIC-NEXT:    v_cndmask_b32_e32 v13, 14, v16, vcc4464; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v124465; GENERIC-NEXT:    v_cndmask_b32_e32 v12, 13, v16, vcc4466; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)4467; GENERIC-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:484468; GENERIC-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:324469; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:164470; GENERIC-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 04471; GENERIC-NEXT:    s_endpgm4472;4473; NOOPT-LABEL: insert_neg_inline_offset_vgpr:4474; NOOPT:       ; %bb.0: ; %entry4475; NOOPT-NEXT:    s_mov_b32 s20, SCRATCH_RSRC_DWORD04476; NOOPT-NEXT:    s_mov_b32 s21, SCRATCH_RSRC_DWORD14477; NOOPT-NEXT:    s_mov_b32 s22, -14478; NOOPT-NEXT:    s_mov_b32 s23, 0xe8f0004479; NOOPT-NEXT:    s_add_u32 s20, s20, s114480; NOOPT-NEXT:    s_addc_u32 s21, s21, 04481; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:136 ; 4-byte Folded Spill4482; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb4483; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)4484; NOOPT-NEXT:    s_mov_b32 s6, s14485; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr14486; NOOPT-NEXT:    s_mov_b32 s4, 0xf0004487; NOOPT-NEXT:    s_mov_b32 s5, -14488; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr34489; NOOPT-NEXT:    s_mov_b32 s1, s64490; NOOPT-NEXT:    s_mov_b32 s2, s54491; NOOPT-NEXT:    s_mov_b32 s3, s44492; NOOPT-NEXT:    ; implicit-def: $vgpr31 : SGPR spill to VGPR lane4493; NOOPT-NEXT:    v_writelane_b32 v31, s0, 04494; NOOPT-NEXT:    v_writelane_b32 v31, s1, 14495; NOOPT-NEXT:    v_writelane_b32 v31, s2, 24496; NOOPT-NEXT:    v_writelane_b32 v31, s3, 34497; NOOPT-NEXT:    s_mov_b32 s0, 164498; NOOPT-NEXT:    s_mov_b32 s1, 154499; NOOPT-NEXT:    s_mov_b32 s2, 144500; NOOPT-NEXT:    s_mov_b32 s3, 134501; NOOPT-NEXT:    s_mov_b32 s4, 124502; NOOPT-NEXT:    s_mov_b32 s5, 114503; NOOPT-NEXT:    s_mov_b32 s6, 104504; NOOPT-NEXT:    s_mov_b32 s7, 94505; NOOPT-NEXT:    s_mov_b32 s8, 84506; NOOPT-NEXT:    s_mov_b32 s9, 74507; NOOPT-NEXT:    s_mov_b32 s10, 64508; NOOPT-NEXT:    s_mov_b32 s11, 54509; NOOPT-NEXT:    s_mov_b32 s12, 44510; NOOPT-NEXT:    s_mov_b32 s13, 34511; NOOPT-NEXT:    s_mov_b32 s14, 24512; NOOPT-NEXT:    s_mov_b32 s15, 14513; NOOPT-NEXT:    s_waitcnt expcnt(0)4514; NOOPT-NEXT:    v_mov_b32_e32 v0, s154515; NOOPT-NEXT:    v_mov_b32_e32 v30, s144516; NOOPT-NEXT:    v_mov_b32_e32 v29, s134517; NOOPT-NEXT:    v_mov_b32_e32 v28, s124518; NOOPT-NEXT:    v_mov_b32_e32 v27, s114519; NOOPT-NEXT:    v_mov_b32_e32 v26, s104520; NOOPT-NEXT:    v_mov_b32_e32 v25, s94521; NOOPT-NEXT:    v_mov_b32_e32 v24, s84522; NOOPT-NEXT:    v_mov_b32_e32 v23, s74523; NOOPT-NEXT:    v_mov_b32_e32 v22, s64524; NOOPT-NEXT:    v_mov_b32_e32 v21, s54525; NOOPT-NEXT:    v_mov_b32_e32 v20, s44526; NOOPT-NEXT:    v_mov_b32_e32 v19, s34527; NOOPT-NEXT:    v_mov_b32_e32 v18, s24528; NOOPT-NEXT:    v_mov_b32_e32 v17, s14529; NOOPT-NEXT:    v_mov_b32_e32 v16, s04530; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec4531; NOOPT-NEXT:    v_mov_b32_e32 v1, v304532; NOOPT-NEXT:    v_mov_b32_e32 v2, v294533; NOOPT-NEXT:    v_mov_b32_e32 v3, v284534; NOOPT-NEXT:    v_mov_b32_e32 v4, v274535; NOOPT-NEXT:    v_mov_b32_e32 v5, v264536; NOOPT-NEXT:    v_mov_b32_e32 v6, v254537; NOOPT-NEXT:    v_mov_b32_e32 v7, v244538; NOOPT-NEXT:    v_mov_b32_e32 v8, v234539; NOOPT-NEXT:    v_mov_b32_e32 v9, v224540; NOOPT-NEXT:    v_mov_b32_e32 v10, v214541; NOOPT-NEXT:    v_mov_b32_e32 v11, v204542; NOOPT-NEXT:    v_mov_b32_e32 v12, v194543; NOOPT-NEXT:    v_mov_b32_e32 v13, v184544; NOOPT-NEXT:    v_mov_b32_e32 v14, v174545; NOOPT-NEXT:    v_mov_b32_e32 v15, v164546; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:72 ; 4-byte Folded Spill4547; NOOPT-NEXT:    buffer_store_dword v1, off, s[20:23], 0 offset:76 ; 4-byte Folded Spill4548; NOOPT-NEXT:    buffer_store_dword v2, off, s[20:23], 0 offset:80 ; 4-byte Folded Spill4549; NOOPT-NEXT:    buffer_store_dword v3, off, s[20:23], 0 offset:84 ; 4-byte Folded Spill4550; NOOPT-NEXT:    buffer_store_dword v4, off, s[20:23], 0 offset:88 ; 4-byte Folded Spill4551; NOOPT-NEXT:    buffer_store_dword v5, off, s[20:23], 0 offset:92 ; 4-byte Folded Spill4552; NOOPT-NEXT:    buffer_store_dword v6, off, s[20:23], 0 offset:96 ; 4-byte Folded Spill4553; NOOPT-NEXT:    buffer_store_dword v7, off, s[20:23], 0 offset:100 ; 4-byte Folded Spill4554; NOOPT-NEXT:    buffer_store_dword v8, off, s[20:23], 0 offset:104 ; 4-byte Folded Spill4555; NOOPT-NEXT:    buffer_store_dword v9, off, s[20:23], 0 offset:108 ; 4-byte Folded Spill4556; NOOPT-NEXT:    buffer_store_dword v10, off, s[20:23], 0 offset:112 ; 4-byte Folded Spill4557; NOOPT-NEXT:    buffer_store_dword v11, off, s[20:23], 0 offset:116 ; 4-byte Folded Spill4558; NOOPT-NEXT:    buffer_store_dword v12, off, s[20:23], 0 offset:120 ; 4-byte Folded Spill4559; NOOPT-NEXT:    buffer_store_dword v13, off, s[20:23], 0 offset:124 ; 4-byte Folded Spill4560; NOOPT-NEXT:    buffer_store_dword v14, off, s[20:23], 0 offset:128 ; 4-byte Folded Spill4561; NOOPT-NEXT:    buffer_store_dword v15, off, s[20:23], 0 offset:132 ; 4-byte Folded Spill4562; NOOPT-NEXT:    v_mov_b32_e32 v16, 0x1f44563; NOOPT-NEXT:    buffer_store_dword v16, off, s[20:23], 0 offset:68 ; 4-byte Folded Spill4564; NOOPT-NEXT:    s_mov_b64 s[0:1], exec4565; NOOPT-NEXT:    v_writelane_b32 v31, s0, 44566; NOOPT-NEXT:    v_writelane_b32 v31, s1, 54567; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -14568; NOOPT-NEXT:    buffer_store_dword v31, off, s[20:23], 0 ; 4-byte Folded Spill4569; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]4570; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:4 ; 4-byte Folded Spill4571; NOOPT-NEXT:    buffer_store_dword v1, off, s[20:23], 0 offset:8 ; 4-byte Folded Spill4572; NOOPT-NEXT:    buffer_store_dword v2, off, s[20:23], 0 offset:12 ; 4-byte Folded Spill4573; NOOPT-NEXT:    buffer_store_dword v3, off, s[20:23], 0 offset:16 ; 4-byte Folded Spill4574; NOOPT-NEXT:    buffer_store_dword v4, off, s[20:23], 0 offset:20 ; 4-byte Folded Spill4575; NOOPT-NEXT:    buffer_store_dword v5, off, s[20:23], 0 offset:24 ; 4-byte Folded Spill4576; NOOPT-NEXT:    buffer_store_dword v6, off, s[20:23], 0 offset:28 ; 4-byte Folded Spill4577; NOOPT-NEXT:    buffer_store_dword v7, off, s[20:23], 0 offset:32 ; 4-byte Folded Spill4578; NOOPT-NEXT:    buffer_store_dword v8, off, s[20:23], 0 offset:36 ; 4-byte Folded Spill4579; NOOPT-NEXT:    buffer_store_dword v9, off, s[20:23], 0 offset:40 ; 4-byte Folded Spill4580; NOOPT-NEXT:    buffer_store_dword v10, off, s[20:23], 0 offset:44 ; 4-byte Folded Spill4581; NOOPT-NEXT:    buffer_store_dword v11, off, s[20:23], 0 offset:48 ; 4-byte Folded Spill4582; NOOPT-NEXT:    buffer_store_dword v12, off, s[20:23], 0 offset:52 ; 4-byte Folded Spill4583; NOOPT-NEXT:    buffer_store_dword v13, off, s[20:23], 0 offset:56 ; 4-byte Folded Spill4584; NOOPT-NEXT:    buffer_store_dword v14, off, s[20:23], 0 offset:60 ; 4-byte Folded Spill4585; NOOPT-NEXT:    buffer_store_dword v15, off, s[20:23], 0 offset:64 ; 4-byte Folded Spill4586; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr14587; NOOPT-NEXT:  .LBB15_1: ; =>This Inner Loop Header: Depth=14588; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -14589; NOOPT-NEXT:    s_waitcnt expcnt(0)4590; NOOPT-NEXT:    buffer_load_dword v31, off, s[20:23], 0 ; 4-byte Folded Reload4591; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]4592; NOOPT-NEXT:    s_waitcnt vmcnt(0)4593; NOOPT-NEXT:    v_readlane_b32 s0, v31, 64594; NOOPT-NEXT:    v_readlane_b32 s1, v31, 74595; NOOPT-NEXT:    buffer_load_dword v0, off, s[20:23], 0 offset:4 ; 4-byte Folded Reload4596; NOOPT-NEXT:    buffer_load_dword v1, off, s[20:23], 0 offset:8 ; 4-byte Folded Reload4597; NOOPT-NEXT:    buffer_load_dword v2, off, s[20:23], 0 offset:12 ; 4-byte Folded Reload4598; NOOPT-NEXT:    buffer_load_dword v3, off, s[20:23], 0 offset:16 ; 4-byte Folded Reload4599; NOOPT-NEXT:    buffer_load_dword v4, off, s[20:23], 0 offset:20 ; 4-byte Folded Reload4600; NOOPT-NEXT:    buffer_load_dword v5, off, s[20:23], 0 offset:24 ; 4-byte Folded Reload4601; NOOPT-NEXT:    buffer_load_dword v6, off, s[20:23], 0 offset:28 ; 4-byte Folded Reload4602; NOOPT-NEXT:    buffer_load_dword v7, off, s[20:23], 0 offset:32 ; 4-byte Folded Reload4603; NOOPT-NEXT:    buffer_load_dword v8, off, s[20:23], 0 offset:36 ; 4-byte Folded Reload4604; NOOPT-NEXT:    s_waitcnt expcnt(6)4605; NOOPT-NEXT:    buffer_load_dword v9, off, s[20:23], 0 offset:40 ; 4-byte Folded Reload4606; NOOPT-NEXT:    s_waitcnt expcnt(5)4607; NOOPT-NEXT:    buffer_load_dword v10, off, s[20:23], 0 offset:44 ; 4-byte Folded Reload4608; NOOPT-NEXT:    s_waitcnt expcnt(4)4609; NOOPT-NEXT:    buffer_load_dword v11, off, s[20:23], 0 offset:48 ; 4-byte Folded Reload4610; NOOPT-NEXT:    s_waitcnt expcnt(3)4611; NOOPT-NEXT:    buffer_load_dword v12, off, s[20:23], 0 offset:52 ; 4-byte Folded Reload4612; NOOPT-NEXT:    s_waitcnt expcnt(2)4613; NOOPT-NEXT:    buffer_load_dword v13, off, s[20:23], 0 offset:56 ; 4-byte Folded Reload4614; NOOPT-NEXT:    s_waitcnt expcnt(1)4615; NOOPT-NEXT:    buffer_load_dword v14, off, s[20:23], 0 offset:60 ; 4-byte Folded Reload4616; NOOPT-NEXT:    s_waitcnt expcnt(0)4617; NOOPT-NEXT:    buffer_load_dword v15, off, s[20:23], 0 offset:64 ; 4-byte Folded Reload4618; NOOPT-NEXT:    buffer_load_dword v16, off, s[20:23], 0 offset:68 ; 4-byte Folded Reload4619; NOOPT-NEXT:    buffer_load_dword v17, off, s[20:23], 0 offset:136 ; 4-byte Folded Reload4620; NOOPT-NEXT:    s_waitcnt vmcnt(0)4621; NOOPT-NEXT:    v_readfirstlane_b32 s2, v174622; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[0:1], s2, v174623; NOOPT-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]4624; NOOPT-NEXT:    s_add_i32 m0, s2, -164625; NOOPT-NEXT:    v_movreld_b32_e32 v0, v164626; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:140 ; 4-byte Folded Spill4627; NOOPT-NEXT:    buffer_store_dword v1, off, s[20:23], 0 offset:144 ; 4-byte Folded Spill4628; NOOPT-NEXT:    buffer_store_dword v2, off, s[20:23], 0 offset:148 ; 4-byte Folded Spill4629; NOOPT-NEXT:    buffer_store_dword v3, off, s[20:23], 0 offset:152 ; 4-byte Folded Spill4630; NOOPT-NEXT:    buffer_store_dword v4, off, s[20:23], 0 offset:156 ; 4-byte Folded Spill4631; NOOPT-NEXT:    buffer_store_dword v5, off, s[20:23], 0 offset:160 ; 4-byte Folded Spill4632; NOOPT-NEXT:    buffer_store_dword v6, off, s[20:23], 0 offset:164 ; 4-byte Folded Spill4633; NOOPT-NEXT:    buffer_store_dword v7, off, s[20:23], 0 offset:168 ; 4-byte Folded Spill4634; NOOPT-NEXT:    buffer_store_dword v8, off, s[20:23], 0 offset:172 ; 4-byte Folded Spill4635; NOOPT-NEXT:    buffer_store_dword v9, off, s[20:23], 0 offset:176 ; 4-byte Folded Spill4636; NOOPT-NEXT:    buffer_store_dword v10, off, s[20:23], 0 offset:180 ; 4-byte Folded Spill4637; NOOPT-NEXT:    buffer_store_dword v11, off, s[20:23], 0 offset:184 ; 4-byte Folded Spill4638; NOOPT-NEXT:    buffer_store_dword v12, off, s[20:23], 0 offset:188 ; 4-byte Folded Spill4639; NOOPT-NEXT:    buffer_store_dword v13, off, s[20:23], 0 offset:192 ; 4-byte Folded Spill4640; NOOPT-NEXT:    buffer_store_dword v14, off, s[20:23], 0 offset:196 ; 4-byte Folded Spill4641; NOOPT-NEXT:    buffer_store_dword v15, off, s[20:23], 0 offset:200 ; 4-byte Folded Spill4642; NOOPT-NEXT:    buffer_store_dword v0, off, s[20:23], 0 offset:4 ; 4-byte Folded Spill4643; NOOPT-NEXT:    buffer_store_dword v1, off, s[20:23], 0 offset:8 ; 4-byte Folded Spill4644; NOOPT-NEXT:    buffer_store_dword v2, off, s[20:23], 0 offset:12 ; 4-byte Folded Spill4645; NOOPT-NEXT:    buffer_store_dword v3, off, s[20:23], 0 offset:16 ; 4-byte Folded Spill4646; NOOPT-NEXT:    buffer_store_dword v4, off, s[20:23], 0 offset:20 ; 4-byte Folded Spill4647; NOOPT-NEXT:    buffer_store_dword v5, off, s[20:23], 0 offset:24 ; 4-byte Folded Spill4648; NOOPT-NEXT:    buffer_store_dword v6, off, s[20:23], 0 offset:28 ; 4-byte Folded Spill4649; NOOPT-NEXT:    buffer_store_dword v7, off, s[20:23], 0 offset:32 ; 4-byte Folded Spill4650; NOOPT-NEXT:    buffer_store_dword v8, off, s[20:23], 0 offset:36 ; 4-byte Folded Spill4651; NOOPT-NEXT:    buffer_store_dword v9, off, s[20:23], 0 offset:40 ; 4-byte Folded Spill4652; NOOPT-NEXT:    buffer_store_dword v10, off, s[20:23], 0 offset:44 ; 4-byte Folded Spill4653; NOOPT-NEXT:    buffer_store_dword v11, off, s[20:23], 0 offset:48 ; 4-byte Folded Spill4654; NOOPT-NEXT:    buffer_store_dword v12, off, s[20:23], 0 offset:52 ; 4-byte Folded Spill4655; NOOPT-NEXT:    buffer_store_dword v13, off, s[20:23], 0 offset:56 ; 4-byte Folded Spill4656; NOOPT-NEXT:    buffer_store_dword v14, off, s[20:23], 0 offset:60 ; 4-byte Folded Spill4657; NOOPT-NEXT:    buffer_store_dword v15, off, s[20:23], 0 offset:64 ; 4-byte Folded Spill4658; NOOPT-NEXT:    s_mov_b64 s[2:3], s[0:1]4659; NOOPT-NEXT:    v_writelane_b32 v31, s2, 64660; NOOPT-NEXT:    v_writelane_b32 v31, s3, 74661; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -14662; NOOPT-NEXT:    buffer_store_dword v31, off, s[20:23], 0 ; 4-byte Folded Spill4663; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]4664; NOOPT-NEXT:    s_xor_b64 exec, exec, s[0:1]4665; NOOPT-NEXT:    s_cbranch_execnz .LBB15_14666; NOOPT-NEXT:  ; %bb.2:4667; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -14668; NOOPT-NEXT:    s_waitcnt expcnt(0)4669; NOOPT-NEXT:    buffer_load_dword v31, off, s[20:23], 0 ; 4-byte Folded Reload4670; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]4671; NOOPT-NEXT:    s_waitcnt vmcnt(0)4672; NOOPT-NEXT:    v_readlane_b32 s0, v31, 44673; NOOPT-NEXT:    v_readlane_b32 s1, v31, 54674; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]4675; NOOPT-NEXT:  ; %bb.3:4676; NOOPT-NEXT:    s_or_saveexec_b64 s[16:17], -14677; NOOPT-NEXT:    buffer_load_dword v31, off, s[20:23], 0 ; 4-byte Folded Reload4678; NOOPT-NEXT:    s_mov_b64 exec, s[16:17]4679; NOOPT-NEXT:    s_waitcnt vmcnt(0)4680; NOOPT-NEXT:    v_readlane_b32 s0, v31, 04681; NOOPT-NEXT:    v_readlane_b32 s1, v31, 14682; NOOPT-NEXT:    v_readlane_b32 s2, v31, 24683; NOOPT-NEXT:    v_readlane_b32 s3, v31, 34684; NOOPT-NEXT:    buffer_load_dword v15, off, s[20:23], 0 offset:140 ; 4-byte Folded Reload4685; NOOPT-NEXT:    buffer_load_dword v16, off, s[20:23], 0 offset:144 ; 4-byte Folded Reload4686; NOOPT-NEXT:    buffer_load_dword v17, off, s[20:23], 0 offset:148 ; 4-byte Folded Reload4687; NOOPT-NEXT:    buffer_load_dword v18, off, s[20:23], 0 offset:152 ; 4-byte Folded Reload4688; NOOPT-NEXT:    buffer_load_dword v19, off, s[20:23], 0 offset:156 ; 4-byte Folded Reload4689; NOOPT-NEXT:    buffer_load_dword v20, off, s[20:23], 0 offset:160 ; 4-byte Folded Reload4690; NOOPT-NEXT:    buffer_load_dword v21, off, s[20:23], 0 offset:164 ; 4-byte Folded Reload4691; NOOPT-NEXT:    buffer_load_dword v22, off, s[20:23], 0 offset:168 ; 4-byte Folded Reload4692; NOOPT-NEXT:    buffer_load_dword v23, off, s[20:23], 0 offset:172 ; 4-byte Folded Reload4693; NOOPT-NEXT:    buffer_load_dword v24, off, s[20:23], 0 offset:176 ; 4-byte Folded Reload4694; NOOPT-NEXT:    buffer_load_dword v25, off, s[20:23], 0 offset:180 ; 4-byte Folded Reload4695; NOOPT-NEXT:    buffer_load_dword v26, off, s[20:23], 0 offset:184 ; 4-byte Folded Reload4696; NOOPT-NEXT:    buffer_load_dword v27, off, s[20:23], 0 offset:188 ; 4-byte Folded Reload4697; NOOPT-NEXT:    buffer_load_dword v28, off, s[20:23], 0 offset:192 ; 4-byte Folded Reload4698; NOOPT-NEXT:    buffer_load_dword v29, off, s[20:23], 0 offset:196 ; 4-byte Folded Reload4699; NOOPT-NEXT:    buffer_load_dword v30, off, s[20:23], 0 offset:200 ; 4-byte Folded Reload4700; NOOPT-NEXT:    s_waitcnt vmcnt(12)4701; NOOPT-NEXT:    v_mov_b32_e32 v4, v184702; NOOPT-NEXT:    v_mov_b32_e32 v5, v174703; NOOPT-NEXT:    v_mov_b32_e32 v6, v164704; NOOPT-NEXT:    v_mov_b32_e32 v0, v154705; NOOPT-NEXT:    s_waitcnt vmcnt(8)4706; NOOPT-NEXT:    v_mov_b32_e32 v1, v224707; NOOPT-NEXT:    v_mov_b32_e32 v2, v214708; NOOPT-NEXT:    v_mov_b32_e32 v3, v204709; NOOPT-NEXT:    v_mov_b32_e32 v7, v194710; NOOPT-NEXT:    s_waitcnt vmcnt(4)4711; NOOPT-NEXT:    v_mov_b32_e32 v12, v264712; NOOPT-NEXT:    v_mov_b32_e32 v13, v254713; NOOPT-NEXT:    v_mov_b32_e32 v14, v244714; NOOPT-NEXT:    v_mov_b32_e32 v8, v234715; NOOPT-NEXT:    s_waitcnt vmcnt(0)4716; NOOPT-NEXT:    v_mov_b32_e32 v9, v304717; NOOPT-NEXT:    v_mov_b32_e32 v10, v294718; NOOPT-NEXT:    v_mov_b32_e32 v11, v284719; NOOPT-NEXT:    v_mov_b32_e32 v15, v274720; NOOPT-NEXT:    ; kill: def $vgpr15 killed $vgpr15 def $vgpr15_vgpr16_vgpr17_vgpr18 killed $exec4721; NOOPT-NEXT:    v_mov_b32_e32 v16, v114722; NOOPT-NEXT:    v_mov_b32_e32 v17, v104723; NOOPT-NEXT:    v_mov_b32_e32 v18, v94724; NOOPT-NEXT:    buffer_store_dwordx4 v[15:18], off, s[0:3], 0 offset:484725; NOOPT-NEXT:    ; kill: def $vgpr8 killed $vgpr8 def $vgpr8_vgpr9_vgpr10_vgpr11 killed $exec4726; NOOPT-NEXT:    v_mov_b32_e32 v9, v144727; NOOPT-NEXT:    v_mov_b32_e32 v10, v134728; NOOPT-NEXT:    v_mov_b32_e32 v11, v124729; NOOPT-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:324730; NOOPT-NEXT:    ; kill: def $vgpr7 killed $vgpr7 def $vgpr7_vgpr8_vgpr9_vgpr10 killed $exec4731; NOOPT-NEXT:    s_waitcnt expcnt(0)4732; NOOPT-NEXT:    v_mov_b32_e32 v8, v34733; NOOPT-NEXT:    v_mov_b32_e32 v9, v24734; NOOPT-NEXT:    v_mov_b32_e32 v10, v14735; NOOPT-NEXT:    buffer_store_dwordx4 v[7:10], off, s[0:3], 0 offset:164736; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec4737; NOOPT-NEXT:    v_mov_b32_e32 v1, v64738; NOOPT-NEXT:    v_mov_b32_e32 v2, v54739; NOOPT-NEXT:    v_mov_b32_e32 v3, v44740; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 04741; NOOPT-NEXT:    s_endpgm4742;4743; SI-MOVREL-LABEL: insert_neg_inline_offset_vgpr:4744; SI-MOVREL:       ; %bb.0: ; %entry4745; SI-MOVREL-NEXT:    v_add_i32_e32 v12, vcc, -16, v04746; SI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x1f44747; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v124748; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v3, 4, v16, vcc4749; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v124750; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v2, 3, v16, vcc4751; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v124752; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v1, 2, v16, vcc4753; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v124754; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v0, 1, v16, vcc4755; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v124756; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v7, 8, v16, vcc4757; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v124758; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v6, 7, v16, vcc4759; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v124760; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v5, 6, v16, vcc4761; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v124762; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v4, 5, v16, vcc4763; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v124764; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v11, 12, v16, vcc4765; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v124766; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v10, 11, v16, vcc4767; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v124768; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v9, 10, v16, vcc4769; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v124770; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xb4771; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v8, 9, v16, vcc4772; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v124773; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v15, 16, v16, vcc4774; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v124775; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v14, 15, v16, vcc4776; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 13, v124777; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v13, 14, v16, vcc4778; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v124779; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0004780; SI-MOVREL-NEXT:    s_mov_b32 s2, -14781; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v12, 13, v16, vcc4782; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)4783; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:484784; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:324785; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:164786; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 04787; SI-MOVREL-NEXT:    s_endpgm4788;4789; VI-LABEL: insert_neg_inline_offset_vgpr:4790; VI:       ; %bb.0: ; %entry4791; VI-NEXT:    v_add_u32_e32 v12, vcc, -16, v04792; VI-NEXT:    v_mov_b32_e32 v16, 0x1f44793; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v124794; VI-NEXT:    v_cndmask_b32_e32 v3, 4, v16, vcc4795; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v124796; VI-NEXT:    v_cndmask_b32_e32 v2, 3, v16, vcc4797; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v124798; VI-NEXT:    v_cndmask_b32_e32 v1, 2, v16, vcc4799; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v124800; VI-NEXT:    v_cndmask_b32_e32 v0, 1, v16, vcc4801; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v124802; VI-NEXT:    v_cndmask_b32_e32 v7, 8, v16, vcc4803; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v124804; VI-NEXT:    v_cndmask_b32_e32 v6, 7, v16, vcc4805; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v124806; VI-NEXT:    v_cndmask_b32_e32 v5, 6, v16, vcc4807; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v124808; VI-NEXT:    v_cndmask_b32_e32 v4, 5, v16, vcc4809; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v124810; VI-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2c4811; VI-NEXT:    v_cndmask_b32_e32 v11, 12, v16, vcc4812; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v124813; VI-NEXT:    v_cndmask_b32_e32 v10, 11, v16, vcc4814; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v124815; VI-NEXT:    v_cndmask_b32_e32 v9, 10, v16, vcc4816; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v124817; VI-NEXT:    v_cndmask_b32_e32 v8, 9, v16, vcc4818; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v124819; VI-NEXT:    v_cndmask_b32_e32 v15, 16, v16, vcc4820; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v124821; VI-NEXT:    v_cndmask_b32_e32 v14, 15, v16, vcc4822; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 13, v124823; VI-NEXT:    s_waitcnt lgkmcnt(0)4824; VI-NEXT:    s_add_u32 s2, s0, 484825; VI-NEXT:    v_cndmask_b32_e32 v13, 14, v16, vcc4826; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v124827; VI-NEXT:    s_addc_u32 s3, s1, 04828; VI-NEXT:    v_cndmask_b32_e32 v12, 13, v16, vcc4829; VI-NEXT:    v_mov_b32_e32 v17, s34830; VI-NEXT:    v_mov_b32_e32 v16, s24831; VI-NEXT:    s_add_u32 s2, s0, 324832; VI-NEXT:    s_addc_u32 s3, s1, 04833; VI-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]4834; VI-NEXT:    s_nop 04835; VI-NEXT:    v_mov_b32_e32 v13, s34836; VI-NEXT:    v_mov_b32_e32 v12, s24837; VI-NEXT:    s_add_u32 s2, s0, 164838; VI-NEXT:    s_addc_u32 s3, s1, 04839; VI-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]4840; VI-NEXT:    s_nop 04841; VI-NEXT:    v_mov_b32_e32 v9, s34842; VI-NEXT:    v_mov_b32_e32 v8, s24843; VI-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]4844; VI-NEXT:    s_nop 04845; VI-NEXT:    v_mov_b32_e32 v5, s14846; VI-NEXT:    v_mov_b32_e32 v4, s04847; VI-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]4848; VI-NEXT:    s_endpgm4849;4850; GFX9-IDXMODE-LABEL: insert_neg_inline_offset_vgpr:4851; GFX9-IDXMODE:       ; %bb.0: ; %entry4852; GFX9-IDXMODE-NEXT:    v_add_u32_e32 v12, -16, v04853; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v17, 0x1f44854; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v124855; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v3, 4, v17, vcc4856; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v124857; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 3, v17, vcc4858; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v124859; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v1, 2, v17, vcc4860; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v124861; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v0, 1, v17, vcc4862; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v124863; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v7, 8, v17, vcc4864; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v124865; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v6, 7, v17, vcc4866; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v124867; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v5, 6, v17, vcc4868; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v124869; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v4, 5, v17, vcc4870; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v124871; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v11, 12, v17, vcc4872; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v124873; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v10, 11, v17, vcc4874; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v124875; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v9, 10, v17, vcc4876; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v124877; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x2c4878; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v8, 9, v17, vcc4879; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v124880; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v15, 16, v17, vcc4881; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v124882; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v14, 15, v17, vcc4883; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 13, v124884; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v13, 14, v17, vcc4885; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v124886; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 04887; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v12, 13, v17, vcc4888; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)4889; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:484890; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1] offset:324891; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:164892; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]4893; GFX9-IDXMODE-NEXT:    s_endpgm4894entry:4895  %id = call i32 @llvm.amdgcn.workitem.id.x()4896  %index = add i32 %id, -164897  %value = insertelement <16 x i32> <i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16>, i32 500, i32 %index4898  store <16 x i32> %value, ptr addrspace(1) %out4899  ret void4900}4901 4902; When the block is split to insert the loop, make sure any other4903; places that need to be expanded in the same block are also handled.4904define amdgpu_kernel void @extract_vgpr_offset_multiple_in_block(ptr addrspace(1) %out0, ptr addrspace(1) %out1, ptr addrspace(1) %in) {4905; GENERIC-LABEL: extract_vgpr_offset_multiple_in_block:4906; GENERIC:       ; %bb.0: ; %entry4907; GENERIC-NEXT:    s_load_dwordx2 s[8:9], s[4:5], 0xd4908; GENERIC-NEXT:    s_mov_b32 s3, 0xf0004909; GENERIC-NEXT:    s_mov_b32 s10, 04910; GENERIC-NEXT:    v_lshlrev_b32_e32 v1, 2, v04911; GENERIC-NEXT:    v_mov_b32_e32 v2, 04912; GENERIC-NEXT:    s_mov_b32 s11, s34913; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)4914; GENERIC-NEXT:    buffer_load_dword v1, v[1:2], s[8:11], 0 addr64 glc4915; GENERIC-NEXT:    s_waitcnt vmcnt(0)4916; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x94917; GENERIC-NEXT:    s_mov_b32 s2, -14918; GENERIC-NEXT:    ;;#ASMSTART4919; GENERIC-NEXT:    s_mov_b32 s4, 174920; GENERIC-NEXT:    ;;#ASMEND4921; GENERIC-NEXT:    v_add_i32_e32 v2, vcc, 1, v14922; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v14923; GENERIC-NEXT:    v_cndmask_b32_e64 v3, 7, 9, vcc4924; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 2, v14925; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 11, v3, vcc4926; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v24927; GENERIC-NEXT:    v_cndmask_b32_e64 v4, 7, 9, vcc4928; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 3, v14929; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 13, v3, vcc4930; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 2, v24931; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 11, v4, vcc4932; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 4, v14933; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 5, v3, vcc4934; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 3, v24935; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 13, v4, vcc4936; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 5, v14937; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 6, v3, vcc4938; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 4, v24939; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 5, v4, vcc4940; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 6, v14941; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 7, v3, vcc4942; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 5, v24943; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 6, v4, vcc4944; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 7, v14945; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 8, v3, vcc4946; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 6, v24947; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 7, v4, vcc4948; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 8, v14949; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 9, v3, vcc4950; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 7, v24951; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 8, v4, vcc4952; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 9, v14953; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 10, v3, vcc4954; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 8, v24955; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 9, v4, vcc4956; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 10, v14957; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 11, v3, vcc4958; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 9, v24959; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 10, v4, vcc4960; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 11, v14961; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 12, v3, vcc4962; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 10, v24963; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 11, v4, vcc4964; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 12, v14965; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 13, v3, vcc4966; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 11, v24967; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 12, v4, vcc4968; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 13, v14969; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 14, v3, vcc4970; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 12, v24971; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 13, v4, vcc4972; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 14, v14973; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 15, v3, vcc4974; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 13, v24975; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 14, v4, vcc4976; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 15, v14977; GENERIC-NEXT:    v_cndmask_b32_e32 v1, 16, v3, vcc4978; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 14, v24979; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 15, v4, vcc4980; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 15, v24981; GENERIC-NEXT:    v_cndmask_b32_e32 v2, 16, v3, vcc4982; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)4983; GENERIC-NEXT:    buffer_store_dword v1, off, s[0:3], 04984; GENERIC-NEXT:    s_waitcnt vmcnt(0)4985; GENERIC-NEXT:    buffer_store_dword v2, off, s[0:3], 04986; GENERIC-NEXT:    s_waitcnt vmcnt(0)4987; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v04988; GENERIC-NEXT:    s_and_saveexec_b64 s[0:1], vcc4989; GENERIC-NEXT:    s_cbranch_execz .LBB16_24990; GENERIC-NEXT:  ; %bb.1: ; %bb14991; GENERIC-NEXT:    v_mov_b32_e32 v0, s44992; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 04993; GENERIC-NEXT:    s_waitcnt vmcnt(0)4994; GENERIC-NEXT:  .LBB16_2: ; %bb24995; GENERIC-NEXT:    s_endpgm4996;4997; NOOPT-LABEL: extract_vgpr_offset_multiple_in_block:4998; NOOPT:       ; %bb.0: ; %entry4999; NOOPT-NEXT:    s_mov_b32 s36, SCRATCH_RSRC_DWORD05000; NOOPT-NEXT:    s_mov_b32 s37, SCRATCH_RSRC_DWORD15001; NOOPT-NEXT:    s_mov_b32 s38, -15002; NOOPT-NEXT:    s_mov_b32 s39, 0xe8f0005003; NOOPT-NEXT:    s_add_u32 s36, s36, s115004; NOOPT-NEXT:    s_addc_u32 s37, s37, 05005; NOOPT-NEXT:    buffer_store_dword v0, off, s[36:39], 0 offset:76 ; 4-byte Folded Spill5006; NOOPT-NEXT:    s_load_dwordx2 s[2:3], s[4:5], 0x95007; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xd5008; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)5009; NOOPT-NEXT:    s_mov_b32 s8, s35010; NOOPT-NEXT:    s_mov_b32 s4, s25011; NOOPT-NEXT:    s_mov_b32 s2, 0xf0005012; NOOPT-NEXT:    s_mov_b32 s3, -15013; NOOPT-NEXT:    ; kill: def $sgpr4 killed $sgpr4 def $sgpr4_sgpr5_sgpr6_sgpr75014; NOOPT-NEXT:    s_mov_b32 s5, s85015; NOOPT-NEXT:    s_mov_b32 s6, s35016; NOOPT-NEXT:    s_mov_b32 s7, s25017; NOOPT-NEXT:    ; implicit-def: $vgpr18 : SGPR spill to VGPR lane5018; NOOPT-NEXT:    v_writelane_b32 v18, s4, 05019; NOOPT-NEXT:    v_writelane_b32 v18, s5, 15020; NOOPT-NEXT:    v_writelane_b32 v18, s6, 25021; NOOPT-NEXT:    v_writelane_b32 v18, s7, 35022; NOOPT-NEXT:    s_mov_b32 s4, 05023; NOOPT-NEXT:    v_writelane_b32 v18, s4, 45024; NOOPT-NEXT:    ; kill: def $sgpr4 killed $sgpr4 def $sgpr4_sgpr55025; NOOPT-NEXT:    s_mov_b32 s5, s25026; NOOPT-NEXT:    ; kill: def $sgpr0_sgpr1 killed $sgpr0_sgpr1 def $sgpr0_sgpr1_sgpr2_sgpr35027; NOOPT-NEXT:    s_mov_b64 s[2:3], s[4:5]5028; NOOPT-NEXT:    s_mov_b32 s4, 25029; NOOPT-NEXT:    s_waitcnt expcnt(0)5030; NOOPT-NEXT:    v_lshlrev_b32_e64 v0, s4, v05031; NOOPT-NEXT:    v_mov_b32_e32 v2, 05032; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1 killed $exec5033; NOOPT-NEXT:    v_mov_b32_e32 v1, v25034; NOOPT-NEXT:    buffer_load_dword v0, v[0:1], s[0:3], 0 addr64 glc5035; NOOPT-NEXT:    s_waitcnt vmcnt(0)5036; NOOPT-NEXT:    buffer_store_dword v0, off, s[36:39], 0 offset:72 ; 4-byte Folded Spill5037; NOOPT-NEXT:    s_mov_b32 s0, 15038; NOOPT-NEXT:    s_waitcnt expcnt(0)5039; NOOPT-NEXT:    v_add_i32_e64 v0, s[0:1], v0, s05040; NOOPT-NEXT:    buffer_store_dword v0, off, s[36:39], 0 offset:68 ; 4-byte Folded Spill5041; NOOPT-NEXT:    s_mov_b32 s16, 165042; NOOPT-NEXT:    s_mov_b32 s17, 155043; NOOPT-NEXT:    s_mov_b32 s18, 145044; NOOPT-NEXT:    s_mov_b32 s20, 125045; NOOPT-NEXT:    s_mov_b32 s22, 105046; NOOPT-NEXT:    s_mov_b32 s24, 85047; NOOPT-NEXT:    s_mov_b32 s26, 65048; NOOPT-NEXT:    s_mov_b32 s27, 55049; NOOPT-NEXT:    s_mov_b32 s19, 135050; NOOPT-NEXT:    s_mov_b32 s21, 115051; NOOPT-NEXT:    s_mov_b32 s23, 95052; NOOPT-NEXT:    s_mov_b32 s25, 75053; NOOPT-NEXT:    s_mov_b32 s0, s255054; NOOPT-NEXT:    s_mov_b32 s1, s235055; NOOPT-NEXT:    s_mov_b32 s2, s215056; NOOPT-NEXT:    s_mov_b32 s3, s195057; NOOPT-NEXT:    s_mov_b32 s4, s275058; NOOPT-NEXT:    s_mov_b32 s5, s265059; NOOPT-NEXT:    s_mov_b32 s6, s255060; NOOPT-NEXT:    s_mov_b32 s7, s245061; NOOPT-NEXT:    s_mov_b32 s8, s235062; NOOPT-NEXT:    s_mov_b32 s9, s225063; NOOPT-NEXT:    s_mov_b32 s10, s215064; NOOPT-NEXT:    s_mov_b32 s11, s205065; NOOPT-NEXT:    s_mov_b32 s12, s195066; NOOPT-NEXT:    s_mov_b32 s13, s185067; NOOPT-NEXT:    s_mov_b32 s14, s175068; NOOPT-NEXT:    s_mov_b32 s15, s165069; NOOPT-NEXT:    v_writelane_b32 v18, s0, 55070; NOOPT-NEXT:    v_writelane_b32 v18, s1, 65071; NOOPT-NEXT:    v_writelane_b32 v18, s2, 75072; NOOPT-NEXT:    v_writelane_b32 v18, s3, 85073; NOOPT-NEXT:    v_writelane_b32 v18, s4, 95074; NOOPT-NEXT:    v_writelane_b32 v18, s5, 105075; NOOPT-NEXT:    v_writelane_b32 v18, s6, 115076; NOOPT-NEXT:    v_writelane_b32 v18, s7, 125077; NOOPT-NEXT:    v_writelane_b32 v18, s8, 135078; NOOPT-NEXT:    v_writelane_b32 v18, s9, 145079; NOOPT-NEXT:    v_writelane_b32 v18, s10, 155080; NOOPT-NEXT:    v_writelane_b32 v18, s11, 165081; NOOPT-NEXT:    v_writelane_b32 v18, s12, 175082; NOOPT-NEXT:    v_writelane_b32 v18, s13, 185083; NOOPT-NEXT:    v_writelane_b32 v18, s14, 195084; NOOPT-NEXT:    v_writelane_b32 v18, s15, 205085; NOOPT-NEXT:    s_waitcnt expcnt(0)5086; NOOPT-NEXT:    v_mov_b32_e32 v0, s05087; NOOPT-NEXT:    v_mov_b32_e32 v1, s15088; NOOPT-NEXT:    v_mov_b32_e32 v2, s25089; NOOPT-NEXT:    v_mov_b32_e32 v3, s35090; NOOPT-NEXT:    v_mov_b32_e32 v4, s45091; NOOPT-NEXT:    v_mov_b32_e32 v5, s55092; NOOPT-NEXT:    v_mov_b32_e32 v6, s65093; NOOPT-NEXT:    v_mov_b32_e32 v7, s75094; NOOPT-NEXT:    v_mov_b32_e32 v8, s85095; NOOPT-NEXT:    v_mov_b32_e32 v9, s95096; NOOPT-NEXT:    v_mov_b32_e32 v10, s105097; NOOPT-NEXT:    v_mov_b32_e32 v11, s115098; NOOPT-NEXT:    v_mov_b32_e32 v12, s125099; NOOPT-NEXT:    v_mov_b32_e32 v13, s135100; NOOPT-NEXT:    v_mov_b32_e32 v14, s145101; NOOPT-NEXT:    v_mov_b32_e32 v15, s155102; NOOPT-NEXT:    buffer_store_dword v0, off, s[36:39], 0 offset:4 ; 4-byte Folded Spill5103; NOOPT-NEXT:    buffer_store_dword v1, off, s[36:39], 0 offset:8 ; 4-byte Folded Spill5104; NOOPT-NEXT:    buffer_store_dword v2, off, s[36:39], 0 offset:12 ; 4-byte Folded Spill5105; NOOPT-NEXT:    buffer_store_dword v3, off, s[36:39], 0 offset:16 ; 4-byte Folded Spill5106; NOOPT-NEXT:    buffer_store_dword v4, off, s[36:39], 0 offset:20 ; 4-byte Folded Spill5107; NOOPT-NEXT:    buffer_store_dword v5, off, s[36:39], 0 offset:24 ; 4-byte Folded Spill5108; NOOPT-NEXT:    buffer_store_dword v6, off, s[36:39], 0 offset:28 ; 4-byte Folded Spill5109; NOOPT-NEXT:    buffer_store_dword v7, off, s[36:39], 0 offset:32 ; 4-byte Folded Spill5110; NOOPT-NEXT:    buffer_store_dword v8, off, s[36:39], 0 offset:36 ; 4-byte Folded Spill5111; NOOPT-NEXT:    buffer_store_dword v9, off, s[36:39], 0 offset:40 ; 4-byte Folded Spill5112; NOOPT-NEXT:    buffer_store_dword v10, off, s[36:39], 0 offset:44 ; 4-byte Folded Spill5113; NOOPT-NEXT:    buffer_store_dword v11, off, s[36:39], 0 offset:48 ; 4-byte Folded Spill5114; NOOPT-NEXT:    buffer_store_dword v12, off, s[36:39], 0 offset:52 ; 4-byte Folded Spill5115; NOOPT-NEXT:    buffer_store_dword v13, off, s[36:39], 0 offset:56 ; 4-byte Folded Spill5116; NOOPT-NEXT:    buffer_store_dword v14, off, s[36:39], 0 offset:60 ; 4-byte Folded Spill5117; NOOPT-NEXT:    buffer_store_dword v15, off, s[36:39], 0 offset:64 ; 4-byte Folded Spill5118; NOOPT-NEXT:    s_mov_b64 s[0:1], exec5119; NOOPT-NEXT:    v_writelane_b32 v18, s0, 215120; NOOPT-NEXT:    v_writelane_b32 v18, s1, 225121; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15122; NOOPT-NEXT:    buffer_store_dword v18, off, s[36:39], 0 ; 4-byte Folded Spill5123; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5124; NOOPT-NEXT:    ; implicit-def: $vgpr05125; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr15126; NOOPT-NEXT:  .LBB16_1: ; =>This Inner Loop Header: Depth=15127; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15128; NOOPT-NEXT:    s_waitcnt expcnt(0)5129; NOOPT-NEXT:    buffer_load_dword v18, off, s[36:39], 0 ; 4-byte Folded Reload5130; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5131; NOOPT-NEXT:    s_waitcnt vmcnt(0)5132; NOOPT-NEXT:    v_readlane_b32 s0, v18, 235133; NOOPT-NEXT:    v_readlane_b32 s1, v18, 245134; NOOPT-NEXT:    buffer_load_dword v17, off, s[36:39], 0 offset:80 ; 4-byte Folded Reload5135; NOOPT-NEXT:    buffer_load_dword v0, off, s[36:39], 0 offset:4 ; 4-byte Folded Reload5136; NOOPT-NEXT:    buffer_load_dword v1, off, s[36:39], 0 offset:8 ; 4-byte Folded Reload5137; NOOPT-NEXT:    buffer_load_dword v2, off, s[36:39], 0 offset:12 ; 4-byte Folded Reload5138; NOOPT-NEXT:    buffer_load_dword v3, off, s[36:39], 0 offset:16 ; 4-byte Folded Reload5139; NOOPT-NEXT:    buffer_load_dword v4, off, s[36:39], 0 offset:20 ; 4-byte Folded Reload5140; NOOPT-NEXT:    buffer_load_dword v5, off, s[36:39], 0 offset:24 ; 4-byte Folded Reload5141; NOOPT-NEXT:    buffer_load_dword v6, off, s[36:39], 0 offset:28 ; 4-byte Folded Reload5142; NOOPT-NEXT:    buffer_load_dword v7, off, s[36:39], 0 offset:32 ; 4-byte Folded Reload5143; NOOPT-NEXT:    buffer_load_dword v8, off, s[36:39], 0 offset:36 ; 4-byte Folded Reload5144; NOOPT-NEXT:    buffer_load_dword v9, off, s[36:39], 0 offset:40 ; 4-byte Folded Reload5145; NOOPT-NEXT:    buffer_load_dword v10, off, s[36:39], 0 offset:44 ; 4-byte Folded Reload5146; NOOPT-NEXT:    buffer_load_dword v11, off, s[36:39], 0 offset:48 ; 4-byte Folded Reload5147; NOOPT-NEXT:    buffer_load_dword v12, off, s[36:39], 0 offset:52 ; 4-byte Folded Reload5148; NOOPT-NEXT:    buffer_load_dword v13, off, s[36:39], 0 offset:56 ; 4-byte Folded Reload5149; NOOPT-NEXT:    buffer_load_dword v14, off, s[36:39], 0 offset:60 ; 4-byte Folded Reload5150; NOOPT-NEXT:    buffer_load_dword v15, off, s[36:39], 0 offset:64 ; 4-byte Folded Reload5151; NOOPT-NEXT:    buffer_load_dword v16, off, s[36:39], 0 offset:72 ; 4-byte Folded Reload5152; NOOPT-NEXT:    s_waitcnt vmcnt(0)5153; NOOPT-NEXT:    v_readfirstlane_b32 s2, v165154; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[0:1], s2, v165155; NOOPT-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]5156; NOOPT-NEXT:    s_mov_b32 m0, s25157; NOOPT-NEXT:    v_movrels_b32_e32 v0, v05158; NOOPT-NEXT:    buffer_store_dword v0, off, s[36:39], 0 offset:84 ; 4-byte Folded Spill5159; NOOPT-NEXT:    buffer_store_dword v0, off, s[36:39], 0 offset:80 ; 4-byte Folded Spill5160; NOOPT-NEXT:    s_mov_b64 s[2:3], s[0:1]5161; NOOPT-NEXT:    v_writelane_b32 v18, s2, 235162; NOOPT-NEXT:    v_writelane_b32 v18, s3, 245163; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15164; NOOPT-NEXT:    buffer_store_dword v18, off, s[36:39], 0 ; 4-byte Folded Spill5165; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5166; NOOPT-NEXT:    s_xor_b64 exec, exec, s[0:1]5167; NOOPT-NEXT:    s_cbranch_execnz .LBB16_15168; NOOPT-NEXT:  ; %bb.2:5169; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15170; NOOPT-NEXT:    s_waitcnt expcnt(0)5171; NOOPT-NEXT:    buffer_load_dword v18, off, s[36:39], 0 ; 4-byte Folded Reload5172; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5173; NOOPT-NEXT:    s_waitcnt vmcnt(0)5174; NOOPT-NEXT:    v_readlane_b32 s0, v18, 215175; NOOPT-NEXT:    v_readlane_b32 s1, v18, 225176; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]5177; NOOPT-NEXT:  ; %bb.3:5178; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15179; NOOPT-NEXT:    buffer_load_dword v18, off, s[36:39], 0 ; 4-byte Folded Reload5180; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5181; NOOPT-NEXT:    ;;#ASMSTART5182; NOOPT-NEXT:    s_mov_b32 s4, 175183; NOOPT-NEXT:    ;;#ASMEND5184; NOOPT-NEXT:    s_mov_b32 s16, s45185; NOOPT-NEXT:    s_waitcnt vmcnt(0)5186; NOOPT-NEXT:    v_readlane_b32 s0, v18, 55187; NOOPT-NEXT:    v_readlane_b32 s1, v18, 65188; NOOPT-NEXT:    v_readlane_b32 s2, v18, 75189; NOOPT-NEXT:    v_readlane_b32 s3, v18, 85190; NOOPT-NEXT:    v_readlane_b32 s4, v18, 95191; NOOPT-NEXT:    v_readlane_b32 s5, v18, 105192; NOOPT-NEXT:    v_readlane_b32 s6, v18, 115193; NOOPT-NEXT:    v_readlane_b32 s7, v18, 125194; NOOPT-NEXT:    v_readlane_b32 s8, v18, 135195; NOOPT-NEXT:    v_readlane_b32 s9, v18, 145196; NOOPT-NEXT:    v_readlane_b32 s10, v18, 155197; NOOPT-NEXT:    v_readlane_b32 s11, v18, 165198; NOOPT-NEXT:    v_readlane_b32 s12, v18, 175199; NOOPT-NEXT:    v_readlane_b32 s13, v18, 185200; NOOPT-NEXT:    v_readlane_b32 s14, v18, 195201; NOOPT-NEXT:    v_readlane_b32 s15, v18, 205202; NOOPT-NEXT:    v_writelane_b32 v18, s16, 255203; NOOPT-NEXT:    v_mov_b32_e32 v0, s05204; NOOPT-NEXT:    v_mov_b32_e32 v1, s15205; NOOPT-NEXT:    v_mov_b32_e32 v2, s25206; NOOPT-NEXT:    v_mov_b32_e32 v3, s35207; NOOPT-NEXT:    v_mov_b32_e32 v4, s45208; NOOPT-NEXT:    v_mov_b32_e32 v5, s55209; NOOPT-NEXT:    v_mov_b32_e32 v6, s65210; NOOPT-NEXT:    v_mov_b32_e32 v7, s75211; NOOPT-NEXT:    v_mov_b32_e32 v8, s85212; NOOPT-NEXT:    v_mov_b32_e32 v9, s95213; NOOPT-NEXT:    v_mov_b32_e32 v10, s105214; NOOPT-NEXT:    v_mov_b32_e32 v11, s115215; NOOPT-NEXT:    v_mov_b32_e32 v12, s125216; NOOPT-NEXT:    v_mov_b32_e32 v13, s135217; NOOPT-NEXT:    v_mov_b32_e32 v14, s145218; NOOPT-NEXT:    v_mov_b32_e32 v15, s155219; NOOPT-NEXT:    buffer_store_dword v0, off, s[36:39], 0 offset:88 ; 4-byte Folded Spill5220; NOOPT-NEXT:    buffer_store_dword v1, off, s[36:39], 0 offset:92 ; 4-byte Folded Spill5221; NOOPT-NEXT:    buffer_store_dword v2, off, s[36:39], 0 offset:96 ; 4-byte Folded Spill5222; NOOPT-NEXT:    buffer_store_dword v3, off, s[36:39], 0 offset:100 ; 4-byte Folded Spill5223; NOOPT-NEXT:    buffer_store_dword v4, off, s[36:39], 0 offset:104 ; 4-byte Folded Spill5224; NOOPT-NEXT:    buffer_store_dword v5, off, s[36:39], 0 offset:108 ; 4-byte Folded Spill5225; NOOPT-NEXT:    buffer_store_dword v6, off, s[36:39], 0 offset:112 ; 4-byte Folded Spill5226; NOOPT-NEXT:    buffer_store_dword v7, off, s[36:39], 0 offset:116 ; 4-byte Folded Spill5227; NOOPT-NEXT:    buffer_store_dword v8, off, s[36:39], 0 offset:120 ; 4-byte Folded Spill5228; NOOPT-NEXT:    buffer_store_dword v9, off, s[36:39], 0 offset:124 ; 4-byte Folded Spill5229; NOOPT-NEXT:    buffer_store_dword v10, off, s[36:39], 0 offset:128 ; 4-byte Folded Spill5230; NOOPT-NEXT:    buffer_store_dword v11, off, s[36:39], 0 offset:132 ; 4-byte Folded Spill5231; NOOPT-NEXT:    buffer_store_dword v12, off, s[36:39], 0 offset:136 ; 4-byte Folded Spill5232; NOOPT-NEXT:    buffer_store_dword v13, off, s[36:39], 0 offset:140 ; 4-byte Folded Spill5233; NOOPT-NEXT:    buffer_store_dword v14, off, s[36:39], 0 offset:144 ; 4-byte Folded Spill5234; NOOPT-NEXT:    buffer_store_dword v15, off, s[36:39], 0 offset:148 ; 4-byte Folded Spill5235; NOOPT-NEXT:    s_mov_b64 s[0:1], exec5236; NOOPT-NEXT:    v_writelane_b32 v18, s0, 265237; NOOPT-NEXT:    v_writelane_b32 v18, s1, 275238; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15239; NOOPT-NEXT:    buffer_store_dword v18, off, s[36:39], 0 ; 4-byte Folded Spill5240; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5241; NOOPT-NEXT:    ; implicit-def: $vgpr05242; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr15243; NOOPT-NEXT:  .LBB16_4: ; =>This Inner Loop Header: Depth=15244; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15245; NOOPT-NEXT:    s_waitcnt expcnt(0)5246; NOOPT-NEXT:    buffer_load_dword v18, off, s[36:39], 0 ; 4-byte Folded Reload5247; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5248; NOOPT-NEXT:    s_waitcnt vmcnt(0)5249; NOOPT-NEXT:    v_readlane_b32 s0, v18, 285250; NOOPT-NEXT:    v_readlane_b32 s1, v18, 295251; NOOPT-NEXT:    buffer_load_dword v17, off, s[36:39], 0 offset:152 ; 4-byte Folded Reload5252; NOOPT-NEXT:    buffer_load_dword v0, off, s[36:39], 0 offset:88 ; 4-byte Folded Reload5253; NOOPT-NEXT:    buffer_load_dword v1, off, s[36:39], 0 offset:92 ; 4-byte Folded Reload5254; NOOPT-NEXT:    buffer_load_dword v2, off, s[36:39], 0 offset:96 ; 4-byte Folded Reload5255; NOOPT-NEXT:    buffer_load_dword v3, off, s[36:39], 0 offset:100 ; 4-byte Folded Reload5256; NOOPT-NEXT:    buffer_load_dword v4, off, s[36:39], 0 offset:104 ; 4-byte Folded Reload5257; NOOPT-NEXT:    buffer_load_dword v5, off, s[36:39], 0 offset:108 ; 4-byte Folded Reload5258; NOOPT-NEXT:    buffer_load_dword v6, off, s[36:39], 0 offset:112 ; 4-byte Folded Reload5259; NOOPT-NEXT:    buffer_load_dword v7, off, s[36:39], 0 offset:116 ; 4-byte Folded Reload5260; NOOPT-NEXT:    buffer_load_dword v8, off, s[36:39], 0 offset:120 ; 4-byte Folded Reload5261; NOOPT-NEXT:    buffer_load_dword v9, off, s[36:39], 0 offset:124 ; 4-byte Folded Reload5262; NOOPT-NEXT:    buffer_load_dword v10, off, s[36:39], 0 offset:128 ; 4-byte Folded Reload5263; NOOPT-NEXT:    buffer_load_dword v11, off, s[36:39], 0 offset:132 ; 4-byte Folded Reload5264; NOOPT-NEXT:    buffer_load_dword v12, off, s[36:39], 0 offset:136 ; 4-byte Folded Reload5265; NOOPT-NEXT:    buffer_load_dword v13, off, s[36:39], 0 offset:140 ; 4-byte Folded Reload5266; NOOPT-NEXT:    buffer_load_dword v14, off, s[36:39], 0 offset:144 ; 4-byte Folded Reload5267; NOOPT-NEXT:    buffer_load_dword v15, off, s[36:39], 0 offset:148 ; 4-byte Folded Reload5268; NOOPT-NEXT:    buffer_load_dword v16, off, s[36:39], 0 offset:68 ; 4-byte Folded Reload5269; NOOPT-NEXT:    s_waitcnt vmcnt(0)5270; NOOPT-NEXT:    v_readfirstlane_b32 s2, v165271; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[0:1], s2, v165272; NOOPT-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]5273; NOOPT-NEXT:    s_mov_b32 m0, s25274; NOOPT-NEXT:    v_movrels_b32_e32 v0, v05275; NOOPT-NEXT:    buffer_store_dword v0, off, s[36:39], 0 offset:156 ; 4-byte Folded Spill5276; NOOPT-NEXT:    buffer_store_dword v0, off, s[36:39], 0 offset:152 ; 4-byte Folded Spill5277; NOOPT-NEXT:    s_mov_b64 s[2:3], s[0:1]5278; NOOPT-NEXT:    v_writelane_b32 v18, s2, 285279; NOOPT-NEXT:    v_writelane_b32 v18, s3, 295280; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15281; NOOPT-NEXT:    buffer_store_dword v18, off, s[36:39], 0 ; 4-byte Folded Spill5282; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5283; NOOPT-NEXT:    s_xor_b64 exec, exec, s[0:1]5284; NOOPT-NEXT:    s_cbranch_execnz .LBB16_45285; NOOPT-NEXT:  ; %bb.5:5286; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15287; NOOPT-NEXT:    s_waitcnt expcnt(0)5288; NOOPT-NEXT:    buffer_load_dword v18, off, s[36:39], 0 ; 4-byte Folded Reload5289; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5290; NOOPT-NEXT:    s_waitcnt vmcnt(0)5291; NOOPT-NEXT:    v_readlane_b32 s0, v18, 265292; NOOPT-NEXT:    v_readlane_b32 s1, v18, 275293; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]5294; NOOPT-NEXT:  ; %bb.6:5295; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15296; NOOPT-NEXT:    buffer_load_dword v18, off, s[36:39], 0 ; 4-byte Folded Reload5297; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5298; NOOPT-NEXT:    s_waitcnt vmcnt(0)5299; NOOPT-NEXT:    v_readlane_b32 s0, v18, 45300; NOOPT-NEXT:    v_readlane_b32 s4, v18, 05301; NOOPT-NEXT:    v_readlane_b32 s5, v18, 15302; NOOPT-NEXT:    v_readlane_b32 s6, v18, 25303; NOOPT-NEXT:    v_readlane_b32 s7, v18, 35304; NOOPT-NEXT:    buffer_load_dword v0, off, s[36:39], 0 offset:76 ; 4-byte Folded Reload5305; NOOPT-NEXT:    buffer_load_dword v1, off, s[36:39], 0 offset:156 ; 4-byte Folded Reload5306; NOOPT-NEXT:    buffer_load_dword v2, off, s[36:39], 0 offset:84 ; 4-byte Folded Reload5307; NOOPT-NEXT:    s_waitcnt vmcnt(0)5308; NOOPT-NEXT:    buffer_store_dword v2, off, s[4:7], 05309; NOOPT-NEXT:    s_waitcnt vmcnt(0)5310; NOOPT-NEXT:    buffer_store_dword v1, off, s[4:7], 05311; NOOPT-NEXT:    s_waitcnt vmcnt(0)5312; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[2:3], v0, s05313; NOOPT-NEXT:    s_mov_b64 s[0:1], exec5314; NOOPT-NEXT:    v_writelane_b32 v18, s0, 305315; NOOPT-NEXT:    v_writelane_b32 v18, s1, 315316; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15317; NOOPT-NEXT:    buffer_store_dword v18, off, s[36:39], 0 ; 4-byte Folded Spill5318; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5319; NOOPT-NEXT:    s_and_b64 s[0:1], s[0:1], s[2:3]5320; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]5321; NOOPT-NEXT:    s_cbranch_execz .LBB16_85322; NOOPT-NEXT:  ; %bb.7: ; %bb15323; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15324; NOOPT-NEXT:    s_waitcnt expcnt(0)5325; NOOPT-NEXT:    buffer_load_dword v18, off, s[36:39], 0 ; 4-byte Folded Reload5326; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5327; NOOPT-NEXT:    s_waitcnt vmcnt(0)5328; NOOPT-NEXT:    v_readlane_b32 s4, v18, 255329; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr15330; NOOPT-NEXT:    s_mov_b32 s7, s15331; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr15332; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr15333; NOOPT-NEXT:    s_mov_b32 s5, 0xf0005334; NOOPT-NEXT:    s_mov_b32 s6, -15335; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr35336; NOOPT-NEXT:    s_mov_b32 s1, s75337; NOOPT-NEXT:    s_mov_b32 s2, s65338; NOOPT-NEXT:    s_mov_b32 s3, s55339; NOOPT-NEXT:    v_mov_b32_e32 v0, s45340; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 05341; NOOPT-NEXT:    s_waitcnt vmcnt(0)5342; NOOPT-NEXT:  .LBB16_8: ; %bb25343; NOOPT-NEXT:    s_or_saveexec_b64 s[28:29], -15344; NOOPT-NEXT:    s_waitcnt expcnt(0)5345; NOOPT-NEXT:    buffer_load_dword v18, off, s[36:39], 0 ; 4-byte Folded Reload5346; NOOPT-NEXT:    s_mov_b64 exec, s[28:29]5347; NOOPT-NEXT:    s_waitcnt vmcnt(0)5348; NOOPT-NEXT:    v_readlane_b32 s0, v18, 305349; NOOPT-NEXT:    v_readlane_b32 s1, v18, 315350; NOOPT-NEXT:    s_or_b64 exec, exec, s[0:1]5351; NOOPT-NEXT:    s_endpgm5352;5353; SI-MOVREL-LABEL: extract_vgpr_offset_multiple_in_block:5354; SI-MOVREL:       ; %bb.0: ; %entry5355; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0xd5356; SI-MOVREL-NEXT:    s_load_dwordx2 s[8:9], s[4:5], 0x95357; SI-MOVREL-NEXT:    s_mov_b32 s11, 0xf0005358; SI-MOVREL-NEXT:    s_mov_b32 s2, 05359; SI-MOVREL-NEXT:    s_mov_b32 s3, s115360; SI-MOVREL-NEXT:    v_lshlrev_b32_e32 v1, 2, v05361; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 05362; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)5363; SI-MOVREL-NEXT:    buffer_load_dword v1, v[1:2], s[0:3], 0 addr64 glc5364; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)5365; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v05366; SI-MOVREL-NEXT:    s_mov_b32 s10, -15367; SI-MOVREL-NEXT:    ;;#ASMSTART5368; SI-MOVREL-NEXT:    s_mov_b32 s4, 175369; SI-MOVREL-NEXT:    ;;#ASMEND5370; SI-MOVREL-NEXT:    v_add_i32_e64 v0, s[0:1], 1, v15371; SI-MOVREL-NEXT:    v_cmp_eq_u32_e64 s[0:1], 1, v15372; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 7, 9, s[0:1]5373; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 2, v15374; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 11, v2, s[0:1]5375; SI-MOVREL-NEXT:    v_cmp_eq_u32_e64 s[0:1], 1, v05376; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 7, 9, s[0:1]5377; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 3, v15378; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 13, v2, s[0:1]5379; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 2, v05380; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 11, v3, s[0:1]5381; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 4, v15382; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 5, v2, s[0:1]5383; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 3, v05384; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 13, v3, s[0:1]5385; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 5, v15386; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 6, v2, s[0:1]5387; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 4, v05388; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 5, v3, s[0:1]5389; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 6, v15390; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 7, v2, s[0:1]5391; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 5, v05392; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 6, v3, s[0:1]5393; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 7, v15394; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 8, v2, s[0:1]5395; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 6, v05396; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 7, v3, s[0:1]5397; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 8, v15398; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 9, v2, s[0:1]5399; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 7, v05400; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 8, v3, s[0:1]5401; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 9, v15402; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 10, v2, s[0:1]5403; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 8, v05404; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 9, v3, s[0:1]5405; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 10, v15406; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 11, v2, s[0:1]5407; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 9, v05408; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 10, v3, s[0:1]5409; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 11, v15410; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 12, v2, s[0:1]5411; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 10, v05412; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 11, v3, s[0:1]5413; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 12, v15414; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 13, v2, s[0:1]5415; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 11, v05416; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 12, v3, s[0:1]5417; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 13, v15418; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 14, v2, s[0:1]5419; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 12, v05420; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 13, v3, s[0:1]5421; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 14, v15422; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 15, v2, s[0:1]5423; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 13, v05424; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v3, 14, v3, s[0:1]5425; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 15, v15426; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v1, 16, v2, s[0:1]5427; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 14, v05428; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v2, 15, v3, s[0:1]5429; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 15, v05430; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v0, 16, v2, s[0:1]5431; SI-MOVREL-NEXT:    buffer_store_dword v1, off, s[8:11], 05432; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)5433; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[8:11], 05434; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)5435; SI-MOVREL-NEXT:    s_and_saveexec_b64 s[0:1], vcc5436; SI-MOVREL-NEXT:    s_cbranch_execz .LBB16_25437; SI-MOVREL-NEXT:  ; %bb.1: ; %bb15438; SI-MOVREL-NEXT:    s_waitcnt expcnt(0)5439; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, s45440; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[8:11], 05441; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)5442; SI-MOVREL-NEXT:  .LBB16_2: ; %bb25443; SI-MOVREL-NEXT:    s_endpgm5444;5445; VI-LABEL: extract_vgpr_offset_multiple_in_block:5446; VI:       ; %bb.0: ; %entry5447; VI-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x345448; VI-NEXT:    v_lshlrev_b32_e32 v1, 2, v05449; VI-NEXT:    s_waitcnt lgkmcnt(0)5450; VI-NEXT:    v_mov_b32_e32 v2, s15451; VI-NEXT:    v_add_u32_e32 v1, vcc, s0, v15452; VI-NEXT:    v_addc_u32_e32 v2, vcc, 0, v2, vcc5453; VI-NEXT:    flat_load_dword v2, v[1:2] glc5454; VI-NEXT:    s_waitcnt vmcnt(0)5455; VI-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x245456; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v05457; VI-NEXT:    ;;#ASMSTART5458; VI-NEXT:    s_mov_b32 s4, 175459; VI-NEXT:    ;;#ASMEND5460; VI-NEXT:    s_waitcnt lgkmcnt(0)5461; VI-NEXT:    v_mov_b32_e32 v0, s05462; VI-NEXT:    v_mov_b32_e32 v1, s15463; VI-NEXT:    v_add_u32_e64 v3, s[0:1], 1, v25464; VI-NEXT:    v_cmp_eq_u32_e64 s[0:1], 1, v25465; VI-NEXT:    v_cndmask_b32_e64 v4, 7, 9, s[0:1]5466; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 2, v25467; VI-NEXT:    v_cndmask_b32_e64 v4, 11, v4, s[0:1]5468; VI-NEXT:    v_cmp_eq_u32_e64 s[0:1], 1, v35469; VI-NEXT:    v_cndmask_b32_e64 v5, 7, 9, s[0:1]5470; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 3, v25471; VI-NEXT:    v_cndmask_b32_e64 v4, 13, v4, s[0:1]5472; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 2, v35473; VI-NEXT:    v_cndmask_b32_e64 v5, 11, v5, s[0:1]5474; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 4, v25475; VI-NEXT:    v_cndmask_b32_e64 v4, 5, v4, s[0:1]5476; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 3, v35477; VI-NEXT:    v_cndmask_b32_e64 v5, 13, v5, s[0:1]5478; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 5, v25479; VI-NEXT:    v_cndmask_b32_e64 v4, 6, v4, s[0:1]5480; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 4, v35481; VI-NEXT:    v_cndmask_b32_e64 v5, 5, v5, s[0:1]5482; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 6, v25483; VI-NEXT:    v_cndmask_b32_e64 v4, 7, v4, s[0:1]5484; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 5, v35485; VI-NEXT:    v_cndmask_b32_e64 v5, 6, v5, s[0:1]5486; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 7, v25487; VI-NEXT:    v_cndmask_b32_e64 v4, 8, v4, s[0:1]5488; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 6, v35489; VI-NEXT:    v_cndmask_b32_e64 v5, 7, v5, s[0:1]5490; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 8, v25491; VI-NEXT:    v_cndmask_b32_e64 v4, 9, v4, s[0:1]5492; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 7, v35493; VI-NEXT:    v_cndmask_b32_e64 v5, 8, v5, s[0:1]5494; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 9, v25495; VI-NEXT:    v_cndmask_b32_e64 v4, 10, v4, s[0:1]5496; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 8, v35497; VI-NEXT:    v_cndmask_b32_e64 v5, 9, v5, s[0:1]5498; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 10, v25499; VI-NEXT:    v_cndmask_b32_e64 v4, 11, v4, s[0:1]5500; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 9, v35501; VI-NEXT:    v_cndmask_b32_e64 v5, 10, v5, s[0:1]5502; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 11, v25503; VI-NEXT:    v_cndmask_b32_e64 v4, 12, v4, s[0:1]5504; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 10, v35505; VI-NEXT:    v_cndmask_b32_e64 v5, 11, v5, s[0:1]5506; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 12, v25507; VI-NEXT:    v_cndmask_b32_e64 v4, 13, v4, s[0:1]5508; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 11, v35509; VI-NEXT:    v_cndmask_b32_e64 v5, 12, v5, s[0:1]5510; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 13, v25511; VI-NEXT:    v_cndmask_b32_e64 v4, 14, v4, s[0:1]5512; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 12, v35513; VI-NEXT:    v_cndmask_b32_e64 v5, 13, v5, s[0:1]5514; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 14, v25515; VI-NEXT:    v_cndmask_b32_e64 v4, 15, v4, s[0:1]5516; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 13, v35517; VI-NEXT:    v_cndmask_b32_e64 v5, 14, v5, s[0:1]5518; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 15, v25519; VI-NEXT:    v_cndmask_b32_e64 v2, 16, v4, s[0:1]5520; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 14, v35521; VI-NEXT:    v_cndmask_b32_e64 v4, 15, v5, s[0:1]5522; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 15, v35523; VI-NEXT:    v_cndmask_b32_e64 v3, 16, v4, s[0:1]5524; VI-NEXT:    flat_store_dword v[0:1], v25525; VI-NEXT:    s_waitcnt vmcnt(0)5526; VI-NEXT:    flat_store_dword v[0:1], v35527; VI-NEXT:    s_waitcnt vmcnt(0)5528; VI-NEXT:    s_and_saveexec_b64 s[0:1], vcc5529; VI-NEXT:    s_cbranch_execz .LBB16_25530; VI-NEXT:  ; %bb.1: ; %bb15531; VI-NEXT:    v_mov_b32_e32 v0, s45532; VI-NEXT:    flat_store_dword v[0:1], v05533; VI-NEXT:    s_waitcnt vmcnt(0)5534; VI-NEXT:  .LBB16_2: ; %bb25535; VI-NEXT:    s_endpgm5536;5537; GFX9-IDXMODE-LABEL: extract_vgpr_offset_multiple_in_block:5538; GFX9-IDXMODE:       ; %bb.0: ; %entry5539; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x345540; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[2:3], s[4:5], 0x245541; GFX9-IDXMODE-NEXT:    v_lshlrev_b32_e32 v1, 2, v05542; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v05543; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)5544; GFX9-IDXMODE-NEXT:    global_load_dword v2, v1, s[0:1] glc5545; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)5546; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 05547; GFX9-IDXMODE-NEXT:    ;;#ASMSTART5548; GFX9-IDXMODE-NEXT:    s_mov_b32 s4, 175549; GFX9-IDXMODE-NEXT:    ;;#ASMEND5550; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e64 s[0:1], 1, v25551; GFX9-IDXMODE-NEXT:    v_add_u32_e32 v0, 1, v25552; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 7, 9, s[0:1]5553; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 2, v25554; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 11, v3, s[0:1]5555; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e64 s[0:1], 1, v05556; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 7, 9, s[0:1]5557; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 3, v25558; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 13, v3, s[0:1]5559; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 2, v05560; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 11, v4, s[0:1]5561; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 4, v25562; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 5, v3, s[0:1]5563; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 3, v05564; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 13, v4, s[0:1]5565; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 5, v25566; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 6, v3, s[0:1]5567; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 4, v05568; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 5, v4, s[0:1]5569; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 6, v25570; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 7, v3, s[0:1]5571; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 5, v05572; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 6, v4, s[0:1]5573; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 7, v25574; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 8, v3, s[0:1]5575; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 6, v05576; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 7, v4, s[0:1]5577; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 8, v25578; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 9, v3, s[0:1]5579; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 7, v05580; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 8, v4, s[0:1]5581; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 9, v25582; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 10, v3, s[0:1]5583; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 8, v05584; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 9, v4, s[0:1]5585; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 10, v25586; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 11, v3, s[0:1]5587; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 9, v05588; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 10, v4, s[0:1]5589; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 11, v25590; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 12, v3, s[0:1]5591; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 10, v05592; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 11, v4, s[0:1]5593; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 12, v25594; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 13, v3, s[0:1]5595; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 11, v05596; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 12, v4, s[0:1]5597; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 13, v25598; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 14, v3, s[0:1]5599; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 12, v05600; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 13, v4, s[0:1]5601; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 14, v25602; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 15, v3, s[0:1]5603; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 13, v05604; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v4, 14, v4, s[0:1]5605; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 15, v25606; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v2, 16, v3, s[0:1]5607; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 14, v05608; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v3, 15, v4, s[0:1]5609; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 15, v05610; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v0, 16, v3, s[0:1]5611; GFX9-IDXMODE-NEXT:    global_store_dword v1, v2, s[2:3]5612; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)5613; GFX9-IDXMODE-NEXT:    global_store_dword v1, v0, s[2:3]5614; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)5615; GFX9-IDXMODE-NEXT:    s_and_saveexec_b64 s[0:1], vcc5616; GFX9-IDXMODE-NEXT:    s_cbranch_execz .LBB16_25617; GFX9-IDXMODE-NEXT:  ; %bb.1: ; %bb15618; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, s45619; GFX9-IDXMODE-NEXT:    global_store_dword v[0:1], v0, off5620; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)5621; GFX9-IDXMODE-NEXT:  .LBB16_2: ; %bb25622; GFX9-IDXMODE-NEXT:    s_endpgm5623entry:5624  %id = call i32 @llvm.amdgcn.workitem.id.x()5625  %id.ext = zext i32 %id to i645626  %gep = getelementptr inbounds i32, ptr addrspace(1) %in, i64 %id.ext5627  %idx0 = load volatile i32, ptr addrspace(1) %gep5628  %idx1 = add i32 %idx0, 15629  %val0 = extractelement <16 x i32> <i32 7, i32 9, i32 11, i32 13, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16>, i32 %idx05630  %live.out.reg = call i32 asm sideeffect "s_mov_b32 $0, 17", "={s4}" ()5631  %val1 = extractelement <16 x i32> <i32 7, i32 9, i32 11, i32 13, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16>, i32 %idx15632  store volatile i32 %val0, ptr addrspace(1) %out05633  store volatile i32 %val1, ptr addrspace(1) %out05634  %cmp = icmp eq i32 %id, 05635  br i1 %cmp, label %bb1, label %bb25636 5637bb1:5638  store volatile i32 %live.out.reg, ptr addrspace(1) poison5639  br label %bb25640 5641bb2:5642  ret void5643}5644 5645define amdgpu_kernel void @insert_vgpr_offset_multiple_in_block(ptr addrspace(1) %out0, ptr addrspace(1) %out1, ptr addrspace(1) %in, <16 x i32> %vec0) {5646; GENERIC-LABEL: insert_vgpr_offset_multiple_in_block:5647; GENERIC:       ; %bb.0: ; %entry5648; GENERIC-NEXT:    s_load_dwordx2 s[24:25], s[4:5], 0xd5649; GENERIC-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x195650; GENERIC-NEXT:    s_mov_b32 s3, 0xf0005651; GENERIC-NEXT:    s_mov_b32 s26, 05652; GENERIC-NEXT:    v_lshlrev_b32_e32 v1, 2, v05653; GENERIC-NEXT:    v_mov_b32_e32 v2, 05654; GENERIC-NEXT:    s_mov_b32 s27, s35655; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)5656; GENERIC-NEXT:    buffer_load_dword v14, v[1:2], s[24:27], 0 addr64 glc5657; GENERIC-NEXT:    s_waitcnt vmcnt(0)5658; GENERIC-NEXT:    ;;#ASMSTART5659; GENERIC-NEXT:    v_mov_b32 v1, 625660; GENERIC-NEXT:    ;;#ASMEND5661; GENERIC-NEXT:    v_mov_b32_e32 v10, s225662; GENERIC-NEXT:    v_mov_b32_e32 v11, s235663; GENERIC-NEXT:    v_mov_b32_e32 v15, s165664; GENERIC-NEXT:    v_mov_b32_e32 v2, s185665; GENERIC-NEXT:    v_mov_b32_e32 v3, s195666; GENERIC-NEXT:    v_mov_b32_e32 v4, s125667; GENERIC-NEXT:    v_mov_b32_e32 v5, s135668; GENERIC-NEXT:    v_mov_b32_e32 v6, s145669; GENERIC-NEXT:    v_mov_b32_e32 v7, s155670; GENERIC-NEXT:    v_mov_b32_e32 v8, s85671; GENERIC-NEXT:    v_mov_b32_e32 v9, s95672; GENERIC-NEXT:    v_mov_b32_e32 v12, s105673; GENERIC-NEXT:    v_mov_b32_e32 v13, s115674; GENERIC-NEXT:    v_add_i32_e32 v18, vcc, 1, v145675; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v145676; GENERIC-NEXT:    v_cndmask_b32_e32 v16, v2, v1, vcc5677; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v145678; GENERIC-NEXT:    v_cndmask_b32_e32 v17, v3, v1, vcc5679; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v145680; GENERIC-NEXT:    v_cndmask_b32_e32 v19, v4, v1, vcc5681; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v145682; GENERIC-NEXT:    v_cndmask_b32_e32 v20, v5, v1, vcc5683; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v145684; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v6, v1, vcc5685; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v145686; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v7, v1, vcc5687; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v145688; GENERIC-NEXT:    v_cndmask_b32_e32 v2, v8, v1, vcc5689; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v145690; GENERIC-NEXT:    v_cndmask_b32_e32 v3, v9, v1, vcc5691; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v145692; GENERIC-NEXT:    v_cndmask_b32_e32 v4, v12, v1, vcc5693; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v145694; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v13, v1, vcc5695; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 3, v185696; GENERIC-NEXT:    v_cndmask_b32_e32 v5, 63, v5, vcc5697; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 2, v185698; GENERIC-NEXT:    v_cndmask_b32_e32 v4, 63, v4, vcc5699; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 1, v185700; GENERIC-NEXT:    v_cndmask_b32_e32 v3, 63, v3, vcc5701; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 0, v185702; GENERIC-NEXT:    v_cndmask_b32_e32 v2, 63, v2, vcc5703; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 7, v185704; GENERIC-NEXT:    v_cndmask_b32_e32 v9, 63, v7, vcc5705; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 6, v185706; GENERIC-NEXT:    v_cndmask_b32_e32 v8, 63, v6, vcc5707; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 5, v185708; GENERIC-NEXT:    v_cndmask_b32_e32 v7, 63, v20, vcc5709; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 4, v185710; GENERIC-NEXT:    v_cndmask_b32_e32 v6, 63, v19, vcc5711; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 11, v185712; GENERIC-NEXT:    v_cndmask_b32_e32 v13, 63, v17, vcc5713; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 10, v185714; GENERIC-NEXT:    v_cndmask_b32_e32 v12, 63, v16, vcc5715; GENERIC-NEXT:    v_mov_b32_e32 v16, s175716; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v145717; GENERIC-NEXT:    v_cndmask_b32_e32 v19, v10, v1, vcc5718; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v145719; GENERIC-NEXT:    v_cndmask_b32_e32 v17, v11, v1, vcc5720; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v145721; GENERIC-NEXT:    v_cndmask_b32_e32 v10, v15, v1, vcc5722; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v145723; GENERIC-NEXT:    v_cndmask_b32_e32 v11, v16, v1, vcc5724; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 9, v185725; GENERIC-NEXT:    v_cndmask_b32_e32 v11, 63, v11, vcc5726; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 8, v185727; GENERIC-NEXT:    v_cndmask_b32_e32 v10, 63, v10, vcc5728; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 14, v185729; GENERIC-NEXT:    v_cmp_ne_u32_e64 s[0:1], 15, v185730; GENERIC-NEXT:    v_cndmask_b32_e64 v17, 63, v17, s[0:1]5731; GENERIC-NEXT:    v_cndmask_b32_e32 v16, 63, v19, vcc5732; GENERIC-NEXT:    v_mov_b32_e32 v19, s205733; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v145734; GENERIC-NEXT:    v_mov_b32_e32 v15, s215735; GENERIC-NEXT:    v_cmp_eq_u32_e64 s[0:1], 13, v145736; GENERIC-NEXT:    v_cndmask_b32_e64 v14, v15, v1, s[0:1]5737; GENERIC-NEXT:    v_cmp_ne_u32_e64 s[0:1], 13, v185738; GENERIC-NEXT:    v_cndmask_b32_e64 v15, 63, v14, s[0:1]5739; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x95740; GENERIC-NEXT:    s_mov_b32 s2, -15741; GENERIC-NEXT:    v_cndmask_b32_e32 v14, v19, v1, vcc5742; GENERIC-NEXT:    v_cmp_ne_u32_e32 vcc, 12, v185743; GENERIC-NEXT:    v_cndmask_b32_e32 v14, 63, v14, vcc5744; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)5745; GENERIC-NEXT:    buffer_store_dwordx4 v[14:17], off, s[0:3], 0 offset:485746; GENERIC-NEXT:    s_waitcnt vmcnt(0)5747; GENERIC-NEXT:    buffer_store_dwordx4 v[10:13], off, s[0:3], 0 offset:325748; GENERIC-NEXT:    s_waitcnt vmcnt(0)5749; GENERIC-NEXT:    buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:165750; GENERIC-NEXT:    s_waitcnt vmcnt(0)5751; GENERIC-NEXT:    buffer_store_dwordx4 v[2:5], off, s[0:3], 05752; GENERIC-NEXT:    s_waitcnt vmcnt(0)5753; GENERIC-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v05754; GENERIC-NEXT:    s_and_saveexec_b64 s[0:1], vcc5755; GENERIC-NEXT:    s_cbranch_execz .LBB17_25756; GENERIC-NEXT:  ; %bb.1: ; %bb15757; GENERIC-NEXT:    buffer_store_dword v1, off, s[0:3], 05758; GENERIC-NEXT:    s_waitcnt vmcnt(0)5759; GENERIC-NEXT:  .LBB17_2: ; %bb25760; GENERIC-NEXT:    s_endpgm5761;5762; NOOPT-LABEL: insert_vgpr_offset_multiple_in_block:5763; NOOPT:       ; %bb.0: ; %entry5764; NOOPT-NEXT:    s_mov_b32 s28, SCRATCH_RSRC_DWORD05765; NOOPT-NEXT:    s_mov_b32 s29, SCRATCH_RSRC_DWORD15766; NOOPT-NEXT:    s_mov_b32 s30, -15767; NOOPT-NEXT:    s_mov_b32 s31, 0xe8f0005768; NOOPT-NEXT:    s_add_u32 s28, s28, s115769; NOOPT-NEXT:    s_addc_u32 s29, s29, 05770; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:84 ; 4-byte Folded Spill5771; NOOPT-NEXT:    s_load_dwordx2 s[18:19], s[4:5], 0x95772; NOOPT-NEXT:    s_load_dwordx2 s[16:17], s[4:5], 0xd5773; NOOPT-NEXT:    s_load_dwordx16 s[0:15], s[4:5], 0x195774; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)5775; NOOPT-NEXT:    s_mov_b32 s24, s195776; NOOPT-NEXT:    s_mov_b32 s20, s185777; NOOPT-NEXT:    s_mov_b32 s18, 0xf0005778; NOOPT-NEXT:    s_mov_b32 s19, -15779; NOOPT-NEXT:    ; kill: def $sgpr20 killed $sgpr20 def $sgpr20_sgpr21_sgpr22_sgpr235780; NOOPT-NEXT:    s_mov_b32 s21, s245781; NOOPT-NEXT:    s_mov_b32 s22, s195782; NOOPT-NEXT:    s_mov_b32 s23, s185783; NOOPT-NEXT:    ; implicit-def: $vgpr32 : SGPR spill to VGPR lane5784; NOOPT-NEXT:    v_writelane_b32 v32, s20, 05785; NOOPT-NEXT:    v_writelane_b32 v32, s21, 15786; NOOPT-NEXT:    v_writelane_b32 v32, s22, 25787; NOOPT-NEXT:    v_writelane_b32 v32, s23, 35788; NOOPT-NEXT:    s_mov_b32 s20, 05789; NOOPT-NEXT:    v_writelane_b32 v32, s20, 45790; NOOPT-NEXT:    ; kill: def $sgpr20 killed $sgpr20 def $sgpr20_sgpr215791; NOOPT-NEXT:    s_mov_b32 s21, s185792; NOOPT-NEXT:    ; kill: def $sgpr16_sgpr17 killed $sgpr16_sgpr17 def $sgpr16_sgpr17_sgpr18_sgpr195793; NOOPT-NEXT:    s_mov_b64 s[18:19], s[20:21]5794; NOOPT-NEXT:    s_mov_b32 s20, 25795; NOOPT-NEXT:    s_waitcnt expcnt(0)5796; NOOPT-NEXT:    v_lshlrev_b32_e64 v0, s20, v05797; NOOPT-NEXT:    v_mov_b32_e32 v2, 05798; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1 killed $exec5799; NOOPT-NEXT:    v_mov_b32_e32 v1, v25800; NOOPT-NEXT:    buffer_load_dword v0, v[0:1], s[16:19], 0 addr64 glc5801; NOOPT-NEXT:    s_waitcnt vmcnt(0)5802; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:80 ; 4-byte Folded Spill5803; NOOPT-NEXT:    s_mov_b32 s16, 15804; NOOPT-NEXT:    s_waitcnt expcnt(0)5805; NOOPT-NEXT:    v_add_i32_e64 v0, s[16:17], v0, s165806; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:76 ; 4-byte Folded Spill5807; NOOPT-NEXT:    s_waitcnt expcnt(0)5808; NOOPT-NEXT:    ;;#ASMSTART5809; NOOPT-NEXT:    v_mov_b32 v0, 625810; NOOPT-NEXT:    ;;#ASMEND5811; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:72 ; 4-byte Folded Spill5812; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:68 ; 4-byte Folded Spill5813; NOOPT-NEXT:    s_waitcnt expcnt(0)5814; NOOPT-NEXT:    v_mov_b32_e32 v0, s05815; NOOPT-NEXT:    v_mov_b32_e32 v1, s15816; NOOPT-NEXT:    v_mov_b32_e32 v2, s25817; NOOPT-NEXT:    v_mov_b32_e32 v3, s35818; NOOPT-NEXT:    v_mov_b32_e32 v4, s45819; NOOPT-NEXT:    v_mov_b32_e32 v5, s55820; NOOPT-NEXT:    v_mov_b32_e32 v6, s65821; NOOPT-NEXT:    v_mov_b32_e32 v7, s75822; NOOPT-NEXT:    v_mov_b32_e32 v8, s85823; NOOPT-NEXT:    v_mov_b32_e32 v9, s95824; NOOPT-NEXT:    v_mov_b32_e32 v10, s105825; NOOPT-NEXT:    v_mov_b32_e32 v11, s115826; NOOPT-NEXT:    v_mov_b32_e32 v12, s125827; NOOPT-NEXT:    v_mov_b32_e32 v13, s135828; NOOPT-NEXT:    v_mov_b32_e32 v14, s145829; NOOPT-NEXT:    v_mov_b32_e32 v15, s155830; NOOPT-NEXT:    s_mov_b64 s[0:1], exec5831; NOOPT-NEXT:    v_writelane_b32 v32, s0, 55832; NOOPT-NEXT:    v_writelane_b32 v32, s1, 65833; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -15834; NOOPT-NEXT:    buffer_store_dword v32, off, s[28:31], 0 ; 4-byte Folded Spill5835; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]5836; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:4 ; 4-byte Folded Spill5837; NOOPT-NEXT:    buffer_store_dword v1, off, s[28:31], 0 offset:8 ; 4-byte Folded Spill5838; NOOPT-NEXT:    buffer_store_dword v2, off, s[28:31], 0 offset:12 ; 4-byte Folded Spill5839; NOOPT-NEXT:    buffer_store_dword v3, off, s[28:31], 0 offset:16 ; 4-byte Folded Spill5840; NOOPT-NEXT:    buffer_store_dword v4, off, s[28:31], 0 offset:20 ; 4-byte Folded Spill5841; NOOPT-NEXT:    buffer_store_dword v5, off, s[28:31], 0 offset:24 ; 4-byte Folded Spill5842; NOOPT-NEXT:    buffer_store_dword v6, off, s[28:31], 0 offset:28 ; 4-byte Folded Spill5843; NOOPT-NEXT:    buffer_store_dword v7, off, s[28:31], 0 offset:32 ; 4-byte Folded Spill5844; NOOPT-NEXT:    buffer_store_dword v8, off, s[28:31], 0 offset:36 ; 4-byte Folded Spill5845; NOOPT-NEXT:    buffer_store_dword v9, off, s[28:31], 0 offset:40 ; 4-byte Folded Spill5846; NOOPT-NEXT:    buffer_store_dword v10, off, s[28:31], 0 offset:44 ; 4-byte Folded Spill5847; NOOPT-NEXT:    buffer_store_dword v11, off, s[28:31], 0 offset:48 ; 4-byte Folded Spill5848; NOOPT-NEXT:    buffer_store_dword v12, off, s[28:31], 0 offset:52 ; 4-byte Folded Spill5849; NOOPT-NEXT:    buffer_store_dword v13, off, s[28:31], 0 offset:56 ; 4-byte Folded Spill5850; NOOPT-NEXT:    buffer_store_dword v14, off, s[28:31], 0 offset:60 ; 4-byte Folded Spill5851; NOOPT-NEXT:    buffer_store_dword v15, off, s[28:31], 0 offset:64 ; 4-byte Folded Spill5852; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr15853; NOOPT-NEXT:  .LBB17_1: ; =>This Inner Loop Header: Depth=15854; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -15855; NOOPT-NEXT:    s_waitcnt expcnt(0)5856; NOOPT-NEXT:    buffer_load_dword v32, off, s[28:31], 0 ; 4-byte Folded Reload5857; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]5858; NOOPT-NEXT:    s_waitcnt vmcnt(0)5859; NOOPT-NEXT:    v_readlane_b32 s0, v32, 75860; NOOPT-NEXT:    v_readlane_b32 s1, v32, 85861; NOOPT-NEXT:    buffer_load_dword v0, off, s[28:31], 0 offset:4 ; 4-byte Folded Reload5862; NOOPT-NEXT:    buffer_load_dword v1, off, s[28:31], 0 offset:8 ; 4-byte Folded Reload5863; NOOPT-NEXT:    buffer_load_dword v2, off, s[28:31], 0 offset:12 ; 4-byte Folded Reload5864; NOOPT-NEXT:    buffer_load_dword v3, off, s[28:31], 0 offset:16 ; 4-byte Folded Reload5865; NOOPT-NEXT:    buffer_load_dword v4, off, s[28:31], 0 offset:20 ; 4-byte Folded Reload5866; NOOPT-NEXT:    buffer_load_dword v5, off, s[28:31], 0 offset:24 ; 4-byte Folded Reload5867; NOOPT-NEXT:    buffer_load_dword v6, off, s[28:31], 0 offset:28 ; 4-byte Folded Reload5868; NOOPT-NEXT:    buffer_load_dword v7, off, s[28:31], 0 offset:32 ; 4-byte Folded Reload5869; NOOPT-NEXT:    buffer_load_dword v8, off, s[28:31], 0 offset:36 ; 4-byte Folded Reload5870; NOOPT-NEXT:    s_waitcnt expcnt(6)5871; NOOPT-NEXT:    buffer_load_dword v9, off, s[28:31], 0 offset:40 ; 4-byte Folded Reload5872; NOOPT-NEXT:    s_waitcnt expcnt(5)5873; NOOPT-NEXT:    buffer_load_dword v10, off, s[28:31], 0 offset:44 ; 4-byte Folded Reload5874; NOOPT-NEXT:    s_waitcnt expcnt(4)5875; NOOPT-NEXT:    buffer_load_dword v11, off, s[28:31], 0 offset:48 ; 4-byte Folded Reload5876; NOOPT-NEXT:    s_waitcnt expcnt(3)5877; NOOPT-NEXT:    buffer_load_dword v12, off, s[28:31], 0 offset:52 ; 4-byte Folded Reload5878; NOOPT-NEXT:    s_waitcnt expcnt(2)5879; NOOPT-NEXT:    buffer_load_dword v13, off, s[28:31], 0 offset:56 ; 4-byte Folded Reload5880; NOOPT-NEXT:    s_waitcnt expcnt(1)5881; NOOPT-NEXT:    buffer_load_dword v14, off, s[28:31], 0 offset:60 ; 4-byte Folded Reload5882; NOOPT-NEXT:    s_waitcnt expcnt(0)5883; NOOPT-NEXT:    buffer_load_dword v15, off, s[28:31], 0 offset:64 ; 4-byte Folded Reload5884; NOOPT-NEXT:    buffer_load_dword v16, off, s[28:31], 0 offset:72 ; 4-byte Folded Reload5885; NOOPT-NEXT:    buffer_load_dword v17, off, s[28:31], 0 offset:80 ; 4-byte Folded Reload5886; NOOPT-NEXT:    s_waitcnt vmcnt(0)5887; NOOPT-NEXT:    v_readfirstlane_b32 s2, v175888; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[0:1], s2, v175889; NOOPT-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]5890; NOOPT-NEXT:    s_mov_b32 m0, s25891; NOOPT-NEXT:    v_movreld_b32_e32 v0, v165892; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:88 ; 4-byte Folded Spill5893; NOOPT-NEXT:    buffer_store_dword v1, off, s[28:31], 0 offset:92 ; 4-byte Folded Spill5894; NOOPT-NEXT:    buffer_store_dword v2, off, s[28:31], 0 offset:96 ; 4-byte Folded Spill5895; NOOPT-NEXT:    buffer_store_dword v3, off, s[28:31], 0 offset:100 ; 4-byte Folded Spill5896; NOOPT-NEXT:    buffer_store_dword v4, off, s[28:31], 0 offset:104 ; 4-byte Folded Spill5897; NOOPT-NEXT:    buffer_store_dword v5, off, s[28:31], 0 offset:108 ; 4-byte Folded Spill5898; NOOPT-NEXT:    buffer_store_dword v6, off, s[28:31], 0 offset:112 ; 4-byte Folded Spill5899; NOOPT-NEXT:    buffer_store_dword v7, off, s[28:31], 0 offset:116 ; 4-byte Folded Spill5900; NOOPT-NEXT:    buffer_store_dword v8, off, s[28:31], 0 offset:120 ; 4-byte Folded Spill5901; NOOPT-NEXT:    buffer_store_dword v9, off, s[28:31], 0 offset:124 ; 4-byte Folded Spill5902; NOOPT-NEXT:    buffer_store_dword v10, off, s[28:31], 0 offset:128 ; 4-byte Folded Spill5903; NOOPT-NEXT:    buffer_store_dword v11, off, s[28:31], 0 offset:132 ; 4-byte Folded Spill5904; NOOPT-NEXT:    buffer_store_dword v12, off, s[28:31], 0 offset:136 ; 4-byte Folded Spill5905; NOOPT-NEXT:    buffer_store_dword v13, off, s[28:31], 0 offset:140 ; 4-byte Folded Spill5906; NOOPT-NEXT:    buffer_store_dword v14, off, s[28:31], 0 offset:144 ; 4-byte Folded Spill5907; NOOPT-NEXT:    buffer_store_dword v15, off, s[28:31], 0 offset:148 ; 4-byte Folded Spill5908; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:4 ; 4-byte Folded Spill5909; NOOPT-NEXT:    buffer_store_dword v1, off, s[28:31], 0 offset:8 ; 4-byte Folded Spill5910; NOOPT-NEXT:    buffer_store_dword v2, off, s[28:31], 0 offset:12 ; 4-byte Folded Spill5911; NOOPT-NEXT:    buffer_store_dword v3, off, s[28:31], 0 offset:16 ; 4-byte Folded Spill5912; NOOPT-NEXT:    buffer_store_dword v4, off, s[28:31], 0 offset:20 ; 4-byte Folded Spill5913; NOOPT-NEXT:    buffer_store_dword v5, off, s[28:31], 0 offset:24 ; 4-byte Folded Spill5914; NOOPT-NEXT:    buffer_store_dword v6, off, s[28:31], 0 offset:28 ; 4-byte Folded Spill5915; NOOPT-NEXT:    buffer_store_dword v7, off, s[28:31], 0 offset:32 ; 4-byte Folded Spill5916; NOOPT-NEXT:    buffer_store_dword v8, off, s[28:31], 0 offset:36 ; 4-byte Folded Spill5917; NOOPT-NEXT:    buffer_store_dword v9, off, s[28:31], 0 offset:40 ; 4-byte Folded Spill5918; NOOPT-NEXT:    buffer_store_dword v10, off, s[28:31], 0 offset:44 ; 4-byte Folded Spill5919; NOOPT-NEXT:    buffer_store_dword v11, off, s[28:31], 0 offset:48 ; 4-byte Folded Spill5920; NOOPT-NEXT:    buffer_store_dword v12, off, s[28:31], 0 offset:52 ; 4-byte Folded Spill5921; NOOPT-NEXT:    buffer_store_dword v13, off, s[28:31], 0 offset:56 ; 4-byte Folded Spill5922; NOOPT-NEXT:    buffer_store_dword v14, off, s[28:31], 0 offset:60 ; 4-byte Folded Spill5923; NOOPT-NEXT:    buffer_store_dword v15, off, s[28:31], 0 offset:64 ; 4-byte Folded Spill5924; NOOPT-NEXT:    s_mov_b64 s[2:3], s[0:1]5925; NOOPT-NEXT:    v_writelane_b32 v32, s2, 75926; NOOPT-NEXT:    v_writelane_b32 v32, s3, 85927; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -15928; NOOPT-NEXT:    buffer_store_dword v32, off, s[28:31], 0 ; 4-byte Folded Spill5929; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]5930; NOOPT-NEXT:    s_xor_b64 exec, exec, s[0:1]5931; NOOPT-NEXT:    s_cbranch_execnz .LBB17_15932; NOOPT-NEXT:  ; %bb.2:5933; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -15934; NOOPT-NEXT:    s_waitcnt expcnt(0)5935; NOOPT-NEXT:    buffer_load_dword v32, off, s[28:31], 0 ; 4-byte Folded Reload5936; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]5937; NOOPT-NEXT:    s_waitcnt vmcnt(0)5938; NOOPT-NEXT:    v_readlane_b32 s0, v32, 55939; NOOPT-NEXT:    v_readlane_b32 s1, v32, 65940; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]5941; NOOPT-NEXT:  ; %bb.3:5942; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -15943; NOOPT-NEXT:    buffer_load_dword v32, off, s[28:31], 0 ; 4-byte Folded Reload5944; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]5945; NOOPT-NEXT:    buffer_load_dword v0, off, s[28:31], 0 offset:88 ; 4-byte Folded Reload5946; NOOPT-NEXT:    buffer_load_dword v1, off, s[28:31], 0 offset:92 ; 4-byte Folded Reload5947; NOOPT-NEXT:    buffer_load_dword v2, off, s[28:31], 0 offset:96 ; 4-byte Folded Reload5948; NOOPT-NEXT:    buffer_load_dword v3, off, s[28:31], 0 offset:100 ; 4-byte Folded Reload5949; NOOPT-NEXT:    buffer_load_dword v4, off, s[28:31], 0 offset:104 ; 4-byte Folded Reload5950; NOOPT-NEXT:    buffer_load_dword v5, off, s[28:31], 0 offset:108 ; 4-byte Folded Reload5951; NOOPT-NEXT:    buffer_load_dword v6, off, s[28:31], 0 offset:112 ; 4-byte Folded Reload5952; NOOPT-NEXT:    buffer_load_dword v7, off, s[28:31], 0 offset:116 ; 4-byte Folded Reload5953; NOOPT-NEXT:    buffer_load_dword v8, off, s[28:31], 0 offset:120 ; 4-byte Folded Reload5954; NOOPT-NEXT:    buffer_load_dword v9, off, s[28:31], 0 offset:124 ; 4-byte Folded Reload5955; NOOPT-NEXT:    buffer_load_dword v10, off, s[28:31], 0 offset:128 ; 4-byte Folded Reload5956; NOOPT-NEXT:    buffer_load_dword v11, off, s[28:31], 0 offset:132 ; 4-byte Folded Reload5957; NOOPT-NEXT:    buffer_load_dword v12, off, s[28:31], 0 offset:136 ; 4-byte Folded Reload5958; NOOPT-NEXT:    buffer_load_dword v13, off, s[28:31], 0 offset:140 ; 4-byte Folded Reload5959; NOOPT-NEXT:    buffer_load_dword v14, off, s[28:31], 0 offset:144 ; 4-byte Folded Reload5960; NOOPT-NEXT:    buffer_load_dword v15, off, s[28:31], 0 offset:148 ; 4-byte Folded Reload5961; NOOPT-NEXT:    v_mov_b32_e32 v16, 635962; NOOPT-NEXT:    buffer_store_dword v16, off, s[28:31], 0 offset:216 ; 4-byte Folded Spill5963; NOOPT-NEXT:    s_mov_b64 s[0:1], exec5964; NOOPT-NEXT:    s_waitcnt vmcnt(14)5965; NOOPT-NEXT:    v_writelane_b32 v32, s0, 95966; NOOPT-NEXT:    v_writelane_b32 v32, s1, 105967; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -15968; NOOPT-NEXT:    buffer_store_dword v32, off, s[28:31], 0 ; 4-byte Folded Spill5969; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]5970; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:152 ; 4-byte Folded Spill5971; NOOPT-NEXT:    buffer_store_dword v1, off, s[28:31], 0 offset:156 ; 4-byte Folded Spill5972; NOOPT-NEXT:    buffer_store_dword v2, off, s[28:31], 0 offset:160 ; 4-byte Folded Spill5973; NOOPT-NEXT:    s_waitcnt vmcnt(14)5974; NOOPT-NEXT:    buffer_store_dword v3, off, s[28:31], 0 offset:164 ; 4-byte Folded Spill5975; NOOPT-NEXT:    buffer_store_dword v4, off, s[28:31], 0 offset:168 ; 4-byte Folded Spill5976; NOOPT-NEXT:    buffer_store_dword v5, off, s[28:31], 0 offset:172 ; 4-byte Folded Spill5977; NOOPT-NEXT:    buffer_store_dword v6, off, s[28:31], 0 offset:176 ; 4-byte Folded Spill5978; NOOPT-NEXT:    s_waitcnt vmcnt(14)5979; NOOPT-NEXT:    buffer_store_dword v7, off, s[28:31], 0 offset:180 ; 4-byte Folded Spill5980; NOOPT-NEXT:    buffer_store_dword v8, off, s[28:31], 0 offset:184 ; 4-byte Folded Spill5981; NOOPT-NEXT:    buffer_store_dword v9, off, s[28:31], 0 offset:188 ; 4-byte Folded Spill5982; NOOPT-NEXT:    buffer_store_dword v10, off, s[28:31], 0 offset:192 ; 4-byte Folded Spill5983; NOOPT-NEXT:    s_waitcnt vmcnt(14)5984; NOOPT-NEXT:    buffer_store_dword v11, off, s[28:31], 0 offset:196 ; 4-byte Folded Spill5985; NOOPT-NEXT:    buffer_store_dword v12, off, s[28:31], 0 offset:200 ; 4-byte Folded Spill5986; NOOPT-NEXT:    buffer_store_dword v13, off, s[28:31], 0 offset:204 ; 4-byte Folded Spill5987; NOOPT-NEXT:    buffer_store_dword v14, off, s[28:31], 0 offset:208 ; 4-byte Folded Spill5988; NOOPT-NEXT:    s_waitcnt vmcnt(14)5989; NOOPT-NEXT:    buffer_store_dword v15, off, s[28:31], 0 offset:212 ; 4-byte Folded Spill5990; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr15991; NOOPT-NEXT:  .LBB17_4: ; =>This Inner Loop Header: Depth=15992; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -15993; NOOPT-NEXT:    s_waitcnt expcnt(0)5994; NOOPT-NEXT:    buffer_load_dword v32, off, s[28:31], 0 ; 4-byte Folded Reload5995; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]5996; NOOPT-NEXT:    s_waitcnt vmcnt(0)5997; NOOPT-NEXT:    v_readlane_b32 s0, v32, 115998; NOOPT-NEXT:    v_readlane_b32 s1, v32, 125999; NOOPT-NEXT:    buffer_load_dword v0, off, s[28:31], 0 offset:152 ; 4-byte Folded Reload6000; NOOPT-NEXT:    buffer_load_dword v1, off, s[28:31], 0 offset:156 ; 4-byte Folded Reload6001; NOOPT-NEXT:    buffer_load_dword v2, off, s[28:31], 0 offset:160 ; 4-byte Folded Reload6002; NOOPT-NEXT:    buffer_load_dword v3, off, s[28:31], 0 offset:164 ; 4-byte Folded Reload6003; NOOPT-NEXT:    buffer_load_dword v4, off, s[28:31], 0 offset:168 ; 4-byte Folded Reload6004; NOOPT-NEXT:    buffer_load_dword v5, off, s[28:31], 0 offset:172 ; 4-byte Folded Reload6005; NOOPT-NEXT:    buffer_load_dword v6, off, s[28:31], 0 offset:176 ; 4-byte Folded Reload6006; NOOPT-NEXT:    buffer_load_dword v7, off, s[28:31], 0 offset:180 ; 4-byte Folded Reload6007; NOOPT-NEXT:    buffer_load_dword v8, off, s[28:31], 0 offset:184 ; 4-byte Folded Reload6008; NOOPT-NEXT:    s_waitcnt expcnt(6)6009; NOOPT-NEXT:    buffer_load_dword v9, off, s[28:31], 0 offset:188 ; 4-byte Folded Reload6010; NOOPT-NEXT:    s_waitcnt expcnt(5)6011; NOOPT-NEXT:    buffer_load_dword v10, off, s[28:31], 0 offset:192 ; 4-byte Folded Reload6012; NOOPT-NEXT:    s_waitcnt expcnt(4)6013; NOOPT-NEXT:    buffer_load_dword v11, off, s[28:31], 0 offset:196 ; 4-byte Folded Reload6014; NOOPT-NEXT:    s_waitcnt expcnt(3)6015; NOOPT-NEXT:    buffer_load_dword v12, off, s[28:31], 0 offset:200 ; 4-byte Folded Reload6016; NOOPT-NEXT:    s_waitcnt expcnt(2)6017; NOOPT-NEXT:    buffer_load_dword v13, off, s[28:31], 0 offset:204 ; 4-byte Folded Reload6018; NOOPT-NEXT:    s_waitcnt expcnt(1)6019; NOOPT-NEXT:    buffer_load_dword v14, off, s[28:31], 0 offset:208 ; 4-byte Folded Reload6020; NOOPT-NEXT:    s_waitcnt expcnt(0)6021; NOOPT-NEXT:    buffer_load_dword v15, off, s[28:31], 0 offset:212 ; 4-byte Folded Reload6022; NOOPT-NEXT:    buffer_load_dword v16, off, s[28:31], 0 offset:216 ; 4-byte Folded Reload6023; NOOPT-NEXT:    buffer_load_dword v17, off, s[28:31], 0 offset:76 ; 4-byte Folded Reload6024; NOOPT-NEXT:    s_waitcnt vmcnt(0)6025; NOOPT-NEXT:    v_readfirstlane_b32 s2, v176026; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[0:1], s2, v176027; NOOPT-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]6028; NOOPT-NEXT:    s_mov_b32 m0, s26029; NOOPT-NEXT:    v_movreld_b32_e32 v0, v166030; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:220 ; 4-byte Folded Spill6031; NOOPT-NEXT:    buffer_store_dword v1, off, s[28:31], 0 offset:224 ; 4-byte Folded Spill6032; NOOPT-NEXT:    buffer_store_dword v2, off, s[28:31], 0 offset:228 ; 4-byte Folded Spill6033; NOOPT-NEXT:    buffer_store_dword v3, off, s[28:31], 0 offset:232 ; 4-byte Folded Spill6034; NOOPT-NEXT:    buffer_store_dword v4, off, s[28:31], 0 offset:236 ; 4-byte Folded Spill6035; NOOPT-NEXT:    buffer_store_dword v5, off, s[28:31], 0 offset:240 ; 4-byte Folded Spill6036; NOOPT-NEXT:    buffer_store_dword v6, off, s[28:31], 0 offset:244 ; 4-byte Folded Spill6037; NOOPT-NEXT:    buffer_store_dword v7, off, s[28:31], 0 offset:248 ; 4-byte Folded Spill6038; NOOPT-NEXT:    buffer_store_dword v8, off, s[28:31], 0 offset:252 ; 4-byte Folded Spill6039; NOOPT-NEXT:    buffer_store_dword v9, off, s[28:31], 0 offset:256 ; 4-byte Folded Spill6040; NOOPT-NEXT:    buffer_store_dword v10, off, s[28:31], 0 offset:260 ; 4-byte Folded Spill6041; NOOPT-NEXT:    buffer_store_dword v11, off, s[28:31], 0 offset:264 ; 4-byte Folded Spill6042; NOOPT-NEXT:    buffer_store_dword v12, off, s[28:31], 0 offset:268 ; 4-byte Folded Spill6043; NOOPT-NEXT:    buffer_store_dword v13, off, s[28:31], 0 offset:272 ; 4-byte Folded Spill6044; NOOPT-NEXT:    buffer_store_dword v14, off, s[28:31], 0 offset:276 ; 4-byte Folded Spill6045; NOOPT-NEXT:    buffer_store_dword v15, off, s[28:31], 0 offset:280 ; 4-byte Folded Spill6046; NOOPT-NEXT:    buffer_store_dword v0, off, s[28:31], 0 offset:152 ; 4-byte Folded Spill6047; NOOPT-NEXT:    buffer_store_dword v1, off, s[28:31], 0 offset:156 ; 4-byte Folded Spill6048; NOOPT-NEXT:    buffer_store_dword v2, off, s[28:31], 0 offset:160 ; 4-byte Folded Spill6049; NOOPT-NEXT:    buffer_store_dword v3, off, s[28:31], 0 offset:164 ; 4-byte Folded Spill6050; NOOPT-NEXT:    buffer_store_dword v4, off, s[28:31], 0 offset:168 ; 4-byte Folded Spill6051; NOOPT-NEXT:    buffer_store_dword v5, off, s[28:31], 0 offset:172 ; 4-byte Folded Spill6052; NOOPT-NEXT:    buffer_store_dword v6, off, s[28:31], 0 offset:176 ; 4-byte Folded Spill6053; NOOPT-NEXT:    buffer_store_dword v7, off, s[28:31], 0 offset:180 ; 4-byte Folded Spill6054; NOOPT-NEXT:    buffer_store_dword v8, off, s[28:31], 0 offset:184 ; 4-byte Folded Spill6055; NOOPT-NEXT:    buffer_store_dword v9, off, s[28:31], 0 offset:188 ; 4-byte Folded Spill6056; NOOPT-NEXT:    buffer_store_dword v10, off, s[28:31], 0 offset:192 ; 4-byte Folded Spill6057; NOOPT-NEXT:    buffer_store_dword v11, off, s[28:31], 0 offset:196 ; 4-byte Folded Spill6058; NOOPT-NEXT:    buffer_store_dword v12, off, s[28:31], 0 offset:200 ; 4-byte Folded Spill6059; NOOPT-NEXT:    buffer_store_dword v13, off, s[28:31], 0 offset:204 ; 4-byte Folded Spill6060; NOOPT-NEXT:    buffer_store_dword v14, off, s[28:31], 0 offset:208 ; 4-byte Folded Spill6061; NOOPT-NEXT:    buffer_store_dword v15, off, s[28:31], 0 offset:212 ; 4-byte Folded Spill6062; NOOPT-NEXT:    s_mov_b64 s[2:3], s[0:1]6063; NOOPT-NEXT:    v_writelane_b32 v32, s2, 116064; NOOPT-NEXT:    v_writelane_b32 v32, s3, 126065; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -16066; NOOPT-NEXT:    buffer_store_dword v32, off, s[28:31], 0 ; 4-byte Folded Spill6067; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]6068; NOOPT-NEXT:    s_xor_b64 exec, exec, s[0:1]6069; NOOPT-NEXT:    s_cbranch_execnz .LBB17_46070; NOOPT-NEXT:  ; %bb.5:6071; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -16072; NOOPT-NEXT:    s_waitcnt expcnt(0)6073; NOOPT-NEXT:    buffer_load_dword v32, off, s[28:31], 0 ; 4-byte Folded Reload6074; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]6075; NOOPT-NEXT:    s_waitcnt vmcnt(0)6076; NOOPT-NEXT:    v_readlane_b32 s0, v32, 96077; NOOPT-NEXT:    v_readlane_b32 s1, v32, 106078; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]6079; NOOPT-NEXT:  ; %bb.6:6080; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -16081; NOOPT-NEXT:    buffer_load_dword v32, off, s[28:31], 0 ; 4-byte Folded Reload6082; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]6083; NOOPT-NEXT:    s_waitcnt vmcnt(0)6084; NOOPT-NEXT:    v_readlane_b32 s0, v32, 46085; NOOPT-NEXT:    v_readlane_b32 s4, v32, 06086; NOOPT-NEXT:    v_readlane_b32 s5, v32, 16087; NOOPT-NEXT:    v_readlane_b32 s6, v32, 26088; NOOPT-NEXT:    v_readlane_b32 s7, v32, 36089; NOOPT-NEXT:    buffer_load_dword v0, off, s[28:31], 0 offset:84 ; 4-byte Folded Reload6090; NOOPT-NEXT:    buffer_load_dword v16, off, s[28:31], 0 offset:220 ; 4-byte Folded Reload6091; NOOPT-NEXT:    buffer_load_dword v17, off, s[28:31], 0 offset:224 ; 4-byte Folded Reload6092; NOOPT-NEXT:    buffer_load_dword v18, off, s[28:31], 0 offset:228 ; 4-byte Folded Reload6093; NOOPT-NEXT:    buffer_load_dword v19, off, s[28:31], 0 offset:232 ; 4-byte Folded Reload6094; NOOPT-NEXT:    buffer_load_dword v20, off, s[28:31], 0 offset:236 ; 4-byte Folded Reload6095; NOOPT-NEXT:    buffer_load_dword v21, off, s[28:31], 0 offset:240 ; 4-byte Folded Reload6096; NOOPT-NEXT:    buffer_load_dword v22, off, s[28:31], 0 offset:244 ; 4-byte Folded Reload6097; NOOPT-NEXT:    buffer_load_dword v23, off, s[28:31], 0 offset:248 ; 4-byte Folded Reload6098; NOOPT-NEXT:    buffer_load_dword v24, off, s[28:31], 0 offset:252 ; 4-byte Folded Reload6099; NOOPT-NEXT:    buffer_load_dword v25, off, s[28:31], 0 offset:256 ; 4-byte Folded Reload6100; NOOPT-NEXT:    buffer_load_dword v26, off, s[28:31], 0 offset:260 ; 4-byte Folded Reload6101; NOOPT-NEXT:    buffer_load_dword v27, off, s[28:31], 0 offset:264 ; 4-byte Folded Reload6102; NOOPT-NEXT:    buffer_load_dword v28, off, s[28:31], 0 offset:268 ; 4-byte Folded Reload6103; NOOPT-NEXT:    buffer_load_dword v29, off, s[28:31], 0 offset:272 ; 4-byte Folded Reload6104; NOOPT-NEXT:    buffer_load_dword v30, off, s[28:31], 0 offset:276 ; 4-byte Folded Reload6105; NOOPT-NEXT:    buffer_load_dword v31, off, s[28:31], 0 offset:280 ; 4-byte Folded Reload6106; NOOPT-NEXT:    s_waitcnt vmcnt(12)6107; NOOPT-NEXT:    v_mov_b32_e32 v5, v196108; NOOPT-NEXT:    v_mov_b32_e32 v6, v186109; NOOPT-NEXT:    v_mov_b32_e32 v7, v176110; NOOPT-NEXT:    v_mov_b32_e32 v1, v166111; NOOPT-NEXT:    s_waitcnt vmcnt(8)6112; NOOPT-NEXT:    v_mov_b32_e32 v2, v236113; NOOPT-NEXT:    v_mov_b32_e32 v3, v226114; NOOPT-NEXT:    v_mov_b32_e32 v4, v216115; NOOPT-NEXT:    v_mov_b32_e32 v8, v206116; NOOPT-NEXT:    s_waitcnt vmcnt(4)6117; NOOPT-NEXT:    v_mov_b32_e32 v13, v276118; NOOPT-NEXT:    v_mov_b32_e32 v14, v266119; NOOPT-NEXT:    v_mov_b32_e32 v15, v256120; NOOPT-NEXT:    v_mov_b32_e32 v9, v246121; NOOPT-NEXT:    s_waitcnt vmcnt(0)6122; NOOPT-NEXT:    v_mov_b32_e32 v10, v316123; NOOPT-NEXT:    v_mov_b32_e32 v11, v306124; NOOPT-NEXT:    v_mov_b32_e32 v12, v296125; NOOPT-NEXT:    v_mov_b32_e32 v16, v286126; NOOPT-NEXT:    ; kill: def $vgpr16 killed $vgpr16 def $vgpr16_vgpr17_vgpr18_vgpr19 killed $exec6127; NOOPT-NEXT:    v_mov_b32_e32 v17, v126128; NOOPT-NEXT:    v_mov_b32_e32 v18, v116129; NOOPT-NEXT:    v_mov_b32_e32 v19, v106130; NOOPT-NEXT:    buffer_store_dwordx4 v[16:19], off, s[4:7], 0 offset:486131; NOOPT-NEXT:    s_waitcnt vmcnt(0)6132; NOOPT-NEXT:    ; kill: def $vgpr9 killed $vgpr9 def $vgpr9_vgpr10_vgpr11_vgpr12 killed $exec6133; NOOPT-NEXT:    v_mov_b32_e32 v10, v156134; NOOPT-NEXT:    v_mov_b32_e32 v11, v146135; NOOPT-NEXT:    v_mov_b32_e32 v12, v136136; NOOPT-NEXT:    buffer_store_dwordx4 v[9:12], off, s[4:7], 0 offset:326137; NOOPT-NEXT:    s_waitcnt vmcnt(0) expcnt(0)6138; NOOPT-NEXT:    ; kill: def $vgpr8 killed $vgpr8 def $vgpr8_vgpr9_vgpr10_vgpr11 killed $exec6139; NOOPT-NEXT:    v_mov_b32_e32 v9, v46140; NOOPT-NEXT:    v_mov_b32_e32 v10, v36141; NOOPT-NEXT:    v_mov_b32_e32 v11, v26142; NOOPT-NEXT:    buffer_store_dwordx4 v[8:11], off, s[4:7], 0 offset:166143; NOOPT-NEXT:    s_waitcnt vmcnt(0)6144; NOOPT-NEXT:    ; kill: def $vgpr1 killed $vgpr1 def $vgpr1_vgpr2_vgpr3_vgpr4 killed $exec6145; NOOPT-NEXT:    v_mov_b32_e32 v2, v76146; NOOPT-NEXT:    v_mov_b32_e32 v3, v66147; NOOPT-NEXT:    v_mov_b32_e32 v4, v56148; NOOPT-NEXT:    buffer_store_dwordx4 v[1:4], off, s[4:7], 06149; NOOPT-NEXT:    s_waitcnt vmcnt(0)6150; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[2:3], v0, s06151; NOOPT-NEXT:    s_mov_b64 s[0:1], exec6152; NOOPT-NEXT:    v_writelane_b32 v32, s0, 136153; NOOPT-NEXT:    v_writelane_b32 v32, s1, 146154; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -16155; NOOPT-NEXT:    buffer_store_dword v32, off, s[28:31], 0 ; 4-byte Folded Spill6156; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]6157; NOOPT-NEXT:    s_and_b64 s[0:1], s[0:1], s[2:3]6158; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]6159; NOOPT-NEXT:    s_cbranch_execz .LBB17_86160; NOOPT-NEXT:  ; %bb.7: ; %bb16161; NOOPT-NEXT:    buffer_load_dword v0, off, s[28:31], 0 offset:68 ; 4-byte Folded Reload6162; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr16163; NOOPT-NEXT:    s_mov_b32 s6, s16164; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr16165; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr16166; NOOPT-NEXT:    s_mov_b32 s4, 0xf0006167; NOOPT-NEXT:    s_mov_b32 s5, -16168; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr36169; NOOPT-NEXT:    s_mov_b32 s1, s66170; NOOPT-NEXT:    s_mov_b32 s2, s56171; NOOPT-NEXT:    s_mov_b32 s3, s46172; NOOPT-NEXT:    s_waitcnt vmcnt(0)6173; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 06174; NOOPT-NEXT:    s_waitcnt vmcnt(0)6175; NOOPT-NEXT:  .LBB17_8: ; %bb26176; NOOPT-NEXT:    s_or_saveexec_b64 s[26:27], -16177; NOOPT-NEXT:    s_waitcnt expcnt(0)6178; NOOPT-NEXT:    buffer_load_dword v32, off, s[28:31], 0 ; 4-byte Folded Reload6179; NOOPT-NEXT:    s_mov_b64 exec, s[26:27]6180; NOOPT-NEXT:    s_waitcnt vmcnt(0)6181; NOOPT-NEXT:    v_readlane_b32 s0, v32, 136182; NOOPT-NEXT:    v_readlane_b32 s1, v32, 146183; NOOPT-NEXT:    s_or_b64 exec, exec, s[0:1]6184; NOOPT-NEXT:    s_endpgm6185;6186; SI-MOVREL-LABEL: insert_vgpr_offset_multiple_in_block:6187; SI-MOVREL:       ; %bb.0: ; %entry6188; SI-MOVREL-NEXT:    s_load_dwordx2 s[8:9], s[4:5], 0xd6189; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0006190; SI-MOVREL-NEXT:    s_mov_b32 s10, 06191; SI-MOVREL-NEXT:    s_mov_b32 s11, s36192; SI-MOVREL-NEXT:    v_lshlrev_b32_e32 v1, 2, v06193; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 06194; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)6195; SI-MOVREL-NEXT:    buffer_load_dword v14, v[1:2], s[8:11], 0 addr64 glc6196; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)6197; SI-MOVREL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x196198; SI-MOVREL-NEXT:    ;;#ASMSTART6199; SI-MOVREL-NEXT:    v_mov_b32 v1, 626200; SI-MOVREL-NEXT:    ;;#ASMEND6201; SI-MOVREL-NEXT:    s_mov_b32 s2, -16202; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)6203; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, s186204; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, s196205; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, s126206; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, s136207; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, s146208; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, s156209; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, s86210; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, s96211; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, s106212; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, s116213; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, s226214; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, s236215; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, s166216; SI-MOVREL-NEXT:    v_add_i32_e32 v18, vcc, 1, v146217; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v146218; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v16, v2, v1, vcc6219; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v146220; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v17, v3, v1, vcc6221; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v146222; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v19, v4, v1, vcc6223; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v146224; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v20, v5, v1, vcc6225; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v146226; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v6, v6, v1, vcc6227; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v146228; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v7, v7, v1, vcc6229; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v146230; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v2, v8, v1, vcc6231; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v146232; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v3, v9, v1, vcc6233; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v146234; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v4, v12, v1, vcc6235; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v146236; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v5, v13, v1, vcc6237; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 3, v186238; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v5, 63, v5, vcc6239; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 2, v186240; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v4, 63, v4, vcc6241; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 1, v186242; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v3, 63, v3, vcc6243; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 0, v186244; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v2, 63, v2, vcc6245; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 7, v186246; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v9, 63, v7, vcc6247; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 6, v186248; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v8, 63, v6, vcc6249; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 5, v186250; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v7, 63, v20, vcc6251; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 4, v186252; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v6, 63, v19, vcc6253; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 11, v186254; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v13, 63, v17, vcc6255; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 10, v186256; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v12, 63, v16, vcc6257; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v146258; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v19, v10, v1, vcc6259; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v146260; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v17, v11, v1, vcc6261; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v146262; SI-MOVREL-NEXT:    v_mov_b32_e32 v16, s176263; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v10, v15, v1, vcc6264; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v146265; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v11, v16, v1, vcc6266; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 9, v186267; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v11, 63, v11, vcc6268; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 8, v186269; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 15, v186270; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v10, 63, v10, vcc6271; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 14, v186272; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v17, 63, v17, s[0:1]6273; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, s216274; SI-MOVREL-NEXT:    v_cmp_eq_u32_e64 s[0:1], 13, v146275; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v16, 63, v19, vcc6276; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v146277; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v14, v15, v1, s[0:1]6278; SI-MOVREL-NEXT:    v_cmp_ne_u32_e64 s[0:1], 13, v186279; SI-MOVREL-NEXT:    v_cndmask_b32_e64 v15, 63, v14, s[0:1]6280; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x96281; SI-MOVREL-NEXT:    v_mov_b32_e32 v19, s206282; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v14, v19, v1, vcc6283; SI-MOVREL-NEXT:    v_cmp_ne_u32_e32 vcc, 12, v186284; SI-MOVREL-NEXT:    v_cndmask_b32_e32 v14, 63, v14, vcc6285; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v06286; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)6287; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[14:17], off, s[0:3], 0 offset:486288; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)6289; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[10:13], off, s[0:3], 0 offset:326290; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)6291; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:166292; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)6293; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[2:5], off, s[0:3], 06294; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)6295; SI-MOVREL-NEXT:    s_and_saveexec_b64 s[0:1], vcc6296; SI-MOVREL-NEXT:    s_cbranch_execz .LBB17_26297; SI-MOVREL-NEXT:  ; %bb.1: ; %bb16298; SI-MOVREL-NEXT:    buffer_store_dword v1, off, s[0:3], 06299; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)6300; SI-MOVREL-NEXT:  .LBB17_2: ; %bb26301; SI-MOVREL-NEXT:    s_endpgm6302;6303; VI-LABEL: insert_vgpr_offset_multiple_in_block:6304; VI:       ; %bb.0: ; %entry6305; VI-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x346306; VI-NEXT:    v_lshlrev_b32_e32 v1, 2, v06307; VI-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x646308; VI-NEXT:    s_waitcnt lgkmcnt(0)6309; VI-NEXT:    v_mov_b32_e32 v2, s16310; VI-NEXT:    v_add_u32_e32 v1, vcc, s0, v16311; VI-NEXT:    v_addc_u32_e32 v2, vcc, 0, v2, vcc6312; VI-NEXT:    flat_load_dword v14, v[1:2] glc6313; VI-NEXT:    s_waitcnt vmcnt(0)6314; VI-NEXT:    v_mov_b32_e32 v2, s186315; VI-NEXT:    v_mov_b32_e32 v3, s196316; VI-NEXT:    ;;#ASMSTART6317; VI-NEXT:    v_mov_b32 v1, 626318; VI-NEXT:    ;;#ASMEND6319; VI-NEXT:    v_mov_b32_e32 v4, s126320; VI-NEXT:    v_mov_b32_e32 v5, s136321; VI-NEXT:    v_mov_b32_e32 v6, s146322; VI-NEXT:    v_mov_b32_e32 v7, s156323; VI-NEXT:    v_mov_b32_e32 v8, s86324; VI-NEXT:    v_mov_b32_e32 v9, s96325; VI-NEXT:    v_mov_b32_e32 v12, s106326; VI-NEXT:    v_mov_b32_e32 v13, s116327; VI-NEXT:    v_mov_b32_e32 v10, s226328; VI-NEXT:    v_mov_b32_e32 v11, s236329; VI-NEXT:    v_mov_b32_e32 v15, s166330; VI-NEXT:    v_add_u32_e32 v18, vcc, 1, v146331; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v146332; VI-NEXT:    v_cndmask_b32_e32 v16, v2, v1, vcc6333; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v146334; VI-NEXT:    v_cndmask_b32_e32 v17, v3, v1, vcc6335; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v146336; VI-NEXT:    v_cndmask_b32_e32 v19, v4, v1, vcc6337; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v146338; VI-NEXT:    v_cndmask_b32_e32 v20, v5, v1, vcc6339; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v146340; VI-NEXT:    v_cndmask_b32_e32 v6, v6, v1, vcc6341; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v146342; VI-NEXT:    v_cndmask_b32_e32 v7, v7, v1, vcc6343; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v146344; VI-NEXT:    v_cndmask_b32_e32 v2, v8, v1, vcc6345; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v146346; VI-NEXT:    v_cndmask_b32_e32 v3, v9, v1, vcc6347; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v146348; VI-NEXT:    v_cndmask_b32_e32 v4, v12, v1, vcc6349; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v146350; VI-NEXT:    v_cndmask_b32_e32 v5, v13, v1, vcc6351; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 3, v186352; VI-NEXT:    v_cndmask_b32_e32 v5, 63, v5, vcc6353; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 2, v186354; VI-NEXT:    v_cndmask_b32_e32 v4, 63, v4, vcc6355; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 1, v186356; VI-NEXT:    v_cndmask_b32_e32 v3, 63, v3, vcc6357; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 0, v186358; VI-NEXT:    v_cndmask_b32_e32 v2, 63, v2, vcc6359; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 7, v186360; VI-NEXT:    v_cndmask_b32_e32 v9, 63, v7, vcc6361; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 6, v186362; VI-NEXT:    v_cndmask_b32_e32 v8, 63, v6, vcc6363; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 5, v186364; VI-NEXT:    v_cndmask_b32_e32 v7, 63, v20, vcc6365; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 4, v186366; VI-NEXT:    v_cndmask_b32_e32 v6, 63, v19, vcc6367; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 11, v186368; VI-NEXT:    v_cndmask_b32_e32 v13, 63, v17, vcc6369; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 10, v186370; VI-NEXT:    v_cndmask_b32_e32 v12, 63, v16, vcc6371; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v146372; VI-NEXT:    v_cndmask_b32_e32 v19, v10, v1, vcc6373; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v146374; VI-NEXT:    v_cndmask_b32_e32 v17, v11, v1, vcc6375; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v146376; VI-NEXT:    v_mov_b32_e32 v16, s176377; VI-NEXT:    v_cndmask_b32_e32 v10, v15, v1, vcc6378; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v146379; VI-NEXT:    v_cndmask_b32_e32 v11, v16, v1, vcc6380; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 9, v186381; VI-NEXT:    v_cndmask_b32_e32 v11, 63, v11, vcc6382; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 8, v186383; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 15, v186384; VI-NEXT:    v_cndmask_b32_e32 v10, 63, v10, vcc6385; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 14, v186386; VI-NEXT:    v_cndmask_b32_e64 v17, 63, v17, s[0:1]6387; VI-NEXT:    v_mov_b32_e32 v15, s216388; VI-NEXT:    v_cmp_eq_u32_e64 s[0:1], 13, v146389; VI-NEXT:    v_cndmask_b32_e32 v16, 63, v19, vcc6390; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v146391; VI-NEXT:    v_cndmask_b32_e64 v14, v15, v1, s[0:1]6392; VI-NEXT:    v_cmp_ne_u32_e64 s[0:1], 13, v186393; VI-NEXT:    v_cndmask_b32_e64 v15, 63, v14, s[0:1]6394; VI-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x246395; VI-NEXT:    v_mov_b32_e32 v19, s206396; VI-NEXT:    v_cndmask_b32_e32 v14, v19, v1, vcc6397; VI-NEXT:    v_cmp_ne_u32_e32 vcc, 12, v186398; VI-NEXT:    v_cndmask_b32_e32 v14, 63, v14, vcc6399; VI-NEXT:    s_waitcnt lgkmcnt(0)6400; VI-NEXT:    s_add_u32 s2, s0, 486401; VI-NEXT:    s_addc_u32 s3, s1, 06402; VI-NEXT:    v_mov_b32_e32 v19, s36403; VI-NEXT:    v_mov_b32_e32 v18, s26404; VI-NEXT:    s_add_u32 s2, s0, 326405; VI-NEXT:    s_addc_u32 s3, s1, 06406; VI-NEXT:    flat_store_dwordx4 v[18:19], v[14:17]6407; VI-NEXT:    s_waitcnt vmcnt(0)6408; VI-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v06409; VI-NEXT:    v_mov_b32_e32 v15, s36410; VI-NEXT:    v_mov_b32_e32 v14, s26411; VI-NEXT:    s_add_u32 s2, s0, 166412; VI-NEXT:    s_addc_u32 s3, s1, 06413; VI-NEXT:    flat_store_dwordx4 v[14:15], v[10:13]6414; VI-NEXT:    s_waitcnt vmcnt(0)6415; VI-NEXT:    v_mov_b32_e32 v11, s36416; VI-NEXT:    v_mov_b32_e32 v10, s26417; VI-NEXT:    flat_store_dwordx4 v[10:11], v[6:9]6418; VI-NEXT:    s_waitcnt vmcnt(0)6419; VI-NEXT:    v_mov_b32_e32 v7, s16420; VI-NEXT:    v_mov_b32_e32 v6, s06421; VI-NEXT:    flat_store_dwordx4 v[6:7], v[2:5]6422; VI-NEXT:    s_waitcnt vmcnt(0)6423; VI-NEXT:    s_and_saveexec_b64 s[0:1], vcc6424; VI-NEXT:    s_cbranch_execz .LBB17_26425; VI-NEXT:  ; %bb.1: ; %bb16426; VI-NEXT:    flat_store_dword v[0:1], v16427; VI-NEXT:    s_waitcnt vmcnt(0)6428; VI-NEXT:  .LBB17_2: ; %bb26429; VI-NEXT:    s_endpgm6430;6431; GFX9-IDXMODE-LABEL: insert_vgpr_offset_multiple_in_block:6432; GFX9-IDXMODE:       ; %bb.0: ; %entry6433; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x346434; GFX9-IDXMODE-NEXT:    v_lshlrev_b32_e32 v1, 2, v06435; GFX9-IDXMODE-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x646436; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)6437; GFX9-IDXMODE-NEXT:    global_load_dword v14, v1, s[0:1] glc6438; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)6439; GFX9-IDXMODE-NEXT:    ;;#ASMSTART6440; GFX9-IDXMODE-NEXT:    v_mov_b32 v1, 626441; GFX9-IDXMODE-NEXT:    ;;#ASMEND6442; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, s186443; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, s196444; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, s126445; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, s136446; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, s146447; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, s156448; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, s86449; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, s96450; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, s106451; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, s116452; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, s226453; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, s236454; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, s166455; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 10, v146456; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v16, v2, v1, vcc6457; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 11, v146458; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v17, v3, v1, vcc6459; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 4, v146460; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v19, v4, v1, vcc6461; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 5, v146462; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v20, v5, v1, vcc6463; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 6, v146464; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v6, v6, v1, vcc6465; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 7, v146466; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v7, v7, v1, vcc6467; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v146468; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, v8, v1, vcc6469; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 1, v146470; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v3, v9, v1, vcc6471; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 2, v146472; GFX9-IDXMODE-NEXT:    v_add_u32_e32 v18, 1, v146473; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v4, v12, v1, vcc6474; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 3, v146475; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v5, v13, v1, vcc6476; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 3, v186477; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v5, 63, v5, vcc6478; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 2, v186479; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v4, 63, v4, vcc6480; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 1, v186481; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v3, 63, v3, vcc6482; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 0, v186483; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v2, 63, v2, vcc6484; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 7, v186485; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v9, 63, v7, vcc6486; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 6, v186487; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v8, 63, v6, vcc6488; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 5, v186489; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v7, 63, v20, vcc6490; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 4, v186491; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v6, 63, v19, vcc6492; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 11, v186493; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v13, 63, v17, vcc6494; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 10, v186495; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v12, 63, v16, vcc6496; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 14, v146497; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v19, v10, v1, vcc6498; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 15, v146499; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v17, v11, v1, vcc6500; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 8, v146501; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, s176502; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v10, v15, v1, vcc6503; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 9, v146504; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v11, v16, v1, vcc6505; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 9, v186506; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v11, 63, v11, vcc6507; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 8, v186508; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 15, v186509; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v10, 63, v10, vcc6510; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 14, v186511; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v17, 63, v17, s[0:1]6512; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, s216513; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e64 s[0:1], 13, v146514; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v16, 63, v19, vcc6515; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 12, v146516; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v14, v15, v1, s[0:1]6517; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e64 s[0:1], 13, v186518; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e64 v15, 63, v14, s[0:1]6519; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x246520; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v19, s206521; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v14, v19, v1, vcc6522; GFX9-IDXMODE-NEXT:    v_cmp_ne_u32_e32 vcc, 12, v186523; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v18, 06524; GFX9-IDXMODE-NEXT:    v_cndmask_b32_e32 v14, 63, v14, vcc6525; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v06526; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)6527; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v18, v[14:17], s[0:1] offset:486528; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)6529; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v18, v[10:13], s[0:1] offset:326530; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)6531; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v18, v[6:9], s[0:1] offset:166532; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)6533; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v18, v[2:5], s[0:1]6534; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)6535; GFX9-IDXMODE-NEXT:    s_and_saveexec_b64 s[0:1], vcc6536; GFX9-IDXMODE-NEXT:    s_cbranch_execz .LBB17_26537; GFX9-IDXMODE-NEXT:  ; %bb.1: ; %bb16538; GFX9-IDXMODE-NEXT:    global_store_dword v[0:1], v1, off6539; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)6540; GFX9-IDXMODE-NEXT:  .LBB17_2: ; %bb26541; GFX9-IDXMODE-NEXT:    s_endpgm6542entry:6543  %id = call i32 @llvm.amdgcn.workitem.id.x()6544  %id.ext = zext i32 %id to i646545  %gep = getelementptr inbounds i32, ptr addrspace(1) %in, i64 %id.ext6546  %idx0 = load volatile i32, ptr addrspace(1) %gep6547  %idx1 = add i32 %idx0, 16548  %live.out.val = call i32 asm sideeffect "v_mov_b32 $0, 62", "=v"()6549  %vec1 = insertelement <16 x i32> %vec0, i32 %live.out.val, i32 %idx06550  %vec2 = insertelement <16 x i32> %vec1, i32 63, i32 %idx16551  store volatile <16 x i32> %vec2, ptr addrspace(1) %out06552  %cmp = icmp eq i32 %id, 06553  br i1 %cmp, label %bb1, label %bb26554 6555bb1:6556  store volatile i32 %live.out.val, ptr addrspace(1) poison6557  br label %bb26558 6559bb2:6560  ret void6561}6562 6563; Avoid inserting extra v_mov from copies within the vgpr indexing sequence. The6564; gpr_idx mode switching sequence is expanded late for this reason.6565define amdgpu_kernel void @insert_w_offset_multiple_in_block(ptr addrspace(1) %out1, i32 %in) {6566; GENERIC-LABEL: insert_w_offset_multiple_in_block:6567; GENERIC:       ; %bb.0: ; %entry6568; GENERIC-NEXT:    s_load_dwordx2 s[28:29], s[4:5], 0x96569; GENERIC-NEXT:    s_load_dword s24, s[4:5], 0xb6570; GENERIC-NEXT:    s_mov_b32 s31, 0xf0006571; GENERIC-NEXT:    s_mov_b32 s30, -16572; GENERIC-NEXT:    v_mov_b32_e32 v1, 0x415000006573; GENERIC-NEXT:    v_mov_b32_e32 v0, 0x418800006574; GENERIC-NEXT:    v_mov_b32_e32 v2, 0x416000006575; GENERIC-NEXT:    v_mov_b32_e32 v3, 0x417000006576; GENERIC-NEXT:    v_mov_b32_e32 v4, 0x418000006577; GENERIC-NEXT:    v_mov_b32_e32 v5, 0x411000006578; GENERIC-NEXT:    v_mov_b32_e32 v6, 0x412000006579; GENERIC-NEXT:    v_mov_b32_e32 v7, 0x413000006580; GENERIC-NEXT:    v_mov_b32_e32 v8, 0x414000006581; GENERIC-NEXT:    v_mov_b32_e32 v9, 0x40a000006582; GENERIC-NEXT:    v_mov_b32_e32 v10, 0x40c000006583; GENERIC-NEXT:    v_mov_b32_e32 v11, 0x40e000006584; GENERIC-NEXT:    v_mov_b32_e32 v12, 0x410000006585; GENERIC-NEXT:    v_mov_b32_e32 v15, 0x404000006586; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)6587; GENERIC-NEXT:    s_add_i32 s25, s24, 16588; GENERIC-NEXT:    s_cmp_eq_u32 s25, 126589; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 06590; GENERIC-NEXT:    s_cmp_eq_u32 s25, 136591; GENERIC-NEXT:    s_cselect_b64 s[0:1], -1, 06592; GENERIC-NEXT:    s_cmp_eq_u32 s25, 146593; GENERIC-NEXT:    s_cselect_b64 s[2:3], -1, 06594; GENERIC-NEXT:    s_cmp_eq_u32 s25, 156595; GENERIC-NEXT:    s_cselect_b64 s[4:5], -1, 06596; GENERIC-NEXT:    s_cmp_eq_u32 s25, 86597; GENERIC-NEXT:    s_cselect_b64 s[6:7], -1, 06598; GENERIC-NEXT:    s_cmp_eq_u32 s25, 96599; GENERIC-NEXT:    s_cselect_b64 s[8:9], -1, 06600; GENERIC-NEXT:    s_cmp_eq_u32 s25, 106601; GENERIC-NEXT:    s_cselect_b64 s[10:11], -1, 06602; GENERIC-NEXT:    s_cmp_eq_u32 s25, 116603; GENERIC-NEXT:    s_cselect_b64 s[12:13], -1, 06604; GENERIC-NEXT:    s_cmp_eq_u32 s25, 46605; GENERIC-NEXT:    s_cselect_b64 s[14:15], -1, 06606; GENERIC-NEXT:    s_cmp_eq_u32 s25, 56607; GENERIC-NEXT:    s_cselect_b64 s[16:17], -1, 06608; GENERIC-NEXT:    s_cmp_eq_u32 s25, 66609; GENERIC-NEXT:    s_cselect_b64 s[18:19], -1, 06610; GENERIC-NEXT:    s_cmp_eq_u32 s25, 76611; GENERIC-NEXT:    s_cselect_b64 s[20:21], -1, 06612; GENERIC-NEXT:    s_cmp_eq_u32 s25, 06613; GENERIC-NEXT:    s_cselect_b64 s[22:23], -1, 06614; GENERIC-NEXT:    v_cndmask_b32_e64 v13, 1.0, v0, s[22:23]6615; GENERIC-NEXT:    s_cmp_eq_u32 s25, 16616; GENERIC-NEXT:    s_cselect_b64 s[22:23], -1, 06617; GENERIC-NEXT:    v_cndmask_b32_e64 v14, 2.0, v0, s[22:23]6618; GENERIC-NEXT:    s_cmp_eq_u32 s25, 26619; GENERIC-NEXT:    s_cselect_b64 s[22:23], -1, 06620; GENERIC-NEXT:    v_cndmask_b32_e64 v15, v15, v0, s[22:23]6621; GENERIC-NEXT:    s_cmp_eq_u32 s25, 36622; GENERIC-NEXT:    s_cselect_b64 s[22:23], -1, 06623; GENERIC-NEXT:    v_cndmask_b32_e64 v16, 4.0, v0, s[22:23]6624; GENERIC-NEXT:    s_add_i32 s26, s24, 26625; GENERIC-NEXT:    s_cmp_lg_u32 s26, 36626; GENERIC-NEXT:    buffer_store_dwordx4 v[13:16], off, s[28:31], 06627; GENERIC-NEXT:    s_cselect_b64 s[22:23], -1, 06628; GENERIC-NEXT:    s_cmp_lg_u32 s26, 26629; GENERIC-NEXT:    s_cselect_b64 s[24:25], -1, 06630; GENERIC-NEXT:    s_waitcnt expcnt(0)6631; GENERIC-NEXT:    v_cndmask_b32_e64 v16, v0, v16, s[22:23]6632; GENERIC-NEXT:    v_cndmask_b32_e64 v15, v0, v15, s[24:25]6633; GENERIC-NEXT:    s_cmp_lg_u32 s26, 16634; GENERIC-NEXT:    s_cselect_b64 s[22:23], -1, 06635; GENERIC-NEXT:    v_cndmask_b32_e64 v14, v0, v14, s[22:23]6636; GENERIC-NEXT:    s_cmp_lg_u32 s26, 06637; GENERIC-NEXT:    s_cselect_b64 s[22:23], -1, 06638; GENERIC-NEXT:    v_cndmask_b32_e64 v13, v0, v13, s[22:23]6639; GENERIC-NEXT:    v_cndmask_b32_e64 v9, v9, v0, s[14:15]6640; GENERIC-NEXT:    v_cndmask_b32_e64 v10, v10, v0, s[16:17]6641; GENERIC-NEXT:    v_cndmask_b32_e64 v11, v11, v0, s[18:19]6642; GENERIC-NEXT:    v_cndmask_b32_e64 v12, v12, v0, s[20:21]6643; GENERIC-NEXT:    buffer_store_dwordx4 v[9:12], off, s[28:31], 0 offset:166644; GENERIC-NEXT:    s_cmp_lg_u32 s26, 76645; GENERIC-NEXT:    s_cselect_b64 s[14:15], -1, 06646; GENERIC-NEXT:    s_cmp_lg_u32 s26, 66647; GENERIC-NEXT:    s_cselect_b64 s[16:17], -1, 06648; GENERIC-NEXT:    s_waitcnt expcnt(0)6649; GENERIC-NEXT:    v_cndmask_b32_e64 v12, v0, v12, s[14:15]6650; GENERIC-NEXT:    v_cndmask_b32_e64 v11, v0, v11, s[16:17]6651; GENERIC-NEXT:    s_cmp_lg_u32 s26, 56652; GENERIC-NEXT:    s_cselect_b64 s[14:15], -1, 06653; GENERIC-NEXT:    v_cndmask_b32_e64 v10, v0, v10, s[14:15]6654; GENERIC-NEXT:    s_cmp_lg_u32 s26, 46655; GENERIC-NEXT:    s_cselect_b64 s[14:15], -1, 06656; GENERIC-NEXT:    v_cndmask_b32_e64 v9, v0, v9, s[14:15]6657; GENERIC-NEXT:    v_cndmask_b32_e32 v1, v1, v0, vcc6658; GENERIC-NEXT:    v_cndmask_b32_e64 v2, v2, v0, s[0:1]6659; GENERIC-NEXT:    v_cndmask_b32_e64 v3, v3, v0, s[2:3]6660; GENERIC-NEXT:    v_cndmask_b32_e64 v4, v4, v0, s[4:5]6661; GENERIC-NEXT:    v_cndmask_b32_e64 v5, v5, v0, s[6:7]6662; GENERIC-NEXT:    buffer_store_dwordx4 v[1:4], off, s[28:31], 0 offset:486663; GENERIC-NEXT:    v_cndmask_b32_e64 v6, v6, v0, s[8:9]6664; GENERIC-NEXT:    v_cndmask_b32_e64 v7, v7, v0, s[10:11]6665; GENERIC-NEXT:    v_cndmask_b32_e64 v8, v8, v0, s[12:13]6666; GENERIC-NEXT:    buffer_store_dwordx4 v[5:8], off, s[28:31], 0 offset:326667; GENERIC-NEXT:    s_cmp_lg_u32 s26, 116668; GENERIC-NEXT:    buffer_store_dwordx4 v[9:12], off, s[28:31], 0 offset:806669; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 06670; GENERIC-NEXT:    s_waitcnt expcnt(1)6671; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v0, v8, vcc6672; GENERIC-NEXT:    s_cmp_lg_u32 s26, 106673; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 06674; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v0, v7, vcc6675; GENERIC-NEXT:    s_cmp_lg_u32 s26, 96676; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 06677; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v0, v6, vcc6678; GENERIC-NEXT:    s_cmp_lg_u32 s26, 86679; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 06680; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v0, v5, vcc6681; GENERIC-NEXT:    s_cmp_lg_u32 s26, 156682; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 06683; GENERIC-NEXT:    v_cndmask_b32_e32 v4, v0, v4, vcc6684; GENERIC-NEXT:    s_cmp_lg_u32 s26, 146685; GENERIC-NEXT:    buffer_store_dwordx4 v[5:8], off, s[28:31], 0 offset:966686; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 06687; GENERIC-NEXT:    v_cndmask_b32_e32 v3, v0, v3, vcc6688; GENERIC-NEXT:    s_cmp_lg_u32 s26, 136689; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 06690; GENERIC-NEXT:    v_cndmask_b32_e32 v2, v0, v2, vcc6691; GENERIC-NEXT:    s_cmp_lg_u32 s26, 126692; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 06693; GENERIC-NEXT:    v_cndmask_b32_e32 v1, v0, v1, vcc6694; GENERIC-NEXT:    buffer_store_dwordx4 v[1:4], off, s[28:31], 0 offset:1126695; GENERIC-NEXT:    buffer_store_dwordx4 v[13:16], off, s[28:31], 0 offset:646696; GENERIC-NEXT:    s_endpgm6697;6698; NOOPT-LABEL: insert_w_offset_multiple_in_block:6699; NOOPT:       ; %bb.0: ; %entry6700; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x96701; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xb6702; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)6703; NOOPT-NEXT:    s_mov_b32 s7, s16704; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr16705; NOOPT-NEXT:    s_mov_b32 s5, 0xf0006706; NOOPT-NEXT:    s_mov_b32 s6, -16707; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr36708; NOOPT-NEXT:    s_mov_b32 s1, s76709; NOOPT-NEXT:    s_mov_b32 s2, s66710; NOOPT-NEXT:    s_mov_b32 s3, s56711; NOOPT-NEXT:    s_mov_b32 s5, 16712; NOOPT-NEXT:    s_add_i32 s5, s4, s56713; NOOPT-NEXT:    s_mov_b32 s6, 0x418000006714; NOOPT-NEXT:    s_mov_b32 s7, 0x417000006715; NOOPT-NEXT:    s_mov_b32 s8, 0x416000006716; NOOPT-NEXT:    s_mov_b32 s9, 0x415000006717; NOOPT-NEXT:    s_mov_b32 s10, 0x414000006718; NOOPT-NEXT:    s_mov_b32 s11, 0x413000006719; NOOPT-NEXT:    s_mov_b32 s12, 0x412000006720; NOOPT-NEXT:    s_mov_b32 s13, 0x411000006721; NOOPT-NEXT:    s_mov_b32 s14, 0x410000006722; NOOPT-NEXT:    s_mov_b32 s15, 0x40e000006723; NOOPT-NEXT:    s_mov_b32 s16, 0x40c000006724; NOOPT-NEXT:    s_mov_b32 s17, 0x40a000006725; NOOPT-NEXT:    s_mov_b32 s18, 4.06726; NOOPT-NEXT:    s_mov_b32 s19, 0x404000006727; NOOPT-NEXT:    s_mov_b32 s20, 2.06728; NOOPT-NEXT:    s_mov_b32 s21, 1.06729; NOOPT-NEXT:    v_mov_b32_e32 v23, s216730; NOOPT-NEXT:    v_mov_b32_e32 v14, s206731; NOOPT-NEXT:    v_mov_b32_e32 v13, s196732; NOOPT-NEXT:    v_mov_b32_e32 v12, s186733; NOOPT-NEXT:    v_mov_b32_e32 v11, s176734; NOOPT-NEXT:    v_mov_b32_e32 v10, s166735; NOOPT-NEXT:    v_mov_b32_e32 v9, s156736; NOOPT-NEXT:    v_mov_b32_e32 v8, s146737; NOOPT-NEXT:    v_mov_b32_e32 v7, s136738; NOOPT-NEXT:    v_mov_b32_e32 v6, s126739; NOOPT-NEXT:    v_mov_b32_e32 v5, s116740; NOOPT-NEXT:    v_mov_b32_e32 v4, s106741; NOOPT-NEXT:    v_mov_b32_e32 v3, s96742; NOOPT-NEXT:    v_mov_b32_e32 v2, s86743; NOOPT-NEXT:    v_mov_b32_e32 v1, s76744; NOOPT-NEXT:    v_mov_b32_e32 v0, s66745; NOOPT-NEXT:    ; kill: def $vgpr23 killed $vgpr23 def $vgpr23_vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31_vgpr32_vgpr33_vgpr34_vgpr35_vgpr36_vgpr37_vgpr38 killed $exec6746; NOOPT-NEXT:    v_mov_b32_e32 v24, v146747; NOOPT-NEXT:    v_mov_b32_e32 v25, v136748; NOOPT-NEXT:    v_mov_b32_e32 v26, v126749; NOOPT-NEXT:    v_mov_b32_e32 v27, v116750; NOOPT-NEXT:    v_mov_b32_e32 v28, v106751; NOOPT-NEXT:    v_mov_b32_e32 v29, v96752; NOOPT-NEXT:    v_mov_b32_e32 v30, v86753; NOOPT-NEXT:    v_mov_b32_e32 v31, v76754; NOOPT-NEXT:    v_mov_b32_e32 v32, v66755; NOOPT-NEXT:    v_mov_b32_e32 v33, v56756; NOOPT-NEXT:    v_mov_b32_e32 v34, v46757; NOOPT-NEXT:    v_mov_b32_e32 v35, v36758; NOOPT-NEXT:    v_mov_b32_e32 v36, v26759; NOOPT-NEXT:    v_mov_b32_e32 v37, v16760; NOOPT-NEXT:    v_mov_b32_e32 v38, v06761; NOOPT-NEXT:    v_mov_b32_e32 v0, 0x418800006762; NOOPT-NEXT:    s_mov_b32 m0, s56763; NOOPT-NEXT:    v_movreld_b32_e32 v23, v06764; NOOPT-NEXT:    s_mov_b32 s5, 26765; NOOPT-NEXT:    s_add_i32 s4, s4, s56766; NOOPT-NEXT:    s_mov_b32 m0, s46767; NOOPT-NEXT:    v_mov_b32_e32 v7, v236768; NOOPT-NEXT:    v_mov_b32_e32 v8, v246769; NOOPT-NEXT:    v_mov_b32_e32 v9, v256770; NOOPT-NEXT:    v_mov_b32_e32 v10, v266771; NOOPT-NEXT:    v_mov_b32_e32 v11, v276772; NOOPT-NEXT:    v_mov_b32_e32 v12, v286773; NOOPT-NEXT:    v_mov_b32_e32 v13, v296774; NOOPT-NEXT:    v_mov_b32_e32 v14, v306775; NOOPT-NEXT:    v_mov_b32_e32 v15, v316776; NOOPT-NEXT:    v_mov_b32_e32 v16, v326777; NOOPT-NEXT:    v_mov_b32_e32 v17, v336778; NOOPT-NEXT:    v_mov_b32_e32 v18, v346779; NOOPT-NEXT:    v_mov_b32_e32 v19, v356780; NOOPT-NEXT:    v_mov_b32_e32 v20, v366781; NOOPT-NEXT:    v_mov_b32_e32 v21, v376782; NOOPT-NEXT:    v_mov_b32_e32 v22, v386783; NOOPT-NEXT:    v_movreld_b32_e32 v7, v06784; NOOPT-NEXT:    v_mov_b32_e32 v4, v386785; NOOPT-NEXT:    v_mov_b32_e32 v5, v376786; NOOPT-NEXT:    v_mov_b32_e32 v6, v366787; NOOPT-NEXT:    v_mov_b32_e32 v0, v356788; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec6789; NOOPT-NEXT:    v_mov_b32_e32 v1, v66790; NOOPT-NEXT:    v_mov_b32_e32 v2, v56791; NOOPT-NEXT:    v_mov_b32_e32 v3, v46792; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:486793; NOOPT-NEXT:    v_mov_b32_e32 v4, v346794; NOOPT-NEXT:    v_mov_b32_e32 v5, v336795; NOOPT-NEXT:    v_mov_b32_e32 v6, v326796; NOOPT-NEXT:    s_waitcnt expcnt(0)6797; NOOPT-NEXT:    v_mov_b32_e32 v0, v316798; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec6799; NOOPT-NEXT:    v_mov_b32_e32 v1, v66800; NOOPT-NEXT:    v_mov_b32_e32 v2, v56801; NOOPT-NEXT:    v_mov_b32_e32 v3, v46802; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:326803; NOOPT-NEXT:    v_mov_b32_e32 v4, v306804; NOOPT-NEXT:    v_mov_b32_e32 v5, v296805; NOOPT-NEXT:    v_mov_b32_e32 v6, v286806; NOOPT-NEXT:    s_waitcnt expcnt(0)6807; NOOPT-NEXT:    v_mov_b32_e32 v0, v276808; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec6809; NOOPT-NEXT:    v_mov_b32_e32 v1, v66810; NOOPT-NEXT:    v_mov_b32_e32 v2, v56811; NOOPT-NEXT:    v_mov_b32_e32 v3, v46812; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:166813; NOOPT-NEXT:    v_mov_b32_e32 v4, v266814; NOOPT-NEXT:    v_mov_b32_e32 v5, v256815; NOOPT-NEXT:    v_mov_b32_e32 v6, v246816; NOOPT-NEXT:    s_waitcnt expcnt(0)6817; NOOPT-NEXT:    v_mov_b32_e32 v0, v236818; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec6819; NOOPT-NEXT:    v_mov_b32_e32 v1, v66820; NOOPT-NEXT:    v_mov_b32_e32 v2, v56821; NOOPT-NEXT:    v_mov_b32_e32 v3, v46822; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 06823; NOOPT-NEXT:    v_mov_b32_e32 v4, v226824; NOOPT-NEXT:    v_mov_b32_e32 v5, v216825; NOOPT-NEXT:    v_mov_b32_e32 v6, v206826; NOOPT-NEXT:    s_waitcnt expcnt(0)6827; NOOPT-NEXT:    v_mov_b32_e32 v0, v196828; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec6829; NOOPT-NEXT:    v_mov_b32_e32 v1, v66830; NOOPT-NEXT:    v_mov_b32_e32 v2, v56831; NOOPT-NEXT:    v_mov_b32_e32 v3, v46832; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:1126833; NOOPT-NEXT:    v_mov_b32_e32 v4, v186834; NOOPT-NEXT:    v_mov_b32_e32 v5, v176835; NOOPT-NEXT:    v_mov_b32_e32 v6, v166836; NOOPT-NEXT:    s_waitcnt expcnt(0)6837; NOOPT-NEXT:    v_mov_b32_e32 v0, v156838; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec6839; NOOPT-NEXT:    v_mov_b32_e32 v1, v66840; NOOPT-NEXT:    v_mov_b32_e32 v2, v56841; NOOPT-NEXT:    v_mov_b32_e32 v3, v46842; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:966843; NOOPT-NEXT:    v_mov_b32_e32 v4, v146844; NOOPT-NEXT:    v_mov_b32_e32 v5, v136845; NOOPT-NEXT:    v_mov_b32_e32 v6, v126846; NOOPT-NEXT:    s_waitcnt expcnt(0)6847; NOOPT-NEXT:    v_mov_b32_e32 v0, v116848; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec6849; NOOPT-NEXT:    v_mov_b32_e32 v1, v66850; NOOPT-NEXT:    v_mov_b32_e32 v2, v56851; NOOPT-NEXT:    v_mov_b32_e32 v3, v46852; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:806853; NOOPT-NEXT:    v_mov_b32_e32 v4, v106854; NOOPT-NEXT:    v_mov_b32_e32 v5, v96855; NOOPT-NEXT:    v_mov_b32_e32 v6, v86856; NOOPT-NEXT:    s_waitcnt expcnt(0)6857; NOOPT-NEXT:    v_mov_b32_e32 v0, v76858; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec6859; NOOPT-NEXT:    v_mov_b32_e32 v1, v66860; NOOPT-NEXT:    v_mov_b32_e32 v2, v56861; NOOPT-NEXT:    v_mov_b32_e32 v3, v46862; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:646863; NOOPT-NEXT:    s_endpgm6864;6865; SI-MOVREL-LABEL: insert_w_offset_multiple_in_block:6866; SI-MOVREL:       ; %bb.0: ; %entry6867; SI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0xb6868; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x96869; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.06870; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.06871; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x404000006872; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.06873; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)6874; SI-MOVREL-NEXT:    s_add_i32 m0, s2, 16875; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a000006876; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c000006877; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e000006878; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x410000006879; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x411000006880; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x412000006881; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x413000006882; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x414000006883; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x415000006884; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x416000006885; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x417000006886; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x418000006887; SI-MOVREL-NEXT:    v_mov_b32_e32 v32, 0x418800006888; SI-MOVREL-NEXT:    v_movreld_b32_e32 v0, v326889; SI-MOVREL-NEXT:    v_mov_b32_e32 v31, v156890; SI-MOVREL-NEXT:    s_add_i32 m0, s2, 26891; SI-MOVREL-NEXT:    v_mov_b32_e32 v30, v146892; SI-MOVREL-NEXT:    v_mov_b32_e32 v29, v136893; SI-MOVREL-NEXT:    v_mov_b32_e32 v28, v126894; SI-MOVREL-NEXT:    v_mov_b32_e32 v27, v116895; SI-MOVREL-NEXT:    v_mov_b32_e32 v26, v106896; SI-MOVREL-NEXT:    v_mov_b32_e32 v25, v96897; SI-MOVREL-NEXT:    v_mov_b32_e32 v24, v86898; SI-MOVREL-NEXT:    v_mov_b32_e32 v23, v76899; SI-MOVREL-NEXT:    v_mov_b32_e32 v22, v66900; SI-MOVREL-NEXT:    v_mov_b32_e32 v21, v56901; SI-MOVREL-NEXT:    v_mov_b32_e32 v20, v46902; SI-MOVREL-NEXT:    v_mov_b32_e32 v19, v36903; SI-MOVREL-NEXT:    v_mov_b32_e32 v18, v26904; SI-MOVREL-NEXT:    v_mov_b32_e32 v17, v16905; SI-MOVREL-NEXT:    v_mov_b32_e32 v16, v06906; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0006907; SI-MOVREL-NEXT:    s_mov_b32 s2, -16908; SI-MOVREL-NEXT:    v_movreld_b32_e32 v16, v326909; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:486910; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:326911; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:166912; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 06913; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[28:31], off, s[0:3], 0 offset:1126914; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[24:27], off, s[0:3], 0 offset:966915; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[20:23], off, s[0:3], 0 offset:806916; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[16:19], off, s[0:3], 0 offset:646917; SI-MOVREL-NEXT:    s_endpgm6918;6919; VI-MOVREL-LABEL: insert_w_offset_multiple_in_block:6920; VI-MOVREL:       ; %bb.0: ; %entry6921; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0x2c6922; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x246923; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, 1.06924; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, 2.06925; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, 0x404000006926; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, 4.06927; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)6928; VI-MOVREL-NEXT:    s_add_i32 m0, s2, 16929; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, 0x40a000006930; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, 0x40c000006931; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, 0x40e000006932; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, 0x410000006933; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, 0x411000006934; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x412000006935; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, 0x413000006936; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, 0x414000006937; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, 0x415000006938; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, 0x416000006939; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, 0x417000006940; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, 0x418000006941; VI-MOVREL-NEXT:    v_mov_b32_e32 v32, 0x418800006942; VI-MOVREL-NEXT:    v_movreld_b32_e32 v0, v326943; VI-MOVREL-NEXT:    s_add_i32 m0, s2, 26944; VI-MOVREL-NEXT:    v_mov_b32_e32 v31, v156945; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 486946; VI-MOVREL-NEXT:    v_mov_b32_e32 v30, v146947; VI-MOVREL-NEXT:    v_mov_b32_e32 v29, v136948; VI-MOVREL-NEXT:    v_mov_b32_e32 v28, v126949; VI-MOVREL-NEXT:    v_mov_b32_e32 v27, v116950; VI-MOVREL-NEXT:    v_mov_b32_e32 v26, v106951; VI-MOVREL-NEXT:    v_mov_b32_e32 v25, v96952; VI-MOVREL-NEXT:    v_mov_b32_e32 v24, v86953; VI-MOVREL-NEXT:    v_mov_b32_e32 v23, v76954; VI-MOVREL-NEXT:    v_mov_b32_e32 v22, v66955; VI-MOVREL-NEXT:    v_mov_b32_e32 v21, v56956; VI-MOVREL-NEXT:    v_mov_b32_e32 v20, v46957; VI-MOVREL-NEXT:    v_mov_b32_e32 v19, v36958; VI-MOVREL-NEXT:    v_mov_b32_e32 v18, v26959; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, v16960; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, v06961; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 06962; VI-MOVREL-NEXT:    v_movreld_b32_e32 v16, v326963; VI-MOVREL-NEXT:    v_mov_b32_e32 v33, s36964; VI-MOVREL-NEXT:    v_mov_b32_e32 v32, s26965; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 326966; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 06967; VI-MOVREL-NEXT:    flat_store_dwordx4 v[32:33], v[12:15]6968; VI-MOVREL-NEXT:    s_nop 06969; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s36970; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s26971; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 166972; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 06973; VI-MOVREL-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]6974; VI-MOVREL-NEXT:    s_nop 06975; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s36976; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s26977; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 646978; VI-MOVREL-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]6979; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 06980; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s16981; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s06982; VI-MOVREL-NEXT:    s_add_u32 s4, s0, 0x706983; VI-MOVREL-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]6984; VI-MOVREL-NEXT:    s_addc_u32 s5, s1, 06985; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s46986; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s56987; VI-MOVREL-NEXT:    s_add_u32 s4, s0, 0x606988; VI-MOVREL-NEXT:    flat_store_dwordx4 v[0:1], v[28:31]6989; VI-MOVREL-NEXT:    s_addc_u32 s5, s1, 06990; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s46991; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s56992; VI-MOVREL-NEXT:    s_add_u32 s0, s0, 0x506993; VI-MOVREL-NEXT:    flat_store_dwordx4 v[0:1], v[24:27]6994; VI-MOVREL-NEXT:    s_addc_u32 s1, s1, 06995; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s06996; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s16997; VI-MOVREL-NEXT:    flat_store_dwordx4 v[0:1], v[20:23]6998; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s26999; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s37000; VI-MOVREL-NEXT:    flat_store_dwordx4 v[0:1], v[16:19]7001; VI-MOVREL-NEXT:    s_endpgm7002;7003; VI-IDXMODE-LABEL: insert_w_offset_multiple_in_block:7004; VI-IDXMODE:       ; %bb.0: ; %entry7005; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c7006; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247007; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.07008; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.07009; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x404000007010; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.07011; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)7012; VI-IDXMODE-NEXT:    s_add_i32 s3, s2, 17013; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a000007014; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c000007015; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e000007016; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x410000007017; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x411000007018; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x412000007019; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x413000007020; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x414000007021; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x415000007022; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x416000007023; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x417000007024; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x418000007025; VI-IDXMODE-NEXT:    v_mov_b32_e32 v32, 0x418800007026; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s3, gpr_idx(DST)7027; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, v327028; VI-IDXMODE-NEXT:    s_set_gpr_idx_off7029; VI-IDXMODE-NEXT:    v_mov_b32_e32 v31, v157030; VI-IDXMODE-NEXT:    s_add_i32 s2, s2, 27031; VI-IDXMODE-NEXT:    v_mov_b32_e32 v30, v147032; VI-IDXMODE-NEXT:    v_mov_b32_e32 v29, v137033; VI-IDXMODE-NEXT:    v_mov_b32_e32 v28, v127034; VI-IDXMODE-NEXT:    v_mov_b32_e32 v27, v117035; VI-IDXMODE-NEXT:    v_mov_b32_e32 v26, v107036; VI-IDXMODE-NEXT:    v_mov_b32_e32 v25, v97037; VI-IDXMODE-NEXT:    v_mov_b32_e32 v24, v87038; VI-IDXMODE-NEXT:    v_mov_b32_e32 v23, v77039; VI-IDXMODE-NEXT:    v_mov_b32_e32 v22, v67040; VI-IDXMODE-NEXT:    v_mov_b32_e32 v21, v57041; VI-IDXMODE-NEXT:    v_mov_b32_e32 v20, v47042; VI-IDXMODE-NEXT:    v_mov_b32_e32 v19, v37043; VI-IDXMODE-NEXT:    v_mov_b32_e32 v18, v27044; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, v17045; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, v07046; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)7047; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, v327048; VI-IDXMODE-NEXT:    s_set_gpr_idx_off7049; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 487050; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 07051; VI-IDXMODE-NEXT:    v_mov_b32_e32 v33, s37052; VI-IDXMODE-NEXT:    v_mov_b32_e32 v32, s27053; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 327054; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 07055; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[32:33], v[12:15]7056; VI-IDXMODE-NEXT:    s_nop 07057; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s37058; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s27059; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 167060; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 07061; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]7062; VI-IDXMODE-NEXT:    s_nop 07063; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s37064; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s27065; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 647066; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]7067; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 07068; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s17069; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s07070; VI-IDXMODE-NEXT:    s_add_u32 s4, s0, 0x707071; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]7072; VI-IDXMODE-NEXT:    s_addc_u32 s5, s1, 07073; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s47074; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s57075; VI-IDXMODE-NEXT:    s_add_u32 s4, s0, 0x607076; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[0:1], v[28:31]7077; VI-IDXMODE-NEXT:    s_addc_u32 s5, s1, 07078; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s47079; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s57080; VI-IDXMODE-NEXT:    s_add_u32 s0, s0, 0x507081; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[0:1], v[24:27]7082; VI-IDXMODE-NEXT:    s_addc_u32 s1, s1, 07083; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s07084; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s17085; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[0:1], v[20:23]7086; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s27087; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s37088; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[0:1], v[16:19]7089; VI-IDXMODE-NEXT:    s_endpgm7090;7091; GFX9-IDXMODE-LABEL: insert_w_offset_multiple_in_block:7092; GFX9-IDXMODE:       ; %bb.0: ; %entry7093; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0x2c7094; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x247095; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 1.07096; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 2.07097; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, 0x404000007098; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, 4.07099; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)7100; GFX9-IDXMODE-NEXT:    s_add_i32 s3, s2, 17101; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, 0x40a000007102; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, 0x40c000007103; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, 0x40e000007104; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, 0x410000007105; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, 0x411000007106; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x412000007107; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, 0x413000007108; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, 0x414000007109; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, 0x415000007110; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, 0x416000007111; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, 0x417000007112; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, 0x418000007113; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v32, 0x418800007114; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s3, gpr_idx(DST)7115; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v327116; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off7117; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v31, v157118; GFX9-IDXMODE-NEXT:    s_add_i32 s2, s2, 27119; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v30, v147120; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v29, v137121; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v28, v127122; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v27, v117123; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v26, v107124; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v25, v97125; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v24, v87126; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v23, v77127; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v22, v67128; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v21, v57129; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v20, v47130; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v19, v37131; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v18, v27132; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v17, v17133; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, v07134; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)7135; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, v327136; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off7137; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v32, 07138; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v32, v[12:15], s[0:1] offset:487139; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v32, v[8:11], s[0:1] offset:327140; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v32, v[4:7], s[0:1] offset:167141; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v32, v[0:3], s[0:1]7142; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v32, v[28:31], s[0:1] offset:1127143; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v32, v[24:27], s[0:1] offset:967144; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v32, v[20:23], s[0:1] offset:807145; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v32, v[16:19], s[0:1] offset:647146; GFX9-IDXMODE-NEXT:    s_endpgm7147entry:7148  %add1 = add i32 %in, 17149  %ins1 = insertelement <16 x float> <float 1.0, float 2.0, float 3.0, float 4.0, float 5.0, float 6.0, float 7.0, float 8.0, float 9.0, float 10.0, float 11.0, float 12.0, float 13.0, float 14.0, float 15.0, float 16.0>, float 17.0, i32 %add17150  %add2 = add i32 %in, 27151  %ins2 = insertelement <16 x float> %ins1, float 17.0, i32 %add27152  store <16 x float> %ins1, ptr addrspace(1) %out17153  %out2 = getelementptr <16 x float>, ptr addrspace(1) %out1, i32 17154  store <16 x float> %ins2, ptr addrspace(1) %out27155 7156  ret void7157}7158 7159; Make sure we don't hit use of undefined register errors when expanding an7160; extract with undef index.7161define amdgpu_kernel void @extract_adjacent_blocks(i32 %arg) {7162; GENERIC-LABEL: extract_adjacent_blocks:7163; GENERIC:       ; %bb.0: ; %bb7164; GENERIC-NEXT:    s_load_dword s0, s[4:5], 0x97165; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)7166; GENERIC-NEXT:    s_cmp_lg_u32 s0, 07167; GENERIC-NEXT:    s_cbranch_scc0 .LBB19_47168; GENERIC-NEXT:  ; %bb.1: ; %bb47169; GENERIC-NEXT:    s_mov_b32 s3, 0xf0007170; GENERIC-NEXT:    s_mov_b32 s2, -17171; GENERIC-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7172; GENERIC-NEXT:    s_waitcnt vmcnt(0)7173; GENERIC-NEXT:    ;;#ASMSTART7174; GENERIC-NEXT:    ; reg use v[0:3]7175; GENERIC-NEXT:    ;;#ASMEND7176; GENERIC-NEXT:    s_mov_b64 vcc, exec7177; GENERIC-NEXT:    s_cbranch_execnz .LBB19_37178; GENERIC-NEXT:  .LBB19_2: ; %bb17179; GENERIC-NEXT:    s_mov_b32 s3, 0xf0007180; GENERIC-NEXT:    s_mov_b32 s2, -17181; GENERIC-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7182; GENERIC-NEXT:    s_waitcnt vmcnt(0)7183; GENERIC-NEXT:    ;;#ASMSTART7184; GENERIC-NEXT:    ; reg use v[0:3]7185; GENERIC-NEXT:    ;;#ASMEND7186; GENERIC-NEXT:  .LBB19_3: ; %bb77187; GENERIC-NEXT:    s_mov_b32 s3, 0xf0007188; GENERIC-NEXT:    s_mov_b32 s2, -17189; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 07190; GENERIC-NEXT:    s_waitcnt vmcnt(0)7191; GENERIC-NEXT:    s_endpgm7192; GENERIC-NEXT:  .LBB19_4:7193; GENERIC-NEXT:    s_mov_b64 vcc, 07194; GENERIC-NEXT:    s_branch .LBB19_27195;7196; NOOPT-LABEL: extract_adjacent_blocks:7197; NOOPT:       ; %bb.0: ; %bb7198; NOOPT-NEXT:    s_mov_b32 s12, SCRATCH_RSRC_DWORD07199; NOOPT-NEXT:    s_mov_b32 s13, SCRATCH_RSRC_DWORD17200; NOOPT-NEXT:    s_mov_b32 s14, -17201; NOOPT-NEXT:    s_mov_b32 s15, 0xe8f0007202; NOOPT-NEXT:    s_add_u32 s12, s12, s117203; NOOPT-NEXT:    s_addc_u32 s13, s13, 07204; NOOPT-NEXT:    s_load_dword s2, s[4:5], 0x97205; NOOPT-NEXT:    s_mov_b64 s[0:1], -17206; NOOPT-NEXT:    ; implicit-def: $sgpr37207; NOOPT-NEXT:    s_mov_b32 s3, 07208; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)7209; NOOPT-NEXT:    s_cmp_lg_u32 s2, s37210; NOOPT-NEXT:    ; implicit-def: $vgpr4 : SGPR spill to VGPR lane7211; NOOPT-NEXT:    v_writelane_b32 v4, s0, 07212; NOOPT-NEXT:    v_writelane_b32 v4, s1, 17213; NOOPT-NEXT:    s_mov_b64 s[8:9], exec7214; NOOPT-NEXT:    s_mov_b64 exec, -17215; NOOPT-NEXT:    buffer_store_dword v4, off, s[12:15], 0 ; 4-byte Folded Spill7216; NOOPT-NEXT:    s_mov_b64 exec, s[8:9]7217; NOOPT-NEXT:    s_cbranch_scc1 .LBB19_37218; NOOPT-NEXT:  .LBB19_1: ; %Flow7219; NOOPT-NEXT:    s_or_saveexec_b64 s[8:9], -17220; NOOPT-NEXT:    s_waitcnt expcnt(0)7221; NOOPT-NEXT:    buffer_load_dword v4, off, s[12:15], 0 ; 4-byte Folded Reload7222; NOOPT-NEXT:    s_mov_b64 exec, s[8:9]7223; NOOPT-NEXT:    s_waitcnt vmcnt(0)7224; NOOPT-NEXT:    v_readlane_b32 s0, v4, 07225; NOOPT-NEXT:    v_readlane_b32 s1, v4, 17226; NOOPT-NEXT:    ; implicit-def: $sgpr27227; NOOPT-NEXT:    v_cndmask_b32_e64 v0, 0, 1, s[0:1]7228; NOOPT-NEXT:    s_mov_b32 s0, 17229; NOOPT-NEXT:    v_cmp_ne_u32_e64 s[0:1], v0, s07230; NOOPT-NEXT:    s_and_b64 vcc, exec, s[0:1]7231; NOOPT-NEXT:    s_cbranch_vccnz .LBB19_47232; NOOPT-NEXT:  ; %bb.2: ; %bb17233; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17234; NOOPT-NEXT:    s_mov_b32 s6, s17235; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17236; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr17237; NOOPT-NEXT:    s_mov_b32 s4, 0xf0007238; NOOPT-NEXT:    s_mov_b32 s5, -17239; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr37240; NOOPT-NEXT:    s_mov_b32 s1, s67241; NOOPT-NEXT:    s_mov_b32 s2, s57242; NOOPT-NEXT:    s_mov_b32 s3, s47243; NOOPT-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7244; NOOPT-NEXT:    s_waitcnt vmcnt(0)7245; NOOPT-NEXT:    ; implicit-def: $sgpr07246; NOOPT-NEXT:    ;;#ASMSTART7247; NOOPT-NEXT:    ; reg use v[0:3]7248; NOOPT-NEXT:    ;;#ASMEND7249; NOOPT-NEXT:    s_branch .LBB19_47250; NOOPT-NEXT:  .LBB19_3: ; %bb47251; NOOPT-NEXT:    s_or_saveexec_b64 s[8:9], -17252; NOOPT-NEXT:    s_waitcnt expcnt(0)7253; NOOPT-NEXT:    buffer_load_dword v4, off, s[12:15], 0 ; 4-byte Folded Reload7254; NOOPT-NEXT:    s_mov_b64 exec, s[8:9]7255; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17256; NOOPT-NEXT:    s_mov_b32 s6, s17257; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17258; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr17259; NOOPT-NEXT:    s_mov_b32 s4, 0xf0007260; NOOPT-NEXT:    s_mov_b32 s5, -17261; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr37262; NOOPT-NEXT:    s_mov_b32 s1, s67263; NOOPT-NEXT:    s_mov_b32 s2, s57264; NOOPT-NEXT:    s_mov_b32 s3, s47265; NOOPT-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7266; NOOPT-NEXT:    s_waitcnt vmcnt(0)7267; NOOPT-NEXT:    ; implicit-def: $sgpr07268; NOOPT-NEXT:    ;;#ASMSTART7269; NOOPT-NEXT:    ; reg use v[0:3]7270; NOOPT-NEXT:    ;;#ASMEND7271; NOOPT-NEXT:    s_mov_b64 s[0:1], 07272; NOOPT-NEXT:    v_writelane_b32 v4, s0, 07273; NOOPT-NEXT:    v_writelane_b32 v4, s1, 17274; NOOPT-NEXT:    s_or_saveexec_b64 s[8:9], -17275; NOOPT-NEXT:    buffer_store_dword v4, off, s[12:15], 0 ; 4-byte Folded Spill7276; NOOPT-NEXT:    s_mov_b64 exec, s[8:9]7277; NOOPT-NEXT:    s_branch .LBB19_17278; NOOPT-NEXT:  .LBB19_4: ; %bb77279; NOOPT-NEXT:    ; implicit-def: $sgpr47280; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17281; NOOPT-NEXT:    s_mov_b32 s7, s17282; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17283; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr17284; NOOPT-NEXT:    s_mov_b32 s5, 0xf0007285; NOOPT-NEXT:    s_mov_b32 s6, -17286; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr37287; NOOPT-NEXT:    s_mov_b32 s1, s77288; NOOPT-NEXT:    s_mov_b32 s2, s67289; NOOPT-NEXT:    s_mov_b32 s3, s57290; NOOPT-NEXT:    v_mov_b32_e32 v0, s47291; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 07292; NOOPT-NEXT:    s_waitcnt vmcnt(0)7293; NOOPT-NEXT:    s_endpgm7294;7295; SI-MOVREL-LABEL: extract_adjacent_blocks:7296; SI-MOVREL:       ; %bb.0: ; %bb7297; SI-MOVREL-NEXT:    s_load_dword s0, s[4:5], 0x97298; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)7299; SI-MOVREL-NEXT:    s_cmp_lg_u32 s0, 07300; SI-MOVREL-NEXT:    s_cbranch_scc0 .LBB19_47301; SI-MOVREL-NEXT:  ; %bb.1: ; %bb47302; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0007303; SI-MOVREL-NEXT:    s_mov_b32 s2, -17304; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7305; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)7306; SI-MOVREL-NEXT:    ;;#ASMSTART7307; SI-MOVREL-NEXT:    ; reg use v[0:3]7308; SI-MOVREL-NEXT:    ;;#ASMEND7309; SI-MOVREL-NEXT:    s_cbranch_execnz .LBB19_37310; SI-MOVREL-NEXT:  .LBB19_2: ; %bb17311; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0007312; SI-MOVREL-NEXT:    s_mov_b32 s2, -17313; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7314; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)7315; SI-MOVREL-NEXT:    ;;#ASMSTART7316; SI-MOVREL-NEXT:    ; reg use v[0:3]7317; SI-MOVREL-NEXT:    ;;#ASMEND7318; SI-MOVREL-NEXT:  .LBB19_3: ; %bb77319; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0007320; SI-MOVREL-NEXT:    s_mov_b32 s2, -17321; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[0:3], 07322; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)7323; SI-MOVREL-NEXT:    s_endpgm7324; SI-MOVREL-NEXT:  .LBB19_4:7325; SI-MOVREL-NEXT:    s_branch .LBB19_27326;7327; VI-LABEL: extract_adjacent_blocks:7328; VI:       ; %bb.0: ; %bb7329; VI-NEXT:    s_load_dword s0, s[4:5], 0x247330; VI-NEXT:    s_waitcnt lgkmcnt(0)7331; VI-NEXT:    s_cmp_lg_u32 s0, 07332; VI-NEXT:    s_cbranch_scc0 .LBB19_47333; VI-NEXT:  ; %bb.1: ; %bb47334; VI-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc7335; VI-NEXT:    s_waitcnt vmcnt(0)7336; VI-NEXT:    ;;#ASMSTART7337; VI-NEXT:    ; reg use v[0:3]7338; VI-NEXT:    ;;#ASMEND7339; VI-NEXT:    s_cbranch_execnz .LBB19_37340; VI-NEXT:  .LBB19_2: ; %bb17341; VI-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc7342; VI-NEXT:    s_waitcnt vmcnt(0)7343; VI-NEXT:    ;;#ASMSTART7344; VI-NEXT:    ; reg use v[0:3]7345; VI-NEXT:    ;;#ASMEND7346; VI-NEXT:  .LBB19_3: ; %bb77347; VI-NEXT:    flat_store_dword v[0:1], v07348; VI-NEXT:    s_waitcnt vmcnt(0)7349; VI-NEXT:    s_endpgm7350; VI-NEXT:  .LBB19_4:7351; VI-NEXT:    s_branch .LBB19_27352;7353; GFX9-IDXMODE-LABEL: extract_adjacent_blocks:7354; GFX9-IDXMODE:       ; %bb.0: ; %bb7355; GFX9-IDXMODE-NEXT:    s_load_dword s0, s[4:5], 0x247356; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)7357; GFX9-IDXMODE-NEXT:    s_cmp_lg_u32 s0, 07358; GFX9-IDXMODE-NEXT:    s_cbranch_scc0 .LBB19_47359; GFX9-IDXMODE-NEXT:  ; %bb.1: ; %bb47360; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[0:3], v[0:1], off glc7361; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)7362; GFX9-IDXMODE-NEXT:    ;;#ASMSTART7363; GFX9-IDXMODE-NEXT:    ; reg use v[0:3]7364; GFX9-IDXMODE-NEXT:    ;;#ASMEND7365; GFX9-IDXMODE-NEXT:    s_cbranch_execnz .LBB19_37366; GFX9-IDXMODE-NEXT:  .LBB19_2: ; %bb17367; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[0:3], v[0:1], off glc7368; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)7369; GFX9-IDXMODE-NEXT:    ;;#ASMSTART7370; GFX9-IDXMODE-NEXT:    ; reg use v[0:3]7371; GFX9-IDXMODE-NEXT:    ;;#ASMEND7372; GFX9-IDXMODE-NEXT:  .LBB19_3: ; %bb77373; GFX9-IDXMODE-NEXT:    global_store_dword v[0:1], v0, off7374; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)7375; GFX9-IDXMODE-NEXT:    s_endpgm7376; GFX9-IDXMODE-NEXT:  .LBB19_4:7377; GFX9-IDXMODE-NEXT:    s_branch .LBB19_27378bb:7379  %tmp = icmp eq i32 %arg, 07380  br i1 %tmp, label %bb1, label %bb47381 7382bb1:7383  %tmp2 = load volatile <4 x float>, ptr addrspace(1) poison7384  %tmp3 = extractelement <4 x float> %tmp2, i32 poison7385  call void asm sideeffect "; reg use $0", "v"(<4 x float> %tmp2) ; Prevent block optimize out7386  br label %bb77387 7388bb4:7389  %tmp5 = load volatile <4 x float>, ptr addrspace(1) poison7390  %tmp6 = extractelement <4 x float> %tmp5, i32 poison7391  call void asm sideeffect "; reg use $0", "v"(<4 x float> %tmp5) ; Prevent block optimize out7392  br label %bb77393 7394bb7:7395  %tmp8 = phi float [ %tmp3, %bb1 ], [ %tmp6, %bb4 ]7396  store volatile float %tmp8, ptr addrspace(1) poison7397  ret void7398}7399 7400define amdgpu_kernel void @insert_adjacent_blocks(i32 %arg, float %val0) {7401; GENERIC-LABEL: insert_adjacent_blocks:7402; GENERIC:       ; %bb.0: ; %bb7403; GENERIC-NEXT:    s_load_dword s0, s[4:5], 0x97404; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)7405; GENERIC-NEXT:    s_cmp_lg_u32 s0, 07406; GENERIC-NEXT:    s_cbranch_scc0 .LBB20_47407; GENERIC-NEXT:  ; %bb.1: ; %bb47408; GENERIC-NEXT:    s_mov_b32 s3, 0xf0007409; GENERIC-NEXT:    s_mov_b32 s2, -17410; GENERIC-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7411; GENERIC-NEXT:    s_waitcnt vmcnt(0)7412; GENERIC-NEXT:    ;;#ASMSTART7413; GENERIC-NEXT:    ; reg use v[0:3]7414; GENERIC-NEXT:    ;;#ASMEND7415; GENERIC-NEXT:    s_mov_b64 vcc, exec7416; GENERIC-NEXT:    s_cbranch_execnz .LBB20_37417; GENERIC-NEXT:  .LBB20_2: ; %bb17418; GENERIC-NEXT:    s_mov_b32 s3, 0xf0007419; GENERIC-NEXT:    s_mov_b32 s2, -17420; GENERIC-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7421; GENERIC-NEXT:    s_waitcnt vmcnt(0)7422; GENERIC-NEXT:    ;;#ASMSTART7423; GENERIC-NEXT:    ; reg use v[0:3]7424; GENERIC-NEXT:    ;;#ASMEND7425; GENERIC-NEXT:  .LBB20_3: ; %bb77426; GENERIC-NEXT:    s_mov_b32 s3, 0xf0007427; GENERIC-NEXT:    s_mov_b32 s2, -17428; GENERIC-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 07429; GENERIC-NEXT:    s_waitcnt vmcnt(0)7430; GENERIC-NEXT:    s_endpgm7431; GENERIC-NEXT:  .LBB20_4:7432; GENERIC-NEXT:    s_mov_b64 vcc, 07433; GENERIC-NEXT:    s_branch .LBB20_27434;7435; NOOPT-LABEL: insert_adjacent_blocks:7436; NOOPT:       ; %bb.0: ; %bb7437; NOOPT-NEXT:    s_mov_b32 s16, SCRATCH_RSRC_DWORD07438; NOOPT-NEXT:    s_mov_b32 s17, SCRATCH_RSRC_DWORD17439; NOOPT-NEXT:    s_mov_b32 s18, -17440; NOOPT-NEXT:    s_mov_b32 s19, 0xe8f0007441; NOOPT-NEXT:    s_add_u32 s16, s16, s117442; NOOPT-NEXT:    s_addc_u32 s17, s17, 07443; NOOPT-NEXT:    s_load_dword s2, s[4:5], 0x97444; NOOPT-NEXT:    s_load_dword s0, s[4:5], 0xa7445; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)7446; NOOPT-NEXT:    s_mov_b64 s[0:1], -17447; NOOPT-NEXT:    ; implicit-def: $sgpr4_sgpr5_sgpr6_sgpr77448; NOOPT-NEXT:    s_mov_b32 s3, 07449; NOOPT-NEXT:    s_cmp_lg_u32 s2, s37450; NOOPT-NEXT:    ; implicit-def: $vgpr4 : SGPR spill to VGPR lane7451; NOOPT-NEXT:    v_writelane_b32 v4, s0, 07452; NOOPT-NEXT:    v_writelane_b32 v4, s1, 17453; NOOPT-NEXT:    s_mov_b64 s[12:13], exec7454; NOOPT-NEXT:    s_mov_b64 exec, -17455; NOOPT-NEXT:    buffer_store_dword v4, off, s[16:19], 0 ; 4-byte Folded Spill7456; NOOPT-NEXT:    s_mov_b64 exec, s[12:13]7457; NOOPT-NEXT:    s_cbranch_scc1 .LBB20_37458; NOOPT-NEXT:  .LBB20_1: ; %Flow7459; NOOPT-NEXT:    s_or_saveexec_b64 s[12:13], -17460; NOOPT-NEXT:    s_waitcnt expcnt(0)7461; NOOPT-NEXT:    buffer_load_dword v4, off, s[16:19], 0 ; 4-byte Folded Reload7462; NOOPT-NEXT:    s_mov_b64 exec, s[12:13]7463; NOOPT-NEXT:    s_waitcnt vmcnt(0)7464; NOOPT-NEXT:    v_readlane_b32 s0, v4, 07465; NOOPT-NEXT:    v_readlane_b32 s1, v4, 17466; NOOPT-NEXT:    ; implicit-def: $sgpr4_sgpr5_sgpr6_sgpr77467; NOOPT-NEXT:    v_cndmask_b32_e64 v0, 0, 1, s[0:1]7468; NOOPT-NEXT:    s_mov_b32 s0, 17469; NOOPT-NEXT:    v_cmp_ne_u32_e64 s[0:1], v0, s07470; NOOPT-NEXT:    s_and_b64 vcc, exec, s[0:1]7471; NOOPT-NEXT:    s_cbranch_vccnz .LBB20_47472; NOOPT-NEXT:  ; %bb.2: ; %bb17473; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17474; NOOPT-NEXT:    s_mov_b32 s6, s17475; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17476; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr17477; NOOPT-NEXT:    s_mov_b32 s4, 0xf0007478; NOOPT-NEXT:    s_mov_b32 s5, -17479; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr37480; NOOPT-NEXT:    s_mov_b32 s1, s67481; NOOPT-NEXT:    s_mov_b32 s2, s57482; NOOPT-NEXT:    s_mov_b32 s3, s47483; NOOPT-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7484; NOOPT-NEXT:    s_waitcnt vmcnt(0)7485; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr1_sgpr2_sgpr37486; NOOPT-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr37487; NOOPT-NEXT:    ;;#ASMSTART7488; NOOPT-NEXT:    ; reg use v[0:3]7489; NOOPT-NEXT:    ;;#ASMEND7490; NOOPT-NEXT:    s_branch .LBB20_47491; NOOPT-NEXT:  .LBB20_3: ; %bb47492; NOOPT-NEXT:    s_or_saveexec_b64 s[12:13], -17493; NOOPT-NEXT:    s_waitcnt expcnt(0)7494; NOOPT-NEXT:    buffer_load_dword v4, off, s[16:19], 0 ; 4-byte Folded Reload7495; NOOPT-NEXT:    s_mov_b64 exec, s[12:13]7496; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17497; NOOPT-NEXT:    s_mov_b32 s6, s17498; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17499; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr17500; NOOPT-NEXT:    s_mov_b32 s4, 0xf0007501; NOOPT-NEXT:    s_mov_b32 s5, -17502; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr37503; NOOPT-NEXT:    s_mov_b32 s1, s67504; NOOPT-NEXT:    s_mov_b32 s2, s57505; NOOPT-NEXT:    s_mov_b32 s3, s47506; NOOPT-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7507; NOOPT-NEXT:    s_waitcnt vmcnt(0)7508; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr1_sgpr2_sgpr37509; NOOPT-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr37510; NOOPT-NEXT:    ;;#ASMSTART7511; NOOPT-NEXT:    ; reg use v[0:3]7512; NOOPT-NEXT:    ;;#ASMEND7513; NOOPT-NEXT:    s_mov_b64 s[0:1], 07514; NOOPT-NEXT:    v_writelane_b32 v4, s0, 07515; NOOPT-NEXT:    v_writelane_b32 v4, s1, 17516; NOOPT-NEXT:    s_or_saveexec_b64 s[12:13], -17517; NOOPT-NEXT:    buffer_store_dword v4, off, s[16:19], 0 ; 4-byte Folded Spill7518; NOOPT-NEXT:    s_mov_b64 exec, s[12:13]7519; NOOPT-NEXT:    s_branch .LBB20_17520; NOOPT-NEXT:  .LBB20_4: ; %bb77521; NOOPT-NEXT:    ; implicit-def: $sgpr4_sgpr5_sgpr6_sgpr77522; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17523; NOOPT-NEXT:    s_mov_b32 s10, s17524; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr17525; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr17526; NOOPT-NEXT:    s_mov_b32 s8, 0xf0007527; NOOPT-NEXT:    s_mov_b32 s9, -17528; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr37529; NOOPT-NEXT:    s_mov_b32 s1, s107530; NOOPT-NEXT:    s_mov_b32 s2, s97531; NOOPT-NEXT:    s_mov_b32 s3, s87532; NOOPT-NEXT:    v_mov_b32_e32 v0, s47533; NOOPT-NEXT:    v_mov_b32_e32 v1, s57534; NOOPT-NEXT:    v_mov_b32_e32 v2, s67535; NOOPT-NEXT:    v_mov_b32_e32 v3, s77536; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 07537; NOOPT-NEXT:    s_waitcnt vmcnt(0)7538; NOOPT-NEXT:    s_endpgm7539;7540; SI-MOVREL-LABEL: insert_adjacent_blocks:7541; SI-MOVREL:       ; %bb.0: ; %bb7542; SI-MOVREL-NEXT:    s_load_dword s0, s[4:5], 0x97543; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)7544; SI-MOVREL-NEXT:    s_cmp_lg_u32 s0, 07545; SI-MOVREL-NEXT:    s_cbranch_scc0 .LBB20_47546; SI-MOVREL-NEXT:  ; %bb.1: ; %bb47547; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0007548; SI-MOVREL-NEXT:    s_mov_b32 s2, -17549; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7550; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)7551; SI-MOVREL-NEXT:    ;;#ASMSTART7552; SI-MOVREL-NEXT:    ; reg use v[0:3]7553; SI-MOVREL-NEXT:    ;;#ASMEND7554; SI-MOVREL-NEXT:    s_cbranch_execnz .LBB20_37555; SI-MOVREL-NEXT:  .LBB20_2: ; %bb17556; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0007557; SI-MOVREL-NEXT:    s_mov_b32 s2, -17558; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[0:3], off, s[0:3], 0 glc7559; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)7560; SI-MOVREL-NEXT:    ;;#ASMSTART7561; SI-MOVREL-NEXT:    ; reg use v[0:3]7562; SI-MOVREL-NEXT:    ;;#ASMEND7563; SI-MOVREL-NEXT:  .LBB20_3: ; %bb77564; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0007565; SI-MOVREL-NEXT:    s_mov_b32 s2, -17566; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 07567; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)7568; SI-MOVREL-NEXT:    s_endpgm7569; SI-MOVREL-NEXT:  .LBB20_4:7570; SI-MOVREL-NEXT:    s_branch .LBB20_27571;7572; VI-LABEL: insert_adjacent_blocks:7573; VI:       ; %bb.0: ; %bb7574; VI-NEXT:    s_load_dword s0, s[4:5], 0x247575; VI-NEXT:    s_waitcnt lgkmcnt(0)7576; VI-NEXT:    s_cmp_lg_u32 s0, 07577; VI-NEXT:    s_cbranch_scc0 .LBB20_47578; VI-NEXT:  ; %bb.1: ; %bb47579; VI-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc7580; VI-NEXT:    s_waitcnt vmcnt(0)7581; VI-NEXT:    ;;#ASMSTART7582; VI-NEXT:    ; reg use v[0:3]7583; VI-NEXT:    ;;#ASMEND7584; VI-NEXT:    s_cbranch_execnz .LBB20_37585; VI-NEXT:  .LBB20_2: ; %bb17586; VI-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc7587; VI-NEXT:    s_waitcnt vmcnt(0)7588; VI-NEXT:    ;;#ASMSTART7589; VI-NEXT:    ; reg use v[0:3]7590; VI-NEXT:    ;;#ASMEND7591; VI-NEXT:  .LBB20_3: ; %bb77592; VI-NEXT:    flat_store_dwordx4 v[0:1], v[0:3]7593; VI-NEXT:    s_waitcnt vmcnt(0)7594; VI-NEXT:    s_endpgm7595; VI-NEXT:  .LBB20_4:7596; VI-NEXT:    s_branch .LBB20_27597;7598; GFX9-IDXMODE-LABEL: insert_adjacent_blocks:7599; GFX9-IDXMODE:       ; %bb.0: ; %bb7600; GFX9-IDXMODE-NEXT:    s_load_dword s0, s[4:5], 0x247601; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)7602; GFX9-IDXMODE-NEXT:    s_cmp_lg_u32 s0, 07603; GFX9-IDXMODE-NEXT:    s_cbranch_scc0 .LBB20_47604; GFX9-IDXMODE-NEXT:  ; %bb.1: ; %bb47605; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[0:3], v[0:1], off glc7606; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)7607; GFX9-IDXMODE-NEXT:    ;;#ASMSTART7608; GFX9-IDXMODE-NEXT:    ; reg use v[0:3]7609; GFX9-IDXMODE-NEXT:    ;;#ASMEND7610; GFX9-IDXMODE-NEXT:    s_cbranch_execnz .LBB20_37611; GFX9-IDXMODE-NEXT:  .LBB20_2: ; %bb17612; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[0:3], v[0:1], off glc7613; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)7614; GFX9-IDXMODE-NEXT:    ;;#ASMSTART7615; GFX9-IDXMODE-NEXT:    ; reg use v[0:3]7616; GFX9-IDXMODE-NEXT:    ;;#ASMEND7617; GFX9-IDXMODE-NEXT:  .LBB20_3: ; %bb77618; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v[0:1], v[0:3], off7619; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)7620; GFX9-IDXMODE-NEXT:    s_endpgm7621; GFX9-IDXMODE-NEXT:  .LBB20_4:7622; GFX9-IDXMODE-NEXT:    s_branch .LBB20_27623bb:7624  %tmp = icmp eq i32 %arg, 07625  br i1 %tmp, label %bb1, label %bb47626 7627bb1:7628  %tmp2 = load volatile <4 x float>, ptr addrspace(1) poison7629  %tmp3 = insertelement <4 x float> %tmp2, float %val0, i32 poison7630  call void asm sideeffect "; reg use $0", "v"(<4 x float> %tmp3) ; Prevent block optimize out7631  br label %bb77632 7633bb4:7634  %tmp5 = load volatile <4 x float>, ptr addrspace(1) poison7635  %tmp6 = insertelement <4 x float> %tmp5, float %val0, i32 poison7636  call void asm sideeffect "; reg use $0", "v"(<4 x float> %tmp6) ; Prevent block optimize out7637  br label %bb77638 7639bb7:7640  %tmp8 = phi <4 x float> [ %tmp3, %bb1 ], [ %tmp6, %bb4 ]7641  store volatile <4 x float> %tmp8, ptr addrspace(1) poison7642  ret void7643}7644 7645; FIXME: Should be able to fold zero input to movreld to inline imm?7646define amdgpu_kernel void @multi_same_block(i32 %arg) {7647; GENERIC-LABEL: multi_same_block:7648; GENERIC:       ; %bb.0: ; %bb7649; GENERIC-NEXT:    s_load_dword s0, s[4:5], 0x97650; GENERIC-NEXT:    v_mov_b32_e32 v0, 0x419000007651; GENERIC-NEXT:    v_mov_b32_e32 v1, 0x41b0cccd7652; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)7653; GENERIC-NEXT:    s_add_i32 s2, s0, -167654; GENERIC-NEXT:    s_cmp_eq_u32 s2, 17655; GENERIC-NEXT:    s_cselect_b64 s[0:1], -1, 07656; GENERIC-NEXT:    v_cndmask_b32_e64 v0, v0, 4.0, s[0:1]7657; GENERIC-NEXT:    s_cmp_eq_u32 s2, 57658; GENERIC-NEXT:    s_cselect_b64 s[0:1], -1, 07659; GENERIC-NEXT:    v_cndmask_b32_e64 v1, v1, -4.0, s[0:1]7660; GENERIC-NEXT:    s_mov_b32 m0, -17661; GENERIC-NEXT:    ds_write_b32 v0, v07662; GENERIC-NEXT:    ds_write_b32 v0, v17663; GENERIC-NEXT:    s_endpgm7664;7665; NOOPT-LABEL: multi_same_block:7666; NOOPT:       ; %bb.0: ; %bb7667; NOOPT-NEXT:    s_load_dword s0, s[4:5], 0x97668; NOOPT-NEXT:    s_mov_b32 s8, 0x419000007669; NOOPT-NEXT:    ; implicit-def: $sgpr97670; NOOPT-NEXT:    ; implicit-def: $sgpr17671; NOOPT-NEXT:    ; implicit-def: $sgpr77672; NOOPT-NEXT:    ; implicit-def: $sgpr17673; NOOPT-NEXT:    ; implicit-def: $sgpr67674; NOOPT-NEXT:    ; implicit-def: $sgpr17675; NOOPT-NEXT:    ; implicit-def: $sgpr57676; NOOPT-NEXT:    ; implicit-def: $sgpr17677; NOOPT-NEXT:    ; implicit-def: $sgpr47678; NOOPT-NEXT:    ; implicit-def: $sgpr17679; NOOPT-NEXT:    ; implicit-def: $sgpr37680; NOOPT-NEXT:    ; implicit-def: $sgpr17681; NOOPT-NEXT:    ; implicit-def: $sgpr27682; NOOPT-NEXT:    ; implicit-def: $sgpr17683; NOOPT-NEXT:    ; implicit-def: $sgpr17684; NOOPT-NEXT:    ; implicit-def: $sgpr107685; NOOPT-NEXT:    v_mov_b32_e32 v12, s97686; NOOPT-NEXT:    v_mov_b32_e32 v7, s87687; NOOPT-NEXT:    v_mov_b32_e32 v6, s77688; NOOPT-NEXT:    v_mov_b32_e32 v5, s67689; NOOPT-NEXT:    v_mov_b32_e32 v4, s57690; NOOPT-NEXT:    v_mov_b32_e32 v3, s47691; NOOPT-NEXT:    v_mov_b32_e32 v2, s37692; NOOPT-NEXT:    v_mov_b32_e32 v1, s27693; NOOPT-NEXT:    v_mov_b32_e32 v0, s17694; NOOPT-NEXT:    ; kill: def $vgpr12 killed $vgpr12 def $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19_vgpr20 killed $exec7695; NOOPT-NEXT:    v_mov_b32_e32 v13, v77696; NOOPT-NEXT:    v_mov_b32_e32 v14, v67697; NOOPT-NEXT:    v_mov_b32_e32 v15, v57698; NOOPT-NEXT:    v_mov_b32_e32 v16, v47699; NOOPT-NEXT:    v_mov_b32_e32 v17, v37700; NOOPT-NEXT:    v_mov_b32_e32 v18, v27701; NOOPT-NEXT:    v_mov_b32_e32 v19, v17702; NOOPT-NEXT:    v_mov_b32_e32 v20, v07703; NOOPT-NEXT:    v_mov_b32_e32 v0, 4.07704; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)7705; NOOPT-NEXT:    s_add_i32 m0, s0, -167706; NOOPT-NEXT:    v_movreld_b32_e32 v12, v07707; NOOPT-NEXT:    s_mov_b32 s4, 0x41b0cccd7708; NOOPT-NEXT:    ; implicit-def: $sgpr97709; NOOPT-NEXT:    ; implicit-def: $sgpr17710; NOOPT-NEXT:    ; implicit-def: $sgpr87711; NOOPT-NEXT:    ; implicit-def: $sgpr17712; NOOPT-NEXT:    ; implicit-def: $sgpr77713; NOOPT-NEXT:    ; implicit-def: $sgpr17714; NOOPT-NEXT:    ; implicit-def: $sgpr67715; NOOPT-NEXT:    ; implicit-def: $sgpr17716; NOOPT-NEXT:    ; implicit-def: $sgpr57717; NOOPT-NEXT:    ; implicit-def: $sgpr17718; NOOPT-NEXT:    ; implicit-def: $sgpr37719; NOOPT-NEXT:    ; implicit-def: $sgpr17720; NOOPT-NEXT:    ; implicit-def: $sgpr27721; NOOPT-NEXT:    ; implicit-def: $sgpr17722; NOOPT-NEXT:    ; implicit-def: $sgpr17723; NOOPT-NEXT:    ; implicit-def: $sgpr107724; NOOPT-NEXT:    v_mov_b32_e32 v3, s97725; NOOPT-NEXT:    v_mov_b32_e32 v25, s87726; NOOPT-NEXT:    v_mov_b32_e32 v24, s77727; NOOPT-NEXT:    v_mov_b32_e32 v23, s67728; NOOPT-NEXT:    v_mov_b32_e32 v22, s57729; NOOPT-NEXT:    v_mov_b32_e32 v21, s47730; NOOPT-NEXT:    v_mov_b32_e32 v2, s37731; NOOPT-NEXT:    v_mov_b32_e32 v1, s27732; NOOPT-NEXT:    v_mov_b32_e32 v0, s17733; NOOPT-NEXT:    ; kill: def $vgpr3 killed $vgpr3 def $vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11 killed $exec7734; NOOPT-NEXT:    v_mov_b32_e32 v4, v257735; NOOPT-NEXT:    v_mov_b32_e32 v5, v247736; NOOPT-NEXT:    v_mov_b32_e32 v6, v237737; NOOPT-NEXT:    v_mov_b32_e32 v7, v227738; NOOPT-NEXT:    v_mov_b32_e32 v8, v217739; NOOPT-NEXT:    v_mov_b32_e32 v9, v27740; NOOPT-NEXT:    v_mov_b32_e32 v10, v17741; NOOPT-NEXT:    v_mov_b32_e32 v11, v07742; NOOPT-NEXT:    v_mov_b32_e32 v0, -4.07743; NOOPT-NEXT:    s_add_i32 m0, s0, -167744; NOOPT-NEXT:    v_movreld_b32_e32 v3, v07745; NOOPT-NEXT:    v_mov_b32_e32 v2, v137746; NOOPT-NEXT:    v_mov_b32_e32 v1, v87747; NOOPT-NEXT:    s_mov_b32 m0, -17748; NOOPT-NEXT:    ; implicit-def: $sgpr07749; NOOPT-NEXT:    v_mov_b32_e32 v0, s07750; NOOPT-NEXT:    ds_write_b32 v0, v27751; NOOPT-NEXT:    s_mov_b32 m0, -17752; NOOPT-NEXT:    ; implicit-def: $sgpr07753; NOOPT-NEXT:    v_mov_b32_e32 v0, s07754; NOOPT-NEXT:    ds_write_b32 v0, v17755; NOOPT-NEXT:    s_endpgm7756;7757; SI-MOVREL-LABEL: multi_same_block:7758; SI-MOVREL:       ; %bb.0: ; %bb7759; SI-MOVREL-NEXT:    s_load_dword s0, s[4:5], 0x97760; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, 0x419000007761; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x41b0cccd7762; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)7763; SI-MOVREL-NEXT:    s_add_i32 m0, s0, -167764; SI-MOVREL-NEXT:    v_movreld_b32_e32 v0, 4.07765; SI-MOVREL-NEXT:    v_movreld_b32_e32 v4, -4.07766; SI-MOVREL-NEXT:    s_mov_b32 m0, -17767; SI-MOVREL-NEXT:    ds_write_b32 v0, v17768; SI-MOVREL-NEXT:    ds_write_b32 v0, v97769; SI-MOVREL-NEXT:    s_endpgm7770;7771; VI-MOVREL-LABEL: multi_same_block:7772; VI-MOVREL:       ; %bb.0: ; %bb7773; VI-MOVREL-NEXT:    s_load_dword s0, s[4:5], 0x247774; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, 0x419000007775; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, 0x41b0cccd7776; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)7777; VI-MOVREL-NEXT:    s_add_i32 m0, s0, -167778; VI-MOVREL-NEXT:    v_movreld_b32_e32 v0, 4.07779; VI-MOVREL-NEXT:    v_movreld_b32_e32 v4, -4.07780; VI-MOVREL-NEXT:    s_mov_b32 m0, -17781; VI-MOVREL-NEXT:    ds_write_b32 v0, v17782; VI-MOVREL-NEXT:    ds_write_b32 v0, v97783; VI-MOVREL-NEXT:    s_endpgm7784;7785; VI-IDXMODE-LABEL: multi_same_block:7786; VI-IDXMODE:       ; %bb.0: ; %bb7787; VI-IDXMODE-NEXT:    s_load_dword s0, s[4:5], 0x247788; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, 0x419000007789; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x41b0cccd7790; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)7791; VI-IDXMODE-NEXT:    s_add_i32 s0, s0, -167792; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s0, gpr_idx(DST)7793; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 4.07794; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, -4.07795; VI-IDXMODE-NEXT:    s_set_gpr_idx_off7796; VI-IDXMODE-NEXT:    s_mov_b32 m0, -17797; VI-IDXMODE-NEXT:    ds_write_b32 v0, v17798; VI-IDXMODE-NEXT:    ds_write_b32 v0, v97799; VI-IDXMODE-NEXT:    s_endpgm7800;7801; GFX9-IDXMODE-LABEL: multi_same_block:7802; GFX9-IDXMODE:       ; %bb.0: ; %bb7803; GFX9-IDXMODE-NEXT:    s_load_dword s0, s[4:5], 0x247804; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, 0x419000007805; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, 0x41b0cccd7806; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)7807; GFX9-IDXMODE-NEXT:    s_add_i32 s0, s0, -167808; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s0, gpr_idx(DST)7809; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 4.07810; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, -4.07811; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off7812; GFX9-IDXMODE-NEXT:    ds_write_b32 v0, v17813; GFX9-IDXMODE-NEXT:    ds_write_b32 v0, v97814; GFX9-IDXMODE-NEXT:    s_endpgm7815bb:7816  %tmp1 = add i32 %arg, -167817  %tmp2 = insertelement <9 x float> <float 1.700000e+01, float 1.800000e+01, float 1.900000e+01, float 2.000000e+01, float 2.100000e+01, float 2.200000e+01, float 2.300000e+01, float 2.400000e+01, float 2.500000e+01>, float 4.000000e+00, i32 %tmp17818  %tmp3 = add i32 %arg, -167819  %tmp4 = insertelement <9 x float> <float 0x40311999A0000000, float 0x40321999A0000000, float 0x40331999A0000000, float 0x40341999A0000000, float 0x40351999A0000000, float 0x40361999A0000000, float 0x40371999A0000000, float 0x40381999A0000000, float 0x40391999A0000000>, float -4.0, i32 %tmp37820  %tmp5 = bitcast <9 x float> %tmp2 to <9 x i32>7821  %tmp6 = extractelement <9 x i32> %tmp5, i32 17822  %tmp7 = bitcast <9 x float> %tmp4 to <9 x i32>7823  %tmp8 = extractelement <9 x i32> %tmp7, i32 57824  store volatile i32 %tmp6, ptr addrspace(3) poison, align 47825  store volatile i32 %tmp8, ptr addrspace(3) poison, align 47826  ret void7827}7828 7829; offset puts outside of superegister bounaries, so clamp to 1st element.7830define amdgpu_kernel void @extract_largest_inbounds_offset(ptr addrspace(1) %out, ptr addrspace(1) %in, i32 %idx) {7831; GENERIC-LABEL: extract_largest_inbounds_offset:7832; GENERIC:       ; %bb.0: ; %entry7833; GENERIC-NEXT:    s_load_dwordx4 s[8:11], s[4:5], 0x97834; GENERIC-NEXT:    s_mov_b32 s3, 0xf0007835; GENERIC-NEXT:    s_mov_b32 s2, -17836; GENERIC-NEXT:    s_load_dword s12, s[4:5], 0xd7837; GENERIC-NEXT:    s_mov_b32 s6, s27838; GENERIC-NEXT:    s_mov_b32 s7, s37839; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)7840; GENERIC-NEXT:    s_mov_b32 s0, s87841; GENERIC-NEXT:    s_mov_b32 s1, s97842; GENERIC-NEXT:    s_mov_b32 s4, s107843; GENERIC-NEXT:    s_mov_b32 s5, s117844; GENERIC-NEXT:    buffer_load_dwordx4 v[0:3], off, s[4:7], 0 glc7845; GENERIC-NEXT:    s_waitcnt vmcnt(0)7846; GENERIC-NEXT:    buffer_load_dwordx4 v[4:7], off, s[4:7], 0 offset:16 glc7847; GENERIC-NEXT:    s_waitcnt vmcnt(0)7848; GENERIC-NEXT:    buffer_load_dwordx4 v[8:11], off, s[4:7], 0 offset:32 glc7849; GENERIC-NEXT:    s_waitcnt vmcnt(0)7850; GENERIC-NEXT:    buffer_load_dwordx4 v[12:15], off, s[4:7], 0 offset:48 glc7851; GENERIC-NEXT:    s_waitcnt vmcnt(0)7852; GENERIC-NEXT:    s_add_i32 s12, s12, 157853; GENERIC-NEXT:    s_cmp_eq_u32 s12, 17854; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07855; GENERIC-NEXT:    s_cmp_eq_u32 s12, 27856; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v1, vcc7857; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07858; GENERIC-NEXT:    s_cmp_eq_u32 s12, 37859; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v2, vcc7860; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07861; GENERIC-NEXT:    s_cmp_eq_u32 s12, 47862; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v3, vcc7863; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07864; GENERIC-NEXT:    s_cmp_eq_u32 s12, 57865; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v4, vcc7866; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07867; GENERIC-NEXT:    s_cmp_eq_u32 s12, 67868; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v5, vcc7869; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07870; GENERIC-NEXT:    s_cmp_eq_u32 s12, 77871; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v6, vcc7872; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07873; GENERIC-NEXT:    s_cmp_eq_u32 s12, 87874; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v7, vcc7875; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07876; GENERIC-NEXT:    s_cmp_eq_u32 s12, 97877; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v8, vcc7878; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07879; GENERIC-NEXT:    s_cmp_eq_u32 s12, 107880; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v9, vcc7881; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07882; GENERIC-NEXT:    s_cmp_eq_u32 s12, 117883; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v10, vcc7884; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07885; GENERIC-NEXT:    s_cmp_eq_u32 s12, 127886; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v11, vcc7887; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07888; GENERIC-NEXT:    s_cmp_eq_u32 s12, 137889; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v12, vcc7890; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07891; GENERIC-NEXT:    s_cmp_eq_u32 s12, 147892; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v13, vcc7893; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07894; GENERIC-NEXT:    s_cmp_eq_u32 s12, 157895; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v14, vcc7896; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 07897; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v15, vcc7898; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 07899; GENERIC-NEXT:    s_endpgm7900;7901; NOOPT-LABEL: extract_largest_inbounds_offset:7902; NOOPT:       ; %bb.0: ; %entry7903; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x97904; NOOPT-NEXT:    s_load_dwordx2 s[8:9], s[4:5], 0xb7905; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xd7906; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)7907; NOOPT-NEXT:    s_mov_b32 s7, s17908; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr17909; NOOPT-NEXT:    s_mov_b32 s5, 0xf0007910; NOOPT-NEXT:    s_mov_b32 s6, -17911; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr37912; NOOPT-NEXT:    s_mov_b32 s1, s77913; NOOPT-NEXT:    s_mov_b32 s2, s67914; NOOPT-NEXT:    s_mov_b32 s3, s57915; NOOPT-NEXT:    s_mov_b32 s7, s97916; NOOPT-NEXT:    ; kill: def $sgpr8 killed $sgpr8 killed $sgpr8_sgpr97917; NOOPT-NEXT:    ; kill: def $sgpr8 killed $sgpr8 def $sgpr8_sgpr9_sgpr10_sgpr117918; NOOPT-NEXT:    s_mov_b32 s9, s77919; NOOPT-NEXT:    s_mov_b32 s10, s67920; NOOPT-NEXT:    s_mov_b32 s11, s57921; NOOPT-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 glc7922; NOOPT-NEXT:    s_waitcnt vmcnt(0)7923; NOOPT-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16 glc7924; NOOPT-NEXT:    s_waitcnt vmcnt(0)7925; NOOPT-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:32 glc7926; NOOPT-NEXT:    s_waitcnt vmcnt(0)7927; NOOPT-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:48 glc7928; NOOPT-NEXT:    s_waitcnt vmcnt(0)7929; NOOPT-NEXT:    v_mov_b32_e32 v16, v157930; NOOPT-NEXT:    v_mov_b32_e32 v17, v147931; NOOPT-NEXT:    v_mov_b32_e32 v18, v137932; NOOPT-NEXT:    v_mov_b32_e32 v19, v127933; NOOPT-NEXT:    v_mov_b32_e32 v20, v117934; NOOPT-NEXT:    v_mov_b32_e32 v21, v107935; NOOPT-NEXT:    v_mov_b32_e32 v22, v97936; NOOPT-NEXT:    v_mov_b32_e32 v23, v87937; NOOPT-NEXT:    v_mov_b32_e32 v24, v77938; NOOPT-NEXT:    v_mov_b32_e32 v25, v67939; NOOPT-NEXT:    v_mov_b32_e32 v26, v57940; NOOPT-NEXT:    v_mov_b32_e32 v27, v47941; NOOPT-NEXT:    v_mov_b32_e32 v28, v37942; NOOPT-NEXT:    v_mov_b32_e32 v29, v27943; NOOPT-NEXT:    v_mov_b32_e32 v30, v17944; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 killed $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec7945; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec7946; NOOPT-NEXT:    v_mov_b32_e32 v1, v307947; NOOPT-NEXT:    v_mov_b32_e32 v2, v297948; NOOPT-NEXT:    v_mov_b32_e32 v3, v287949; NOOPT-NEXT:    v_mov_b32_e32 v4, v277950; NOOPT-NEXT:    v_mov_b32_e32 v5, v267951; NOOPT-NEXT:    v_mov_b32_e32 v6, v257952; NOOPT-NEXT:    v_mov_b32_e32 v7, v247953; NOOPT-NEXT:    v_mov_b32_e32 v8, v237954; NOOPT-NEXT:    v_mov_b32_e32 v9, v227955; NOOPT-NEXT:    v_mov_b32_e32 v10, v217956; NOOPT-NEXT:    v_mov_b32_e32 v11, v207957; NOOPT-NEXT:    v_mov_b32_e32 v12, v197958; NOOPT-NEXT:    v_mov_b32_e32 v13, v187959; NOOPT-NEXT:    v_mov_b32_e32 v14, v177960; NOOPT-NEXT:    v_mov_b32_e32 v15, v167961; NOOPT-NEXT:    s_mov_b32 s5, 157962; NOOPT-NEXT:    s_add_i32 s4, s4, s57963; NOOPT-NEXT:    s_mov_b32 m0, s47964; NOOPT-NEXT:    v_movrels_b32_e32 v0, v07965; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 07966; NOOPT-NEXT:    s_endpgm7967;7968; SI-MOVREL-LABEL: extract_largest_inbounds_offset:7969; SI-MOVREL:       ; %bb.0: ; %entry7970; SI-MOVREL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x97971; SI-MOVREL-NEXT:    s_load_dword s12, s[4:5], 0xd7972; SI-MOVREL-NEXT:    s_mov_b32 s7, 0xf0007973; SI-MOVREL-NEXT:    s_mov_b32 s6, -17974; SI-MOVREL-NEXT:    s_mov_b32 s10, s67975; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)7976; SI-MOVREL-NEXT:    s_mov_b32 s8, s27977; SI-MOVREL-NEXT:    s_mov_b32 s9, s37978; SI-MOVREL-NEXT:    s_mov_b32 s11, s77979; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 glc7980; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)7981; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16 glc7982; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)7983; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:32 glc7984; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)7985; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:48 glc7986; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)7987; SI-MOVREL-NEXT:    s_add_i32 m0, s12, 157988; SI-MOVREL-NEXT:    s_mov_b32 s4, s07989; SI-MOVREL-NEXT:    s_mov_b32 s5, s17990; SI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v07991; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[4:7], 07992; SI-MOVREL-NEXT:    s_endpgm7993;7994; VI-MOVREL-LABEL: extract_largest_inbounds_offset:7995; VI-MOVREL:       ; %bb.0: ; %entry7996; VI-MOVREL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x247997; VI-MOVREL-NEXT:    s_load_dword s6, s[4:5], 0x347998; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)7999; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s28000; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s38001; VI-MOVREL-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc8002; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8003; VI-MOVREL-NEXT:    s_add_u32 s4, s2, 488004; VI-MOVREL-NEXT:    s_addc_u32 s5, s3, 08005; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s48006; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s58007; VI-MOVREL-NEXT:    s_add_u32 s4, s2, 328008; VI-MOVREL-NEXT:    s_addc_u32 s5, s3, 08009; VI-MOVREL-NEXT:    flat_load_dwordx4 v[12:15], v[4:5] glc8010; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8011; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s48012; VI-MOVREL-NEXT:    s_add_u32 s2, s2, 168013; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s58014; VI-MOVREL-NEXT:    s_addc_u32 s3, s3, 08015; VI-MOVREL-NEXT:    flat_load_dwordx4 v[8:11], v[4:5] glc8016; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8017; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s38018; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s28019; VI-MOVREL-NEXT:    s_add_i32 m0, s6, 158020; VI-MOVREL-NEXT:    flat_load_dwordx4 v[4:7], v[4:5] glc8021; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8022; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, s08023; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s18024; VI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v08025; VI-MOVREL-NEXT:    flat_store_dword v[16:17], v08026; VI-MOVREL-NEXT:    s_endpgm8027;8028; VI-IDXMODE-LABEL: extract_largest_inbounds_offset:8029; VI-IDXMODE:       ; %bb.0: ; %entry8030; VI-IDXMODE-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x248031; VI-IDXMODE-NEXT:    s_load_dword s6, s[4:5], 0x348032; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)8033; VI-IDXMODE-NEXT:    s_add_u32 s4, s2, 488034; VI-IDXMODE-NEXT:    s_addc_u32 s5, s3, 08035; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s48036; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s28037; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s58038; VI-IDXMODE-NEXT:    s_add_u32 s4, s2, 328039; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s38040; VI-IDXMODE-NEXT:    s_addc_u32 s5, s3, 08041; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc8042; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8043; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[12:15], v[4:5] glc8044; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8045; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s48046; VI-IDXMODE-NEXT:    s_add_u32 s2, s2, 168047; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s58048; VI-IDXMODE-NEXT:    s_addc_u32 s3, s3, 08049; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[8:11], v[4:5] glc8050; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8051; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s38052; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s28053; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[4:7], v[4:5] glc8054; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8055; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, s08056; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s18057; VI-IDXMODE-NEXT:    s_add_i32 s6, s6, 158058; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s6, gpr_idx(SRC0)8059; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, v08060; VI-IDXMODE-NEXT:    s_set_gpr_idx_off8061; VI-IDXMODE-NEXT:    flat_store_dword v[16:17], v08062; VI-IDXMODE-NEXT:    s_endpgm8063;8064; GFX9-IDXMODE-LABEL: extract_largest_inbounds_offset:8065; GFX9-IDXMODE:       ; %bb.0: ; %entry8066; GFX9-IDXMODE-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x248067; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 08068; GFX9-IDXMODE-NEXT:    s_load_dword s4, s[4:5], 0x348069; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)8070; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[12:15], v16, s[2:3] offset:48 glc8071; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8072; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[8:11], v16, s[2:3] offset:32 glc8073; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8074; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[4:7], v16, s[2:3] offset:16 glc8075; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8076; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[0:3], v16, s[2:3] glc8077; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8078; GFX9-IDXMODE-NEXT:    s_add_i32 s4, s4, 158079; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s4, gpr_idx(SRC0)8080; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v08081; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off8082; GFX9-IDXMODE-NEXT:    global_store_dword v16, v0, s[0:1]8083; GFX9-IDXMODE-NEXT:    s_endpgm8084entry:8085  %ld = load volatile <16 x i32>, ptr addrspace(1) %in8086  %offset = add i32 %idx, 158087  %value = extractelement <16 x i32> %ld, i32 %offset8088  store i32 %value, ptr addrspace(1) %out8089  ret void8090}8091 8092define amdgpu_kernel void @extract_out_of_bounds_offset(ptr addrspace(1) %out, ptr addrspace(1) %in, i32 %idx) {8093; GENERIC-LABEL: extract_out_of_bounds_offset:8094; GENERIC:       ; %bb.0: ; %entry8095; GENERIC-NEXT:    s_load_dwordx4 s[8:11], s[4:5], 0x98096; GENERIC-NEXT:    s_mov_b32 s3, 0xf0008097; GENERIC-NEXT:    s_mov_b32 s2, -18098; GENERIC-NEXT:    s_load_dword s12, s[4:5], 0xd8099; GENERIC-NEXT:    s_mov_b32 s6, s28100; GENERIC-NEXT:    s_mov_b32 s7, s38101; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)8102; GENERIC-NEXT:    s_mov_b32 s0, s88103; GENERIC-NEXT:    s_mov_b32 s1, s98104; GENERIC-NEXT:    s_mov_b32 s4, s108105; GENERIC-NEXT:    s_mov_b32 s5, s118106; GENERIC-NEXT:    buffer_load_dwordx4 v[0:3], off, s[4:7], 0 glc8107; GENERIC-NEXT:    s_waitcnt vmcnt(0)8108; GENERIC-NEXT:    buffer_load_dwordx4 v[4:7], off, s[4:7], 0 offset:16 glc8109; GENERIC-NEXT:    s_waitcnt vmcnt(0)8110; GENERIC-NEXT:    buffer_load_dwordx4 v[8:11], off, s[4:7], 0 offset:32 glc8111; GENERIC-NEXT:    s_waitcnt vmcnt(0)8112; GENERIC-NEXT:    buffer_load_dwordx4 v[12:15], off, s[4:7], 0 offset:48 glc8113; GENERIC-NEXT:    s_waitcnt vmcnt(0)8114; GENERIC-NEXT:    s_add_i32 s12, s12, 168115; GENERIC-NEXT:    s_cmp_eq_u32 s12, 18116; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08117; GENERIC-NEXT:    s_cmp_eq_u32 s12, 28118; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v1, vcc8119; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08120; GENERIC-NEXT:    s_cmp_eq_u32 s12, 38121; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v2, vcc8122; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08123; GENERIC-NEXT:    s_cmp_eq_u32 s12, 48124; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v3, vcc8125; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08126; GENERIC-NEXT:    s_cmp_eq_u32 s12, 58127; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v4, vcc8128; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08129; GENERIC-NEXT:    s_cmp_eq_u32 s12, 68130; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v5, vcc8131; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08132; GENERIC-NEXT:    s_cmp_eq_u32 s12, 78133; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v6, vcc8134; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08135; GENERIC-NEXT:    s_cmp_eq_u32 s12, 88136; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v7, vcc8137; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08138; GENERIC-NEXT:    s_cmp_eq_u32 s12, 98139; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v8, vcc8140; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08141; GENERIC-NEXT:    s_cmp_eq_u32 s12, 108142; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v9, vcc8143; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08144; GENERIC-NEXT:    s_cmp_eq_u32 s12, 118145; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v10, vcc8146; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08147; GENERIC-NEXT:    s_cmp_eq_u32 s12, 128148; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v11, vcc8149; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08150; GENERIC-NEXT:    s_cmp_eq_u32 s12, 138151; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v12, vcc8152; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08153; GENERIC-NEXT:    s_cmp_eq_u32 s12, 148154; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v13, vcc8155; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08156; GENERIC-NEXT:    s_cmp_eq_u32 s12, 158157; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v14, vcc8158; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08159; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v15, vcc8160; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 08161; GENERIC-NEXT:    s_endpgm8162;8163; NOOPT-LABEL: extract_out_of_bounds_offset:8164; NOOPT:       ; %bb.0: ; %entry8165; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x98166; NOOPT-NEXT:    s_load_dwordx2 s[8:9], s[4:5], 0xb8167; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xd8168; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)8169; NOOPT-NEXT:    s_mov_b32 s7, s18170; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr18171; NOOPT-NEXT:    s_mov_b32 s5, 0xf0008172; NOOPT-NEXT:    s_mov_b32 s6, -18173; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr38174; NOOPT-NEXT:    s_mov_b32 s1, s78175; NOOPT-NEXT:    s_mov_b32 s2, s68176; NOOPT-NEXT:    s_mov_b32 s3, s58177; NOOPT-NEXT:    s_mov_b32 s7, s98178; NOOPT-NEXT:    ; kill: def $sgpr8 killed $sgpr8 killed $sgpr8_sgpr98179; NOOPT-NEXT:    ; kill: def $sgpr8 killed $sgpr8 def $sgpr8_sgpr9_sgpr10_sgpr118180; NOOPT-NEXT:    s_mov_b32 s9, s78181; NOOPT-NEXT:    s_mov_b32 s10, s68182; NOOPT-NEXT:    s_mov_b32 s11, s58183; NOOPT-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 glc8184; NOOPT-NEXT:    s_waitcnt vmcnt(0)8185; NOOPT-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16 glc8186; NOOPT-NEXT:    s_waitcnt vmcnt(0)8187; NOOPT-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:32 glc8188; NOOPT-NEXT:    s_waitcnt vmcnt(0)8189; NOOPT-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:48 glc8190; NOOPT-NEXT:    s_waitcnt vmcnt(0)8191; NOOPT-NEXT:    v_mov_b32_e32 v16, v158192; NOOPT-NEXT:    v_mov_b32_e32 v17, v148193; NOOPT-NEXT:    v_mov_b32_e32 v18, v138194; NOOPT-NEXT:    v_mov_b32_e32 v19, v128195; NOOPT-NEXT:    v_mov_b32_e32 v20, v118196; NOOPT-NEXT:    v_mov_b32_e32 v21, v108197; NOOPT-NEXT:    v_mov_b32_e32 v22, v98198; NOOPT-NEXT:    v_mov_b32_e32 v23, v88199; NOOPT-NEXT:    v_mov_b32_e32 v24, v78200; NOOPT-NEXT:    v_mov_b32_e32 v25, v68201; NOOPT-NEXT:    v_mov_b32_e32 v26, v58202; NOOPT-NEXT:    v_mov_b32_e32 v27, v48203; NOOPT-NEXT:    v_mov_b32_e32 v28, v38204; NOOPT-NEXT:    v_mov_b32_e32 v29, v28205; NOOPT-NEXT:    v_mov_b32_e32 v30, v18206; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 killed $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec8207; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec8208; NOOPT-NEXT:    v_mov_b32_e32 v1, v308209; NOOPT-NEXT:    v_mov_b32_e32 v2, v298210; NOOPT-NEXT:    v_mov_b32_e32 v3, v288211; NOOPT-NEXT:    v_mov_b32_e32 v4, v278212; NOOPT-NEXT:    v_mov_b32_e32 v5, v268213; NOOPT-NEXT:    v_mov_b32_e32 v6, v258214; NOOPT-NEXT:    v_mov_b32_e32 v7, v248215; NOOPT-NEXT:    v_mov_b32_e32 v8, v238216; NOOPT-NEXT:    v_mov_b32_e32 v9, v228217; NOOPT-NEXT:    v_mov_b32_e32 v10, v218218; NOOPT-NEXT:    v_mov_b32_e32 v11, v208219; NOOPT-NEXT:    v_mov_b32_e32 v12, v198220; NOOPT-NEXT:    v_mov_b32_e32 v13, v188221; NOOPT-NEXT:    v_mov_b32_e32 v14, v178222; NOOPT-NEXT:    v_mov_b32_e32 v15, v168223; NOOPT-NEXT:    s_mov_b32 s5, 168224; NOOPT-NEXT:    s_add_i32 s4, s4, s58225; NOOPT-NEXT:    s_mov_b32 m0, s48226; NOOPT-NEXT:    v_movrels_b32_e32 v0, v08227; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 08228; NOOPT-NEXT:    s_endpgm8229;8230; SI-MOVREL-LABEL: extract_out_of_bounds_offset:8231; SI-MOVREL:       ; %bb.0: ; %entry8232; SI-MOVREL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x98233; SI-MOVREL-NEXT:    s_load_dword s12, s[4:5], 0xd8234; SI-MOVREL-NEXT:    s_mov_b32 s7, 0xf0008235; SI-MOVREL-NEXT:    s_mov_b32 s6, -18236; SI-MOVREL-NEXT:    s_mov_b32 s10, s68237; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)8238; SI-MOVREL-NEXT:    s_mov_b32 s8, s28239; SI-MOVREL-NEXT:    s_mov_b32 s9, s38240; SI-MOVREL-NEXT:    s_mov_b32 s11, s78241; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 glc8242; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8243; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16 glc8244; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8245; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:32 glc8246; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8247; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:48 glc8248; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8249; SI-MOVREL-NEXT:    s_add_i32 m0, s12, 168250; SI-MOVREL-NEXT:    s_mov_b32 s4, s08251; SI-MOVREL-NEXT:    s_mov_b32 s5, s18252; SI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v08253; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[4:7], 08254; SI-MOVREL-NEXT:    s_endpgm8255;8256; VI-MOVREL-LABEL: extract_out_of_bounds_offset:8257; VI-MOVREL:       ; %bb.0: ; %entry8258; VI-MOVREL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x248259; VI-MOVREL-NEXT:    s_load_dword s6, s[4:5], 0x348260; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)8261; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s28262; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s38263; VI-MOVREL-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc8264; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8265; VI-MOVREL-NEXT:    s_add_u32 s4, s2, 488266; VI-MOVREL-NEXT:    s_addc_u32 s5, s3, 08267; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s48268; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s58269; VI-MOVREL-NEXT:    s_add_u32 s4, s2, 328270; VI-MOVREL-NEXT:    s_addc_u32 s5, s3, 08271; VI-MOVREL-NEXT:    flat_load_dwordx4 v[12:15], v[4:5] glc8272; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8273; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s48274; VI-MOVREL-NEXT:    s_add_u32 s2, s2, 168275; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s58276; VI-MOVREL-NEXT:    s_addc_u32 s3, s3, 08277; VI-MOVREL-NEXT:    flat_load_dwordx4 v[8:11], v[4:5] glc8278; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8279; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s38280; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s28281; VI-MOVREL-NEXT:    s_add_i32 m0, s6, 168282; VI-MOVREL-NEXT:    flat_load_dwordx4 v[4:7], v[4:5] glc8283; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8284; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, s08285; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s18286; VI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v08287; VI-MOVREL-NEXT:    flat_store_dword v[16:17], v08288; VI-MOVREL-NEXT:    s_endpgm8289;8290; VI-IDXMODE-LABEL: extract_out_of_bounds_offset:8291; VI-IDXMODE:       ; %bb.0: ; %entry8292; VI-IDXMODE-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x248293; VI-IDXMODE-NEXT:    s_load_dword s6, s[4:5], 0x348294; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)8295; VI-IDXMODE-NEXT:    s_add_u32 s4, s2, 488296; VI-IDXMODE-NEXT:    s_addc_u32 s5, s3, 08297; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s48298; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s28299; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s58300; VI-IDXMODE-NEXT:    s_add_u32 s4, s2, 328301; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s38302; VI-IDXMODE-NEXT:    s_addc_u32 s5, s3, 08303; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc8304; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8305; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[12:15], v[4:5] glc8306; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8307; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s48308; VI-IDXMODE-NEXT:    s_add_u32 s2, s2, 168309; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s58310; VI-IDXMODE-NEXT:    s_addc_u32 s3, s3, 08311; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[8:11], v[4:5] glc8312; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8313; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s38314; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s28315; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[4:7], v[4:5] glc8316; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8317; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, s08318; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s18319; VI-IDXMODE-NEXT:    s_add_i32 s6, s6, 168320; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s6, gpr_idx(SRC0)8321; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, v08322; VI-IDXMODE-NEXT:    s_set_gpr_idx_off8323; VI-IDXMODE-NEXT:    flat_store_dword v[16:17], v08324; VI-IDXMODE-NEXT:    s_endpgm8325;8326; GFX9-IDXMODE-LABEL: extract_out_of_bounds_offset:8327; GFX9-IDXMODE:       ; %bb.0: ; %entry8328; GFX9-IDXMODE-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x248329; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 08330; GFX9-IDXMODE-NEXT:    s_load_dword s4, s[4:5], 0x348331; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)8332; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[12:15], v16, s[2:3] offset:48 glc8333; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8334; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[8:11], v16, s[2:3] offset:32 glc8335; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8336; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[4:7], v16, s[2:3] offset:16 glc8337; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8338; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[0:3], v16, s[2:3] glc8339; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8340; GFX9-IDXMODE-NEXT:    s_add_i32 s4, s4, 168341; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s4, gpr_idx(SRC0)8342; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v08343; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off8344; GFX9-IDXMODE-NEXT:    global_store_dword v16, v0, s[0:1]8345; GFX9-IDXMODE-NEXT:    s_endpgm8346entry:8347  %ld = load volatile <16 x i32>, ptr addrspace(1) %in8348  %offset = add i32 %idx, 168349  %value = extractelement <16 x i32> %ld, i32 %offset8350  store i32 %value, ptr addrspace(1) %out8351  ret void8352}8353 8354define amdgpu_kernel void @extractelement_v16i32_or_index(ptr addrspace(1) %out, ptr addrspace(1) %in, i32 %idx.in) {8355; GENERIC-LABEL: extractelement_v16i32_or_index:8356; GENERIC:       ; %bb.0: ; %entry8357; GENERIC-NEXT:    s_load_dwordx4 s[8:11], s[4:5], 0x98358; GENERIC-NEXT:    s_mov_b32 s3, 0xf0008359; GENERIC-NEXT:    s_mov_b32 s2, -18360; GENERIC-NEXT:    s_load_dword s12, s[4:5], 0xd8361; GENERIC-NEXT:    s_mov_b32 s6, s28362; GENERIC-NEXT:    s_mov_b32 s7, s38363; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)8364; GENERIC-NEXT:    s_mov_b32 s0, s88365; GENERIC-NEXT:    s_mov_b32 s1, s98366; GENERIC-NEXT:    s_mov_b32 s4, s108367; GENERIC-NEXT:    s_mov_b32 s5, s118368; GENERIC-NEXT:    buffer_load_dwordx4 v[0:3], off, s[4:7], 0 glc8369; GENERIC-NEXT:    s_waitcnt vmcnt(0)8370; GENERIC-NEXT:    buffer_load_dwordx4 v[4:7], off, s[4:7], 0 offset:16 glc8371; GENERIC-NEXT:    s_waitcnt vmcnt(0)8372; GENERIC-NEXT:    buffer_load_dwordx4 v[8:11], off, s[4:7], 0 offset:32 glc8373; GENERIC-NEXT:    s_waitcnt vmcnt(0)8374; GENERIC-NEXT:    buffer_load_dwordx4 v[12:15], off, s[4:7], 0 offset:48 glc8375; GENERIC-NEXT:    s_waitcnt vmcnt(0)8376; GENERIC-NEXT:    s_lshl_b32 s4, s12, 28377; GENERIC-NEXT:    s_or_b32 s4, s4, 18378; GENERIC-NEXT:    s_cmp_eq_u32 s4, 18379; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08380; GENERIC-NEXT:    s_cmp_eq_u32 s4, 28381; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v1, vcc8382; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08383; GENERIC-NEXT:    s_cmp_eq_u32 s4, 38384; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v2, vcc8385; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08386; GENERIC-NEXT:    s_cmp_eq_u32 s4, 48387; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v3, vcc8388; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08389; GENERIC-NEXT:    s_cmp_eq_u32 s4, 58390; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v4, vcc8391; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08392; GENERIC-NEXT:    s_cmp_eq_u32 s4, 68393; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v5, vcc8394; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08395; GENERIC-NEXT:    s_cmp_eq_u32 s4, 78396; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v6, vcc8397; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08398; GENERIC-NEXT:    s_cmp_eq_u32 s4, 88399; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v7, vcc8400; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08401; GENERIC-NEXT:    s_cmp_eq_u32 s4, 98402; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v8, vcc8403; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08404; GENERIC-NEXT:    s_cmp_eq_u32 s4, 108405; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v9, vcc8406; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08407; GENERIC-NEXT:    s_cmp_eq_u32 s4, 118408; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v10, vcc8409; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08410; GENERIC-NEXT:    s_cmp_eq_u32 s4, 128411; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v11, vcc8412; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08413; GENERIC-NEXT:    s_cmp_eq_u32 s4, 138414; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v12, vcc8415; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08416; GENERIC-NEXT:    s_cmp_eq_u32 s4, 148417; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v13, vcc8418; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08419; GENERIC-NEXT:    s_cmp_eq_u32 s4, 158420; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v14, vcc8421; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08422; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v0, v15, vcc8423; GENERIC-NEXT:    buffer_store_dword v0, off, s[0:3], 08424; GENERIC-NEXT:    s_endpgm8425;8426; NOOPT-LABEL: extractelement_v16i32_or_index:8427; NOOPT:       ; %bb.0: ; %entry8428; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x98429; NOOPT-NEXT:    s_load_dwordx2 s[8:9], s[4:5], 0xb8430; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0xd8431; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)8432; NOOPT-NEXT:    s_mov_b32 s7, s18433; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr18434; NOOPT-NEXT:    s_mov_b32 s5, 0xf0008435; NOOPT-NEXT:    s_mov_b32 s6, -18436; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr38437; NOOPT-NEXT:    s_mov_b32 s1, s78438; NOOPT-NEXT:    s_mov_b32 s2, s68439; NOOPT-NEXT:    s_mov_b32 s3, s58440; NOOPT-NEXT:    s_mov_b32 s7, s98441; NOOPT-NEXT:    ; kill: def $sgpr8 killed $sgpr8 killed $sgpr8_sgpr98442; NOOPT-NEXT:    ; kill: def $sgpr8 killed $sgpr8 def $sgpr8_sgpr9_sgpr10_sgpr118443; NOOPT-NEXT:    s_mov_b32 s9, s78444; NOOPT-NEXT:    s_mov_b32 s10, s68445; NOOPT-NEXT:    s_mov_b32 s11, s58446; NOOPT-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 glc8447; NOOPT-NEXT:    s_waitcnt vmcnt(0)8448; NOOPT-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16 glc8449; NOOPT-NEXT:    s_waitcnt vmcnt(0)8450; NOOPT-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:32 glc8451; NOOPT-NEXT:    s_waitcnt vmcnt(0)8452; NOOPT-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:48 glc8453; NOOPT-NEXT:    s_waitcnt vmcnt(0)8454; NOOPT-NEXT:    v_mov_b32_e32 v16, v158455; NOOPT-NEXT:    v_mov_b32_e32 v17, v148456; NOOPT-NEXT:    v_mov_b32_e32 v18, v138457; NOOPT-NEXT:    v_mov_b32_e32 v19, v128458; NOOPT-NEXT:    v_mov_b32_e32 v20, v118459; NOOPT-NEXT:    v_mov_b32_e32 v21, v108460; NOOPT-NEXT:    v_mov_b32_e32 v22, v98461; NOOPT-NEXT:    v_mov_b32_e32 v23, v88462; NOOPT-NEXT:    v_mov_b32_e32 v24, v78463; NOOPT-NEXT:    v_mov_b32_e32 v25, v68464; NOOPT-NEXT:    v_mov_b32_e32 v26, v58465; NOOPT-NEXT:    v_mov_b32_e32 v27, v48466; NOOPT-NEXT:    v_mov_b32_e32 v28, v38467; NOOPT-NEXT:    v_mov_b32_e32 v29, v28468; NOOPT-NEXT:    v_mov_b32_e32 v30, v18469; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 killed $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec8470; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec8471; NOOPT-NEXT:    v_mov_b32_e32 v1, v308472; NOOPT-NEXT:    v_mov_b32_e32 v2, v298473; NOOPT-NEXT:    v_mov_b32_e32 v3, v288474; NOOPT-NEXT:    v_mov_b32_e32 v4, v278475; NOOPT-NEXT:    v_mov_b32_e32 v5, v268476; NOOPT-NEXT:    v_mov_b32_e32 v6, v258477; NOOPT-NEXT:    v_mov_b32_e32 v7, v248478; NOOPT-NEXT:    v_mov_b32_e32 v8, v238479; NOOPT-NEXT:    v_mov_b32_e32 v9, v228480; NOOPT-NEXT:    v_mov_b32_e32 v10, v218481; NOOPT-NEXT:    v_mov_b32_e32 v11, v208482; NOOPT-NEXT:    v_mov_b32_e32 v12, v198483; NOOPT-NEXT:    v_mov_b32_e32 v13, v188484; NOOPT-NEXT:    v_mov_b32_e32 v14, v178485; NOOPT-NEXT:    v_mov_b32_e32 v15, v168486; NOOPT-NEXT:    s_mov_b32 s5, 28487; NOOPT-NEXT:    s_lshl_b32 s4, s4, s58488; NOOPT-NEXT:    s_mov_b32 m0, s48489; NOOPT-NEXT:    v_movrels_b32_e32 v0, v18490; NOOPT-NEXT:    buffer_store_dword v0, off, s[0:3], 08491; NOOPT-NEXT:    s_endpgm8492;8493; SI-MOVREL-LABEL: extractelement_v16i32_or_index:8494; SI-MOVREL:       ; %bb.0: ; %entry8495; SI-MOVREL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x98496; SI-MOVREL-NEXT:    s_load_dword s12, s[4:5], 0xd8497; SI-MOVREL-NEXT:    s_mov_b32 s7, 0xf0008498; SI-MOVREL-NEXT:    s_mov_b32 s6, -18499; SI-MOVREL-NEXT:    s_mov_b32 s10, s68500; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)8501; SI-MOVREL-NEXT:    s_mov_b32 s8, s28502; SI-MOVREL-NEXT:    s_mov_b32 s9, s38503; SI-MOVREL-NEXT:    s_mov_b32 s11, s78504; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[0:3], off, s[8:11], 0 glc8505; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8506; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[4:7], off, s[8:11], 0 offset:16 glc8507; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8508; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[8:11], off, s[8:11], 0 offset:32 glc8509; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8510; SI-MOVREL-NEXT:    buffer_load_dwordx4 v[12:15], off, s[8:11], 0 offset:48 glc8511; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8512; SI-MOVREL-NEXT:    s_lshl_b32 m0, s12, 28513; SI-MOVREL-NEXT:    s_mov_b32 s4, s08514; SI-MOVREL-NEXT:    s_mov_b32 s5, s18515; SI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v18516; SI-MOVREL-NEXT:    buffer_store_dword v0, off, s[4:7], 08517; SI-MOVREL-NEXT:    s_endpgm8518;8519; VI-MOVREL-LABEL: extractelement_v16i32_or_index:8520; VI-MOVREL:       ; %bb.0: ; %entry8521; VI-MOVREL-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x248522; VI-MOVREL-NEXT:    s_load_dword s6, s[4:5], 0x348523; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)8524; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s28525; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s38526; VI-MOVREL-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc8527; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8528; VI-MOVREL-NEXT:    s_add_u32 s4, s2, 488529; VI-MOVREL-NEXT:    s_addc_u32 s5, s3, 08530; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s48531; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s58532; VI-MOVREL-NEXT:    s_add_u32 s4, s2, 328533; VI-MOVREL-NEXT:    s_addc_u32 s5, s3, 08534; VI-MOVREL-NEXT:    flat_load_dwordx4 v[12:15], v[4:5] glc8535; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8536; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s48537; VI-MOVREL-NEXT:    s_add_u32 s2, s2, 168538; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s58539; VI-MOVREL-NEXT:    s_addc_u32 s3, s3, 08540; VI-MOVREL-NEXT:    flat_load_dwordx4 v[8:11], v[4:5] glc8541; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8542; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s38543; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s28544; VI-MOVREL-NEXT:    s_lshl_b32 m0, s6, 28545; VI-MOVREL-NEXT:    flat_load_dwordx4 v[4:7], v[4:5] glc8546; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)8547; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, s08548; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s18549; VI-MOVREL-NEXT:    v_movrels_b32_e32 v0, v18550; VI-MOVREL-NEXT:    flat_store_dword v[16:17], v08551; VI-MOVREL-NEXT:    s_endpgm8552;8553; VI-IDXMODE-LABEL: extractelement_v16i32_or_index:8554; VI-IDXMODE:       ; %bb.0: ; %entry8555; VI-IDXMODE-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x248556; VI-IDXMODE-NEXT:    s_load_dword s6, s[4:5], 0x348557; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)8558; VI-IDXMODE-NEXT:    s_add_u32 s4, s2, 488559; VI-IDXMODE-NEXT:    s_addc_u32 s5, s3, 08560; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s48561; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s28562; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s58563; VI-IDXMODE-NEXT:    s_add_u32 s4, s2, 328564; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s38565; VI-IDXMODE-NEXT:    s_addc_u32 s5, s3, 08566; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[0:3], v[0:1] glc8567; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8568; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[12:15], v[4:5] glc8569; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8570; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s48571; VI-IDXMODE-NEXT:    s_add_u32 s2, s2, 168572; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s58573; VI-IDXMODE-NEXT:    s_addc_u32 s3, s3, 08574; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[8:11], v[4:5] glc8575; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8576; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s38577; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s28578; VI-IDXMODE-NEXT:    flat_load_dwordx4 v[4:7], v[4:5] glc8579; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8580; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, s08581; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s18582; VI-IDXMODE-NEXT:    s_lshl_b32 s0, s6, 28583; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s0, gpr_idx(SRC0)8584; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, v18585; VI-IDXMODE-NEXT:    s_set_gpr_idx_off8586; VI-IDXMODE-NEXT:    flat_store_dword v[16:17], v08587; VI-IDXMODE-NEXT:    s_endpgm8588;8589; GFX9-IDXMODE-LABEL: extractelement_v16i32_or_index:8590; GFX9-IDXMODE:       ; %bb.0: ; %entry8591; GFX9-IDXMODE-NEXT:    s_load_dwordx4 s[0:3], s[4:5], 0x248592; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 08593; GFX9-IDXMODE-NEXT:    s_load_dword s4, s[4:5], 0x348594; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)8595; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[12:15], v16, s[2:3] offset:48 glc8596; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8597; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[8:11], v16, s[2:3] offset:32 glc8598; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8599; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[4:7], v16, s[2:3] offset:16 glc8600; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8601; GFX9-IDXMODE-NEXT:    global_load_dwordx4 v[0:3], v16, s[2:3] glc8602; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)8603; GFX9-IDXMODE-NEXT:    s_lshl_b32 s2, s4, 28604; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(SRC0)8605; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v18606; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off8607; GFX9-IDXMODE-NEXT:    global_store_dword v16, v0, s[0:1]8608; GFX9-IDXMODE-NEXT:    s_endpgm8609entry:8610  %ld = load volatile <16 x i32>, ptr addrspace(1) %in8611  %idx.shl = shl i32 %idx.in, 28612  %idx = or i32 %idx.shl, 18613  %value = extractelement <16 x i32> %ld, i32 %idx8614  store i32 %value, ptr addrspace(1) %out8615  ret void8616}8617 8618define amdgpu_kernel void @insertelement_v16f32_or_index(ptr addrspace(1) %out, <16 x float> %a, i32 %idx.in) nounwind {8619; GENERIC-LABEL: insertelement_v16f32_or_index:8620; GENERIC:       ; %bb.0:8621; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x98622; GENERIC-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x198623; GENERIC-NEXT:    s_load_dword s4, s[4:5], 0x298624; GENERIC-NEXT:    s_mov_b32 s3, 0xf0008625; GENERIC-NEXT:    s_mov_b32 s2, -18626; GENERIC-NEXT:    v_mov_b32_e32 v10, 0x40a000008627; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)8628; GENERIC-NEXT:    s_lshl_b32 s4, s4, 28629; GENERIC-NEXT:    v_mov_b32_e32 v0, s118630; GENERIC-NEXT:    v_mov_b32_e32 v1, s108631; GENERIC-NEXT:    v_mov_b32_e32 v4, s98632; GENERIC-NEXT:    v_mov_b32_e32 v5, s88633; GENERIC-NEXT:    v_mov_b32_e32 v6, s158634; GENERIC-NEXT:    v_mov_b32_e32 v8, s148635; GENERIC-NEXT:    v_mov_b32_e32 v9, s138636; GENERIC-NEXT:    v_mov_b32_e32 v11, s128637; GENERIC-NEXT:    v_mov_b32_e32 v12, s198638; GENERIC-NEXT:    v_mov_b32_e32 v13, s188639; GENERIC-NEXT:    v_mov_b32_e32 v14, s178640; GENERIC-NEXT:    v_mov_b32_e32 v15, s168641; GENERIC-NEXT:    v_mov_b32_e32 v16, s238642; GENERIC-NEXT:    v_mov_b32_e32 v17, s228643; GENERIC-NEXT:    v_mov_b32_e32 v18, s218644; GENERIC-NEXT:    v_mov_b32_e32 v19, s208645; GENERIC-NEXT:    s_or_b32 s4, s4, 18646; GENERIC-NEXT:    s_cmp_lg_u32 s4, 38647; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08648; GENERIC-NEXT:    v_cndmask_b32_e32 v3, v10, v0, vcc8649; GENERIC-NEXT:    s_cmp_lg_u32 s4, 28650; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08651; GENERIC-NEXT:    v_cndmask_b32_e32 v2, v10, v1, vcc8652; GENERIC-NEXT:    s_cmp_lg_u32 s4, 18653; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08654; GENERIC-NEXT:    v_cndmask_b32_e32 v1, v10, v4, vcc8655; GENERIC-NEXT:    s_cmp_lg_u32 s4, 08656; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08657; GENERIC-NEXT:    v_cndmask_b32_e32 v0, v10, v5, vcc8658; GENERIC-NEXT:    s_cmp_lg_u32 s4, 78659; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08660; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v10, v6, vcc8661; GENERIC-NEXT:    s_cmp_lg_u32 s4, 68662; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08663; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v10, v8, vcc8664; GENERIC-NEXT:    s_cmp_lg_u32 s4, 58665; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08666; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v10, v9, vcc8667; GENERIC-NEXT:    s_cmp_lg_u32 s4, 48668; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08669; GENERIC-NEXT:    v_cndmask_b32_e32 v4, v10, v11, vcc8670; GENERIC-NEXT:    s_cmp_lg_u32 s4, 118671; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08672; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v10, v12, vcc8673; GENERIC-NEXT:    s_cmp_lg_u32 s4, 108674; GENERIC-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:168675; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08676; GENERIC-NEXT:    s_waitcnt expcnt(0)8677; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v10, v13, vcc8678; GENERIC-NEXT:    s_cmp_lg_u32 s4, 98679; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08680; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v10, v14, vcc8681; GENERIC-NEXT:    s_cmp_lg_u32 s4, 88682; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08683; GENERIC-NEXT:    v_cndmask_b32_e32 v5, v10, v15, vcc8684; GENERIC-NEXT:    s_cmp_lg_u32 s4, 158685; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08686; GENERIC-NEXT:    v_cndmask_b32_e32 v9, v10, v16, vcc8687; GENERIC-NEXT:    s_cmp_lg_u32 s4, 148688; GENERIC-NEXT:    buffer_store_dwordx4 v[5:8], off, s[0:3], 0 offset:328689; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08690; GENERIC-NEXT:    s_waitcnt expcnt(0)8691; GENERIC-NEXT:    v_cndmask_b32_e32 v8, v10, v17, vcc8692; GENERIC-NEXT:    s_cmp_lg_u32 s4, 138693; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08694; GENERIC-NEXT:    v_cndmask_b32_e32 v7, v10, v18, vcc8695; GENERIC-NEXT:    s_cmp_lg_u32 s4, 128696; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 08697; GENERIC-NEXT:    v_cndmask_b32_e32 v6, v10, v19, vcc8698; GENERIC-NEXT:    buffer_store_dwordx4 v[6:9], off, s[0:3], 0 offset:488699; GENERIC-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 08700; GENERIC-NEXT:    s_endpgm8701;8702; NOOPT-LABEL: insertelement_v16f32_or_index:8703; NOOPT:       ; %bb.0:8704; NOOPT-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x98705; NOOPT-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x198706; NOOPT-NEXT:    s_load_dword s4, s[4:5], 0x298707; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)8708; NOOPT-NEXT:    s_mov_b32 s7, s18709; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 killed $sgpr0_sgpr18710; NOOPT-NEXT:    s_mov_b32 s5, 0xf0008711; NOOPT-NEXT:    s_mov_b32 s6, -18712; NOOPT-NEXT:    ; kill: def $sgpr0 killed $sgpr0 def $sgpr0_sgpr1_sgpr2_sgpr38713; NOOPT-NEXT:    s_mov_b32 s1, s78714; NOOPT-NEXT:    s_mov_b32 s2, s68715; NOOPT-NEXT:    s_mov_b32 s3, s58716; NOOPT-NEXT:    s_mov_b32 s5, 28717; NOOPT-NEXT:    s_lshl_b32 s4, s4, s58718; NOOPT-NEXT:    v_mov_b32_e32 v0, 0x40a000008719; NOOPT-NEXT:    v_mov_b32_e32 v7, s88720; NOOPT-NEXT:    v_mov_b32_e32 v8, s98721; NOOPT-NEXT:    v_mov_b32_e32 v9, s108722; NOOPT-NEXT:    v_mov_b32_e32 v10, s118723; NOOPT-NEXT:    v_mov_b32_e32 v11, s128724; NOOPT-NEXT:    v_mov_b32_e32 v12, s138725; NOOPT-NEXT:    v_mov_b32_e32 v13, s148726; NOOPT-NEXT:    v_mov_b32_e32 v14, s158727; NOOPT-NEXT:    v_mov_b32_e32 v15, s168728; NOOPT-NEXT:    v_mov_b32_e32 v16, s178729; NOOPT-NEXT:    v_mov_b32_e32 v17, s188730; NOOPT-NEXT:    v_mov_b32_e32 v18, s198731; NOOPT-NEXT:    v_mov_b32_e32 v19, s208732; NOOPT-NEXT:    v_mov_b32_e32 v20, s218733; NOOPT-NEXT:    v_mov_b32_e32 v21, s228734; NOOPT-NEXT:    v_mov_b32_e32 v22, s238735; NOOPT-NEXT:    s_mov_b32 m0, s48736; NOOPT-NEXT:    v_movreld_b32_e32 v8, v08737; NOOPT-NEXT:    v_mov_b32_e32 v4, v228738; NOOPT-NEXT:    v_mov_b32_e32 v5, v218739; NOOPT-NEXT:    v_mov_b32_e32 v6, v208740; NOOPT-NEXT:    v_mov_b32_e32 v0, v198741; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec8742; NOOPT-NEXT:    v_mov_b32_e32 v1, v68743; NOOPT-NEXT:    v_mov_b32_e32 v2, v58744; NOOPT-NEXT:    v_mov_b32_e32 v3, v48745; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:488746; NOOPT-NEXT:    v_mov_b32_e32 v4, v188747; NOOPT-NEXT:    v_mov_b32_e32 v5, v178748; NOOPT-NEXT:    v_mov_b32_e32 v6, v168749; NOOPT-NEXT:    s_waitcnt expcnt(0)8750; NOOPT-NEXT:    v_mov_b32_e32 v0, v158751; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec8752; NOOPT-NEXT:    v_mov_b32_e32 v1, v68753; NOOPT-NEXT:    v_mov_b32_e32 v2, v58754; NOOPT-NEXT:    v_mov_b32_e32 v3, v48755; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:328756; NOOPT-NEXT:    v_mov_b32_e32 v4, v148757; NOOPT-NEXT:    v_mov_b32_e32 v5, v138758; NOOPT-NEXT:    v_mov_b32_e32 v6, v128759; NOOPT-NEXT:    s_waitcnt expcnt(0)8760; NOOPT-NEXT:    v_mov_b32_e32 v0, v118761; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec8762; NOOPT-NEXT:    v_mov_b32_e32 v1, v68763; NOOPT-NEXT:    v_mov_b32_e32 v2, v58764; NOOPT-NEXT:    v_mov_b32_e32 v3, v48765; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 0 offset:168766; NOOPT-NEXT:    v_mov_b32_e32 v4, v108767; NOOPT-NEXT:    v_mov_b32_e32 v5, v98768; NOOPT-NEXT:    v_mov_b32_e32 v6, v88769; NOOPT-NEXT:    s_waitcnt expcnt(0)8770; NOOPT-NEXT:    v_mov_b32_e32 v0, v78771; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec8772; NOOPT-NEXT:    v_mov_b32_e32 v1, v68773; NOOPT-NEXT:    v_mov_b32_e32 v2, v58774; NOOPT-NEXT:    v_mov_b32_e32 v3, v48775; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 08776; NOOPT-NEXT:    s_endpgm8777;8778; SI-MOVREL-LABEL: insertelement_v16f32_or_index:8779; SI-MOVREL:       ; %bb.0:8780; SI-MOVREL-NEXT:    s_load_dword s6, s[4:5], 0x298781; SI-MOVREL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x198782; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x98783; SI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x40a000008784; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0008785; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)8786; SI-MOVREL-NEXT:    s_lshl_b32 m0, s6, 28787; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, s88788; SI-MOVREL-NEXT:    v_mov_b32_e32 v1, s98789; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, s108790; SI-MOVREL-NEXT:    v_mov_b32_e32 v3, s118791; SI-MOVREL-NEXT:    v_mov_b32_e32 v4, s128792; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, s138793; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, s148794; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, s158795; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, s168796; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, s178797; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, s188798; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, s198799; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, s208800; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, s218801; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, s228802; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, s238803; SI-MOVREL-NEXT:    s_mov_b32 s2, -18804; SI-MOVREL-NEXT:    v_movreld_b32_e32 v1, v168805; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:488806; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:328807; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:168808; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[0:3], off, s[0:3], 08809; SI-MOVREL-NEXT:    s_endpgm8810;8811; VI-MOVREL-LABEL: insertelement_v16f32_or_index:8812; VI-MOVREL:       ; %bb.0:8813; VI-MOVREL-NEXT:    s_load_dword s2, s[4:5], 0xa48814; VI-MOVREL-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x648815; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x248816; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, 0x40a000008817; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)8818; VI-MOVREL-NEXT:    s_lshl_b32 m0, s2, 28819; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, s88820; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 488821; VI-MOVREL-NEXT:    v_mov_b32_e32 v1, s98822; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, s108823; VI-MOVREL-NEXT:    v_mov_b32_e32 v3, s118824; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s128825; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s138826; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, s148827; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, s158828; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s168829; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s178830; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, s188831; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, s198832; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s208833; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s218834; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, s228835; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, s238836; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 08837; VI-MOVREL-NEXT:    v_movreld_b32_e32 v1, v168838; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s38839; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, s28840; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 328841; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 08842; VI-MOVREL-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]8843; VI-MOVREL-NEXT:    s_nop 08844; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, s38845; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, s28846; VI-MOVREL-NEXT:    s_add_u32 s2, s0, 168847; VI-MOVREL-NEXT:    s_addc_u32 s3, s1, 08848; VI-MOVREL-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]8849; VI-MOVREL-NEXT:    s_nop 08850; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, s38851; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, s28852; VI-MOVREL-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]8853; VI-MOVREL-NEXT:    s_nop 08854; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, s18855; VI-MOVREL-NEXT:    v_mov_b32_e32 v4, s08856; VI-MOVREL-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]8857; VI-MOVREL-NEXT:    s_endpgm8858;8859; VI-IDXMODE-LABEL: insertelement_v16f32_or_index:8860; VI-IDXMODE:       ; %bb.0:8861; VI-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0xa48862; VI-IDXMODE-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x648863; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x248864; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, 0x40a000008865; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)8866; VI-IDXMODE-NEXT:    s_lshl_b32 s3, s2, 28867; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, s88868; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, s98869; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, s108870; VI-IDXMODE-NEXT:    v_mov_b32_e32 v3, s118871; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s128872; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s138873; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, s148874; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, s158875; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s168876; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s178877; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, s188878; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, s198879; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s208880; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s218881; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, s228882; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, s238883; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 488884; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s3, gpr_idx(DST)8885; VI-IDXMODE-NEXT:    v_mov_b32_e32 v1, v168886; VI-IDXMODE-NEXT:    s_set_gpr_idx_off8887; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 08888; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s38889; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, s28890; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 328891; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 08892; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[16:17], v[12:15]8893; VI-IDXMODE-NEXT:    s_nop 08894; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, s38895; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, s28896; VI-IDXMODE-NEXT:    s_add_u32 s2, s0, 168897; VI-IDXMODE-NEXT:    s_addc_u32 s3, s1, 08898; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[12:13], v[8:11]8899; VI-IDXMODE-NEXT:    s_nop 08900; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, s38901; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, s28902; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[8:9], v[4:7]8903; VI-IDXMODE-NEXT:    s_nop 08904; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, s18905; VI-IDXMODE-NEXT:    v_mov_b32_e32 v4, s08906; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[4:5], v[0:3]8907; VI-IDXMODE-NEXT:    s_endpgm8908;8909; GFX9-IDXMODE-LABEL: insertelement_v16f32_or_index:8910; GFX9-IDXMODE:       ; %bb.0:8911; GFX9-IDXMODE-NEXT:    s_load_dwordx16 s[8:23], s[4:5], 0x648912; GFX9-IDXMODE-NEXT:    s_load_dword s2, s[4:5], 0xa48913; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x248914; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, 08915; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v17, 0x40a000008916; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)8917; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, s88918; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, s98919; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, s108920; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v3, s118921; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v4, s128922; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, s138923; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, s148924; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, s158925; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, s168926; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, s178927; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, s188928; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, s198929; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, s208930; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, s218931; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, s228932; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, s238933; GFX9-IDXMODE-NEXT:    s_lshl_b32 s2, s2, 28934; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)8935; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v1, v178936; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off8937; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[12:15], s[0:1] offset:488938; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[8:11], s[0:1] offset:328939; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[4:7], s[0:1] offset:168940; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v16, v[0:3], s[0:1]8941; GFX9-IDXMODE-NEXT:    s_endpgm8942  %idx.shl = shl i32 %idx.in, 28943  %idx = or i32 %idx.shl, 18944  %vecins = insertelement <16 x float> %a, float 5.000000e+00, i32 %idx8945  store <16 x float> %vecins, ptr addrspace(1) %out, align 648946  ret void8947}8948 8949define amdgpu_kernel void @broken_phi_bb(i32 %arg, i32 %arg1) {8950; GENERIC-LABEL: broken_phi_bb:8951; GENERIC:       ; %bb.0: ; %bb8952; GENERIC-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x98953; GENERIC-NEXT:    s_mov_b32 s6, 88954; GENERIC-NEXT:    s_mov_b32 s3, 0xf0008955; GENERIC-NEXT:    s_mov_b32 s2, -18956; GENERIC-NEXT:    s_branch .LBB26_28957; GENERIC-NEXT:  .LBB26_1: ; %Flow8958; GENERIC-NEXT:    ; in Loop: Header=BB26_2 Depth=18959; GENERIC-NEXT:    s_andn2_b64 vcc, exec, s[4:5]8960; GENERIC-NEXT:    s_cbranch_vccz .LBB26_48961; GENERIC-NEXT:  .LBB26_2: ; %bb28962; GENERIC-NEXT:    ; =>This Inner Loop Header: Depth=18963; GENERIC-NEXT:    s_waitcnt lgkmcnt(0)8964; GENERIC-NEXT:    s_cmp_ge_i32 s6, s08965; GENERIC-NEXT:    s_mov_b64 s[4:5], -18966; GENERIC-NEXT:    ; implicit-def: $sgpr68967; GENERIC-NEXT:    s_cbranch_scc1 .LBB26_18968; GENERIC-NEXT:  ; %bb.3: ; %bb48969; GENERIC-NEXT:    ; in Loop: Header=BB26_2 Depth=18970; GENERIC-NEXT:    buffer_load_dword v0, off, s[0:3], 0 glc8971; GENERIC-NEXT:    s_waitcnt vmcnt(0)8972; GENERIC-NEXT:    s_mov_b64 s[4:5], 08973; GENERIC-NEXT:    s_mov_b32 s6, s18974; GENERIC-NEXT:    s_branch .LBB26_18975; GENERIC-NEXT:  .LBB26_4: ; %bb88976; GENERIC-NEXT:    s_endpgm8977;8978; NOOPT-LABEL: broken_phi_bb:8979; NOOPT:       ; %bb.0: ; %bb8980; NOOPT-NEXT:    s_mov_b32 s24, SCRATCH_RSRC_DWORD08981; NOOPT-NEXT:    s_mov_b32 s25, SCRATCH_RSRC_DWORD18982; NOOPT-NEXT:    s_mov_b32 s26, -18983; NOOPT-NEXT:    s_mov_b32 s27, 0xe8f0008984; NOOPT-NEXT:    s_add_u32 s24, s24, s118985; NOOPT-NEXT:    s_addc_u32 s25, s25, 08986; NOOPT-NEXT:    s_load_dword s1, s[4:5], 0x98987; NOOPT-NEXT:    s_load_dword s0, s[4:5], 0xa8988; NOOPT-NEXT:    ; implicit-def: $vgpr18 : SGPR spill to VGPR lane8989; NOOPT-NEXT:    s_waitcnt lgkmcnt(0)8990; NOOPT-NEXT:    v_writelane_b32 v18, s1, 08991; NOOPT-NEXT:    s_mov_b32 s1, 88992; NOOPT-NEXT:    v_writelane_b32 v18, s0, 18993; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -18994; NOOPT-NEXT:    buffer_store_dword v18, off, s[24:27], 0 ; 4-byte Folded Spill8995; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]8996; NOOPT-NEXT:    v_mov_b32_e32 v0, 88997; NOOPT-NEXT:    buffer_store_dword v0, off, s[24:27], 0 offset:4 ; 4-byte Folded Spill8998; NOOPT-NEXT:  .LBB26_1: ; %bb28999; NOOPT-NEXT:    ; =>This Loop Header: Depth=19000; NOOPT-NEXT:    ; Child Loop BB26_3 Depth 29001; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -19002; NOOPT-NEXT:    s_waitcnt expcnt(1)9003; NOOPT-NEXT:    buffer_load_dword v18, off, s[24:27], 0 ; 4-byte Folded Reload9004; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]9005; NOOPT-NEXT:    s_waitcnt vmcnt(0)9006; NOOPT-NEXT:    v_readlane_b32 s2, v18, 09007; NOOPT-NEXT:    s_waitcnt expcnt(0)9008; NOOPT-NEXT:    buffer_load_dword v0, off, s[24:27], 0 offset:4 ; 4-byte Folded Reload9009; NOOPT-NEXT:    s_mov_b64 s[0:1], -19010; NOOPT-NEXT:    ; implicit-def: $sgpr49011; NOOPT-NEXT:    s_waitcnt vmcnt(0)9012; NOOPT-NEXT:    v_cmp_ge_i32_e64 s[2:3], v0, s29013; NOOPT-NEXT:    v_mov_b32_e32 v0, s49014; NOOPT-NEXT:    s_and_b64 vcc, exec, s[2:3]9015; NOOPT-NEXT:    buffer_store_dword v0, off, s[24:27], 0 offset:8 ; 4-byte Folded Spill9016; NOOPT-NEXT:    v_writelane_b32 v18, s0, 29017; NOOPT-NEXT:    v_writelane_b32 v18, s1, 39018; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -19019; NOOPT-NEXT:    buffer_store_dword v18, off, s[24:27], 0 ; 4-byte Folded Spill9020; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]9021; NOOPT-NEXT:    s_cbranch_vccnz .LBB26_69022; NOOPT-NEXT:  ; %bb.2: ; %bb49023; NOOPT-NEXT:    ; in Loop: Header=BB26_1 Depth=19024; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -19025; NOOPT-NEXT:    s_waitcnt expcnt(0)9026; NOOPT-NEXT:    buffer_load_dword v18, off, s[24:27], 0 ; 4-byte Folded Reload9027; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]9028; NOOPT-NEXT:    s_waitcnt vmcnt(0)9029; NOOPT-NEXT:    v_readlane_b32 s0, v18, 19030; NOOPT-NEXT:    ; implicit-def: $sgpr2_sgpr39031; NOOPT-NEXT:    ; kill: def $sgpr3 killed $sgpr3 killed $sgpr2_sgpr39032; NOOPT-NEXT:    ; implicit-def: $sgpr4_sgpr59033; NOOPT-NEXT:    ; kill: def $sgpr4 killed $sgpr4 killed $sgpr4_sgpr59034; NOOPT-NEXT:    s_mov_b32 s1, 0xf0009035; NOOPT-NEXT:    s_mov_b32 s2, -19036; NOOPT-NEXT:    ; kill: def $sgpr4 killed $sgpr4 def $sgpr4_sgpr5_sgpr6_sgpr79037; NOOPT-NEXT:    s_mov_b32 s5, s39038; NOOPT-NEXT:    s_mov_b32 s6, s29039; NOOPT-NEXT:    s_mov_b32 s7, s19040; NOOPT-NEXT:    buffer_load_dword v0, off, s[4:7], 0 glc9041; NOOPT-NEXT:    s_waitcnt vmcnt(0)9042; NOOPT-NEXT:    buffer_store_dword v0, off, s[24:27], 0 offset:80 ; 4-byte Folded Spill9043; NOOPT-NEXT:    ; implicit-def: $sgpr4_sgpr5_sgpr6_sgpr7_sgpr8_sgpr9_sgpr10_sgpr11_sgpr12_sgpr13_sgpr14_sgpr15_sgpr16_sgpr17_sgpr18_sgpr199044; NOOPT-NEXT:    s_waitcnt expcnt(0)9045; NOOPT-NEXT:    v_mov_b32_e32 v0, s49046; NOOPT-NEXT:    v_mov_b32_e32 v1, s59047; NOOPT-NEXT:    v_mov_b32_e32 v2, s69048; NOOPT-NEXT:    v_mov_b32_e32 v3, s79049; NOOPT-NEXT:    v_mov_b32_e32 v4, s89050; NOOPT-NEXT:    v_mov_b32_e32 v5, s99051; NOOPT-NEXT:    v_mov_b32_e32 v6, s109052; NOOPT-NEXT:    v_mov_b32_e32 v7, s119053; NOOPT-NEXT:    v_mov_b32_e32 v8, s129054; NOOPT-NEXT:    v_mov_b32_e32 v9, s139055; NOOPT-NEXT:    v_mov_b32_e32 v10, s149056; NOOPT-NEXT:    v_mov_b32_e32 v11, s159057; NOOPT-NEXT:    v_mov_b32_e32 v12, s169058; NOOPT-NEXT:    v_mov_b32_e32 v13, s179059; NOOPT-NEXT:    v_mov_b32_e32 v14, s189060; NOOPT-NEXT:    v_mov_b32_e32 v15, s199061; NOOPT-NEXT:    v_mov_b32_e32 v16, s09062; NOOPT-NEXT:    buffer_store_dword v16, off, s[24:27], 0 offset:76 ; 4-byte Folded Spill9063; NOOPT-NEXT:    s_mov_b64 s[0:1], exec9064; NOOPT-NEXT:    v_writelane_b32 v18, s0, 49065; NOOPT-NEXT:    v_writelane_b32 v18, s1, 59066; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -19067; NOOPT-NEXT:    buffer_store_dword v18, off, s[24:27], 0 ; 4-byte Folded Spill9068; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]9069; NOOPT-NEXT:    buffer_store_dword v0, off, s[24:27], 0 offset:12 ; 4-byte Folded Spill9070; NOOPT-NEXT:    buffer_store_dword v1, off, s[24:27], 0 offset:16 ; 4-byte Folded Spill9071; NOOPT-NEXT:    buffer_store_dword v2, off, s[24:27], 0 offset:20 ; 4-byte Folded Spill9072; NOOPT-NEXT:    buffer_store_dword v3, off, s[24:27], 0 offset:24 ; 4-byte Folded Spill9073; NOOPT-NEXT:    buffer_store_dword v4, off, s[24:27], 0 offset:28 ; 4-byte Folded Spill9074; NOOPT-NEXT:    buffer_store_dword v5, off, s[24:27], 0 offset:32 ; 4-byte Folded Spill9075; NOOPT-NEXT:    buffer_store_dword v6, off, s[24:27], 0 offset:36 ; 4-byte Folded Spill9076; NOOPT-NEXT:    buffer_store_dword v7, off, s[24:27], 0 offset:40 ; 4-byte Folded Spill9077; NOOPT-NEXT:    buffer_store_dword v8, off, s[24:27], 0 offset:44 ; 4-byte Folded Spill9078; NOOPT-NEXT:    buffer_store_dword v9, off, s[24:27], 0 offset:48 ; 4-byte Folded Spill9079; NOOPT-NEXT:    buffer_store_dword v10, off, s[24:27], 0 offset:52 ; 4-byte Folded Spill9080; NOOPT-NEXT:    buffer_store_dword v11, off, s[24:27], 0 offset:56 ; 4-byte Folded Spill9081; NOOPT-NEXT:    buffer_store_dword v12, off, s[24:27], 0 offset:60 ; 4-byte Folded Spill9082; NOOPT-NEXT:    buffer_store_dword v13, off, s[24:27], 0 offset:64 ; 4-byte Folded Spill9083; NOOPT-NEXT:    buffer_store_dword v14, off, s[24:27], 0 offset:68 ; 4-byte Folded Spill9084; NOOPT-NEXT:    buffer_store_dword v15, off, s[24:27], 0 offset:72 ; 4-byte Folded Spill9085; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr19086; NOOPT-NEXT:  .LBB26_3: ; Parent Loop BB26_1 Depth=19087; NOOPT-NEXT:    ; => This Inner Loop Header: Depth=29088; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -19089; NOOPT-NEXT:    s_waitcnt expcnt(0)9090; NOOPT-NEXT:    buffer_load_dword v18, off, s[24:27], 0 ; 4-byte Folded Reload9091; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]9092; NOOPT-NEXT:    s_waitcnt vmcnt(0)9093; NOOPT-NEXT:    v_readlane_b32 s0, v18, 69094; NOOPT-NEXT:    v_readlane_b32 s1, v18, 79095; NOOPT-NEXT:    buffer_load_dword v0, off, s[24:27], 0 offset:12 ; 4-byte Folded Reload9096; NOOPT-NEXT:    buffer_load_dword v1, off, s[24:27], 0 offset:16 ; 4-byte Folded Reload9097; NOOPT-NEXT:    buffer_load_dword v2, off, s[24:27], 0 offset:20 ; 4-byte Folded Reload9098; NOOPT-NEXT:    buffer_load_dword v3, off, s[24:27], 0 offset:24 ; 4-byte Folded Reload9099; NOOPT-NEXT:    buffer_load_dword v4, off, s[24:27], 0 offset:28 ; 4-byte Folded Reload9100; NOOPT-NEXT:    buffer_load_dword v5, off, s[24:27], 0 offset:32 ; 4-byte Folded Reload9101; NOOPT-NEXT:    buffer_load_dword v6, off, s[24:27], 0 offset:36 ; 4-byte Folded Reload9102; NOOPT-NEXT:    buffer_load_dword v7, off, s[24:27], 0 offset:40 ; 4-byte Folded Reload9103; NOOPT-NEXT:    buffer_load_dword v8, off, s[24:27], 0 offset:44 ; 4-byte Folded Reload9104; NOOPT-NEXT:    s_waitcnt expcnt(6)9105; NOOPT-NEXT:    buffer_load_dword v9, off, s[24:27], 0 offset:48 ; 4-byte Folded Reload9106; NOOPT-NEXT:    s_waitcnt expcnt(5)9107; NOOPT-NEXT:    buffer_load_dword v10, off, s[24:27], 0 offset:52 ; 4-byte Folded Reload9108; NOOPT-NEXT:    s_waitcnt expcnt(4)9109; NOOPT-NEXT:    buffer_load_dword v11, off, s[24:27], 0 offset:56 ; 4-byte Folded Reload9110; NOOPT-NEXT:    s_waitcnt expcnt(3)9111; NOOPT-NEXT:    buffer_load_dword v12, off, s[24:27], 0 offset:60 ; 4-byte Folded Reload9112; NOOPT-NEXT:    s_waitcnt expcnt(2)9113; NOOPT-NEXT:    buffer_load_dword v13, off, s[24:27], 0 offset:64 ; 4-byte Folded Reload9114; NOOPT-NEXT:    s_waitcnt expcnt(1)9115; NOOPT-NEXT:    buffer_load_dword v14, off, s[24:27], 0 offset:68 ; 4-byte Folded Reload9116; NOOPT-NEXT:    s_waitcnt expcnt(0)9117; NOOPT-NEXT:    buffer_load_dword v15, off, s[24:27], 0 offset:72 ; 4-byte Folded Reload9118; NOOPT-NEXT:    buffer_load_dword v16, off, s[24:27], 0 offset:76 ; 4-byte Folded Reload9119; NOOPT-NEXT:    buffer_load_dword v17, off, s[24:27], 0 offset:80 ; 4-byte Folded Reload9120; NOOPT-NEXT:    s_waitcnt vmcnt(0)9121; NOOPT-NEXT:    v_readfirstlane_b32 s2, v179122; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[0:1], s2, v179123; NOOPT-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]9124; NOOPT-NEXT:    s_mov_b32 m0, s29125; NOOPT-NEXT:    v_movreld_b32_e32 v0, v169126; NOOPT-NEXT:    buffer_store_dword v0, off, s[24:27], 0 offset:84 ; 4-byte Folded Spill9127; NOOPT-NEXT:    buffer_store_dword v1, off, s[24:27], 0 offset:88 ; 4-byte Folded Spill9128; NOOPT-NEXT:    buffer_store_dword v2, off, s[24:27], 0 offset:92 ; 4-byte Folded Spill9129; NOOPT-NEXT:    buffer_store_dword v3, off, s[24:27], 0 offset:96 ; 4-byte Folded Spill9130; NOOPT-NEXT:    buffer_store_dword v4, off, s[24:27], 0 offset:100 ; 4-byte Folded Spill9131; NOOPT-NEXT:    buffer_store_dword v5, off, s[24:27], 0 offset:104 ; 4-byte Folded Spill9132; NOOPT-NEXT:    buffer_store_dword v6, off, s[24:27], 0 offset:108 ; 4-byte Folded Spill9133; NOOPT-NEXT:    buffer_store_dword v7, off, s[24:27], 0 offset:112 ; 4-byte Folded Spill9134; NOOPT-NEXT:    buffer_store_dword v8, off, s[24:27], 0 offset:116 ; 4-byte Folded Spill9135; NOOPT-NEXT:    buffer_store_dword v9, off, s[24:27], 0 offset:120 ; 4-byte Folded Spill9136; NOOPT-NEXT:    buffer_store_dword v10, off, s[24:27], 0 offset:124 ; 4-byte Folded Spill9137; NOOPT-NEXT:    buffer_store_dword v11, off, s[24:27], 0 offset:128 ; 4-byte Folded Spill9138; NOOPT-NEXT:    buffer_store_dword v12, off, s[24:27], 0 offset:132 ; 4-byte Folded Spill9139; NOOPT-NEXT:    buffer_store_dword v13, off, s[24:27], 0 offset:136 ; 4-byte Folded Spill9140; NOOPT-NEXT:    buffer_store_dword v14, off, s[24:27], 0 offset:140 ; 4-byte Folded Spill9141; NOOPT-NEXT:    buffer_store_dword v15, off, s[24:27], 0 offset:144 ; 4-byte Folded Spill9142; NOOPT-NEXT:    buffer_store_dword v0, off, s[24:27], 0 offset:12 ; 4-byte Folded Spill9143; NOOPT-NEXT:    buffer_store_dword v1, off, s[24:27], 0 offset:16 ; 4-byte Folded Spill9144; NOOPT-NEXT:    buffer_store_dword v2, off, s[24:27], 0 offset:20 ; 4-byte Folded Spill9145; NOOPT-NEXT:    buffer_store_dword v3, off, s[24:27], 0 offset:24 ; 4-byte Folded Spill9146; NOOPT-NEXT:    buffer_store_dword v4, off, s[24:27], 0 offset:28 ; 4-byte Folded Spill9147; NOOPT-NEXT:    buffer_store_dword v5, off, s[24:27], 0 offset:32 ; 4-byte Folded Spill9148; NOOPT-NEXT:    buffer_store_dword v6, off, s[24:27], 0 offset:36 ; 4-byte Folded Spill9149; NOOPT-NEXT:    buffer_store_dword v7, off, s[24:27], 0 offset:40 ; 4-byte Folded Spill9150; NOOPT-NEXT:    buffer_store_dword v8, off, s[24:27], 0 offset:44 ; 4-byte Folded Spill9151; NOOPT-NEXT:    buffer_store_dword v9, off, s[24:27], 0 offset:48 ; 4-byte Folded Spill9152; NOOPT-NEXT:    buffer_store_dword v10, off, s[24:27], 0 offset:52 ; 4-byte Folded Spill9153; NOOPT-NEXT:    buffer_store_dword v11, off, s[24:27], 0 offset:56 ; 4-byte Folded Spill9154; NOOPT-NEXT:    buffer_store_dword v12, off, s[24:27], 0 offset:60 ; 4-byte Folded Spill9155; NOOPT-NEXT:    buffer_store_dword v13, off, s[24:27], 0 offset:64 ; 4-byte Folded Spill9156; NOOPT-NEXT:    buffer_store_dword v14, off, s[24:27], 0 offset:68 ; 4-byte Folded Spill9157; NOOPT-NEXT:    buffer_store_dword v15, off, s[24:27], 0 offset:72 ; 4-byte Folded Spill9158; NOOPT-NEXT:    s_mov_b64 s[2:3], s[0:1]9159; NOOPT-NEXT:    v_writelane_b32 v18, s2, 69160; NOOPT-NEXT:    v_writelane_b32 v18, s3, 79161; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -19162; NOOPT-NEXT:    buffer_store_dword v18, off, s[24:27], 0 ; 4-byte Folded Spill9163; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]9164; NOOPT-NEXT:    s_xor_b64 exec, exec, s[0:1]9165; NOOPT-NEXT:    s_cbranch_execnz .LBB26_39166; NOOPT-NEXT:  ; %bb.4: ; in Loop: Header=BB26_1 Depth=19167; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -19168; NOOPT-NEXT:    s_waitcnt expcnt(0)9169; NOOPT-NEXT:    buffer_load_dword v18, off, s[24:27], 0 ; 4-byte Folded Reload9170; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]9171; NOOPT-NEXT:    s_waitcnt vmcnt(0)9172; NOOPT-NEXT:    v_readlane_b32 s0, v18, 49173; NOOPT-NEXT:    v_readlane_b32 s1, v18, 59174; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]9175; NOOPT-NEXT:  ; %bb.5: ; in Loop: Header=BB26_1 Depth=19176; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -19177; NOOPT-NEXT:    buffer_load_dword v18, off, s[24:27], 0 ; 4-byte Folded Reload9178; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]9179; NOOPT-NEXT:    buffer_load_dword v0, off, s[24:27], 0 offset:84 ; 4-byte Folded Reload9180; NOOPT-NEXT:    buffer_load_dword v1, off, s[24:27], 0 offset:88 ; 4-byte Folded Reload9181; NOOPT-NEXT:    buffer_load_dword v2, off, s[24:27], 0 offset:92 ; 4-byte Folded Reload9182; NOOPT-NEXT:    buffer_load_dword v3, off, s[24:27], 0 offset:96 ; 4-byte Folded Reload9183; NOOPT-NEXT:    buffer_load_dword v4, off, s[24:27], 0 offset:100 ; 4-byte Folded Reload9184; NOOPT-NEXT:    buffer_load_dword v5, off, s[24:27], 0 offset:104 ; 4-byte Folded Reload9185; NOOPT-NEXT:    buffer_load_dword v6, off, s[24:27], 0 offset:108 ; 4-byte Folded Reload9186; NOOPT-NEXT:    buffer_load_dword v7, off, s[24:27], 0 offset:112 ; 4-byte Folded Reload9187; NOOPT-NEXT:    buffer_load_dword v8, off, s[24:27], 0 offset:116 ; 4-byte Folded Reload9188; NOOPT-NEXT:    buffer_load_dword v9, off, s[24:27], 0 offset:120 ; 4-byte Folded Reload9189; NOOPT-NEXT:    buffer_load_dword v10, off, s[24:27], 0 offset:124 ; 4-byte Folded Reload9190; NOOPT-NEXT:    buffer_load_dword v11, off, s[24:27], 0 offset:128 ; 4-byte Folded Reload9191; NOOPT-NEXT:    buffer_load_dword v12, off, s[24:27], 0 offset:132 ; 4-byte Folded Reload9192; NOOPT-NEXT:    buffer_load_dword v13, off, s[24:27], 0 offset:136 ; 4-byte Folded Reload9193; NOOPT-NEXT:    buffer_load_dword v14, off, s[24:27], 0 offset:140 ; 4-byte Folded Reload9194; NOOPT-NEXT:    buffer_load_dword v15, off, s[24:27], 0 offset:144 ; 4-byte Folded Reload9195; NOOPT-NEXT:    s_mov_b64 s[0:1], 09196; NOOPT-NEXT:    s_waitcnt vmcnt(14)9197; NOOPT-NEXT:    buffer_store_dword v0, off, s[24:27], 0 offset:8 ; 4-byte Folded Spill9198; NOOPT-NEXT:    v_writelane_b32 v18, s0, 29199; NOOPT-NEXT:    v_writelane_b32 v18, s1, 39200; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -19201; NOOPT-NEXT:    buffer_store_dword v18, off, s[24:27], 0 ; 4-byte Folded Spill9202; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]9203; NOOPT-NEXT:  .LBB26_6: ; %Flow9204; NOOPT-NEXT:    ; in Loop: Header=BB26_1 Depth=19205; NOOPT-NEXT:    s_or_saveexec_b64 s[20:21], -19206; NOOPT-NEXT:    s_waitcnt expcnt(0)9207; NOOPT-NEXT:    buffer_load_dword v18, off, s[24:27], 0 ; 4-byte Folded Reload9208; NOOPT-NEXT:    s_mov_b64 exec, s[20:21]9209; NOOPT-NEXT:    s_waitcnt vmcnt(0)9210; NOOPT-NEXT:    v_readlane_b32 s0, v18, 29211; NOOPT-NEXT:    v_readlane_b32 s1, v18, 39212; NOOPT-NEXT:    buffer_load_dword v0, off, s[24:27], 0 offset:8 ; 4-byte Folded Reload9213; NOOPT-NEXT:    v_cndmask_b32_e64 v1, 0, 1, s[0:1]9214; NOOPT-NEXT:    s_mov_b32 s0, 19215; NOOPT-NEXT:    v_cmp_ne_u32_e64 s[0:1], v1, s09216; NOOPT-NEXT:    s_and_b64 vcc, exec, s[0:1]9217; NOOPT-NEXT:    s_waitcnt vmcnt(0)9218; NOOPT-NEXT:    buffer_store_dword v0, off, s[24:27], 0 offset:4 ; 4-byte Folded Spill9219; NOOPT-NEXT:    s_cbranch_vccnz .LBB26_19220; NOOPT-NEXT:  ; %bb.7: ; %bb89221; NOOPT-NEXT:    s_endpgm9222;9223; SI-MOVREL-LABEL: broken_phi_bb:9224; SI-MOVREL:       ; %bb.0: ; %bb9225; SI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x99226; SI-MOVREL-NEXT:    v_mov_b32_e32 v0, 89227; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0009228; SI-MOVREL-NEXT:    s_mov_b32 s2, -19229; SI-MOVREL-NEXT:    s_branch .LBB26_29230; SI-MOVREL-NEXT:  .LBB26_1:9231; SI-MOVREL-NEXT:    ; implicit-def: $vgpr09232; SI-MOVREL-NEXT:    s_branch .LBB26_69233; SI-MOVREL-NEXT:  .LBB26_2: ; %bb29234; SI-MOVREL-NEXT:    ; =>This Loop Header: Depth=19235; SI-MOVREL-NEXT:    ; Child Loop BB26_4 Depth 29236; SI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)9237; SI-MOVREL-NEXT:    v_cmp_le_i32_e32 vcc, s0, v09238; SI-MOVREL-NEXT:    s_cbranch_vccnz .LBB26_19239; SI-MOVREL-NEXT:  ; %bb.3: ; %bb49240; SI-MOVREL-NEXT:    ; in Loop: Header=BB26_2 Depth=19241; SI-MOVREL-NEXT:    buffer_load_dword v16, off, s[0:3], 0 glc9242; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)9243; SI-MOVREL-NEXT:    v_mov_b32_e32 v17, s19244; SI-MOVREL-NEXT:    s_mov_b64 s[4:5], exec9245; SI-MOVREL-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr159246; SI-MOVREL-NEXT:  .LBB26_4: ; Parent Loop BB26_2 Depth=19247; SI-MOVREL-NEXT:    ; => This Inner Loop Header: Depth=29248; SI-MOVREL-NEXT:    v_readfirstlane_b32 s6, v169249; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, s6, v169250; SI-MOVREL-NEXT:    s_and_saveexec_b64 vcc, vcc9251; SI-MOVREL-NEXT:    s_mov_b32 m0, s69252; SI-MOVREL-NEXT:    v_movreld_b32_e32 v0, v179253; SI-MOVREL-NEXT:    s_xor_b64 exec, exec, vcc9254; SI-MOVREL-NEXT:    s_cbranch_execnz .LBB26_49255; SI-MOVREL-NEXT:  ; %bb.5: ; in Loop: Header=BB26_2 Depth=19256; SI-MOVREL-NEXT:    s_mov_b64 exec, s[4:5]9257; SI-MOVREL-NEXT:    s_cbranch_execnz .LBB26_29258; SI-MOVREL-NEXT:  .LBB26_6: ; %bb89259; SI-MOVREL-NEXT:    s_endpgm9260;9261; VI-MOVREL-LABEL: broken_phi_bb:9262; VI-MOVREL:       ; %bb.0: ; %bb9263; VI-MOVREL-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x249264; VI-MOVREL-NEXT:    v_mov_b32_e32 v0, 89265; VI-MOVREL-NEXT:    s_branch .LBB26_29266; VI-MOVREL-NEXT:  .LBB26_1:9267; VI-MOVREL-NEXT:    ; implicit-def: $vgpr09268; VI-MOVREL-NEXT:    s_branch .LBB26_69269; VI-MOVREL-NEXT:  .LBB26_2: ; %bb29270; VI-MOVREL-NEXT:    ; =>This Loop Header: Depth=19271; VI-MOVREL-NEXT:    ; Child Loop BB26_4 Depth 29272; VI-MOVREL-NEXT:    s_waitcnt lgkmcnt(0)9273; VI-MOVREL-NEXT:    v_cmp_le_i32_e32 vcc, s0, v09274; VI-MOVREL-NEXT:    s_cbranch_vccnz .LBB26_19275; VI-MOVREL-NEXT:  ; %bb.3: ; %bb49276; VI-MOVREL-NEXT:    ; in Loop: Header=BB26_2 Depth=19277; VI-MOVREL-NEXT:    flat_load_dword v16, v[0:1] glc9278; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)9279; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, s19280; VI-MOVREL-NEXT:    s_mov_b64 s[2:3], exec9281; VI-MOVREL-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr159282; VI-MOVREL-NEXT:  .LBB26_4: ; Parent Loop BB26_2 Depth=19283; VI-MOVREL-NEXT:    ; => This Inner Loop Header: Depth=29284; VI-MOVREL-NEXT:    v_readfirstlane_b32 s4, v169285; VI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, s4, v169286; VI-MOVREL-NEXT:    s_and_saveexec_b64 vcc, vcc9287; VI-MOVREL-NEXT:    s_mov_b32 m0, s49288; VI-MOVREL-NEXT:    v_movreld_b32_e32 v0, v179289; VI-MOVREL-NEXT:    s_xor_b64 exec, exec, vcc9290; VI-MOVREL-NEXT:    s_cbranch_execnz .LBB26_49291; VI-MOVREL-NEXT:  ; %bb.5: ; in Loop: Header=BB26_2 Depth=19292; VI-MOVREL-NEXT:    s_mov_b64 exec, s[2:3]9293; VI-MOVREL-NEXT:    s_cbranch_execnz .LBB26_29294; VI-MOVREL-NEXT:  .LBB26_6: ; %bb89295; VI-MOVREL-NEXT:    s_endpgm9296;9297; VI-IDXMODE-LABEL: broken_phi_bb:9298; VI-IDXMODE:       ; %bb.0: ; %bb9299; VI-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x249300; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, 89301; VI-IDXMODE-NEXT:    s_branch .LBB26_29302; VI-IDXMODE-NEXT:  .LBB26_1:9303; VI-IDXMODE-NEXT:    ; implicit-def: $vgpr09304; VI-IDXMODE-NEXT:    s_branch .LBB26_69305; VI-IDXMODE-NEXT:  .LBB26_2: ; %bb29306; VI-IDXMODE-NEXT:    ; =>This Loop Header: Depth=19307; VI-IDXMODE-NEXT:    ; Child Loop BB26_4 Depth 29308; VI-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)9309; VI-IDXMODE-NEXT:    v_cmp_le_i32_e32 vcc, s0, v09310; VI-IDXMODE-NEXT:    s_cbranch_vccnz .LBB26_19311; VI-IDXMODE-NEXT:  ; %bb.3: ; %bb49312; VI-IDXMODE-NEXT:    ; in Loop: Header=BB26_2 Depth=19313; VI-IDXMODE-NEXT:    flat_load_dword v16, v[0:1] glc9314; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)9315; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, s19316; VI-IDXMODE-NEXT:    s_mov_b64 s[2:3], exec9317; VI-IDXMODE-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr159318; VI-IDXMODE-NEXT:  .LBB26_4: ; Parent Loop BB26_2 Depth=19319; VI-IDXMODE-NEXT:    ; => This Inner Loop Header: Depth=29320; VI-IDXMODE-NEXT:    v_readfirstlane_b32 s4, v169321; VI-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, s4, v169322; VI-IDXMODE-NEXT:    s_and_saveexec_b64 vcc, vcc9323; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s4, gpr_idx(DST)9324; VI-IDXMODE-NEXT:    v_mov_b32_e32 v0, v179325; VI-IDXMODE-NEXT:    s_set_gpr_idx_off9326; VI-IDXMODE-NEXT:    s_xor_b64 exec, exec, vcc9327; VI-IDXMODE-NEXT:    s_cbranch_execnz .LBB26_49328; VI-IDXMODE-NEXT:  ; %bb.5: ; in Loop: Header=BB26_2 Depth=19329; VI-IDXMODE-NEXT:    s_mov_b64 exec, s[2:3]9330; VI-IDXMODE-NEXT:    s_cbranch_execnz .LBB26_29331; VI-IDXMODE-NEXT:  .LBB26_6: ; %bb89332; VI-IDXMODE-NEXT:    s_endpgm9333;9334; GFX9-IDXMODE-LABEL: broken_phi_bb:9335; GFX9-IDXMODE:       ; %bb.0: ; %bb9336; GFX9-IDXMODE-NEXT:    s_load_dwordx2 s[0:1], s[4:5], 0x249337; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, 89338; GFX9-IDXMODE-NEXT:    s_branch .LBB26_29339; GFX9-IDXMODE-NEXT:  .LBB26_1:9340; GFX9-IDXMODE-NEXT:    ; implicit-def: $vgpr09341; GFX9-IDXMODE-NEXT:    s_branch .LBB26_69342; GFX9-IDXMODE-NEXT:  .LBB26_2: ; %bb29343; GFX9-IDXMODE-NEXT:    ; =>This Loop Header: Depth=19344; GFX9-IDXMODE-NEXT:    ; Child Loop BB26_4 Depth 29345; GFX9-IDXMODE-NEXT:    s_waitcnt lgkmcnt(0)9346; GFX9-IDXMODE-NEXT:    v_cmp_le_i32_e32 vcc, s0, v09347; GFX9-IDXMODE-NEXT:    s_cbranch_vccnz .LBB26_19348; GFX9-IDXMODE-NEXT:  ; %bb.3: ; %bb49349; GFX9-IDXMODE-NEXT:    ; in Loop: Header=BB26_2 Depth=19350; GFX9-IDXMODE-NEXT:    global_load_dword v16, v[0:1], off glc9351; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)9352; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v17, s19353; GFX9-IDXMODE-NEXT:    s_mov_b64 s[2:3], exec9354; GFX9-IDXMODE-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr159355; GFX9-IDXMODE-NEXT:  .LBB26_4: ; Parent Loop BB26_2 Depth=19356; GFX9-IDXMODE-NEXT:    ; => This Inner Loop Header: Depth=29357; GFX9-IDXMODE-NEXT:    v_readfirstlane_b32 s4, v169358; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, s4, v169359; GFX9-IDXMODE-NEXT:    s_and_saveexec_b64 vcc, vcc9360; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s4, gpr_idx(DST)9361; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v0, v179362; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off9363; GFX9-IDXMODE-NEXT:    s_xor_b64 exec, exec, vcc9364; GFX9-IDXMODE-NEXT:    s_cbranch_execnz .LBB26_49365; GFX9-IDXMODE-NEXT:  ; %bb.5: ; in Loop: Header=BB26_2 Depth=19366; GFX9-IDXMODE-NEXT:    s_mov_b64 exec, s[2:3]9367; GFX9-IDXMODE-NEXT:    s_cbranch_execnz .LBB26_29368; GFX9-IDXMODE-NEXT:  .LBB26_6: ; %bb89369; GFX9-IDXMODE-NEXT:    s_endpgm9370bb:9371  br label %bb29372 9373bb2:9374  %tmp = phi i32 [ 8, %bb ], [ %tmp7, %bb4 ]9375  %tmp3 = icmp slt i32 %tmp, %arg9376  br i1 %tmp3, label %bb4, label %bb89377 9378bb4:9379  %vgpr = load volatile i32, ptr addrspace(1) poison9380  %tmp5 = insertelement <16 x i32> poison, i32 poison, i32 %vgpr9381  %tmp6 = insertelement <16 x i32> %tmp5, i32 %arg1, i32 %vgpr9382  %tmp7 = extractelement <16 x i32> %tmp6, i32 09383  br label %bb29384 9385bb8:9386  ret void9387}9388 9389define amdgpu_cs void @insert_or_disj_index(ptr addrspace(1) %out, ptr addrspace(4) %in, i32 %val, <4 x i32> inreg %desc, i32 inreg %A) {9390; GENERIC-LABEL: insert_or_disj_index:9391; GENERIC:       ; %bb.0: ; %entry9392; GENERIC-NEXT:    v_mov_b32_e32 v2, s49393; GENERIC-NEXT:    buffer_load_dword v2, v2, s[0:3], 0 offen9394; GENERIC-NEXT:    s_mov_b32 s2, 09395; GENERIC-NEXT:    s_mov_b32 s3, 0xf0009396; GENERIC-NEXT:    s_mov_b32 s0, s29397; GENERIC-NEXT:    s_mov_b32 s1, s29398; GENERIC-NEXT:    s_waitcnt vmcnt(0)9399; GENERIC-NEXT:    v_readfirstlane_b32 s4, v29400; GENERIC-NEXT:    s_or_b32 s4, s4, 19401; GENERIC-NEXT:    s_cmp_eq_u32 s4, 39402; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09403; GENERIC-NEXT:    v_cndmask_b32_e32 v8, 0, v4, vcc9404; GENERIC-NEXT:    s_cmp_eq_u32 s4, 29405; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09406; GENERIC-NEXT:    v_cndmask_b32_e32 v7, 0, v4, vcc9407; GENERIC-NEXT:    s_cmp_eq_u32 s4, 19408; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09409; GENERIC-NEXT:    v_cndmask_b32_e32 v6, 0, v4, vcc9410; GENERIC-NEXT:    s_cmp_eq_u32 s4, 09411; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09412; GENERIC-NEXT:    v_cndmask_b32_e32 v5, 0, v4, vcc9413; GENERIC-NEXT:    s_cmp_eq_u32 s4, 79414; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09415; GENERIC-NEXT:    v_cndmask_b32_e32 v12, 0, v4, vcc9416; GENERIC-NEXT:    s_cmp_eq_u32 s4, 69417; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09418; GENERIC-NEXT:    v_cndmask_b32_e32 v11, 0, v4, vcc9419; GENERIC-NEXT:    s_cmp_eq_u32 s4, 59420; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09421; GENERIC-NEXT:    v_cndmask_b32_e32 v10, 0, v4, vcc9422; GENERIC-NEXT:    s_cmp_eq_u32 s4, 49423; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09424; GENERIC-NEXT:    v_cndmask_b32_e32 v9, 0, v4, vcc9425; GENERIC-NEXT:    s_cmp_eq_u32 s4, 119426; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09427; GENERIC-NEXT:    v_cndmask_b32_e32 v13, 0, v4, vcc9428; GENERIC-NEXT:    s_cmp_eq_u32 s4, 109429; GENERIC-NEXT:    buffer_store_dwordx4 v[9:12], v[0:1], s[0:3], 0 addr64 offset:169430; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09431; GENERIC-NEXT:    s_waitcnt expcnt(0)9432; GENERIC-NEXT:    v_cndmask_b32_e32 v12, 0, v4, vcc9433; GENERIC-NEXT:    s_cmp_eq_u32 s4, 99434; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09435; GENERIC-NEXT:    v_cndmask_b32_e32 v11, 0, v4, vcc9436; GENERIC-NEXT:    s_cmp_eq_u32 s4, 89437; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09438; GENERIC-NEXT:    v_cndmask_b32_e32 v10, 0, v4, vcc9439; GENERIC-NEXT:    s_cmp_eq_u32 s4, 159440; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09441; GENERIC-NEXT:    v_cndmask_b32_e32 v14, 0, v4, vcc9442; GENERIC-NEXT:    s_cmp_eq_u32 s4, 149443; GENERIC-NEXT:    buffer_store_dwordx4 v[10:13], v[0:1], s[0:3], 0 addr64 offset:329444; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09445; GENERIC-NEXT:    s_waitcnt expcnt(0)9446; GENERIC-NEXT:    v_cndmask_b32_e32 v13, 0, v4, vcc9447; GENERIC-NEXT:    s_cmp_eq_u32 s4, 139448; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09449; GENERIC-NEXT:    v_cndmask_b32_e32 v12, 0, v4, vcc9450; GENERIC-NEXT:    s_cmp_eq_u32 s4, 129451; GENERIC-NEXT:    s_cselect_b64 vcc, -1, 09452; GENERIC-NEXT:    v_cndmask_b32_e32 v11, 0, v4, vcc9453; GENERIC-NEXT:    buffer_store_dwordx4 v[11:14], v[0:1], s[0:3], 0 addr64 offset:489454; GENERIC-NEXT:    buffer_store_dwordx4 v[5:8], v[0:1], s[0:3], 0 addr649455; GENERIC-NEXT:    s_endpgm9456;9457; NOOPT-LABEL: insert_or_disj_index:9458; NOOPT:       ; %bb.0: ; %entry9459; NOOPT-NEXT:    s_mov_b32 s16, SCRATCH_RSRC_DWORD09460; NOOPT-NEXT:    s_mov_b32 s17, SCRATCH_RSRC_DWORD19461; NOOPT-NEXT:    s_mov_b32 s18, -19462; NOOPT-NEXT:    s_mov_b32 s19, 0xe8f0009463; NOOPT-NEXT:    s_add_u32 s16, s16, s59464; NOOPT-NEXT:    s_addc_u32 s17, s17, 09465; NOOPT-NEXT:    ; implicit-def: $vgpr33 : SGPR spill to VGPR lane9466; NOOPT-NEXT:    v_writelane_b32 v33, s4, 09467; NOOPT-NEXT:    s_mov_b32 s4, s19468; NOOPT-NEXT:    v_readlane_b32 s1, v33, 09469; NOOPT-NEXT:    v_writelane_b32 v33, s4, 19470; NOOPT-NEXT:    s_mov_b32 s4, s09471; NOOPT-NEXT:    v_readlane_b32 s0, v33, 19472; NOOPT-NEXT:    buffer_store_dword v4, off, s[16:19], 0 offset:144 ; 4-byte Folded Spill9473; NOOPT-NEXT:    v_mov_b32_e32 v2, v19474; NOOPT-NEXT:    ; kill: def $sgpr4 killed $sgpr4 def $sgpr4_sgpr5_sgpr6_sgpr79475; NOOPT-NEXT:    s_mov_b32 s5, s09476; NOOPT-NEXT:    s_mov_b32 s6, s29477; NOOPT-NEXT:    s_mov_b32 s7, s39478; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1 killed $exec9479; NOOPT-NEXT:    v_mov_b32_e32 v1, v29480; NOOPT-NEXT:    buffer_store_dword v0, off, s[16:19], 0 offset:136 ; 4-byte Folded Spill9481; NOOPT-NEXT:    buffer_store_dword v1, off, s[16:19], 0 offset:140 ; 4-byte Folded Spill9482; NOOPT-NEXT:    s_mov_b32 s8, 0xf0009483; NOOPT-NEXT:    s_mov_b32 s0, 09484; NOOPT-NEXT:    v_writelane_b32 v33, s0, 29485; NOOPT-NEXT:    s_mov_b32 s2, s09486; NOOPT-NEXT:    s_mov_b32 s3, s89487; NOOPT-NEXT:    s_mov_b32 s8, s09488; NOOPT-NEXT:    s_mov_b32 s9, s09489; NOOPT-NEXT:    ; kill: def $sgpr8_sgpr9 killed $sgpr8_sgpr9 def $sgpr8_sgpr9_sgpr10_sgpr119490; NOOPT-NEXT:    s_mov_b64 s[10:11], s[2:3]9491; NOOPT-NEXT:    v_writelane_b32 v33, s8, 39492; NOOPT-NEXT:    v_writelane_b32 v33, s9, 49493; NOOPT-NEXT:    v_writelane_b32 v33, s10, 59494; NOOPT-NEXT:    v_writelane_b32 v33, s11, 69495; NOOPT-NEXT:    ; kill: def $sgpr8_sgpr9_sgpr10_sgpr11 killed $sgpr4_sgpr5_sgpr6_sgpr79496; NOOPT-NEXT:    s_waitcnt expcnt(1)9497; NOOPT-NEXT:    v_mov_b32_e32 v0, s19498; NOOPT-NEXT:    buffer_load_dword v0, v0, s[4:7], s0 offen9499; NOOPT-NEXT:    s_waitcnt vmcnt(0)9500; NOOPT-NEXT:    buffer_store_dword v0, off, s[16:19], 0 offset:132 ; 4-byte Folded Spill9501; NOOPT-NEXT:    s_waitcnt expcnt(0)9502; NOOPT-NEXT:    v_mov_b32_e32 v0, s09503; NOOPT-NEXT:    v_mov_b32_e32 v30, s09504; NOOPT-NEXT:    v_mov_b32_e32 v29, s09505; NOOPT-NEXT:    v_mov_b32_e32 v28, s09506; NOOPT-NEXT:    v_mov_b32_e32 v27, s09507; NOOPT-NEXT:    v_mov_b32_e32 v26, s09508; NOOPT-NEXT:    v_mov_b32_e32 v25, s09509; NOOPT-NEXT:    v_mov_b32_e32 v24, s09510; NOOPT-NEXT:    v_mov_b32_e32 v23, s09511; NOOPT-NEXT:    v_mov_b32_e32 v22, s09512; NOOPT-NEXT:    v_mov_b32_e32 v21, s09513; NOOPT-NEXT:    v_mov_b32_e32 v20, s09514; NOOPT-NEXT:    v_mov_b32_e32 v19, s09515; NOOPT-NEXT:    v_mov_b32_e32 v18, s09516; NOOPT-NEXT:    v_mov_b32_e32 v17, s09517; NOOPT-NEXT:    v_mov_b32_e32 v16, s09518; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 killed $exec9519; NOOPT-NEXT:    v_mov_b32_e32 v1, v309520; NOOPT-NEXT:    v_mov_b32_e32 v2, v299521; NOOPT-NEXT:    v_mov_b32_e32 v3, v289522; NOOPT-NEXT:    v_mov_b32_e32 v4, v279523; NOOPT-NEXT:    v_mov_b32_e32 v5, v269524; NOOPT-NEXT:    v_mov_b32_e32 v6, v259525; NOOPT-NEXT:    v_mov_b32_e32 v7, v249526; NOOPT-NEXT:    v_mov_b32_e32 v8, v239527; NOOPT-NEXT:    v_mov_b32_e32 v9, v229528; NOOPT-NEXT:    v_mov_b32_e32 v10, v219529; NOOPT-NEXT:    v_mov_b32_e32 v11, v209530; NOOPT-NEXT:    v_mov_b32_e32 v12, v199531; NOOPT-NEXT:    v_mov_b32_e32 v13, v189532; NOOPT-NEXT:    v_mov_b32_e32 v14, v179533; NOOPT-NEXT:    v_mov_b32_e32 v15, v169534; NOOPT-NEXT:    buffer_store_dword v0, off, s[16:19], 0 offset:68 ; 4-byte Folded Spill9535; NOOPT-NEXT:    buffer_store_dword v1, off, s[16:19], 0 offset:72 ; 4-byte Folded Spill9536; NOOPT-NEXT:    buffer_store_dword v2, off, s[16:19], 0 offset:76 ; 4-byte Folded Spill9537; NOOPT-NEXT:    buffer_store_dword v3, off, s[16:19], 0 offset:80 ; 4-byte Folded Spill9538; NOOPT-NEXT:    buffer_store_dword v4, off, s[16:19], 0 offset:84 ; 4-byte Folded Spill9539; NOOPT-NEXT:    buffer_store_dword v5, off, s[16:19], 0 offset:88 ; 4-byte Folded Spill9540; NOOPT-NEXT:    buffer_store_dword v6, off, s[16:19], 0 offset:92 ; 4-byte Folded Spill9541; NOOPT-NEXT:    buffer_store_dword v7, off, s[16:19], 0 offset:96 ; 4-byte Folded Spill9542; NOOPT-NEXT:    buffer_store_dword v8, off, s[16:19], 0 offset:100 ; 4-byte Folded Spill9543; NOOPT-NEXT:    buffer_store_dword v9, off, s[16:19], 0 offset:104 ; 4-byte Folded Spill9544; NOOPT-NEXT:    buffer_store_dword v10, off, s[16:19], 0 offset:108 ; 4-byte Folded Spill9545; NOOPT-NEXT:    buffer_store_dword v11, off, s[16:19], 0 offset:112 ; 4-byte Folded Spill9546; NOOPT-NEXT:    buffer_store_dword v12, off, s[16:19], 0 offset:116 ; 4-byte Folded Spill9547; NOOPT-NEXT:    buffer_store_dword v13, off, s[16:19], 0 offset:120 ; 4-byte Folded Spill9548; NOOPT-NEXT:    buffer_store_dword v14, off, s[16:19], 0 offset:124 ; 4-byte Folded Spill9549; NOOPT-NEXT:    buffer_store_dword v15, off, s[16:19], 0 offset:128 ; 4-byte Folded Spill9550; NOOPT-NEXT:    s_mov_b64 s[0:1], exec9551; NOOPT-NEXT:    v_writelane_b32 v33, s0, 79552; NOOPT-NEXT:    v_writelane_b32 v33, s1, 89553; NOOPT-NEXT:    s_or_saveexec_b64 s[12:13], -19554; NOOPT-NEXT:    buffer_store_dword v33, off, s[16:19], 0 ; 4-byte Folded Spill9555; NOOPT-NEXT:    s_mov_b64 exec, s[12:13]9556; NOOPT-NEXT:    buffer_store_dword v0, off, s[16:19], 0 offset:4 ; 4-byte Folded Spill9557; NOOPT-NEXT:    buffer_store_dword v1, off, s[16:19], 0 offset:8 ; 4-byte Folded Spill9558; NOOPT-NEXT:    buffer_store_dword v2, off, s[16:19], 0 offset:12 ; 4-byte Folded Spill9559; NOOPT-NEXT:    buffer_store_dword v3, off, s[16:19], 0 offset:16 ; 4-byte Folded Spill9560; NOOPT-NEXT:    buffer_store_dword v4, off, s[16:19], 0 offset:20 ; 4-byte Folded Spill9561; NOOPT-NEXT:    buffer_store_dword v5, off, s[16:19], 0 offset:24 ; 4-byte Folded Spill9562; NOOPT-NEXT:    buffer_store_dword v6, off, s[16:19], 0 offset:28 ; 4-byte Folded Spill9563; NOOPT-NEXT:    buffer_store_dword v7, off, s[16:19], 0 offset:32 ; 4-byte Folded Spill9564; NOOPT-NEXT:    buffer_store_dword v8, off, s[16:19], 0 offset:36 ; 4-byte Folded Spill9565; NOOPT-NEXT:    buffer_store_dword v9, off, s[16:19], 0 offset:40 ; 4-byte Folded Spill9566; NOOPT-NEXT:    buffer_store_dword v10, off, s[16:19], 0 offset:44 ; 4-byte Folded Spill9567; NOOPT-NEXT:    buffer_store_dword v11, off, s[16:19], 0 offset:48 ; 4-byte Folded Spill9568; NOOPT-NEXT:    buffer_store_dword v12, off, s[16:19], 0 offset:52 ; 4-byte Folded Spill9569; NOOPT-NEXT:    buffer_store_dword v13, off, s[16:19], 0 offset:56 ; 4-byte Folded Spill9570; NOOPT-NEXT:    buffer_store_dword v14, off, s[16:19], 0 offset:60 ; 4-byte Folded Spill9571; NOOPT-NEXT:    buffer_store_dword v15, off, s[16:19], 0 offset:64 ; 4-byte Folded Spill9572; NOOPT-NEXT:    ; implicit-def: $sgpr0_sgpr19573; NOOPT-NEXT:  .LBB27_1: ; =>This Inner Loop Header: Depth=19574; NOOPT-NEXT:    s_or_saveexec_b64 s[12:13], -19575; NOOPT-NEXT:    s_waitcnt expcnt(0)9576; NOOPT-NEXT:    buffer_load_dword v33, off, s[16:19], 0 ; 4-byte Folded Reload9577; NOOPT-NEXT:    s_mov_b64 exec, s[12:13]9578; NOOPT-NEXT:    s_waitcnt vmcnt(0)9579; NOOPT-NEXT:    v_readlane_b32 s0, v33, 99580; NOOPT-NEXT:    v_readlane_b32 s1, v33, 109581; NOOPT-NEXT:    buffer_load_dword v0, off, s[16:19], 0 offset:4 ; 4-byte Folded Reload9582; NOOPT-NEXT:    buffer_load_dword v1, off, s[16:19], 0 offset:8 ; 4-byte Folded Reload9583; NOOPT-NEXT:    buffer_load_dword v2, off, s[16:19], 0 offset:12 ; 4-byte Folded Reload9584; NOOPT-NEXT:    buffer_load_dword v3, off, s[16:19], 0 offset:16 ; 4-byte Folded Reload9585; NOOPT-NEXT:    buffer_load_dword v4, off, s[16:19], 0 offset:20 ; 4-byte Folded Reload9586; NOOPT-NEXT:    buffer_load_dword v5, off, s[16:19], 0 offset:24 ; 4-byte Folded Reload9587; NOOPT-NEXT:    buffer_load_dword v6, off, s[16:19], 0 offset:28 ; 4-byte Folded Reload9588; NOOPT-NEXT:    buffer_load_dword v7, off, s[16:19], 0 offset:32 ; 4-byte Folded Reload9589; NOOPT-NEXT:    buffer_load_dword v8, off, s[16:19], 0 offset:36 ; 4-byte Folded Reload9590; NOOPT-NEXT:    s_waitcnt expcnt(6)9591; NOOPT-NEXT:    buffer_load_dword v9, off, s[16:19], 0 offset:40 ; 4-byte Folded Reload9592; NOOPT-NEXT:    s_waitcnt expcnt(5)9593; NOOPT-NEXT:    buffer_load_dword v10, off, s[16:19], 0 offset:44 ; 4-byte Folded Reload9594; NOOPT-NEXT:    s_waitcnt expcnt(4)9595; NOOPT-NEXT:    buffer_load_dword v11, off, s[16:19], 0 offset:48 ; 4-byte Folded Reload9596; NOOPT-NEXT:    s_waitcnt expcnt(3)9597; NOOPT-NEXT:    buffer_load_dword v12, off, s[16:19], 0 offset:52 ; 4-byte Folded Reload9598; NOOPT-NEXT:    s_waitcnt expcnt(2)9599; NOOPT-NEXT:    buffer_load_dword v13, off, s[16:19], 0 offset:56 ; 4-byte Folded Reload9600; NOOPT-NEXT:    s_waitcnt expcnt(1)9601; NOOPT-NEXT:    buffer_load_dword v14, off, s[16:19], 0 offset:60 ; 4-byte Folded Reload9602; NOOPT-NEXT:    s_waitcnt expcnt(0)9603; NOOPT-NEXT:    buffer_load_dword v15, off, s[16:19], 0 offset:64 ; 4-byte Folded Reload9604; NOOPT-NEXT:    buffer_load_dword v16, off, s[16:19], 0 offset:144 ; 4-byte Folded Reload9605; NOOPT-NEXT:    buffer_load_dword v17, off, s[16:19], 0 offset:132 ; 4-byte Folded Reload9606; NOOPT-NEXT:    s_waitcnt vmcnt(0)9607; NOOPT-NEXT:    v_readfirstlane_b32 s2, v179608; NOOPT-NEXT:    v_cmp_eq_u32_e64 s[0:1], s2, v179609; NOOPT-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]9610; NOOPT-NEXT:    s_mov_b32 m0, s29611; NOOPT-NEXT:    v_movreld_b32_e32 v1, v169612; NOOPT-NEXT:    buffer_store_dword v0, off, s[16:19], 0 offset:148 ; 4-byte Folded Spill9613; NOOPT-NEXT:    buffer_store_dword v1, off, s[16:19], 0 offset:152 ; 4-byte Folded Spill9614; NOOPT-NEXT:    buffer_store_dword v2, off, s[16:19], 0 offset:156 ; 4-byte Folded Spill9615; NOOPT-NEXT:    buffer_store_dword v3, off, s[16:19], 0 offset:160 ; 4-byte Folded Spill9616; NOOPT-NEXT:    buffer_store_dword v4, off, s[16:19], 0 offset:164 ; 4-byte Folded Spill9617; NOOPT-NEXT:    buffer_store_dword v5, off, s[16:19], 0 offset:168 ; 4-byte Folded Spill9618; NOOPT-NEXT:    buffer_store_dword v6, off, s[16:19], 0 offset:172 ; 4-byte Folded Spill9619; NOOPT-NEXT:    buffer_store_dword v7, off, s[16:19], 0 offset:176 ; 4-byte Folded Spill9620; NOOPT-NEXT:    buffer_store_dword v8, off, s[16:19], 0 offset:180 ; 4-byte Folded Spill9621; NOOPT-NEXT:    buffer_store_dword v9, off, s[16:19], 0 offset:184 ; 4-byte Folded Spill9622; NOOPT-NEXT:    buffer_store_dword v10, off, s[16:19], 0 offset:188 ; 4-byte Folded Spill9623; NOOPT-NEXT:    buffer_store_dword v11, off, s[16:19], 0 offset:192 ; 4-byte Folded Spill9624; NOOPT-NEXT:    buffer_store_dword v12, off, s[16:19], 0 offset:196 ; 4-byte Folded Spill9625; NOOPT-NEXT:    buffer_store_dword v13, off, s[16:19], 0 offset:200 ; 4-byte Folded Spill9626; NOOPT-NEXT:    buffer_store_dword v14, off, s[16:19], 0 offset:204 ; 4-byte Folded Spill9627; NOOPT-NEXT:    buffer_store_dword v15, off, s[16:19], 0 offset:208 ; 4-byte Folded Spill9628; NOOPT-NEXT:    buffer_store_dword v0, off, s[16:19], 0 offset:4 ; 4-byte Folded Spill9629; NOOPT-NEXT:    buffer_store_dword v1, off, s[16:19], 0 offset:8 ; 4-byte Folded Spill9630; NOOPT-NEXT:    buffer_store_dword v2, off, s[16:19], 0 offset:12 ; 4-byte Folded Spill9631; NOOPT-NEXT:    buffer_store_dword v3, off, s[16:19], 0 offset:16 ; 4-byte Folded Spill9632; NOOPT-NEXT:    buffer_store_dword v4, off, s[16:19], 0 offset:20 ; 4-byte Folded Spill9633; NOOPT-NEXT:    buffer_store_dword v5, off, s[16:19], 0 offset:24 ; 4-byte Folded Spill9634; NOOPT-NEXT:    buffer_store_dword v6, off, s[16:19], 0 offset:28 ; 4-byte Folded Spill9635; NOOPT-NEXT:    buffer_store_dword v7, off, s[16:19], 0 offset:32 ; 4-byte Folded Spill9636; NOOPT-NEXT:    buffer_store_dword v8, off, s[16:19], 0 offset:36 ; 4-byte Folded Spill9637; NOOPT-NEXT:    buffer_store_dword v9, off, s[16:19], 0 offset:40 ; 4-byte Folded Spill9638; NOOPT-NEXT:    buffer_store_dword v10, off, s[16:19], 0 offset:44 ; 4-byte Folded Spill9639; NOOPT-NEXT:    buffer_store_dword v11, off, s[16:19], 0 offset:48 ; 4-byte Folded Spill9640; NOOPT-NEXT:    buffer_store_dword v12, off, s[16:19], 0 offset:52 ; 4-byte Folded Spill9641; NOOPT-NEXT:    buffer_store_dword v13, off, s[16:19], 0 offset:56 ; 4-byte Folded Spill9642; NOOPT-NEXT:    buffer_store_dword v14, off, s[16:19], 0 offset:60 ; 4-byte Folded Spill9643; NOOPT-NEXT:    buffer_store_dword v15, off, s[16:19], 0 offset:64 ; 4-byte Folded Spill9644; NOOPT-NEXT:    s_mov_b64 s[2:3], s[0:1]9645; NOOPT-NEXT:    v_writelane_b32 v33, s2, 99646; NOOPT-NEXT:    v_writelane_b32 v33, s3, 109647; NOOPT-NEXT:    s_or_saveexec_b64 s[12:13], -19648; NOOPT-NEXT:    buffer_store_dword v33, off, s[16:19], 0 ; 4-byte Folded Spill9649; NOOPT-NEXT:    s_mov_b64 exec, s[12:13]9650; NOOPT-NEXT:    s_xor_b64 exec, exec, s[0:1]9651; NOOPT-NEXT:    s_cbranch_execnz .LBB27_19652; NOOPT-NEXT:  ; %bb.2:9653; NOOPT-NEXT:    s_or_saveexec_b64 s[12:13], -19654; NOOPT-NEXT:    s_waitcnt expcnt(0)9655; NOOPT-NEXT:    buffer_load_dword v33, off, s[16:19], 0 ; 4-byte Folded Reload9656; NOOPT-NEXT:    s_mov_b64 exec, s[12:13]9657; NOOPT-NEXT:    s_waitcnt vmcnt(0)9658; NOOPT-NEXT:    v_readlane_b32 s0, v33, 79659; NOOPT-NEXT:    v_readlane_b32 s1, v33, 89660; NOOPT-NEXT:    s_mov_b64 exec, s[0:1]9661; NOOPT-NEXT:  ; %bb.3:9662; NOOPT-NEXT:    s_or_saveexec_b64 s[12:13], -19663; NOOPT-NEXT:    buffer_load_dword v33, off, s[16:19], 0 ; 4-byte Folded Reload9664; NOOPT-NEXT:    s_mov_b64 exec, s[12:13]9665; NOOPT-NEXT:    s_waitcnt vmcnt(0)9666; NOOPT-NEXT:    v_readlane_b32 s0, v33, 39667; NOOPT-NEXT:    v_readlane_b32 s1, v33, 49668; NOOPT-NEXT:    v_readlane_b32 s2, v33, 59669; NOOPT-NEXT:    v_readlane_b32 s3, v33, 69670; NOOPT-NEXT:    buffer_load_dword v4, off, s[16:19], 0 offset:136 ; 4-byte Folded Reload9671; NOOPT-NEXT:    buffer_load_dword v5, off, s[16:19], 0 offset:140 ; 4-byte Folded Reload9672; NOOPT-NEXT:    buffer_load_dword v17, off, s[16:19], 0 offset:148 ; 4-byte Folded Reload9673; NOOPT-NEXT:    buffer_load_dword v18, off, s[16:19], 0 offset:152 ; 4-byte Folded Reload9674; NOOPT-NEXT:    buffer_load_dword v19, off, s[16:19], 0 offset:156 ; 4-byte Folded Reload9675; NOOPT-NEXT:    buffer_load_dword v20, off, s[16:19], 0 offset:160 ; 4-byte Folded Reload9676; NOOPT-NEXT:    buffer_load_dword v21, off, s[16:19], 0 offset:164 ; 4-byte Folded Reload9677; NOOPT-NEXT:    buffer_load_dword v22, off, s[16:19], 0 offset:168 ; 4-byte Folded Reload9678; NOOPT-NEXT:    buffer_load_dword v23, off, s[16:19], 0 offset:172 ; 4-byte Folded Reload9679; NOOPT-NEXT:    buffer_load_dword v24, off, s[16:19], 0 offset:176 ; 4-byte Folded Reload9680; NOOPT-NEXT:    buffer_load_dword v25, off, s[16:19], 0 offset:180 ; 4-byte Folded Reload9681; NOOPT-NEXT:    buffer_load_dword v26, off, s[16:19], 0 offset:184 ; 4-byte Folded Reload9682; NOOPT-NEXT:    buffer_load_dword v27, off, s[16:19], 0 offset:188 ; 4-byte Folded Reload9683; NOOPT-NEXT:    buffer_load_dword v28, off, s[16:19], 0 offset:192 ; 4-byte Folded Reload9684; NOOPT-NEXT:    buffer_load_dword v29, off, s[16:19], 0 offset:196 ; 4-byte Folded Reload9685; NOOPT-NEXT:    buffer_load_dword v30, off, s[16:19], 0 offset:200 ; 4-byte Folded Reload9686; NOOPT-NEXT:    buffer_load_dword v31, off, s[16:19], 0 offset:204 ; 4-byte Folded Reload9687; NOOPT-NEXT:    buffer_load_dword v32, off, s[16:19], 0 offset:208 ; 4-byte Folded Reload9688; NOOPT-NEXT:    s_waitcnt vmcnt(12)9689; NOOPT-NEXT:    v_mov_b32_e32 v6, v209690; NOOPT-NEXT:    v_mov_b32_e32 v7, v199691; NOOPT-NEXT:    v_mov_b32_e32 v8, v189692; NOOPT-NEXT:    v_mov_b32_e32 v0, v179693; NOOPT-NEXT:    s_waitcnt vmcnt(8)9694; NOOPT-NEXT:    v_mov_b32_e32 v1, v249695; NOOPT-NEXT:    v_mov_b32_e32 v2, v239696; NOOPT-NEXT:    v_mov_b32_e32 v3, v229697; NOOPT-NEXT:    v_mov_b32_e32 v9, v219698; NOOPT-NEXT:    s_waitcnt vmcnt(4)9699; NOOPT-NEXT:    v_mov_b32_e32 v14, v289700; NOOPT-NEXT:    v_mov_b32_e32 v15, v279701; NOOPT-NEXT:    v_mov_b32_e32 v16, v269702; NOOPT-NEXT:    v_mov_b32_e32 v10, v259703; NOOPT-NEXT:    s_waitcnt vmcnt(0)9704; NOOPT-NEXT:    v_mov_b32_e32 v11, v329705; NOOPT-NEXT:    v_mov_b32_e32 v12, v319706; NOOPT-NEXT:    v_mov_b32_e32 v13, v309707; NOOPT-NEXT:    v_mov_b32_e32 v17, v299708; NOOPT-NEXT:    ; kill: def $vgpr17 killed $vgpr17 def $vgpr17_vgpr18_vgpr19_vgpr20 killed $exec9709; NOOPT-NEXT:    v_mov_b32_e32 v18, v139710; NOOPT-NEXT:    v_mov_b32_e32 v19, v129711; NOOPT-NEXT:    v_mov_b32_e32 v20, v119712; NOOPT-NEXT:    v_mov_b32_e32 v12, v59713; NOOPT-NEXT:    v_mov_b32_e32 v11, v49714; NOOPT-NEXT:    buffer_store_dwordx4 v[17:20], v[11:12], s[0:3], 0 addr64 offset:489715; NOOPT-NEXT:    ; kill: def $vgpr10 killed $vgpr10 def $vgpr10_vgpr11_vgpr12_vgpr13 killed $exec9716; NOOPT-NEXT:    v_mov_b32_e32 v11, v169717; NOOPT-NEXT:    v_mov_b32_e32 v12, v159718; NOOPT-NEXT:    v_mov_b32_e32 v13, v149719; NOOPT-NEXT:    v_mov_b32_e32 v15, v59720; NOOPT-NEXT:    v_mov_b32_e32 v14, v49721; NOOPT-NEXT:    buffer_store_dwordx4 v[10:13], v[14:15], s[0:3], 0 addr64 offset:329722; NOOPT-NEXT:    ; kill: def $vgpr9 killed $vgpr9 def $vgpr9_vgpr10_vgpr11_vgpr12 killed $exec9723; NOOPT-NEXT:    s_waitcnt expcnt(0)9724; NOOPT-NEXT:    v_mov_b32_e32 v10, v39725; NOOPT-NEXT:    v_mov_b32_e32 v11, v29726; NOOPT-NEXT:    v_mov_b32_e32 v12, v19727; NOOPT-NEXT:    v_mov_b32_e32 v1, v49728; NOOPT-NEXT:    v_mov_b32_e32 v2, v59729; NOOPT-NEXT:    buffer_store_dwordx4 v[9:12], v[1:2], s[0:3], 0 addr64 offset:169730; NOOPT-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec9731; NOOPT-NEXT:    v_mov_b32_e32 v1, v89732; NOOPT-NEXT:    v_mov_b32_e32 v2, v79733; NOOPT-NEXT:    v_mov_b32_e32 v3, v69734; NOOPT-NEXT:    buffer_store_dwordx4 v[0:3], v[4:5], s[0:3], 0 addr649735; NOOPT-NEXT:    s_endpgm9736;9737; SI-MOVREL-LABEL: insert_or_disj_index:9738; SI-MOVREL:       ; %bb.0: ; %entry9739; SI-MOVREL-NEXT:    v_mov_b32_e32 v2, s49740; SI-MOVREL-NEXT:    buffer_load_dword v2, v2, s[0:3], 0 offen9741; SI-MOVREL-NEXT:    s_mov_b32 s2, 09742; SI-MOVREL-NEXT:    v_mov_b32_e32 v5, 09743; SI-MOVREL-NEXT:    s_mov_b32 s3, 0xf0009744; SI-MOVREL-NEXT:    s_mov_b32 s0, s29745; SI-MOVREL-NEXT:    s_mov_b32 s1, s29746; SI-MOVREL-NEXT:    v_mov_b32_e32 v6, v59747; SI-MOVREL-NEXT:    v_mov_b32_e32 v7, v59748; SI-MOVREL-NEXT:    v_mov_b32_e32 v8, v59749; SI-MOVREL-NEXT:    v_mov_b32_e32 v9, v59750; SI-MOVREL-NEXT:    v_mov_b32_e32 v10, v59751; SI-MOVREL-NEXT:    v_mov_b32_e32 v11, v59752; SI-MOVREL-NEXT:    v_mov_b32_e32 v12, v59753; SI-MOVREL-NEXT:    v_mov_b32_e32 v13, v59754; SI-MOVREL-NEXT:    v_mov_b32_e32 v14, v59755; SI-MOVREL-NEXT:    v_mov_b32_e32 v15, v59756; SI-MOVREL-NEXT:    v_mov_b32_e32 v16, v59757; SI-MOVREL-NEXT:    v_mov_b32_e32 v17, v59758; SI-MOVREL-NEXT:    v_mov_b32_e32 v18, v59759; SI-MOVREL-NEXT:    v_mov_b32_e32 v19, v59760; SI-MOVREL-NEXT:    v_mov_b32_e32 v20, v59761; SI-MOVREL-NEXT:    s_mov_b64 s[4:5], exec9762; SI-MOVREL-NEXT:  .LBB27_1: ; =>This Inner Loop Header: Depth=19763; SI-MOVREL-NEXT:    s_waitcnt vmcnt(0)9764; SI-MOVREL-NEXT:    v_readfirstlane_b32 s6, v29765; SI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, s6, v29766; SI-MOVREL-NEXT:    s_and_saveexec_b64 vcc, vcc9767; SI-MOVREL-NEXT:    s_mov_b32 m0, s69768; SI-MOVREL-NEXT:    v_movreld_b32_e32 v6, v49769; SI-MOVREL-NEXT:    s_xor_b64 exec, exec, vcc9770; SI-MOVREL-NEXT:    s_cbranch_execnz .LBB27_19771; SI-MOVREL-NEXT:  ; %bb.2:9772; SI-MOVREL-NEXT:    s_mov_b64 exec, s[4:5]9773; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[17:20], v[0:1], s[0:3], 0 addr64 offset:489774; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[13:16], v[0:1], s[0:3], 0 addr64 offset:329775; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[9:12], v[0:1], s[0:3], 0 addr64 offset:169776; SI-MOVREL-NEXT:    buffer_store_dwordx4 v[5:8], v[0:1], s[0:3], 0 addr649777; SI-MOVREL-NEXT:    s_endpgm9778;9779; VI-MOVREL-LABEL: insert_or_disj_index:9780; VI-MOVREL:       ; %bb.0: ; %entry9781; VI-MOVREL-NEXT:    v_mov_b32_e32 v2, s49782; VI-MOVREL-NEXT:    buffer_load_dword v2, v2, s[0:3], 0 offen9783; VI-MOVREL-NEXT:    v_mov_b32_e32 v5, 09784; VI-MOVREL-NEXT:    v_mov_b32_e32 v6, v59785; VI-MOVREL-NEXT:    v_mov_b32_e32 v7, v59786; VI-MOVREL-NEXT:    v_mov_b32_e32 v8, v59787; VI-MOVREL-NEXT:    v_mov_b32_e32 v9, v59788; VI-MOVREL-NEXT:    v_mov_b32_e32 v10, v59789; VI-MOVREL-NEXT:    v_mov_b32_e32 v11, v59790; VI-MOVREL-NEXT:    v_mov_b32_e32 v12, v59791; VI-MOVREL-NEXT:    v_mov_b32_e32 v13, v59792; VI-MOVREL-NEXT:    v_mov_b32_e32 v14, v59793; VI-MOVREL-NEXT:    v_mov_b32_e32 v15, v59794; VI-MOVREL-NEXT:    v_mov_b32_e32 v16, v59795; VI-MOVREL-NEXT:    v_mov_b32_e32 v17, v59796; VI-MOVREL-NEXT:    v_mov_b32_e32 v18, v59797; VI-MOVREL-NEXT:    v_mov_b32_e32 v19, v59798; VI-MOVREL-NEXT:    v_mov_b32_e32 v20, v59799; VI-MOVREL-NEXT:    s_mov_b64 s[0:1], exec9800; VI-MOVREL-NEXT:  .LBB27_1: ; =>This Inner Loop Header: Depth=19801; VI-MOVREL-NEXT:    s_waitcnt vmcnt(0)9802; VI-MOVREL-NEXT:    v_readfirstlane_b32 s2, v29803; VI-MOVREL-NEXT:    v_cmp_eq_u32_e32 vcc, s2, v29804; VI-MOVREL-NEXT:    s_and_saveexec_b64 vcc, vcc9805; VI-MOVREL-NEXT:    s_mov_b32 m0, s29806; VI-MOVREL-NEXT:    v_movreld_b32_e32 v6, v49807; VI-MOVREL-NEXT:    s_xor_b64 exec, exec, vcc9808; VI-MOVREL-NEXT:    s_cbranch_execnz .LBB27_19809; VI-MOVREL-NEXT:  ; %bb.2:9810; VI-MOVREL-NEXT:    s_mov_b64 exec, s[0:1]9811; VI-MOVREL-NEXT:    v_add_u32_e32 v2, vcc, 48, v09812; VI-MOVREL-NEXT:    v_addc_u32_e32 v3, vcc, 0, v1, vcc9813; VI-MOVREL-NEXT:    flat_store_dwordx4 v[2:3], v[17:20]9814; VI-MOVREL-NEXT:    v_add_u32_e32 v2, vcc, 32, v09815; VI-MOVREL-NEXT:    v_addc_u32_e32 v3, vcc, 0, v1, vcc9816; VI-MOVREL-NEXT:    flat_store_dwordx4 v[2:3], v[13:16]9817; VI-MOVREL-NEXT:    v_add_u32_e32 v2, vcc, 16, v09818; VI-MOVREL-NEXT:    v_addc_u32_e32 v3, vcc, 0, v1, vcc9819; VI-MOVREL-NEXT:    flat_store_dwordx4 v[2:3], v[9:12]9820; VI-MOVREL-NEXT:    flat_store_dwordx4 v[0:1], v[5:8]9821; VI-MOVREL-NEXT:    s_endpgm9822;9823; VI-IDXMODE-LABEL: insert_or_disj_index:9824; VI-IDXMODE:       ; %bb.0: ; %entry9825; VI-IDXMODE-NEXT:    v_mov_b32_e32 v2, s49826; VI-IDXMODE-NEXT:    buffer_load_dword v2, v2, s[0:3], 0 offen9827; VI-IDXMODE-NEXT:    v_mov_b32_e32 v5, 09828; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, v59829; VI-IDXMODE-NEXT:    v_mov_b32_e32 v7, v59830; VI-IDXMODE-NEXT:    v_mov_b32_e32 v8, v59831; VI-IDXMODE-NEXT:    v_mov_b32_e32 v9, v59832; VI-IDXMODE-NEXT:    v_mov_b32_e32 v10, v59833; VI-IDXMODE-NEXT:    v_mov_b32_e32 v11, v59834; VI-IDXMODE-NEXT:    v_mov_b32_e32 v12, v59835; VI-IDXMODE-NEXT:    v_mov_b32_e32 v13, v59836; VI-IDXMODE-NEXT:    v_mov_b32_e32 v14, v59837; VI-IDXMODE-NEXT:    v_mov_b32_e32 v15, v59838; VI-IDXMODE-NEXT:    v_mov_b32_e32 v16, v59839; VI-IDXMODE-NEXT:    v_mov_b32_e32 v17, v59840; VI-IDXMODE-NEXT:    v_mov_b32_e32 v18, v59841; VI-IDXMODE-NEXT:    v_mov_b32_e32 v19, v59842; VI-IDXMODE-NEXT:    v_mov_b32_e32 v20, v59843; VI-IDXMODE-NEXT:    s_mov_b64 s[0:1], exec9844; VI-IDXMODE-NEXT:  .LBB27_1: ; =>This Inner Loop Header: Depth=19845; VI-IDXMODE-NEXT:    s_waitcnt vmcnt(0)9846; VI-IDXMODE-NEXT:    v_readfirstlane_b32 s2, v29847; VI-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, s2, v29848; VI-IDXMODE-NEXT:    s_and_saveexec_b64 vcc, vcc9849; VI-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)9850; VI-IDXMODE-NEXT:    v_mov_b32_e32 v6, v49851; VI-IDXMODE-NEXT:    s_set_gpr_idx_off9852; VI-IDXMODE-NEXT:    s_xor_b64 exec, exec, vcc9853; VI-IDXMODE-NEXT:    s_cbranch_execnz .LBB27_19854; VI-IDXMODE-NEXT:  ; %bb.2:9855; VI-IDXMODE-NEXT:    s_mov_b64 exec, s[0:1]9856; VI-IDXMODE-NEXT:    v_add_u32_e32 v2, vcc, 48, v09857; VI-IDXMODE-NEXT:    v_addc_u32_e32 v3, vcc, 0, v1, vcc9858; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[2:3], v[17:20]9859; VI-IDXMODE-NEXT:    v_add_u32_e32 v2, vcc, 32, v09860; VI-IDXMODE-NEXT:    v_addc_u32_e32 v3, vcc, 0, v1, vcc9861; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[2:3], v[13:16]9862; VI-IDXMODE-NEXT:    v_add_u32_e32 v2, vcc, 16, v09863; VI-IDXMODE-NEXT:    v_addc_u32_e32 v3, vcc, 0, v1, vcc9864; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[2:3], v[9:12]9865; VI-IDXMODE-NEXT:    flat_store_dwordx4 v[0:1], v[5:8]9866; VI-IDXMODE-NEXT:    s_endpgm9867;9868; GFX9-IDXMODE-LABEL: insert_or_disj_index:9869; GFX9-IDXMODE:       ; %bb.0: ; %entry9870; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v2, s49871; GFX9-IDXMODE-NEXT:    buffer_load_dword v2, v2, s[0:3], 0 offen9872; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v5, 09873; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, v59874; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v7, v59875; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v8, v59876; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v9, v59877; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v10, v59878; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v11, v59879; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v12, v59880; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v13, v59881; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v14, v59882; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v15, v59883; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v16, v59884; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v17, v59885; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v18, v59886; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v19, v59887; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v20, v59888; GFX9-IDXMODE-NEXT:    s_mov_b64 s[0:1], exec9889; GFX9-IDXMODE-NEXT:  .LBB27_1: ; =>This Inner Loop Header: Depth=19890; GFX9-IDXMODE-NEXT:    s_waitcnt vmcnt(0)9891; GFX9-IDXMODE-NEXT:    v_readfirstlane_b32 s2, v29892; GFX9-IDXMODE-NEXT:    v_cmp_eq_u32_e32 vcc, s2, v29893; GFX9-IDXMODE-NEXT:    s_and_saveexec_b64 vcc, vcc9894; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_on s2, gpr_idx(DST)9895; GFX9-IDXMODE-NEXT:    v_mov_b32_e32 v6, v49896; GFX9-IDXMODE-NEXT:    s_set_gpr_idx_off9897; GFX9-IDXMODE-NEXT:    s_xor_b64 exec, exec, vcc9898; GFX9-IDXMODE-NEXT:    s_cbranch_execnz .LBB27_19899; GFX9-IDXMODE-NEXT:  ; %bb.2:9900; GFX9-IDXMODE-NEXT:    s_mov_b64 exec, s[0:1]9901; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v[0:1], v[17:20], off offset:489902; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v[0:1], v[13:16], off offset:329903; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v[0:1], v[9:12], off offset:169904; GFX9-IDXMODE-NEXT:    global_store_dwordx4 v[0:1], v[5:8], off9905; GFX9-IDXMODE-NEXT:    s_endpgm9906entry:9907  %idx = call i32 @llvm.amdgcn.raw.buffer.load.i32(<4 x i32> %desc, i32 %A, i32 0, i32 0)9908  %off = or disjoint i32 %idx, 19909  %v = insertelement <16 x i32> zeroinitializer, i32 %val, i32 %off9910  store <16 x i32> %v, ptr addrspace(1) %out9911  ret void9912}9913