brintos

brintos / llvm-project-archived public Read only

0
0
Text · 63.9 KiB · 46d63c8 Raw
1265 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machine-dom-info -o - %s | FileCheck %s --check-prefix=GFX9_W643; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32 -verify-machine-dom-info -o - %s | FileCheck %s --check-prefix=GFX1010_W324; RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize64 -verify-machine-dom-info -o - %s | FileCheck %s --check-prefix=GFX1010_W645; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -verify-machine-dom-info -o - %s | FileCheck %s --check-prefix=GFX1100_W326; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machine-dom-info -o - %s | FileCheck %s --check-prefix=GFX1100_W647; RUN: llc -O0 -mtriple=amdgcn -mcpu=gfx900 -verify-machine-dom-info -o - %s | FileCheck %s --check-prefix=W64-O08 9; Test that we correctly legalize VGPR Rsrc operands in MUBUF instructions.10; Uses the old forms of the buffer intrinsics that don't take pointer arguments.11 12define float @mubuf_vgpr(<4 x i32> %i, i32 %c) #0 {13; GFX9_W64-LABEL: mubuf_vgpr:14; GFX9_W64:       ; %bb.0:15; GFX9_W64-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)16; GFX9_W64-NEXT:    s_mov_b64 s[6:7], exec17; GFX9_W64-NEXT:  .LBB0_1: ; =>This Inner Loop Header: Depth=118; GFX9_W64-NEXT:    v_readfirstlane_b32 s8, v019; GFX9_W64-NEXT:    v_readfirstlane_b32 s9, v120; GFX9_W64-NEXT:    v_readfirstlane_b32 s10, v221; GFX9_W64-NEXT:    v_readfirstlane_b32 s11, v322; GFX9_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]23; GFX9_W64-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]24; GFX9_W64-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]25; GFX9_W64-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]26; GFX9_W64-NEXT:    s_nop 027; GFX9_W64-NEXT:    buffer_load_format_x v5, v4, s[8:11], 0 idxen28; GFX9_W64-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr329; GFX9_W64-NEXT:    ; implicit-def: $vgpr430; GFX9_W64-NEXT:    s_xor_b64 exec, exec, s[4:5]31; GFX9_W64-NEXT:    s_cbranch_execnz .LBB0_132; GFX9_W64-NEXT:  ; %bb.2:33; GFX9_W64-NEXT:    s_mov_b64 exec, s[6:7]34; GFX9_W64-NEXT:    s_waitcnt vmcnt(0)35; GFX9_W64-NEXT:    v_mov_b32_e32 v0, v536; GFX9_W64-NEXT:    s_setpc_b64 s[30:31]37;38; GFX1010_W32-LABEL: mubuf_vgpr:39; GFX1010_W32:       ; %bb.0:40; GFX1010_W32-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)41; GFX1010_W32-NEXT:    s_mov_b32 s5, exec_lo42; GFX1010_W32-NEXT:  .LBB0_1: ; =>This Inner Loop Header: Depth=143; GFX1010_W32-NEXT:    v_readfirstlane_b32 s8, v044; GFX1010_W32-NEXT:    v_readfirstlane_b32 s9, v145; GFX1010_W32-NEXT:    v_readfirstlane_b32 s10, v246; GFX1010_W32-NEXT:    v_readfirstlane_b32 s11, v347; GFX1010_W32-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]48; GFX1010_W32-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]49; GFX1010_W32-NEXT:    s_and_b32 s4, vcc_lo, s450; GFX1010_W32-NEXT:    s_and_saveexec_b32 s4, s451; GFX1010_W32-NEXT:    buffer_load_format_x v5, v4, s[8:11], 0 idxen52; GFX1010_W32-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr353; GFX1010_W32-NEXT:    ; implicit-def: $vgpr454; GFX1010_W32-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)55; GFX1010_W32-NEXT:    s_xor_b32 exec_lo, exec_lo, s456; GFX1010_W32-NEXT:    s_cbranch_execnz .LBB0_157; GFX1010_W32-NEXT:  ; %bb.2:58; GFX1010_W32-NEXT:    s_mov_b32 exec_lo, s559; GFX1010_W32-NEXT:    s_waitcnt vmcnt(0)60; GFX1010_W32-NEXT:    v_mov_b32_e32 v0, v561; GFX1010_W32-NEXT:    s_setpc_b64 s[30:31]62;63; GFX1010_W64-LABEL: mubuf_vgpr:64; GFX1010_W64:       ; %bb.0:65; GFX1010_W64-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)66; GFX1010_W64-NEXT:    s_mov_b64 s[6:7], exec67; GFX1010_W64-NEXT:  .LBB0_1: ; =>This Inner Loop Header: Depth=168; GFX1010_W64-NEXT:    v_readfirstlane_b32 s8, v069; GFX1010_W64-NEXT:    v_readfirstlane_b32 s9, v170; GFX1010_W64-NEXT:    v_readfirstlane_b32 s10, v271; GFX1010_W64-NEXT:    v_readfirstlane_b32 s11, v372; GFX1010_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]73; GFX1010_W64-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]74; GFX1010_W64-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]75; GFX1010_W64-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]76; GFX1010_W64-NEXT:    buffer_load_format_x v5, v4, s[8:11], 0 idxen77; GFX1010_W64-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr378; GFX1010_W64-NEXT:    ; implicit-def: $vgpr479; GFX1010_W64-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)80; GFX1010_W64-NEXT:    s_xor_b64 exec, exec, s[4:5]81; GFX1010_W64-NEXT:    s_cbranch_execnz .LBB0_182; GFX1010_W64-NEXT:  ; %bb.2:83; GFX1010_W64-NEXT:    s_mov_b64 exec, s[6:7]84; GFX1010_W64-NEXT:    s_waitcnt vmcnt(0)85; GFX1010_W64-NEXT:    v_mov_b32_e32 v0, v586; GFX1010_W64-NEXT:    s_setpc_b64 s[30:31]87;88; GFX1100_W32-LABEL: mubuf_vgpr:89; GFX1100_W32:       ; %bb.0:90; GFX1100_W32-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)91; GFX1100_W32-NEXT:    s_mov_b32 s1, exec_lo92; GFX1100_W32-NEXT:  .LBB0_1: ; =>This Inner Loop Header: Depth=193; GFX1100_W32-NEXT:    v_readfirstlane_b32 s4, v094; GFX1100_W32-NEXT:    v_readfirstlane_b32 s5, v195; GFX1100_W32-NEXT:    v_readfirstlane_b32 s6, v296; GFX1100_W32-NEXT:    v_readfirstlane_b32 s7, v397; GFX1100_W32-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)98; GFX1100_W32-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]99; GFX1100_W32-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]100; GFX1100_W32-NEXT:    s_and_b32 s0, vcc_lo, s0101; GFX1100_W32-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)102; GFX1100_W32-NEXT:    s_and_saveexec_b32 s0, s0103; GFX1100_W32-NEXT:    buffer_load_format_x v5, v4, s[4:7], 0 idxen104; GFX1100_W32-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3105; GFX1100_W32-NEXT:    ; implicit-def: $vgpr4106; GFX1100_W32-NEXT:    s_xor_b32 exec_lo, exec_lo, s0107; GFX1100_W32-NEXT:    s_cbranch_execnz .LBB0_1108; GFX1100_W32-NEXT:  ; %bb.2:109; GFX1100_W32-NEXT:    s_mov_b32 exec_lo, s1110; GFX1100_W32-NEXT:    s_waitcnt vmcnt(0)111; GFX1100_W32-NEXT:    v_mov_b32_e32 v0, v5112; GFX1100_W32-NEXT:    s_setpc_b64 s[30:31]113;114; GFX1100_W64-LABEL: mubuf_vgpr:115; GFX1100_W64:       ; %bb.0:116; GFX1100_W64-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)117; GFX1100_W64-NEXT:    s_mov_b64 s[2:3], exec118; GFX1100_W64-NEXT:  .LBB0_1: ; =>This Inner Loop Header: Depth=1119; GFX1100_W64-NEXT:    v_readfirstlane_b32 s4, v0120; GFX1100_W64-NEXT:    v_readfirstlane_b32 s5, v1121; GFX1100_W64-NEXT:    v_readfirstlane_b32 s6, v2122; GFX1100_W64-NEXT:    v_readfirstlane_b32 s7, v3123; GFX1100_W64-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)124; GFX1100_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]125; GFX1100_W64-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]126; GFX1100_W64-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]127; GFX1100_W64-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)128; GFX1100_W64-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]129; GFX1100_W64-NEXT:    buffer_load_format_x v5, v4, s[4:7], 0 idxen130; GFX1100_W64-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3131; GFX1100_W64-NEXT:    ; implicit-def: $vgpr4132; GFX1100_W64-NEXT:    s_xor_b64 exec, exec, s[0:1]133; GFX1100_W64-NEXT:    s_cbranch_execnz .LBB0_1134; GFX1100_W64-NEXT:  ; %bb.2:135; GFX1100_W64-NEXT:    s_mov_b64 exec, s[2:3]136; GFX1100_W64-NEXT:    s_waitcnt vmcnt(0)137; GFX1100_W64-NEXT:    v_mov_b32_e32 v0, v5138; GFX1100_W64-NEXT:    s_setpc_b64 s[30:31]139;140; W64-O0-LABEL: mubuf_vgpr:141; W64-O0:       ; %bb.0:142; W64-O0-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)143; W64-O0-NEXT:    s_xor_saveexec_b64 s[4:5], -1144; W64-O0-NEXT:    buffer_store_dword v7, off, s[0:3], s32 offset:28 ; 4-byte Folded Spill145; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]146; W64-O0-NEXT:    buffer_store_dword v4, off, s[0:3], s32 offset:20 ; 4-byte Folded Spill147; W64-O0-NEXT:    v_mov_b32_e32 v4, v3148; W64-O0-NEXT:    v_mov_b32_e32 v5, v2149; W64-O0-NEXT:    v_mov_b32_e32 v6, v1150; W64-O0-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec151; W64-O0-NEXT:    v_mov_b32_e32 v1, v6152; W64-O0-NEXT:    v_mov_b32_e32 v2, v5153; W64-O0-NEXT:    v_mov_b32_e32 v3, v4154; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill155; W64-O0-NEXT:    s_nop 0156; W64-O0-NEXT:    buffer_store_dword v1, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill157; W64-O0-NEXT:    buffer_store_dword v2, off, s[0:3], s32 offset:12 ; 4-byte Folded Spill158; W64-O0-NEXT:    buffer_store_dword v3, off, s[0:3], s32 offset:16 ; 4-byte Folded Spill159; W64-O0-NEXT:    s_mov_b32 s4, 0160; W64-O0-NEXT:    ; implicit-def: $vgpr7 : SGPR spill to VGPR lane161; W64-O0-NEXT:    v_writelane_b32 v7, s4, 0162; W64-O0-NEXT:    s_mov_b64 s[4:5], exec163; W64-O0-NEXT:    v_writelane_b32 v7, s4, 1164; W64-O0-NEXT:    v_writelane_b32 v7, s5, 2165; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1166; W64-O0-NEXT:    buffer_store_dword v7, off, s[0:3], s32 ; 4-byte Folded Spill167; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]168; W64-O0-NEXT:  .LBB0_1: ; =>This Inner Loop Header: Depth=1169; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1170; W64-O0-NEXT:    buffer_load_dword v7, off, s[0:3], s32 ; 4-byte Folded Reload171; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]172; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload173; W64-O0-NEXT:    buffer_load_dword v1, off, s[0:3], s32 offset:8 ; 4-byte Folded Reload174; W64-O0-NEXT:    buffer_load_dword v2, off, s[0:3], s32 offset:12 ; 4-byte Folded Reload175; W64-O0-NEXT:    buffer_load_dword v3, off, s[0:3], s32 offset:16 ; 4-byte Folded Reload176; W64-O0-NEXT:    s_waitcnt vmcnt(3)177; W64-O0-NEXT:    v_readfirstlane_b32 s8, v0178; W64-O0-NEXT:    s_waitcnt vmcnt(2)179; W64-O0-NEXT:    v_readfirstlane_b32 s12, v1180; W64-O0-NEXT:    s_mov_b32 s4, s8181; W64-O0-NEXT:    s_mov_b32 s5, s12182; W64-O0-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[4:5], v[0:1]183; W64-O0-NEXT:    s_waitcnt vmcnt(1)184; W64-O0-NEXT:    v_readfirstlane_b32 s7, v2185; W64-O0-NEXT:    s_waitcnt vmcnt(0)186; W64-O0-NEXT:    v_readfirstlane_b32 s6, v3187; W64-O0-NEXT:    s_mov_b32 s10, s7188; W64-O0-NEXT:    s_mov_b32 s11, s6189; W64-O0-NEXT:    v_cmp_eq_u64_e64 s[10:11], s[10:11], v[2:3]190; W64-O0-NEXT:    s_and_b64 s[4:5], s[4:5], s[10:11]191; W64-O0-NEXT:    ; kill: def $sgpr8 killed $sgpr8 def $sgpr8_sgpr9_sgpr10_sgpr11192; W64-O0-NEXT:    s_mov_b32 s9, s12193; W64-O0-NEXT:    s_mov_b32 s10, s7194; W64-O0-NEXT:    s_mov_b32 s11, s6195; W64-O0-NEXT:    v_writelane_b32 v7, s8, 3196; W64-O0-NEXT:    v_writelane_b32 v7, s9, 4197; W64-O0-NEXT:    v_writelane_b32 v7, s10, 5198; W64-O0-NEXT:    v_writelane_b32 v7, s11, 6199; W64-O0-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]200; W64-O0-NEXT:    v_writelane_b32 v7, s4, 7201; W64-O0-NEXT:    v_writelane_b32 v7, s5, 8202; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1203; W64-O0-NEXT:    buffer_store_dword v7, off, s[0:3], s32 ; 4-byte Folded Spill204; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]205; W64-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB0_1 Depth=1206; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1207; W64-O0-NEXT:    buffer_load_dword v7, off, s[0:3], s32 ; 4-byte Folded Reload208; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]209; W64-O0-NEXT:    s_waitcnt vmcnt(0)210; W64-O0-NEXT:    v_readlane_b32 s4, v7, 7211; W64-O0-NEXT:    v_readlane_b32 s5, v7, 8212; W64-O0-NEXT:    v_readlane_b32 s8, v7, 3213; W64-O0-NEXT:    v_readlane_b32 s9, v7, 4214; W64-O0-NEXT:    v_readlane_b32 s10, v7, 5215; W64-O0-NEXT:    v_readlane_b32 s11, v7, 6216; W64-O0-NEXT:    v_readlane_b32 s6, v7, 0217; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:20 ; 4-byte Folded Reload218; W64-O0-NEXT:    s_waitcnt vmcnt(0)219; W64-O0-NEXT:    s_nop 2220; W64-O0-NEXT:    buffer_load_format_x v0, v0, s[8:11], s6 idxen221; W64-O0-NEXT:    s_waitcnt vmcnt(0)222; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:24 ; 4-byte Folded Spill223; W64-O0-NEXT:    s_xor_b64 exec, exec, s[4:5]224; W64-O0-NEXT:    s_cbranch_execnz .LBB0_1225; W64-O0-NEXT:  ; %bb.3:226; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1227; W64-O0-NEXT:    buffer_load_dword v7, off, s[0:3], s32 ; 4-byte Folded Reload228; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]229; W64-O0-NEXT:    s_waitcnt vmcnt(0)230; W64-O0-NEXT:    v_readlane_b32 s4, v7, 1231; W64-O0-NEXT:    v_readlane_b32 s5, v7, 2232; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]233; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:24 ; 4-byte Folded Reload234; W64-O0-NEXT:    s_xor_saveexec_b64 s[4:5], -1235; W64-O0-NEXT:    buffer_load_dword v7, off, s[0:3], s32 offset:28 ; 4-byte Folded Reload236; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]237; W64-O0-NEXT:    s_waitcnt vmcnt(0)238; W64-O0-NEXT:    s_setpc_b64 s[30:31]239  %call = call float @llvm.amdgcn.struct.buffer.load.format.f32(<4 x i32> %i, i32 %c, i32 0, i32 0, i32 0) #1240  ret float %call241}242 243 244 245; FIXME: redundant s_mov246 247define void @mubuf_vgpr_adjacent_in_block(<4 x i32> %i, <4 x i32> %j, i32 %c, ptr addrspace(1) %out0, ptr addrspace(1) %out1) #0 {248; GFX9_W64-LABEL: mubuf_vgpr_adjacent_in_block:249; GFX9_W64:       ; %bb.0: ; %entry250; GFX9_W64-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)251; GFX9_W64-NEXT:    s_mov_b64 s[6:7], exec252; GFX9_W64-NEXT:  .LBB1_1: ; =>This Inner Loop Header: Depth=1253; GFX9_W64-NEXT:    v_readfirstlane_b32 s8, v0254; GFX9_W64-NEXT:    v_readfirstlane_b32 s9, v1255; GFX9_W64-NEXT:    v_readfirstlane_b32 s10, v2256; GFX9_W64-NEXT:    v_readfirstlane_b32 s11, v3257; GFX9_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]258; GFX9_W64-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]259; GFX9_W64-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]260; GFX9_W64-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]261; GFX9_W64-NEXT:    s_nop 0262; GFX9_W64-NEXT:    buffer_load_format_x v13, v8, s[8:11], 0 idxen263; GFX9_W64-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3264; GFX9_W64-NEXT:    s_xor_b64 exec, exec, s[4:5]265; GFX9_W64-NEXT:    s_cbranch_execnz .LBB1_1266; GFX9_W64-NEXT:  ; %bb.2:267; GFX9_W64-NEXT:    s_mov_b64 exec, s[6:7]268; GFX9_W64-NEXT:    s_mov_b64 s[6:7], exec269; GFX9_W64-NEXT:  .LBB1_3: ; =>This Inner Loop Header: Depth=1270; GFX9_W64-NEXT:    v_readfirstlane_b32 s8, v4271; GFX9_W64-NEXT:    v_readfirstlane_b32 s9, v5272; GFX9_W64-NEXT:    v_readfirstlane_b32 s10, v6273; GFX9_W64-NEXT:    v_readfirstlane_b32 s11, v7274; GFX9_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[4:5]275; GFX9_W64-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[6:7]276; GFX9_W64-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]277; GFX9_W64-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]278; GFX9_W64-NEXT:    s_nop 0279; GFX9_W64-NEXT:    buffer_load_format_x v0, v8, s[8:11], 0 idxen280; GFX9_W64-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6_vgpr7281; GFX9_W64-NEXT:    ; implicit-def: $vgpr8282; GFX9_W64-NEXT:    s_xor_b64 exec, exec, s[4:5]283; GFX9_W64-NEXT:    s_cbranch_execnz .LBB1_3284; GFX9_W64-NEXT:  ; %bb.4:285; GFX9_W64-NEXT:    s_mov_b64 exec, s[6:7]286; GFX9_W64-NEXT:    s_waitcnt vmcnt(1)287; GFX9_W64-NEXT:    global_store_dword v[9:10], v13, off288; GFX9_W64-NEXT:    s_waitcnt vmcnt(0)289; GFX9_W64-NEXT:    global_store_dword v[11:12], v0, off290; GFX9_W64-NEXT:    s_waitcnt vmcnt(0)291; GFX9_W64-NEXT:    s_setpc_b64 s[30:31]292;293; GFX1010_W32-LABEL: mubuf_vgpr_adjacent_in_block:294; GFX1010_W32:       ; %bb.0: ; %entry295; GFX1010_W32-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)296; GFX1010_W32-NEXT:    s_mov_b32 s5, exec_lo297; GFX1010_W32-NEXT:  .LBB1_1: ; =>This Inner Loop Header: Depth=1298; GFX1010_W32-NEXT:    v_readfirstlane_b32 s8, v0299; GFX1010_W32-NEXT:    v_readfirstlane_b32 s9, v1300; GFX1010_W32-NEXT:    v_readfirstlane_b32 s10, v2301; GFX1010_W32-NEXT:    v_readfirstlane_b32 s11, v3302; GFX1010_W32-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]303; GFX1010_W32-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[2:3]304; GFX1010_W32-NEXT:    s_and_b32 s4, vcc_lo, s4305; GFX1010_W32-NEXT:    s_and_saveexec_b32 s4, s4306; GFX1010_W32-NEXT:    buffer_load_format_x v13, v8, s[8:11], 0 idxen307; GFX1010_W32-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3308; GFX1010_W32-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)309; GFX1010_W32-NEXT:    s_xor_b32 exec_lo, exec_lo, s4310; GFX1010_W32-NEXT:    s_cbranch_execnz .LBB1_1311; GFX1010_W32-NEXT:  ; %bb.2:312; GFX1010_W32-NEXT:    s_mov_b32 exec_lo, s5313; GFX1010_W32-NEXT:    s_mov_b32 s5, exec_lo314; GFX1010_W32-NEXT:  .LBB1_3: ; =>This Inner Loop Header: Depth=1315; GFX1010_W32-NEXT:    v_readfirstlane_b32 s8, v4316; GFX1010_W32-NEXT:    v_readfirstlane_b32 s9, v5317; GFX1010_W32-NEXT:    v_readfirstlane_b32 s10, v6318; GFX1010_W32-NEXT:    v_readfirstlane_b32 s11, v7319; GFX1010_W32-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[4:5]320; GFX1010_W32-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[6:7]321; GFX1010_W32-NEXT:    s_and_b32 s4, vcc_lo, s4322; GFX1010_W32-NEXT:    s_and_saveexec_b32 s4, s4323; GFX1010_W32-NEXT:    buffer_load_format_x v0, v8, s[8:11], 0 idxen324; GFX1010_W32-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6_vgpr7325; GFX1010_W32-NEXT:    ; implicit-def: $vgpr8326; GFX1010_W32-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)327; GFX1010_W32-NEXT:    s_xor_b32 exec_lo, exec_lo, s4328; GFX1010_W32-NEXT:    s_cbranch_execnz .LBB1_3329; GFX1010_W32-NEXT:  ; %bb.4:330; GFX1010_W32-NEXT:    s_mov_b32 exec_lo, s5331; GFX1010_W32-NEXT:    s_waitcnt vmcnt(1)332; GFX1010_W32-NEXT:    global_store_dword v[9:10], v13, off333; GFX1010_W32-NEXT:    s_waitcnt_vscnt null, 0x0334; GFX1010_W32-NEXT:    s_waitcnt vmcnt(0)335; GFX1010_W32-NEXT:    global_store_dword v[11:12], v0, off336; GFX1010_W32-NEXT:    s_waitcnt_vscnt null, 0x0337; GFX1010_W32-NEXT:    s_setpc_b64 s[30:31]338;339; GFX1010_W64-LABEL: mubuf_vgpr_adjacent_in_block:340; GFX1010_W64:       ; %bb.0: ; %entry341; GFX1010_W64-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)342; GFX1010_W64-NEXT:    s_mov_b64 s[6:7], exec343; GFX1010_W64-NEXT:  .LBB1_1: ; =>This Inner Loop Header: Depth=1344; GFX1010_W64-NEXT:    v_readfirstlane_b32 s8, v0345; GFX1010_W64-NEXT:    v_readfirstlane_b32 s9, v1346; GFX1010_W64-NEXT:    v_readfirstlane_b32 s10, v2347; GFX1010_W64-NEXT:    v_readfirstlane_b32 s11, v3348; GFX1010_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]349; GFX1010_W64-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[2:3]350; GFX1010_W64-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]351; GFX1010_W64-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]352; GFX1010_W64-NEXT:    buffer_load_format_x v13, v8, s[8:11], 0 idxen353; GFX1010_W64-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3354; GFX1010_W64-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)355; GFX1010_W64-NEXT:    s_xor_b64 exec, exec, s[4:5]356; GFX1010_W64-NEXT:    s_cbranch_execnz .LBB1_1357; GFX1010_W64-NEXT:  ; %bb.2:358; GFX1010_W64-NEXT:    s_mov_b64 exec, s[6:7]359; GFX1010_W64-NEXT:    s_mov_b64 s[6:7], exec360; GFX1010_W64-NEXT:  .LBB1_3: ; =>This Inner Loop Header: Depth=1361; GFX1010_W64-NEXT:    v_readfirstlane_b32 s8, v4362; GFX1010_W64-NEXT:    v_readfirstlane_b32 s9, v5363; GFX1010_W64-NEXT:    v_readfirstlane_b32 s10, v6364; GFX1010_W64-NEXT:    v_readfirstlane_b32 s11, v7365; GFX1010_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[4:5]366; GFX1010_W64-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[6:7]367; GFX1010_W64-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]368; GFX1010_W64-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]369; GFX1010_W64-NEXT:    buffer_load_format_x v0, v8, s[8:11], 0 idxen370; GFX1010_W64-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6_vgpr7371; GFX1010_W64-NEXT:    ; implicit-def: $vgpr8372; GFX1010_W64-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)373; GFX1010_W64-NEXT:    s_xor_b64 exec, exec, s[4:5]374; GFX1010_W64-NEXT:    s_cbranch_execnz .LBB1_3375; GFX1010_W64-NEXT:  ; %bb.4:376; GFX1010_W64-NEXT:    s_mov_b64 exec, s[6:7]377; GFX1010_W64-NEXT:    s_waitcnt vmcnt(1)378; GFX1010_W64-NEXT:    global_store_dword v[9:10], v13, off379; GFX1010_W64-NEXT:    s_waitcnt_vscnt null, 0x0380; GFX1010_W64-NEXT:    s_waitcnt vmcnt(0)381; GFX1010_W64-NEXT:    global_store_dword v[11:12], v0, off382; GFX1010_W64-NEXT:    s_waitcnt_vscnt null, 0x0383; GFX1010_W64-NEXT:    s_setpc_b64 s[30:31]384;385; GFX1100_W32-LABEL: mubuf_vgpr_adjacent_in_block:386; GFX1100_W32:       ; %bb.0: ; %entry387; GFX1100_W32-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)388; GFX1100_W32-NEXT:    s_mov_b32 s1, exec_lo389; GFX1100_W32-NEXT:  .LBB1_1: ; =>This Inner Loop Header: Depth=1390; GFX1100_W32-NEXT:    v_readfirstlane_b32 s4, v0391; GFX1100_W32-NEXT:    v_readfirstlane_b32 s5, v1392; GFX1100_W32-NEXT:    v_readfirstlane_b32 s6, v2393; GFX1100_W32-NEXT:    v_readfirstlane_b32 s7, v3394; GFX1100_W32-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)395; GFX1100_W32-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[0:1]396; GFX1100_W32-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[2:3]397; GFX1100_W32-NEXT:    s_and_b32 s0, vcc_lo, s0398; GFX1100_W32-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)399; GFX1100_W32-NEXT:    s_and_saveexec_b32 s0, s0400; GFX1100_W32-NEXT:    buffer_load_format_x v13, v8, s[4:7], 0 idxen401; GFX1100_W32-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3402; GFX1100_W32-NEXT:    s_xor_b32 exec_lo, exec_lo, s0403; GFX1100_W32-NEXT:    s_cbranch_execnz .LBB1_1404; GFX1100_W32-NEXT:  ; %bb.2:405; GFX1100_W32-NEXT:    s_mov_b32 exec_lo, s1406; GFX1100_W32-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)407; GFX1100_W32-NEXT:    s_mov_b32 s1, exec_lo408; GFX1100_W32-NEXT:  .LBB1_3: ; =>This Inner Loop Header: Depth=1409; GFX1100_W32-NEXT:    v_readfirstlane_b32 s4, v4410; GFX1100_W32-NEXT:    v_readfirstlane_b32 s5, v5411; GFX1100_W32-NEXT:    v_readfirstlane_b32 s6, v6412; GFX1100_W32-NEXT:    v_readfirstlane_b32 s7, v7413; GFX1100_W32-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)414; GFX1100_W32-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[4:5]415; GFX1100_W32-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[6:7]416; GFX1100_W32-NEXT:    s_and_b32 s0, vcc_lo, s0417; GFX1100_W32-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)418; GFX1100_W32-NEXT:    s_and_saveexec_b32 s0, s0419; GFX1100_W32-NEXT:    buffer_load_format_x v0, v8, s[4:7], 0 idxen420; GFX1100_W32-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6_vgpr7421; GFX1100_W32-NEXT:    ; implicit-def: $vgpr8422; GFX1100_W32-NEXT:    s_xor_b32 exec_lo, exec_lo, s0423; GFX1100_W32-NEXT:    s_cbranch_execnz .LBB1_3424; GFX1100_W32-NEXT:  ; %bb.4:425; GFX1100_W32-NEXT:    s_mov_b32 exec_lo, s1426; GFX1100_W32-NEXT:    s_waitcnt vmcnt(1)427; GFX1100_W32-NEXT:    global_store_b32 v[9:10], v13, off dlc428; GFX1100_W32-NEXT:    s_waitcnt_vscnt null, 0x0429; GFX1100_W32-NEXT:    s_waitcnt vmcnt(0)430; GFX1100_W32-NEXT:    global_store_b32 v[11:12], v0, off dlc431; GFX1100_W32-NEXT:    s_waitcnt_vscnt null, 0x0432; GFX1100_W32-NEXT:    s_setpc_b64 s[30:31]433;434; GFX1100_W64-LABEL: mubuf_vgpr_adjacent_in_block:435; GFX1100_W64:       ; %bb.0: ; %entry436; GFX1100_W64-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)437; GFX1100_W64-NEXT:    s_mov_b64 s[2:3], exec438; GFX1100_W64-NEXT:  .LBB1_1: ; =>This Inner Loop Header: Depth=1439; GFX1100_W64-NEXT:    v_readfirstlane_b32 s4, v0440; GFX1100_W64-NEXT:    v_readfirstlane_b32 s5, v1441; GFX1100_W64-NEXT:    v_readfirstlane_b32 s6, v2442; GFX1100_W64-NEXT:    v_readfirstlane_b32 s7, v3443; GFX1100_W64-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)444; GFX1100_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[0:1]445; GFX1100_W64-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[2:3]446; GFX1100_W64-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]447; GFX1100_W64-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)448; GFX1100_W64-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]449; GFX1100_W64-NEXT:    buffer_load_format_x v13, v8, s[4:7], 0 idxen450; GFX1100_W64-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3451; GFX1100_W64-NEXT:    s_xor_b64 exec, exec, s[0:1]452; GFX1100_W64-NEXT:    s_cbranch_execnz .LBB1_1453; GFX1100_W64-NEXT:  ; %bb.2:454; GFX1100_W64-NEXT:    s_mov_b64 exec, s[2:3]455; GFX1100_W64-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)456; GFX1100_W64-NEXT:    s_mov_b64 s[2:3], exec457; GFX1100_W64-NEXT:  .LBB1_3: ; =>This Inner Loop Header: Depth=1458; GFX1100_W64-NEXT:    v_readfirstlane_b32 s4, v4459; GFX1100_W64-NEXT:    v_readfirstlane_b32 s5, v5460; GFX1100_W64-NEXT:    v_readfirstlane_b32 s6, v6461; GFX1100_W64-NEXT:    v_readfirstlane_b32 s7, v7462; GFX1100_W64-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)463; GFX1100_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[4:5]464; GFX1100_W64-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[6:7]465; GFX1100_W64-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]466; GFX1100_W64-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)467; GFX1100_W64-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]468; GFX1100_W64-NEXT:    buffer_load_format_x v0, v8, s[4:7], 0 idxen469; GFX1100_W64-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6_vgpr7470; GFX1100_W64-NEXT:    ; implicit-def: $vgpr8471; GFX1100_W64-NEXT:    s_xor_b64 exec, exec, s[0:1]472; GFX1100_W64-NEXT:    s_cbranch_execnz .LBB1_3473; GFX1100_W64-NEXT:  ; %bb.4:474; GFX1100_W64-NEXT:    s_mov_b64 exec, s[2:3]475; GFX1100_W64-NEXT:    s_waitcnt vmcnt(1)476; GFX1100_W64-NEXT:    global_store_b32 v[9:10], v13, off dlc477; GFX1100_W64-NEXT:    s_waitcnt_vscnt null, 0x0478; GFX1100_W64-NEXT:    s_waitcnt vmcnt(0)479; GFX1100_W64-NEXT:    global_store_b32 v[11:12], v0, off dlc480; GFX1100_W64-NEXT:    s_waitcnt_vscnt null, 0x0481; GFX1100_W64-NEXT:    s_setpc_b64 s[30:31]482;483; W64-O0-LABEL: mubuf_vgpr_adjacent_in_block:484; W64-O0:       ; %bb.0: ; %entry485; W64-O0-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)486; W64-O0-NEXT:    s_xor_saveexec_b64 s[4:5], -1487; W64-O0-NEXT:    buffer_store_dword v15, off, s[0:3], s32 offset:84 ; 4-byte Folded Spill488; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]489; W64-O0-NEXT:    buffer_store_dword v12, off, s[0:3], s32 offset:72 ; 4-byte Folded Spill490; W64-O0-NEXT:    v_mov_b32_e32 v12, v9491; W64-O0-NEXT:    buffer_load_dword v9, off, s[0:3], s32 offset:72 ; 4-byte Folded Reload492; W64-O0-NEXT:    s_nop 0493; W64-O0-NEXT:    buffer_store_dword v12, off, s[0:3], s32 offset:68 ; 4-byte Folded Spill494; W64-O0-NEXT:    v_mov_b32_e32 v12, v8495; W64-O0-NEXT:    buffer_load_dword v8, off, s[0:3], s32 offset:68 ; 4-byte Folded Reload496; W64-O0-NEXT:    s_nop 0497; W64-O0-NEXT:    buffer_store_dword v12, off, s[0:3], s32 offset:64 ; 4-byte Folded Spill498; W64-O0-NEXT:    buffer_store_dword v7, off, s[0:3], s32 offset:52 ; 4-byte Folded Spill499; W64-O0-NEXT:    buffer_store_dword v6, off, s[0:3], s32 offset:56 ; 4-byte Folded Spill500; W64-O0-NEXT:    buffer_store_dword v5, off, s[0:3], s32 offset:60 ; 4-byte Folded Spill501; W64-O0-NEXT:    v_mov_b32_e32 v12, v3502; W64-O0-NEXT:    buffer_load_dword v3, off, s[0:3], s32 offset:60 ; 4-byte Folded Reload503; W64-O0-NEXT:    v_mov_b32_e32 v13, v2504; W64-O0-NEXT:    buffer_load_dword v2, off, s[0:3], s32 offset:56 ; 4-byte Folded Reload505; W64-O0-NEXT:    v_mov_b32_e32 v14, v1506; W64-O0-NEXT:    buffer_load_dword v1, off, s[0:3], s32 offset:52 ; 4-byte Folded Reload507; W64-O0-NEXT:    ; kill: def $vgpr4 killed $vgpr4 def $vgpr4_vgpr5_vgpr6_vgpr7 killed $exec508; W64-O0-NEXT:    s_waitcnt vmcnt(2)509; W64-O0-NEXT:    v_mov_b32_e32 v5, v3510; W64-O0-NEXT:    s_waitcnt vmcnt(1)511; W64-O0-NEXT:    v_mov_b32_e32 v6, v2512; W64-O0-NEXT:    s_waitcnt vmcnt(0)513; W64-O0-NEXT:    v_mov_b32_e32 v7, v1514; W64-O0-NEXT:    buffer_store_dword v4, off, s[0:3], s32 offset:36 ; 4-byte Folded Spill515; W64-O0-NEXT:    s_nop 0516; W64-O0-NEXT:    buffer_store_dword v5, off, s[0:3], s32 offset:40 ; 4-byte Folded Spill517; W64-O0-NEXT:    buffer_store_dword v6, off, s[0:3], s32 offset:44 ; 4-byte Folded Spill518; W64-O0-NEXT:    buffer_store_dword v7, off, s[0:3], s32 offset:48 ; 4-byte Folded Spill519; W64-O0-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec520; W64-O0-NEXT:    v_mov_b32_e32 v1, v14521; W64-O0-NEXT:    v_mov_b32_e32 v2, v13522; W64-O0-NEXT:    v_mov_b32_e32 v3, v12523; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:20 ; 4-byte Folded Spill524; W64-O0-NEXT:    s_nop 0525; W64-O0-NEXT:    buffer_store_dword v1, off, s[0:3], s32 offset:24 ; 4-byte Folded Spill526; W64-O0-NEXT:    buffer_store_dword v2, off, s[0:3], s32 offset:28 ; 4-byte Folded Spill527; W64-O0-NEXT:    buffer_store_dword v3, off, s[0:3], s32 offset:32 ; 4-byte Folded Spill528; W64-O0-NEXT:    ; kill: def $vgpr11 killed $vgpr11 def $vgpr11_vgpr12 killed $exec529; W64-O0-NEXT:    v_mov_b32_e32 v12, v9530; W64-O0-NEXT:    buffer_store_dword v11, off, s[0:3], s32 offset:12 ; 4-byte Folded Spill531; W64-O0-NEXT:    s_nop 0532; W64-O0-NEXT:    buffer_store_dword v12, off, s[0:3], s32 offset:16 ; 4-byte Folded Spill533; W64-O0-NEXT:    ; kill: def $vgpr8 killed $vgpr8 def $vgpr8_vgpr9 killed $exec534; W64-O0-NEXT:    v_mov_b32_e32 v9, v10535; W64-O0-NEXT:    buffer_store_dword v8, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill536; W64-O0-NEXT:    s_nop 0537; W64-O0-NEXT:    buffer_store_dword v9, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill538; W64-O0-NEXT:    s_mov_b32 s4, 0539; W64-O0-NEXT:    ; implicit-def: $vgpr15 : SGPR spill to VGPR lane540; W64-O0-NEXT:    v_writelane_b32 v15, s4, 0541; W64-O0-NEXT:    s_mov_b64 s[4:5], exec542; W64-O0-NEXT:    v_writelane_b32 v15, s4, 1543; W64-O0-NEXT:    v_writelane_b32 v15, s5, 2544; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1545; W64-O0-NEXT:    buffer_store_dword v15, off, s[0:3], s32 ; 4-byte Folded Spill546; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]547; W64-O0-NEXT:  .LBB1_1: ; =>This Inner Loop Header: Depth=1548; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1549; W64-O0-NEXT:    buffer_load_dword v15, off, s[0:3], s32 ; 4-byte Folded Reload550; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]551; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:20 ; 4-byte Folded Reload552; W64-O0-NEXT:    buffer_load_dword v1, off, s[0:3], s32 offset:24 ; 4-byte Folded Reload553; W64-O0-NEXT:    buffer_load_dword v2, off, s[0:3], s32 offset:28 ; 4-byte Folded Reload554; W64-O0-NEXT:    buffer_load_dword v3, off, s[0:3], s32 offset:32 ; 4-byte Folded Reload555; W64-O0-NEXT:    s_waitcnt vmcnt(3)556; W64-O0-NEXT:    v_readfirstlane_b32 s8, v0557; W64-O0-NEXT:    s_waitcnt vmcnt(2)558; W64-O0-NEXT:    v_readfirstlane_b32 s12, v1559; W64-O0-NEXT:    s_mov_b32 s4, s8560; W64-O0-NEXT:    s_mov_b32 s5, s12561; W64-O0-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[4:5], v[0:1]562; W64-O0-NEXT:    s_waitcnt vmcnt(1)563; W64-O0-NEXT:    v_readfirstlane_b32 s7, v2564; W64-O0-NEXT:    s_waitcnt vmcnt(0)565; W64-O0-NEXT:    v_readfirstlane_b32 s6, v3566; W64-O0-NEXT:    s_mov_b32 s10, s7567; W64-O0-NEXT:    s_mov_b32 s11, s6568; W64-O0-NEXT:    v_cmp_eq_u64_e64 s[10:11], s[10:11], v[2:3]569; W64-O0-NEXT:    s_and_b64 s[4:5], s[4:5], s[10:11]570; W64-O0-NEXT:    ; kill: def $sgpr8 killed $sgpr8 def $sgpr8_sgpr9_sgpr10_sgpr11571; W64-O0-NEXT:    s_mov_b32 s9, s12572; W64-O0-NEXT:    s_mov_b32 s10, s7573; W64-O0-NEXT:    s_mov_b32 s11, s6574; W64-O0-NEXT:    v_writelane_b32 v15, s8, 3575; W64-O0-NEXT:    v_writelane_b32 v15, s9, 4576; W64-O0-NEXT:    v_writelane_b32 v15, s10, 5577; W64-O0-NEXT:    v_writelane_b32 v15, s11, 6578; W64-O0-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]579; W64-O0-NEXT:    v_writelane_b32 v15, s4, 7580; W64-O0-NEXT:    v_writelane_b32 v15, s5, 8581; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1582; W64-O0-NEXT:    buffer_store_dword v15, off, s[0:3], s32 ; 4-byte Folded Spill583; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]584; W64-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB1_1 Depth=1585; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1586; W64-O0-NEXT:    buffer_load_dword v15, off, s[0:3], s32 ; 4-byte Folded Reload587; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]588; W64-O0-NEXT:    s_waitcnt vmcnt(0)589; W64-O0-NEXT:    v_readlane_b32 s4, v15, 7590; W64-O0-NEXT:    v_readlane_b32 s5, v15, 8591; W64-O0-NEXT:    v_readlane_b32 s8, v15, 3592; W64-O0-NEXT:    v_readlane_b32 s9, v15, 4593; W64-O0-NEXT:    v_readlane_b32 s10, v15, 5594; W64-O0-NEXT:    v_readlane_b32 s11, v15, 6595; W64-O0-NEXT:    v_readlane_b32 s6, v15, 0596; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:64 ; 4-byte Folded Reload597; W64-O0-NEXT:    s_waitcnt vmcnt(0)598; W64-O0-NEXT:    s_nop 2599; W64-O0-NEXT:    buffer_load_format_x v0, v0, s[8:11], s6 idxen600; W64-O0-NEXT:    s_waitcnt vmcnt(0)601; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:76 ; 4-byte Folded Spill602; W64-O0-NEXT:    s_xor_b64 exec, exec, s[4:5]603; W64-O0-NEXT:    s_cbranch_execnz .LBB1_1604; W64-O0-NEXT:  ; %bb.3:605; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1606; W64-O0-NEXT:    buffer_load_dword v15, off, s[0:3], s32 ; 4-byte Folded Reload607; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]608; W64-O0-NEXT:    s_waitcnt vmcnt(0)609; W64-O0-NEXT:    v_readlane_b32 s4, v15, 1610; W64-O0-NEXT:    v_readlane_b32 s5, v15, 2611; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]612; W64-O0-NEXT:    s_mov_b64 s[4:5], exec613; W64-O0-NEXT:    v_writelane_b32 v15, s4, 9614; W64-O0-NEXT:    v_writelane_b32 v15, s5, 10615; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1616; W64-O0-NEXT:    buffer_store_dword v15, off, s[0:3], s32 ; 4-byte Folded Spill617; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]618; W64-O0-NEXT:  .LBB1_4: ; =>This Inner Loop Header: Depth=1619; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1620; W64-O0-NEXT:    buffer_load_dword v15, off, s[0:3], s32 ; 4-byte Folded Reload621; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]622; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload623; W64-O0-NEXT:    buffer_load_dword v1, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload624; W64-O0-NEXT:    buffer_load_dword v2, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload625; W64-O0-NEXT:    buffer_load_dword v3, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload626; W64-O0-NEXT:    s_waitcnt vmcnt(3)627; W64-O0-NEXT:    v_readfirstlane_b32 s8, v0628; W64-O0-NEXT:    s_waitcnt vmcnt(2)629; W64-O0-NEXT:    v_readfirstlane_b32 s12, v1630; W64-O0-NEXT:    s_mov_b32 s4, s8631; W64-O0-NEXT:    s_mov_b32 s5, s12632; W64-O0-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[4:5], v[0:1]633; W64-O0-NEXT:    s_waitcnt vmcnt(1)634; W64-O0-NEXT:    v_readfirstlane_b32 s7, v2635; W64-O0-NEXT:    s_waitcnt vmcnt(0)636; W64-O0-NEXT:    v_readfirstlane_b32 s6, v3637; W64-O0-NEXT:    s_mov_b32 s10, s7638; W64-O0-NEXT:    s_mov_b32 s11, s6639; W64-O0-NEXT:    v_cmp_eq_u64_e64 s[10:11], s[10:11], v[2:3]640; W64-O0-NEXT:    s_and_b64 s[4:5], s[4:5], s[10:11]641; W64-O0-NEXT:    ; kill: def $sgpr8 killed $sgpr8 def $sgpr8_sgpr9_sgpr10_sgpr11642; W64-O0-NEXT:    s_mov_b32 s9, s12643; W64-O0-NEXT:    s_mov_b32 s10, s7644; W64-O0-NEXT:    s_mov_b32 s11, s6645; W64-O0-NEXT:    v_writelane_b32 v15, s8, 11646; W64-O0-NEXT:    v_writelane_b32 v15, s9, 12647; W64-O0-NEXT:    v_writelane_b32 v15, s10, 13648; W64-O0-NEXT:    v_writelane_b32 v15, s11, 14649; W64-O0-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]650; W64-O0-NEXT:    v_writelane_b32 v15, s4, 15651; W64-O0-NEXT:    v_writelane_b32 v15, s5, 16652; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1653; W64-O0-NEXT:    buffer_store_dword v15, off, s[0:3], s32 ; 4-byte Folded Spill654; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]655; W64-O0-NEXT:  ; %bb.5: ; in Loop: Header=BB1_4 Depth=1656; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1657; W64-O0-NEXT:    buffer_load_dword v15, off, s[0:3], s32 ; 4-byte Folded Reload658; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]659; W64-O0-NEXT:    s_waitcnt vmcnt(0)660; W64-O0-NEXT:    v_readlane_b32 s4, v15, 15661; W64-O0-NEXT:    v_readlane_b32 s5, v15, 16662; W64-O0-NEXT:    v_readlane_b32 s8, v15, 11663; W64-O0-NEXT:    v_readlane_b32 s9, v15, 12664; W64-O0-NEXT:    v_readlane_b32 s10, v15, 13665; W64-O0-NEXT:    v_readlane_b32 s11, v15, 14666; W64-O0-NEXT:    v_readlane_b32 s6, v15, 0667; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:64 ; 4-byte Folded Reload668; W64-O0-NEXT:    s_waitcnt vmcnt(0)669; W64-O0-NEXT:    s_nop 2670; W64-O0-NEXT:    buffer_load_format_x v0, v0, s[8:11], s6 idxen671; W64-O0-NEXT:    s_waitcnt vmcnt(0)672; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:80 ; 4-byte Folded Spill673; W64-O0-NEXT:    s_xor_b64 exec, exec, s[4:5]674; W64-O0-NEXT:    s_cbranch_execnz .LBB1_4675; W64-O0-NEXT:  ; %bb.6:676; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -1677; W64-O0-NEXT:    buffer_load_dword v15, off, s[0:3], s32 ; 4-byte Folded Reload678; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]679; W64-O0-NEXT:    s_waitcnt vmcnt(0)680; W64-O0-NEXT:    v_readlane_b32 s4, v15, 9681; W64-O0-NEXT:    v_readlane_b32 s5, v15, 10682; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]683; W64-O0-NEXT:    buffer_load_dword v2, off, s[0:3], s32 offset:80 ; 4-byte Folded Reload684; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:12 ; 4-byte Folded Reload685; W64-O0-NEXT:    buffer_load_dword v1, off, s[0:3], s32 offset:16 ; 4-byte Folded Reload686; W64-O0-NEXT:    buffer_load_dword v5, off, s[0:3], s32 offset:76 ; 4-byte Folded Reload687; W64-O0-NEXT:    buffer_load_dword v3, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload688; W64-O0-NEXT:    buffer_load_dword v4, off, s[0:3], s32 offset:8 ; 4-byte Folded Reload689; W64-O0-NEXT:    s_waitcnt vmcnt(0)690; W64-O0-NEXT:    global_store_dword v[3:4], v5, off691; W64-O0-NEXT:    s_waitcnt vmcnt(0)692; W64-O0-NEXT:    global_store_dword v[0:1], v2, off693; W64-O0-NEXT:    s_waitcnt vmcnt(0)694; W64-O0-NEXT:    s_xor_saveexec_b64 s[4:5], -1695; W64-O0-NEXT:    buffer_load_dword v15, off, s[0:3], s32 offset:84 ; 4-byte Folded Reload696; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]697; W64-O0-NEXT:    s_waitcnt vmcnt(0)698; W64-O0-NEXT:    s_setpc_b64 s[30:31]699entry:700  %val0 = call float @llvm.amdgcn.struct.buffer.load.format.f32(<4 x i32> %i, i32 %c, i32 0, i32 0, i32 0) #1701  %val1 = call float @llvm.amdgcn.struct.buffer.load.format.f32(<4 x i32> %j, i32 %c, i32 0, i32 0, i32 0) #1702  store volatile float %val0, ptr addrspace(1) %out0703  store volatile float %val1, ptr addrspace(1) %out1704  ret void705}706 707; Confirm spills do not occur between the XOR and branch that terminate the708; waterfall loop BBs.709 710define void @mubuf_vgpr_outside_entry(<4 x i32> %i, <4 x i32> %j, i32 %c, ptr addrspace(1) %in, ptr addrspace(1) %out) #0 {711; GFX9_W64-LABEL: mubuf_vgpr_outside_entry:712; GFX9_W64:       ; %bb.0: ; %entry713; GFX9_W64-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)714; GFX9_W64-NEXT:    ;;#ASMSTART715; GFX9_W64-NEXT:    s_mov_b32 s4, 17716; GFX9_W64-NEXT:    ;;#ASMEND717; GFX9_W64-NEXT:    v_mov_b32_e32 v8, s4718; GFX9_W64-NEXT:    s_mov_b64 s[12:13], exec719; GFX9_W64-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1720; GFX9_W64-NEXT:    v_readfirstlane_b32 s8, v0721; GFX9_W64-NEXT:    v_readfirstlane_b32 s9, v1722; GFX9_W64-NEXT:    v_readfirstlane_b32 s10, v2723; GFX9_W64-NEXT:    v_readfirstlane_b32 s11, v3724; GFX9_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]725; GFX9_W64-NEXT:    v_cmp_eq_u64_e64 s[6:7], s[10:11], v[2:3]726; GFX9_W64-NEXT:    s_and_b64 s[6:7], vcc, s[6:7]727; GFX9_W64-NEXT:    s_and_saveexec_b64 s[6:7], s[6:7]728; GFX9_W64-NEXT:    s_nop 0729; GFX9_W64-NEXT:    buffer_load_format_x v9, v8, s[8:11], 0 idxen730; GFX9_W64-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3731; GFX9_W64-NEXT:    ; implicit-def: $vgpr8732; GFX9_W64-NEXT:    s_xor_b64 exec, exec, s[6:7]733; GFX9_W64-NEXT:    s_cbranch_execnz .LBB2_1734; GFX9_W64-NEXT:  ; %bb.2:735; GFX9_W64-NEXT:    s_mov_b64 exec, s[12:13]736; GFX9_W64-NEXT:    v_and_b32_e32 v0, 0x3ff, v31737; GFX9_W64-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v0738; GFX9_W64-NEXT:    s_and_saveexec_b64 s[6:7], vcc739; GFX9_W64-NEXT:    s_cbranch_execz .LBB2_6740; GFX9_W64-NEXT:  ; %bb.3: ; %bb1741; GFX9_W64-NEXT:    v_mov_b32_e32 v0, s4742; GFX9_W64-NEXT:    s_mov_b64 s[12:13], exec743; GFX9_W64-NEXT:  .LBB2_4: ; =>This Inner Loop Header: Depth=1744; GFX9_W64-NEXT:    v_readfirstlane_b32 s8, v4745; GFX9_W64-NEXT:    v_readfirstlane_b32 s9, v5746; GFX9_W64-NEXT:    v_readfirstlane_b32 s10, v6747; GFX9_W64-NEXT:    v_readfirstlane_b32 s11, v7748; GFX9_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[4:5]749; GFX9_W64-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[6:7]750; GFX9_W64-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]751; GFX9_W64-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]752; GFX9_W64-NEXT:    s_nop 0753; GFX9_W64-NEXT:    buffer_load_format_x v9, v0, s[8:11], 0 idxen754; GFX9_W64-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6_vgpr7755; GFX9_W64-NEXT:    ; implicit-def: $vgpr0756; GFX9_W64-NEXT:    s_xor_b64 exec, exec, s[4:5]757; GFX9_W64-NEXT:    s_cbranch_execnz .LBB2_4758; GFX9_W64-NEXT:  ; %bb.5:759; GFX9_W64-NEXT:    s_mov_b64 exec, s[12:13]760; GFX9_W64-NEXT:  .LBB2_6: ; %bb2761; GFX9_W64-NEXT:    s_or_b64 exec, exec, s[6:7]762; GFX9_W64-NEXT:    s_waitcnt vmcnt(0)763; GFX9_W64-NEXT:    global_store_dword v[11:12], v9, off764; GFX9_W64-NEXT:    s_waitcnt vmcnt(0)765; GFX9_W64-NEXT:    s_setpc_b64 s[30:31]766;767; GFX1010_W32-LABEL: mubuf_vgpr_outside_entry:768; GFX1010_W32:       ; %bb.0: ; %entry769; GFX1010_W32-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)770; GFX1010_W32-NEXT:    ;;#ASMSTART771; GFX1010_W32-NEXT:    s_mov_b32 s4, 17772; GFX1010_W32-NEXT:    ;;#ASMEND773; GFX1010_W32-NEXT:    v_mov_b32_e32 v8, s4774; GFX1010_W32-NEXT:    s_mov_b32 s6, exec_lo775; GFX1010_W32-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1776; GFX1010_W32-NEXT:    v_readfirstlane_b32 s8, v0777; GFX1010_W32-NEXT:    v_readfirstlane_b32 s9, v1778; GFX1010_W32-NEXT:    v_readfirstlane_b32 s10, v2779; GFX1010_W32-NEXT:    v_readfirstlane_b32 s11, v3780; GFX1010_W32-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]781; GFX1010_W32-NEXT:    v_cmp_eq_u64_e64 s5, s[10:11], v[2:3]782; GFX1010_W32-NEXT:    s_and_b32 s5, vcc_lo, s5783; GFX1010_W32-NEXT:    s_and_saveexec_b32 s5, s5784; GFX1010_W32-NEXT:    buffer_load_format_x v9, v8, s[8:11], 0 idxen785; GFX1010_W32-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3786; GFX1010_W32-NEXT:    ; implicit-def: $vgpr8787; GFX1010_W32-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)788; GFX1010_W32-NEXT:    s_xor_b32 exec_lo, exec_lo, s5789; GFX1010_W32-NEXT:    s_cbranch_execnz .LBB2_1790; GFX1010_W32-NEXT:  ; %bb.2:791; GFX1010_W32-NEXT:    s_mov_b32 exec_lo, s6792; GFX1010_W32-NEXT:    v_and_b32_e32 v0, 0x3ff, v31793; GFX1010_W32-NEXT:    v_cmp_eq_u32_e32 vcc_lo, 0, v0794; GFX1010_W32-NEXT:    s_and_saveexec_b32 s5, vcc_lo795; GFX1010_W32-NEXT:    s_cbranch_execz .LBB2_6796; GFX1010_W32-NEXT:  ; %bb.3: ; %bb1797; GFX1010_W32-NEXT:    v_mov_b32_e32 v0, s4798; GFX1010_W32-NEXT:    s_mov_b32 s6, exec_lo799; GFX1010_W32-NEXT:  .LBB2_4: ; =>This Inner Loop Header: Depth=1800; GFX1010_W32-NEXT:    v_readfirstlane_b32 s8, v4801; GFX1010_W32-NEXT:    v_readfirstlane_b32 s9, v5802; GFX1010_W32-NEXT:    v_readfirstlane_b32 s10, v6803; GFX1010_W32-NEXT:    v_readfirstlane_b32 s11, v7804; GFX1010_W32-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[4:5]805; GFX1010_W32-NEXT:    v_cmp_eq_u64_e64 s4, s[10:11], v[6:7]806; GFX1010_W32-NEXT:    s_and_b32 s4, vcc_lo, s4807; GFX1010_W32-NEXT:    s_and_saveexec_b32 s4, s4808; GFX1010_W32-NEXT:    buffer_load_format_x v9, v0, s[8:11], 0 idxen809; GFX1010_W32-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6_vgpr7810; GFX1010_W32-NEXT:    ; implicit-def: $vgpr0811; GFX1010_W32-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)812; GFX1010_W32-NEXT:    s_xor_b32 exec_lo, exec_lo, s4813; GFX1010_W32-NEXT:    s_cbranch_execnz .LBB2_4814; GFX1010_W32-NEXT:  ; %bb.5:815; GFX1010_W32-NEXT:    s_mov_b32 exec_lo, s6816; GFX1010_W32-NEXT:  .LBB2_6: ; %bb2817; GFX1010_W32-NEXT:    s_or_b32 exec_lo, exec_lo, s5818; GFX1010_W32-NEXT:    s_waitcnt vmcnt(0)819; GFX1010_W32-NEXT:    global_store_dword v[11:12], v9, off820; GFX1010_W32-NEXT:    s_waitcnt_vscnt null, 0x0821; GFX1010_W32-NEXT:    s_setpc_b64 s[30:31]822;823; GFX1010_W64-LABEL: mubuf_vgpr_outside_entry:824; GFX1010_W64:       ; %bb.0: ; %entry825; GFX1010_W64-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)826; GFX1010_W64-NEXT:    ;;#ASMSTART827; GFX1010_W64-NEXT:    s_mov_b32 s4, 17828; GFX1010_W64-NEXT:    ;;#ASMEND829; GFX1010_W64-NEXT:    v_mov_b32_e32 v8, s4830; GFX1010_W64-NEXT:    s_mov_b64 s[12:13], exec831; GFX1010_W64-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1832; GFX1010_W64-NEXT:    v_readfirstlane_b32 s8, v0833; GFX1010_W64-NEXT:    v_readfirstlane_b32 s9, v1834; GFX1010_W64-NEXT:    v_readfirstlane_b32 s10, v2835; GFX1010_W64-NEXT:    v_readfirstlane_b32 s11, v3836; GFX1010_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]837; GFX1010_W64-NEXT:    v_cmp_eq_u64_e64 s[6:7], s[10:11], v[2:3]838; GFX1010_W64-NEXT:    s_and_b64 s[6:7], vcc, s[6:7]839; GFX1010_W64-NEXT:    s_and_saveexec_b64 s[6:7], s[6:7]840; GFX1010_W64-NEXT:    buffer_load_format_x v9, v8, s[8:11], 0 idxen841; GFX1010_W64-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3842; GFX1010_W64-NEXT:    ; implicit-def: $vgpr8843; GFX1010_W64-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)844; GFX1010_W64-NEXT:    s_xor_b64 exec, exec, s[6:7]845; GFX1010_W64-NEXT:    s_cbranch_execnz .LBB2_1846; GFX1010_W64-NEXT:  ; %bb.2:847; GFX1010_W64-NEXT:    s_mov_b64 exec, s[12:13]848; GFX1010_W64-NEXT:    v_and_b32_e32 v0, 0x3ff, v31849; GFX1010_W64-NEXT:    v_cmp_eq_u32_e32 vcc, 0, v0850; GFX1010_W64-NEXT:    s_and_saveexec_b64 s[6:7], vcc851; GFX1010_W64-NEXT:    s_cbranch_execz .LBB2_6852; GFX1010_W64-NEXT:  ; %bb.3: ; %bb1853; GFX1010_W64-NEXT:    v_mov_b32_e32 v0, s4854; GFX1010_W64-NEXT:    s_mov_b64 s[12:13], exec855; GFX1010_W64-NEXT:  .LBB2_4: ; =>This Inner Loop Header: Depth=1856; GFX1010_W64-NEXT:    v_readfirstlane_b32 s8, v4857; GFX1010_W64-NEXT:    v_readfirstlane_b32 s9, v5858; GFX1010_W64-NEXT:    v_readfirstlane_b32 s10, v6859; GFX1010_W64-NEXT:    v_readfirstlane_b32 s11, v7860; GFX1010_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[4:5]861; GFX1010_W64-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[10:11], v[6:7]862; GFX1010_W64-NEXT:    s_and_b64 s[4:5], vcc, s[4:5]863; GFX1010_W64-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]864; GFX1010_W64-NEXT:    buffer_load_format_x v9, v0, s[8:11], 0 idxen865; GFX1010_W64-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6_vgpr7866; GFX1010_W64-NEXT:    ; implicit-def: $vgpr0867; GFX1010_W64-NEXT:    s_waitcnt_depctr depctr_vm_vsrc(0)868; GFX1010_W64-NEXT:    s_xor_b64 exec, exec, s[4:5]869; GFX1010_W64-NEXT:    s_cbranch_execnz .LBB2_4870; GFX1010_W64-NEXT:  ; %bb.5:871; GFX1010_W64-NEXT:    s_mov_b64 exec, s[12:13]872; GFX1010_W64-NEXT:  .LBB2_6: ; %bb2873; GFX1010_W64-NEXT:    s_or_b64 exec, exec, s[6:7]874; GFX1010_W64-NEXT:    s_waitcnt vmcnt(0)875; GFX1010_W64-NEXT:    global_store_dword v[11:12], v9, off876; GFX1010_W64-NEXT:    s_waitcnt_vscnt null, 0x0877; GFX1010_W64-NEXT:    s_setpc_b64 s[30:31]878;879; GFX1100_W32-LABEL: mubuf_vgpr_outside_entry:880; GFX1100_W32:       ; %bb.0: ; %entry881; GFX1100_W32-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)882; GFX1100_W32-NEXT:    ;;#ASMSTART883; GFX1100_W32-NEXT:    s_mov_b32 s4, 17884; GFX1100_W32-NEXT:    ;;#ASMEND885; GFX1100_W32-NEXT:    v_mov_b32_e32 v8, s4886; GFX1100_W32-NEXT:    s_mov_b32 s1, exec_lo887; GFX1100_W32-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1888; GFX1100_W32-NEXT:    v_readfirstlane_b32 s8, v0889; GFX1100_W32-NEXT:    v_readfirstlane_b32 s9, v1890; GFX1100_W32-NEXT:    v_readfirstlane_b32 s10, v2891; GFX1100_W32-NEXT:    v_readfirstlane_b32 s11, v3892; GFX1100_W32-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)893; GFX1100_W32-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[8:9], v[0:1]894; GFX1100_W32-NEXT:    v_cmp_eq_u64_e64 s0, s[10:11], v[2:3]895; GFX1100_W32-NEXT:    s_and_b32 s0, vcc_lo, s0896; GFX1100_W32-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)897; GFX1100_W32-NEXT:    s_and_saveexec_b32 s0, s0898; GFX1100_W32-NEXT:    buffer_load_format_x v9, v8, s[8:11], 0 idxen899; GFX1100_W32-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3900; GFX1100_W32-NEXT:    ; implicit-def: $vgpr8901; GFX1100_W32-NEXT:    s_xor_b32 exec_lo, exec_lo, s0902; GFX1100_W32-NEXT:    s_cbranch_execnz .LBB2_1903; GFX1100_W32-NEXT:  ; %bb.2:904; GFX1100_W32-NEXT:    s_mov_b32 exec_lo, s1905; GFX1100_W32-NEXT:    v_and_b32_e32 v0, 0x3ff, v31906; GFX1100_W32-NEXT:    s_mov_b32 s1, exec_lo907; GFX1100_W32-NEXT:    s_delay_alu instid0(VALU_DEP_1)908; GFX1100_W32-NEXT:    v_cmpx_eq_u32_e32 0, v0909; GFX1100_W32-NEXT:    s_cbranch_execz .LBB2_6910; GFX1100_W32-NEXT:  ; %bb.3: ; %bb1911; GFX1100_W32-NEXT:    v_mov_b32_e32 v0, s4912; GFX1100_W32-NEXT:    s_mov_b32 s2, exec_lo913; GFX1100_W32-NEXT:  .LBB2_4: ; =>This Inner Loop Header: Depth=1914; GFX1100_W32-NEXT:    v_readfirstlane_b32 s4, v4915; GFX1100_W32-NEXT:    v_readfirstlane_b32 s5, v5916; GFX1100_W32-NEXT:    v_readfirstlane_b32 s6, v6917; GFX1100_W32-NEXT:    v_readfirstlane_b32 s7, v7918; GFX1100_W32-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)919; GFX1100_W32-NEXT:    v_cmp_eq_u64_e32 vcc_lo, s[4:5], v[4:5]920; GFX1100_W32-NEXT:    v_cmp_eq_u64_e64 s0, s[6:7], v[6:7]921; GFX1100_W32-NEXT:    s_and_b32 s0, vcc_lo, s0922; GFX1100_W32-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)923; GFX1100_W32-NEXT:    s_and_saveexec_b32 s0, s0924; GFX1100_W32-NEXT:    buffer_load_format_x v9, v0, s[4:7], 0 idxen925; GFX1100_W32-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6_vgpr7926; GFX1100_W32-NEXT:    ; implicit-def: $vgpr0927; GFX1100_W32-NEXT:    s_xor_b32 exec_lo, exec_lo, s0928; GFX1100_W32-NEXT:    s_cbranch_execnz .LBB2_4929; GFX1100_W32-NEXT:  ; %bb.5:930; GFX1100_W32-NEXT:    s_mov_b32 exec_lo, s2931; GFX1100_W32-NEXT:  .LBB2_6: ; %bb2932; GFX1100_W32-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)933; GFX1100_W32-NEXT:    s_or_b32 exec_lo, exec_lo, s1934; GFX1100_W32-NEXT:    s_waitcnt vmcnt(0)935; GFX1100_W32-NEXT:    global_store_b32 v[11:12], v9, off dlc936; GFX1100_W32-NEXT:    s_waitcnt_vscnt null, 0x0937; GFX1100_W32-NEXT:    s_setpc_b64 s[30:31]938;939; GFX1100_W64-LABEL: mubuf_vgpr_outside_entry:940; GFX1100_W64:       ; %bb.0: ; %entry941; GFX1100_W64-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)942; GFX1100_W64-NEXT:    ;;#ASMSTART943; GFX1100_W64-NEXT:    s_mov_b32 s4, 17944; GFX1100_W64-NEXT:    ;;#ASMEND945; GFX1100_W64-NEXT:    v_mov_b32_e32 v8, s4946; GFX1100_W64-NEXT:    s_mov_b64 s[2:3], exec947; GFX1100_W64-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=1948; GFX1100_W64-NEXT:    v_readfirstlane_b32 s8, v0949; GFX1100_W64-NEXT:    v_readfirstlane_b32 s9, v1950; GFX1100_W64-NEXT:    v_readfirstlane_b32 s10, v2951; GFX1100_W64-NEXT:    v_readfirstlane_b32 s11, v3952; GFX1100_W64-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)953; GFX1100_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[8:9], v[0:1]954; GFX1100_W64-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[10:11], v[2:3]955; GFX1100_W64-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]956; GFX1100_W64-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)957; GFX1100_W64-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]958; GFX1100_W64-NEXT:    buffer_load_format_x v9, v8, s[8:11], 0 idxen959; GFX1100_W64-NEXT:    ; implicit-def: $vgpr0_vgpr1_vgpr2_vgpr3960; GFX1100_W64-NEXT:    ; implicit-def: $vgpr8961; GFX1100_W64-NEXT:    s_xor_b64 exec, exec, s[0:1]962; GFX1100_W64-NEXT:    s_cbranch_execnz .LBB2_1963; GFX1100_W64-NEXT:  ; %bb.2:964; GFX1100_W64-NEXT:    s_mov_b64 exec, s[2:3]965; GFX1100_W64-NEXT:    v_and_b32_e32 v0, 0x3ff, v31966; GFX1100_W64-NEXT:    s_mov_b64 s[2:3], exec967; GFX1100_W64-NEXT:    s_delay_alu instid0(VALU_DEP_1)968; GFX1100_W64-NEXT:    v_cmpx_eq_u32_e32 0, v0969; GFX1100_W64-NEXT:    s_cbranch_execz .LBB2_6970; GFX1100_W64-NEXT:  ; %bb.3: ; %bb1971; GFX1100_W64-NEXT:    v_mov_b32_e32 v0, s4972; GFX1100_W64-NEXT:    s_mov_b64 s[8:9], exec973; GFX1100_W64-NEXT:  .LBB2_4: ; =>This Inner Loop Header: Depth=1974; GFX1100_W64-NEXT:    v_readfirstlane_b32 s4, v4975; GFX1100_W64-NEXT:    v_readfirstlane_b32 s5, v5976; GFX1100_W64-NEXT:    v_readfirstlane_b32 s6, v6977; GFX1100_W64-NEXT:    v_readfirstlane_b32 s7, v7978; GFX1100_W64-NEXT:    s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_2)979; GFX1100_W64-NEXT:    v_cmp_eq_u64_e32 vcc, s[4:5], v[4:5]980; GFX1100_W64-NEXT:    v_cmp_eq_u64_e64 s[0:1], s[6:7], v[6:7]981; GFX1100_W64-NEXT:    s_and_b64 s[0:1], vcc, s[0:1]982; GFX1100_W64-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)983; GFX1100_W64-NEXT:    s_and_saveexec_b64 s[0:1], s[0:1]984; GFX1100_W64-NEXT:    buffer_load_format_x v9, v0, s[4:7], 0 idxen985; GFX1100_W64-NEXT:    ; implicit-def: $vgpr4_vgpr5_vgpr6_vgpr7986; GFX1100_W64-NEXT:    ; implicit-def: $vgpr0987; GFX1100_W64-NEXT:    s_xor_b64 exec, exec, s[0:1]988; GFX1100_W64-NEXT:    s_cbranch_execnz .LBB2_4989; GFX1100_W64-NEXT:  ; %bb.5:990; GFX1100_W64-NEXT:    s_mov_b64 exec, s[8:9]991; GFX1100_W64-NEXT:  .LBB2_6: ; %bb2992; GFX1100_W64-NEXT:    s_delay_alu instid0(SALU_CYCLE_1)993; GFX1100_W64-NEXT:    s_or_b64 exec, exec, s[2:3]994; GFX1100_W64-NEXT:    s_waitcnt vmcnt(0)995; GFX1100_W64-NEXT:    global_store_b32 v[11:12], v9, off dlc996; GFX1100_W64-NEXT:    s_waitcnt_vscnt null, 0x0997; GFX1100_W64-NEXT:    s_setpc_b64 s[30:31]998;999; W64-O0-LABEL: mubuf_vgpr_outside_entry:1000; W64-O0:       ; %bb.0: ; %entry1001; W64-O0-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)1002; W64-O0-NEXT:    s_xor_saveexec_b64 s[4:5], -11003; W64-O0-NEXT:    buffer_store_dword v13, off, s[0:3], s32 offset:80 ; 4-byte Folded Spill1004; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]1005; W64-O0-NEXT:    buffer_store_dword v31, off, s[0:3], s32 offset:60 ; 4-byte Folded Spill1006; W64-O0-NEXT:    v_mov_b32_e32 v8, v111007; W64-O0-NEXT:    buffer_store_dword v7, off, s[0:3], s32 offset:48 ; 4-byte Folded Spill1008; W64-O0-NEXT:    buffer_store_dword v6, off, s[0:3], s32 offset:52 ; 4-byte Folded Spill1009; W64-O0-NEXT:    buffer_store_dword v5, off, s[0:3], s32 offset:56 ; 4-byte Folded Spill1010; W64-O0-NEXT:    v_mov_b32_e32 v9, v31011; W64-O0-NEXT:    buffer_load_dword v3, off, s[0:3], s32 offset:56 ; 4-byte Folded Reload1012; W64-O0-NEXT:    v_mov_b32_e32 v10, v21013; W64-O0-NEXT:    buffer_load_dword v2, off, s[0:3], s32 offset:52 ; 4-byte Folded Reload1014; W64-O0-NEXT:    v_mov_b32_e32 v11, v11015; W64-O0-NEXT:    buffer_load_dword v1, off, s[0:3], s32 offset:48 ; 4-byte Folded Reload1016; W64-O0-NEXT:    ; kill: def $vgpr4 killed $vgpr4 def $vgpr4_vgpr5_vgpr6_vgpr7 killed $exec1017; W64-O0-NEXT:    s_waitcnt vmcnt(2)1018; W64-O0-NEXT:    v_mov_b32_e32 v5, v31019; W64-O0-NEXT:    s_waitcnt vmcnt(1)1020; W64-O0-NEXT:    v_mov_b32_e32 v6, v21021; W64-O0-NEXT:    s_waitcnt vmcnt(0)1022; W64-O0-NEXT:    v_mov_b32_e32 v7, v11023; W64-O0-NEXT:    ; kill: def $vgpr0 killed $vgpr0 def $vgpr0_vgpr1_vgpr2_vgpr3 killed $exec1024; W64-O0-NEXT:    v_mov_b32_e32 v1, v111025; W64-O0-NEXT:    v_mov_b32_e32 v2, v101026; W64-O0-NEXT:    v_mov_b32_e32 v3, v91027; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:32 ; 4-byte Folded Spill1028; W64-O0-NEXT:    s_nop 01029; W64-O0-NEXT:    buffer_store_dword v1, off, s[0:3], s32 offset:36 ; 4-byte Folded Spill1030; W64-O0-NEXT:    buffer_store_dword v2, off, s[0:3], s32 offset:40 ; 4-byte Folded Spill1031; W64-O0-NEXT:    buffer_store_dword v3, off, s[0:3], s32 offset:44 ; 4-byte Folded Spill1032; W64-O0-NEXT:    ; kill: def $vgpr8 killed $vgpr8 def $vgpr8_vgpr9 killed $exec1033; W64-O0-NEXT:    v_mov_b32_e32 v9, v121034; W64-O0-NEXT:    buffer_store_dword v8, off, s[0:3], s32 offset:24 ; 4-byte Folded Spill1035; W64-O0-NEXT:    s_nop 01036; W64-O0-NEXT:    buffer_store_dword v9, off, s[0:3], s32 offset:28 ; 4-byte Folded Spill1037; W64-O0-NEXT:    buffer_store_dword v4, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill1038; W64-O0-NEXT:    s_nop 01039; W64-O0-NEXT:    buffer_store_dword v5, off, s[0:3], s32 offset:12 ; 4-byte Folded Spill1040; W64-O0-NEXT:    buffer_store_dword v6, off, s[0:3], s32 offset:16 ; 4-byte Folded Spill1041; W64-O0-NEXT:    buffer_store_dword v7, off, s[0:3], s32 offset:20 ; 4-byte Folded Spill1042; W64-O0-NEXT:    ;;#ASMSTART1043; W64-O0-NEXT:    s_mov_b32 s4, 171044; W64-O0-NEXT:    ;;#ASMEND1045; W64-O0-NEXT:    s_mov_b32 s5, s41046; W64-O0-NEXT:    ; implicit-def: $vgpr13 : SGPR spill to VGPR lane1047; W64-O0-NEXT:    v_writelane_b32 v13, s5, 01048; W64-O0-NEXT:    s_mov_b32 s5, 01049; W64-O0-NEXT:    v_writelane_b32 v13, s5, 11050; W64-O0-NEXT:    v_mov_b32_e32 v0, s41051; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill1052; W64-O0-NEXT:    s_mov_b64 s[4:5], exec1053; W64-O0-NEXT:    v_writelane_b32 v13, s4, 21054; W64-O0-NEXT:    v_writelane_b32 v13, s5, 31055; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11056; W64-O0-NEXT:    buffer_store_dword v13, off, s[0:3], s32 ; 4-byte Folded Spill1057; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1058; W64-O0-NEXT:  .LBB2_1: ; =>This Inner Loop Header: Depth=11059; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11060; W64-O0-NEXT:    buffer_load_dword v13, off, s[0:3], s32 ; 4-byte Folded Reload1061; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1062; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:32 ; 4-byte Folded Reload1063; W64-O0-NEXT:    buffer_load_dword v1, off, s[0:3], s32 offset:36 ; 4-byte Folded Reload1064; W64-O0-NEXT:    buffer_load_dword v2, off, s[0:3], s32 offset:40 ; 4-byte Folded Reload1065; W64-O0-NEXT:    buffer_load_dword v3, off, s[0:3], s32 offset:44 ; 4-byte Folded Reload1066; W64-O0-NEXT:    s_waitcnt vmcnt(3)1067; W64-O0-NEXT:    v_readfirstlane_b32 s8, v01068; W64-O0-NEXT:    s_waitcnt vmcnt(2)1069; W64-O0-NEXT:    v_readfirstlane_b32 s12, v11070; W64-O0-NEXT:    s_mov_b32 s4, s81071; W64-O0-NEXT:    s_mov_b32 s5, s121072; W64-O0-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[4:5], v[0:1]1073; W64-O0-NEXT:    s_waitcnt vmcnt(1)1074; W64-O0-NEXT:    v_readfirstlane_b32 s7, v21075; W64-O0-NEXT:    s_waitcnt vmcnt(0)1076; W64-O0-NEXT:    v_readfirstlane_b32 s6, v31077; W64-O0-NEXT:    s_mov_b32 s10, s71078; W64-O0-NEXT:    s_mov_b32 s11, s61079; W64-O0-NEXT:    v_cmp_eq_u64_e64 s[10:11], s[10:11], v[2:3]1080; W64-O0-NEXT:    s_and_b64 s[4:5], s[4:5], s[10:11]1081; W64-O0-NEXT:    ; kill: def $sgpr8 killed $sgpr8 def $sgpr8_sgpr9_sgpr10_sgpr111082; W64-O0-NEXT:    s_mov_b32 s9, s121083; W64-O0-NEXT:    s_mov_b32 s10, s71084; W64-O0-NEXT:    s_mov_b32 s11, s61085; W64-O0-NEXT:    v_writelane_b32 v13, s8, 41086; W64-O0-NEXT:    v_writelane_b32 v13, s9, 51087; W64-O0-NEXT:    v_writelane_b32 v13, s10, 61088; W64-O0-NEXT:    v_writelane_b32 v13, s11, 71089; W64-O0-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]1090; W64-O0-NEXT:    v_writelane_b32 v13, s4, 81091; W64-O0-NEXT:    v_writelane_b32 v13, s5, 91092; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11093; W64-O0-NEXT:    buffer_store_dword v13, off, s[0:3], s32 ; 4-byte Folded Spill1094; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1095; W64-O0-NEXT:  ; %bb.2: ; in Loop: Header=BB2_1 Depth=11096; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11097; W64-O0-NEXT:    buffer_load_dword v13, off, s[0:3], s32 ; 4-byte Folded Reload1098; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1099; W64-O0-NEXT:    s_waitcnt vmcnt(0)1100; W64-O0-NEXT:    v_readlane_b32 s4, v13, 81101; W64-O0-NEXT:    v_readlane_b32 s5, v13, 91102; W64-O0-NEXT:    v_readlane_b32 s8, v13, 41103; W64-O0-NEXT:    v_readlane_b32 s9, v13, 51104; W64-O0-NEXT:    v_readlane_b32 s10, v13, 61105; W64-O0-NEXT:    v_readlane_b32 s11, v13, 71106; W64-O0-NEXT:    v_readlane_b32 s6, v13, 11107; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:4 ; 4-byte Folded Reload1108; W64-O0-NEXT:    s_waitcnt vmcnt(0)1109; W64-O0-NEXT:    s_nop 21110; W64-O0-NEXT:    buffer_load_format_x v0, v0, s[8:11], s6 idxen1111; W64-O0-NEXT:    s_waitcnt vmcnt(0)1112; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:64 ; 4-byte Folded Spill1113; W64-O0-NEXT:    s_xor_b64 exec, exec, s[4:5]1114; W64-O0-NEXT:    s_cbranch_execnz .LBB2_11115; W64-O0-NEXT:  ; %bb.3:1116; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11117; W64-O0-NEXT:    buffer_load_dword v13, off, s[0:3], s32 ; 4-byte Folded Reload1118; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1119; W64-O0-NEXT:    s_waitcnt vmcnt(0)1120; W64-O0-NEXT:    v_readlane_b32 s6, v13, 21121; W64-O0-NEXT:    v_readlane_b32 s7, v13, 31122; W64-O0-NEXT:    s_mov_b64 exec, s[6:7]1123; W64-O0-NEXT:    v_readlane_b32 s4, v13, 11124; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:64 ; 4-byte Folded Reload1125; W64-O0-NEXT:    buffer_load_dword v1, off, s[0:3], s32 offset:60 ; 4-byte Folded Reload1126; W64-O0-NEXT:    s_mov_b32 s5, 0x3ff1127; W64-O0-NEXT:    s_waitcnt vmcnt(0)1128; W64-O0-NEXT:    v_and_b32_e64 v1, v1, s51129; W64-O0-NEXT:    v_cmp_eq_u32_e64 s[6:7], v1, s41130; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:68 ; 4-byte Folded Spill1131; W64-O0-NEXT:    s_mov_b64 s[4:5], exec1132; W64-O0-NEXT:    v_writelane_b32 v13, s4, 101133; W64-O0-NEXT:    v_writelane_b32 v13, s5, 111134; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11135; W64-O0-NEXT:    buffer_store_dword v13, off, s[0:3], s32 ; 4-byte Folded Spill1136; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1137; W64-O0-NEXT:    s_and_b64 s[4:5], s[4:5], s[6:7]1138; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]1139; W64-O0-NEXT:    s_cbranch_execz .LBB2_81140; W64-O0-NEXT:  ; %bb.4: ; %bb11141; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11142; W64-O0-NEXT:    buffer_load_dword v13, off, s[0:3], s32 ; 4-byte Folded Reload1143; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1144; W64-O0-NEXT:    s_waitcnt vmcnt(0)1145; W64-O0-NEXT:    v_readlane_b32 s4, v13, 01146; W64-O0-NEXT:    s_mov_b32 s5, 01147; W64-O0-NEXT:    v_writelane_b32 v13, s5, 121148; W64-O0-NEXT:    v_mov_b32_e32 v0, s41149; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:72 ; 4-byte Folded Spill1150; W64-O0-NEXT:    s_mov_b64 s[4:5], exec1151; W64-O0-NEXT:    v_writelane_b32 v13, s4, 131152; W64-O0-NEXT:    v_writelane_b32 v13, s5, 141153; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11154; W64-O0-NEXT:    buffer_store_dword v13, off, s[0:3], s32 ; 4-byte Folded Spill1155; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1156; W64-O0-NEXT:  .LBB2_5: ; =>This Inner Loop Header: Depth=11157; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11158; W64-O0-NEXT:    buffer_load_dword v13, off, s[0:3], s32 ; 4-byte Folded Reload1159; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1160; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:8 ; 4-byte Folded Reload1161; W64-O0-NEXT:    buffer_load_dword v1, off, s[0:3], s32 offset:12 ; 4-byte Folded Reload1162; W64-O0-NEXT:    buffer_load_dword v2, off, s[0:3], s32 offset:16 ; 4-byte Folded Reload1163; W64-O0-NEXT:    buffer_load_dword v3, off, s[0:3], s32 offset:20 ; 4-byte Folded Reload1164; W64-O0-NEXT:    s_waitcnt vmcnt(3)1165; W64-O0-NEXT:    v_readfirstlane_b32 s8, v01166; W64-O0-NEXT:    s_waitcnt vmcnt(2)1167; W64-O0-NEXT:    v_readfirstlane_b32 s12, v11168; W64-O0-NEXT:    s_mov_b32 s4, s81169; W64-O0-NEXT:    s_mov_b32 s5, s121170; W64-O0-NEXT:    v_cmp_eq_u64_e64 s[4:5], s[4:5], v[0:1]1171; W64-O0-NEXT:    s_waitcnt vmcnt(1)1172; W64-O0-NEXT:    v_readfirstlane_b32 s7, v21173; W64-O0-NEXT:    s_waitcnt vmcnt(0)1174; W64-O0-NEXT:    v_readfirstlane_b32 s6, v31175; W64-O0-NEXT:    s_mov_b32 s10, s71176; W64-O0-NEXT:    s_mov_b32 s11, s61177; W64-O0-NEXT:    v_cmp_eq_u64_e64 s[10:11], s[10:11], v[2:3]1178; W64-O0-NEXT:    s_and_b64 s[4:5], s[4:5], s[10:11]1179; W64-O0-NEXT:    ; kill: def $sgpr8 killed $sgpr8 def $sgpr8_sgpr9_sgpr10_sgpr111180; W64-O0-NEXT:    s_mov_b32 s9, s121181; W64-O0-NEXT:    s_mov_b32 s10, s71182; W64-O0-NEXT:    s_mov_b32 s11, s61183; W64-O0-NEXT:    v_writelane_b32 v13, s8, 151184; W64-O0-NEXT:    v_writelane_b32 v13, s9, 161185; W64-O0-NEXT:    v_writelane_b32 v13, s10, 171186; W64-O0-NEXT:    v_writelane_b32 v13, s11, 181187; W64-O0-NEXT:    s_and_saveexec_b64 s[4:5], s[4:5]1188; W64-O0-NEXT:    v_writelane_b32 v13, s4, 191189; W64-O0-NEXT:    v_writelane_b32 v13, s5, 201190; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11191; W64-O0-NEXT:    buffer_store_dword v13, off, s[0:3], s32 ; 4-byte Folded Spill1192; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1193; W64-O0-NEXT:  ; %bb.6: ; in Loop: Header=BB2_5 Depth=11194; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11195; W64-O0-NEXT:    buffer_load_dword v13, off, s[0:3], s32 ; 4-byte Folded Reload1196; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1197; W64-O0-NEXT:    s_waitcnt vmcnt(0)1198; W64-O0-NEXT:    v_readlane_b32 s4, v13, 191199; W64-O0-NEXT:    v_readlane_b32 s5, v13, 201200; W64-O0-NEXT:    v_readlane_b32 s8, v13, 151201; W64-O0-NEXT:    v_readlane_b32 s9, v13, 161202; W64-O0-NEXT:    v_readlane_b32 s10, v13, 171203; W64-O0-NEXT:    v_readlane_b32 s11, v13, 181204; W64-O0-NEXT:    v_readlane_b32 s6, v13, 121205; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:72 ; 4-byte Folded Reload1206; W64-O0-NEXT:    s_waitcnt vmcnt(0)1207; W64-O0-NEXT:    s_nop 21208; W64-O0-NEXT:    buffer_load_format_x v0, v0, s[8:11], s6 idxen1209; W64-O0-NEXT:    s_waitcnt vmcnt(0)1210; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:76 ; 4-byte Folded Spill1211; W64-O0-NEXT:    s_xor_b64 exec, exec, s[4:5]1212; W64-O0-NEXT:    s_cbranch_execnz .LBB2_51213; W64-O0-NEXT:  ; %bb.7:1214; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11215; W64-O0-NEXT:    buffer_load_dword v13, off, s[0:3], s32 ; 4-byte Folded Reload1216; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1217; W64-O0-NEXT:    s_waitcnt vmcnt(0)1218; W64-O0-NEXT:    v_readlane_b32 s4, v13, 131219; W64-O0-NEXT:    v_readlane_b32 s5, v13, 141220; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]1221; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:76 ; 4-byte Folded Reload1222; W64-O0-NEXT:    s_waitcnt vmcnt(0)1223; W64-O0-NEXT:    buffer_store_dword v0, off, s[0:3], s32 offset:68 ; 4-byte Folded Spill1224; W64-O0-NEXT:  .LBB2_8: ; %bb21225; W64-O0-NEXT:    s_or_saveexec_b64 s[16:17], -11226; W64-O0-NEXT:    buffer_load_dword v13, off, s[0:3], s32 ; 4-byte Folded Reload1227; W64-O0-NEXT:    s_mov_b64 exec, s[16:17]1228; W64-O0-NEXT:    s_waitcnt vmcnt(0)1229; W64-O0-NEXT:    v_readlane_b32 s4, v13, 101230; W64-O0-NEXT:    v_readlane_b32 s5, v13, 111231; W64-O0-NEXT:    s_or_b64 exec, exec, s[4:5]1232; W64-O0-NEXT:    buffer_load_dword v0, off, s[0:3], s32 offset:24 ; 4-byte Folded Reload1233; W64-O0-NEXT:    buffer_load_dword v1, off, s[0:3], s32 offset:28 ; 4-byte Folded Reload1234; W64-O0-NEXT:    buffer_load_dword v2, off, s[0:3], s32 offset:68 ; 4-byte Folded Reload1235; W64-O0-NEXT:    s_waitcnt vmcnt(0)1236; W64-O0-NEXT:    global_store_dword v[0:1], v2, off1237; W64-O0-NEXT:    s_waitcnt vmcnt(0)1238; W64-O0-NEXT:    s_xor_saveexec_b64 s[4:5], -11239; W64-O0-NEXT:    buffer_load_dword v13, off, s[0:3], s32 offset:80 ; 4-byte Folded Reload1240; W64-O0-NEXT:    s_mov_b64 exec, s[4:5]1241; W64-O0-NEXT:    s_waitcnt vmcnt(0)1242; W64-O0-NEXT:    s_setpc_b64 s[30:31]1243entry:1244  %live.out.reg = call i32 asm sideeffect "s_mov_b32 $0, 17", "={s4}" ()1245  %val0 = call float @llvm.amdgcn.struct.buffer.load.format.f32(<4 x i32> %i, i32 %live.out.reg, i32 0, i32 0, i32 0) #11246  %idx = call i32 @llvm.amdgcn.workitem.id.x() #11247  %cmp = icmp eq i32 %idx, 01248  br i1 %cmp, label %bb1, label %bb21249 1250bb1:1251  %val1 = call float @llvm.amdgcn.struct.buffer.load.format.f32(<4 x i32> %j, i32 %live.out.reg, i32 0, i32 0, i32 0) #11252  br label %bb21253 1254bb2:1255  %val = phi float [ %val0, %entry ], [ %val1, %bb1 ]1256  store volatile float %val, ptr addrspace(1) %out1257  ret void1258}1259 1260declare i32 @llvm.amdgcn.workitem.id.x() #11261declare float @llvm.amdgcn.struct.buffer.load.format.f32(<4 x i32>, i32, i32, i32, i32 immarg) #11262 1263attributes #0 = { nounwind }1264attributes #1 = { nounwind readonly }1265