1ef67664dSMatt Arsenault; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 2ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 < %s | FileCheck -check-prefix=GFX7 %s 3ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx810 -mattr=+xnack < %s | FileCheck -check-prefix=GFX8 %s 4*39337ff2SMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -mattr=+xnack < %s | FileCheck -check-prefixes=GFX900 %s 5*39337ff2SMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -mattr=+xnack < %s | FileCheck -check-prefixes=GFX940 %s 6ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 < %s | FileCheck -check-prefix=GFX10_1 %s 7ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 < %s | FileCheck -check-prefix=GFX10_3 %s 8ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 < %s | FileCheck -check-prefix=GFX11 %s 9ef67664dSMatt Arsenault; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1200 < %s | FileCheck -check-prefix=GFX12 %s 10ef67664dSMatt Arsenault 11ef67664dSMatt Arsenault%asm.output = type { <16 x i32>, <16 x i32>, <16 x i32>, <8 x i32>, <2 x i32>, i32, ; sgprs 12ef67664dSMatt Arsenault <16 x i32>, <7 x i32>, ; vgprs 13ef67664dSMatt Arsenault i64 ; vcc 14ef67664dSMatt Arsenault } 15ef67664dSMatt Arsenault 16ef67664dSMatt Arsenault%asm.output2 = type { <16 x i32>, <16 x i32>, <16 x i32>, <8 x i32>, <2 x i32>, i32, ; sgprs 17ef67664dSMatt Arsenault <16 x i32>, <5 x i32>, ; vgprs 18ef67664dSMatt Arsenault i64 ; vcc 19ef67664dSMatt Arsenault } 20ef67664dSMatt Arsenault 21ef67664dSMatt Arsenault%asm.output3 = type { <16 x i32>, <16 x i32>, <16 x i32>, <8 x i32>, <2 x i32>, ; sgprs 22ef67664dSMatt Arsenault <16 x i32>, <6 x i32>, ; vgprs 23ef67664dSMatt Arsenault i64 ; vcc 24ef67664dSMatt Arsenault } 25ef67664dSMatt Arsenault 26ef67664dSMatt Arsenault; %alloca1 should end up materializing with s_mov_b32, but scc is 27ef67664dSMatt Arsenault; unavailable. 28ef67664dSMatt Arsenault; 29ef67664dSMatt Arsenault; This is primarily to test gfx7 and gfx8, which do not have vector 30ef67664dSMatt Arsenault; add with no carry. 31ef67664dSMatt Arsenault; 32ef67664dSMatt Arsenaultdefine void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs() #0 { 33ef67664dSMatt Arsenault; GFX7-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs: 34ef67664dSMatt Arsenault; GFX7: ; %bb.0: 35ef67664dSMatt Arsenault; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 36ef67664dSMatt Arsenault; GFX7-NEXT: s_xor_saveexec_b64 s[4:5], -1 37ef67664dSMatt Arsenault; GFX7-NEXT: s_add_i32 s6, s32, 0x101100 38ef67664dSMatt Arsenault; GFX7-NEXT: buffer_store_dword v23, off, s[0:3], s6 ; 4-byte Folded Spill 39ef67664dSMatt Arsenault; GFX7-NEXT: s_mov_b64 exec, s[4:5] 40ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s30, 0 41ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s31, 1 42ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s33, 2 43ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s34, 3 44ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s35, 4 45ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s36, 5 46ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s37, 6 47ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s38, 7 48ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s39, 8 49ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s40, 9 50ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s41, 10 51ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s42, 11 52ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s43, 12 53ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s44, 13 54ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s45, 14 55ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s46, 15 56ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s47, 16 57ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s48, 17 58ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s49, 18 59ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s50, 19 60ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s51, 20 61ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s52, 21 62ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s53, 22 63ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s54, 23 64ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s55, 24 65ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s56, 25 66ef67664dSMatt Arsenault; GFX7-NEXT: v_lshr_b32_e64 v0, s32, 6 67ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s57, 26 68ef67664dSMatt Arsenault; GFX7-NEXT: v_add_i32_e32 v0, vcc, 64, v0 69ef67664dSMatt Arsenault; GFX7-NEXT: s_and_b64 s[4:5], 0, exec 70ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s58, 27 71ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMSTART 72ef67664dSMatt Arsenault; GFX7-NEXT: ; use alloca0 v0 73ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMEND 74ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMSTART 75ef67664dSMatt Arsenault; GFX7-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc 76ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMEND 77ef67664dSMatt Arsenault; GFX7-NEXT: buffer_store_dword v0, off, s[0:3], s32 78ef67664dSMatt Arsenault; GFX7-NEXT: v_mov_b32_e32 v0, 0x4040 79ef67664dSMatt Arsenault; GFX7-NEXT: v_mad_u32_u24 v0, v0, 64, s32 80adac04ffSPankaj Dwivedi; GFX7-NEXT: v_lshrrev_b32_e32 v0, 6, v0 81ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s59, 28 82ef67664dSMatt Arsenault; GFX7-NEXT: v_readfirstlane_b32 s59, v0 83ef67664dSMatt Arsenault; GFX7-NEXT: buffer_load_dword v0, off, s[0:3], s32 84ef67664dSMatt Arsenault; GFX7-NEXT: s_waitcnt vmcnt(0) 85ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMSTART 86ef67664dSMatt Arsenault; GFX7-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc 87ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMEND 88ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s59, v23, 28 89ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s58, v23, 27 90ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s57, v23, 26 91ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s56, v23, 25 92ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s55, v23, 24 93ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s54, v23, 23 94ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s53, v23, 22 95ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s52, v23, 21 96ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s51, v23, 20 97ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s50, v23, 19 98ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s49, v23, 18 99ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s48, v23, 17 100ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s47, v23, 16 101ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s46, v23, 15 102ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s45, v23, 14 103ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s44, v23, 13 104ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s43, v23, 12 105ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s42, v23, 11 106ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s41, v23, 10 107ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s40, v23, 9 108ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s39, v23, 8 109ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s38, v23, 7 110ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s37, v23, 6 111ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s36, v23, 5 112ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s35, v23, 4 113ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s34, v23, 3 114ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s33, v23, 2 115ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s31, v23, 1 116ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s30, v23, 0 117ef67664dSMatt Arsenault; GFX7-NEXT: s_xor_saveexec_b64 s[4:5], -1 118ef67664dSMatt Arsenault; GFX7-NEXT: s_add_i32 s6, s32, 0x101100 119ef67664dSMatt Arsenault; GFX7-NEXT: buffer_load_dword v23, off, s[0:3], s6 ; 4-byte Folded Reload 120ef67664dSMatt Arsenault; GFX7-NEXT: s_mov_b64 exec, s[4:5] 121ef67664dSMatt Arsenault; GFX7-NEXT: s_waitcnt vmcnt(0) 122ef67664dSMatt Arsenault; GFX7-NEXT: s_setpc_b64 s[30:31] 123ef67664dSMatt Arsenault; 124ef67664dSMatt Arsenault; GFX8-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs: 125ef67664dSMatt Arsenault; GFX8: ; %bb.0: 126ef67664dSMatt Arsenault; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 127ef67664dSMatt Arsenault; GFX8-NEXT: s_xor_saveexec_b64 s[4:5], -1 128ef67664dSMatt Arsenault; GFX8-NEXT: s_add_i32 s6, s32, 0x101100 129ef67664dSMatt Arsenault; GFX8-NEXT: buffer_store_dword v23, off, s[0:3], s6 ; 4-byte Folded Spill 130ef67664dSMatt Arsenault; GFX8-NEXT: s_mov_b64 exec, s[4:5] 131ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s30, 0 132ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s31, 1 133ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s33, 2 134ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s34, 3 135ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s35, 4 136ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s36, 5 137ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s37, 6 138ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s38, 7 139ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s39, 8 140ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s40, 9 141ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s41, 10 142ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s42, 11 143ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s43, 12 144ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s44, 13 145ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s45, 14 146ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s46, 15 147ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s47, 16 148ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s48, 17 149ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s49, 18 150ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s50, 19 151ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s51, 20 152ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s52, 21 153ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s53, 22 154ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s54, 23 155ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s55, 24 156ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s56, 25 157ef67664dSMatt Arsenault; GFX8-NEXT: v_lshrrev_b32_e64 v0, 6, s32 158ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s57, 26 159ef67664dSMatt Arsenault; GFX8-NEXT: v_add_u32_e32 v0, vcc, 64, v0 160ef67664dSMatt Arsenault; GFX8-NEXT: s_and_b64 s[4:5], 0, exec 161ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s58, 27 162ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMSTART 163ef67664dSMatt Arsenault; GFX8-NEXT: ; use alloca0 v0 164ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMEND 165ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMSTART 166ef67664dSMatt Arsenault; GFX8-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc 167ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMEND 168ef67664dSMatt Arsenault; GFX8-NEXT: buffer_store_dword v0, off, s[0:3], s32 169ef67664dSMatt Arsenault; GFX8-NEXT: v_mov_b32_e32 v0, 0x4040 170ef67664dSMatt Arsenault; GFX8-NEXT: v_mad_u32_u24 v0, v0, 64, s32 171adac04ffSPankaj Dwivedi; GFX8-NEXT: v_lshrrev_b32_e32 v0, 6, v0 172ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v23, s59, 28 173ef67664dSMatt Arsenault; GFX8-NEXT: v_readfirstlane_b32 s59, v0 174ef67664dSMatt Arsenault; GFX8-NEXT: buffer_load_dword v0, off, s[0:3], s32 175ef67664dSMatt Arsenault; GFX8-NEXT: s_waitcnt vmcnt(0) 176ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMSTART 177ef67664dSMatt Arsenault; GFX8-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc 178ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMEND 179ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s59, v23, 28 180ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s58, v23, 27 181ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s57, v23, 26 182ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s56, v23, 25 183ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s55, v23, 24 184ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s54, v23, 23 185ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s53, v23, 22 186ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s52, v23, 21 187ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s51, v23, 20 188ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s50, v23, 19 189ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s49, v23, 18 190ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s48, v23, 17 191ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s47, v23, 16 192ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s46, v23, 15 193ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s45, v23, 14 194ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s44, v23, 13 195ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s43, v23, 12 196ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s42, v23, 11 197ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s41, v23, 10 198ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s40, v23, 9 199ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s39, v23, 8 200ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s38, v23, 7 201ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s37, v23, 6 202ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s36, v23, 5 203ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s35, v23, 4 204ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s34, v23, 3 205ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s33, v23, 2 206ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s31, v23, 1 207ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s30, v23, 0 208ef67664dSMatt Arsenault; GFX8-NEXT: s_xor_saveexec_b64 s[4:5], -1 209ef67664dSMatt Arsenault; GFX8-NEXT: s_add_i32 s6, s32, 0x101100 210ef67664dSMatt Arsenault; GFX8-NEXT: buffer_load_dword v23, off, s[0:3], s6 ; 4-byte Folded Reload 211ef67664dSMatt Arsenault; GFX8-NEXT: s_mov_b64 exec, s[4:5] 212ef67664dSMatt Arsenault; GFX8-NEXT: s_waitcnt vmcnt(0) 213ef67664dSMatt Arsenault; GFX8-NEXT: s_setpc_b64 s[30:31] 214ef67664dSMatt Arsenault; 215ef67664dSMatt Arsenault; GFX900-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs: 216ef67664dSMatt Arsenault; GFX900: ; %bb.0: 217ef67664dSMatt Arsenault; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 218ef67664dSMatt Arsenault; GFX900-NEXT: s_xor_saveexec_b64 s[4:5], -1 219ef67664dSMatt Arsenault; GFX900-NEXT: s_add_i32 s6, s32, 0x101100 220ef67664dSMatt Arsenault; GFX900-NEXT: buffer_store_dword v23, off, s[0:3], s6 ; 4-byte Folded Spill 221ef67664dSMatt Arsenault; GFX900-NEXT: s_mov_b64 exec, s[4:5] 222ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s30, 0 223ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s31, 1 224ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s33, 2 225ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s34, 3 226ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s35, 4 227ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s36, 5 228ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s37, 6 229ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s38, 7 230ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s39, 8 231ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s40, 9 232ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s41, 10 233ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s42, 11 234ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s43, 12 235ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s44, 13 236ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s45, 14 237ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s46, 15 238ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s47, 16 239ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s48, 17 240ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s49, 18 241ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s50, 19 242ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s51, 20 243ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s52, 21 244ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s53, 22 245ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s54, 23 246ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s55, 24 247ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s56, 25 248ef67664dSMatt Arsenault; GFX900-NEXT: v_lshrrev_b32_e64 v0, 6, s32 249ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s57, 26 250ef67664dSMatt Arsenault; GFX900-NEXT: v_add_u32_e32 v0, 64, v0 251ef67664dSMatt Arsenault; GFX900-NEXT: s_and_b64 s[4:5], 0, exec 252ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s58, 27 253ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMSTART 254ef67664dSMatt Arsenault; GFX900-NEXT: ; use alloca0 v0 255ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMEND 256ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMSTART 257ef67664dSMatt Arsenault; GFX900-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc 258ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMEND 259ef67664dSMatt Arsenault; GFX900-NEXT: buffer_store_dword v0, off, s[0:3], s32 260ef67664dSMatt Arsenault; GFX900-NEXT: v_lshrrev_b32_e64 v0, 6, s32 261ef67664dSMatt Arsenault; GFX900-NEXT: v_add_u32_e32 v0, 0x4040, v0 262ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v23, s59, 28 263ef67664dSMatt Arsenault; GFX900-NEXT: v_readfirstlane_b32 s59, v0 264ef67664dSMatt Arsenault; GFX900-NEXT: buffer_load_dword v0, off, s[0:3], s32 265ef67664dSMatt Arsenault; GFX900-NEXT: s_waitcnt vmcnt(0) 266ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMSTART 267ef67664dSMatt Arsenault; GFX900-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc 268ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMEND 269ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s59, v23, 28 270ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s58, v23, 27 271ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s57, v23, 26 272ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s56, v23, 25 273ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s55, v23, 24 274ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s54, v23, 23 275ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s53, v23, 22 276ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s52, v23, 21 277ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s51, v23, 20 278ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s50, v23, 19 279ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s49, v23, 18 280ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s48, v23, 17 281ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s47, v23, 16 282ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s46, v23, 15 283ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s45, v23, 14 284ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s44, v23, 13 285ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s43, v23, 12 286ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s42, v23, 11 287ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s41, v23, 10 288ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s40, v23, 9 289ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s39, v23, 8 290ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s38, v23, 7 291ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s37, v23, 6 292ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s36, v23, 5 293ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s35, v23, 4 294ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s34, v23, 3 295ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s33, v23, 2 296ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s31, v23, 1 297ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s30, v23, 0 298ef67664dSMatt Arsenault; GFX900-NEXT: s_xor_saveexec_b64 s[4:5], -1 299ef67664dSMatt Arsenault; GFX900-NEXT: s_add_i32 s6, s32, 0x101100 300ef67664dSMatt Arsenault; GFX900-NEXT: buffer_load_dword v23, off, s[0:3], s6 ; 4-byte Folded Reload 301ef67664dSMatt Arsenault; GFX900-NEXT: s_mov_b64 exec, s[4:5] 302ef67664dSMatt Arsenault; GFX900-NEXT: s_waitcnt vmcnt(0) 303ef67664dSMatt Arsenault; GFX900-NEXT: s_setpc_b64 s[30:31] 304ef67664dSMatt Arsenault; 305ef67664dSMatt Arsenault; GFX940-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs: 306ef67664dSMatt Arsenault; GFX940: ; %bb.0: 307ef67664dSMatt Arsenault; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 308ef67664dSMatt Arsenault; GFX940-NEXT: s_xor_saveexec_b64 s[0:1], -1 309ef67664dSMatt Arsenault; GFX940-NEXT: s_add_i32 s2, s32, 0x4044 310ef67664dSMatt Arsenault; GFX940-NEXT: scratch_store_dword off, v23, s2 sc0 sc1 ; 4-byte Folded Spill 311ef67664dSMatt Arsenault; GFX940-NEXT: s_mov_b64 exec, s[0:1] 312ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s30, 0 313ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s31, 1 314ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s33, 2 315ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s34, 3 316ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s35, 4 317ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s36, 5 318ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s37, 6 319ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s38, 7 320ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s39, 8 321ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s40, 9 322ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s41, 10 323ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s42, 11 324ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s43, 12 325ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s44, 13 326ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s45, 14 327ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s46, 15 328ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s47, 16 329ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s48, 17 330ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s49, 18 331ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s50, 19 332ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s51, 20 333ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s52, 21 334ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s53, 22 335ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s54, 23 336ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s55, 24 337ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s56, 25 338ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s57, 26 339ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s58, 27 340ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s59, 28 341ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s60, 29 342ef67664dSMatt Arsenault; GFX940-NEXT: s_add_i32 s0, s32, 64 343ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v23, s61, 30 344ef67664dSMatt Arsenault; GFX940-NEXT: v_mov_b32_e32 v0, s0 345ef67664dSMatt Arsenault; GFX940-NEXT: s_and_b64 s[60:61], 0, exec 346ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMSTART 347ef67664dSMatt Arsenault; GFX940-NEXT: ; use alloca0 v0 348ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMEND 349ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMSTART 350ef67664dSMatt Arsenault; GFX940-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc 351ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMEND 352ef67664dSMatt Arsenault; GFX940-NEXT: s_addc_u32 s60, s32, 0x4040 353ef67664dSMatt Arsenault; GFX940-NEXT: s_bitcmp1_b32 s60, 0 354ef67664dSMatt Arsenault; GFX940-NEXT: s_bitset0_b32 s60, 0 355ef67664dSMatt Arsenault; GFX940-NEXT: s_mov_b32 s59, s60 356ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMSTART 357ef67664dSMatt Arsenault; GFX940-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc 358ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMEND 359ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s61, v23, 30 360ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s60, v23, 29 361ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s59, v23, 28 362ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s58, v23, 27 363ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s57, v23, 26 364ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s56, v23, 25 365ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s55, v23, 24 366ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s54, v23, 23 367ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s53, v23, 22 368ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s52, v23, 21 369ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s51, v23, 20 370ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s50, v23, 19 371ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s49, v23, 18 372ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s48, v23, 17 373ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s47, v23, 16 374ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s46, v23, 15 375ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s45, v23, 14 376ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s44, v23, 13 377ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s43, v23, 12 378ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s42, v23, 11 379ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s41, v23, 10 380ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s40, v23, 9 381ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s39, v23, 8 382ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s38, v23, 7 383ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s37, v23, 6 384ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s36, v23, 5 385ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s35, v23, 4 386ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s34, v23, 3 387ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s33, v23, 2 388ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s31, v23, 1 389ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s30, v23, 0 390ef67664dSMatt Arsenault; GFX940-NEXT: s_xor_saveexec_b64 s[0:1], -1 391ef67664dSMatt Arsenault; GFX940-NEXT: s_add_i32 s2, s32, 0x4044 392ef67664dSMatt Arsenault; GFX940-NEXT: scratch_load_dword v23, off, s2 ; 4-byte Folded Reload 393ef67664dSMatt Arsenault; GFX940-NEXT: s_mov_b64 exec, s[0:1] 394ef67664dSMatt Arsenault; GFX940-NEXT: s_waitcnt vmcnt(0) 395ef67664dSMatt Arsenault; GFX940-NEXT: s_setpc_b64 s[30:31] 396ef67664dSMatt Arsenault; 397ef67664dSMatt Arsenault; GFX10_1-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs: 398ef67664dSMatt Arsenault; GFX10_1: ; %bb.0: 399ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 400ef67664dSMatt Arsenault; GFX10_1-NEXT: s_xor_saveexec_b32 s4, -1 401ef67664dSMatt Arsenault; GFX10_1-NEXT: s_add_i32 s5, s32, 0x80880 402ef67664dSMatt Arsenault; GFX10_1-NEXT: buffer_store_dword v23, off, s[0:3], s5 ; 4-byte Folded Spill 403ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt_depctr 0xffe3 404ef67664dSMatt Arsenault; GFX10_1-NEXT: s_mov_b32 exec_lo, s4 405ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s30, 0 406ef67664dSMatt Arsenault; GFX10_1-NEXT: v_lshrrev_b32_e64 v0, 5, s32 407ef67664dSMatt Arsenault; GFX10_1-NEXT: s_and_b32 s4, 0, exec_lo 408ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s31, 1 409ef67664dSMatt Arsenault; GFX10_1-NEXT: v_add_nc_u32_e32 v0, 64, v0 410ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMSTART 411ef67664dSMatt Arsenault; GFX10_1-NEXT: ; use alloca0 v0 412ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMEND 413ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s33, 2 414ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s34, 3 415ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s35, 4 416ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s36, 5 417ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s37, 6 418ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s38, 7 419ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s39, 8 420ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s40, 9 421ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s41, 10 422ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s42, 11 423ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s43, 12 424ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s44, 13 425ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s45, 14 426ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s46, 15 427ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s47, 16 428ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s48, 17 429ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s49, 18 430ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s50, 19 431ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s51, 20 432ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s52, 21 433ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s53, 22 434ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s54, 23 435ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s55, 24 436ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s56, 25 437ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s57, 26 438ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s58, 27 439ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMSTART 440ef67664dSMatt Arsenault; GFX10_1-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc 441ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMEND 442ef67664dSMatt Arsenault; GFX10_1-NEXT: v_lshrrev_b32_e64 v24, 5, s32 443ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v23, s59, 28 444ef67664dSMatt Arsenault; GFX10_1-NEXT: v_add_nc_u32_e32 v24, 0x4040, v24 445ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readfirstlane_b32 s59, v24 446ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMSTART 447ef67664dSMatt Arsenault; GFX10_1-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc 448ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMEND 449ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s59, v23, 28 450ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s58, v23, 27 451ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s57, v23, 26 452ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s56, v23, 25 453ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s55, v23, 24 454ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s54, v23, 23 455ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s53, v23, 22 456ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s52, v23, 21 457ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s51, v23, 20 458ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s50, v23, 19 459ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s49, v23, 18 460ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s48, v23, 17 461ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s47, v23, 16 462ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s46, v23, 15 463ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s45, v23, 14 464ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s44, v23, 13 465ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s43, v23, 12 466ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s42, v23, 11 467ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s41, v23, 10 468ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s40, v23, 9 469ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s39, v23, 8 470ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s38, v23, 7 471ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s37, v23, 6 472ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s36, v23, 5 473ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s35, v23, 4 474ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s34, v23, 3 475ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s33, v23, 2 476ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s31, v23, 1 477ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s30, v23, 0 478ef67664dSMatt Arsenault; GFX10_1-NEXT: s_xor_saveexec_b32 s4, -1 479ef67664dSMatt Arsenault; GFX10_1-NEXT: s_add_i32 s5, s32, 0x80880 480ef67664dSMatt Arsenault; GFX10_1-NEXT: buffer_load_dword v23, off, s[0:3], s5 ; 4-byte Folded Reload 481ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt_depctr 0xffe3 482ef67664dSMatt Arsenault; GFX10_1-NEXT: s_mov_b32 exec_lo, s4 483ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt vmcnt(0) 484ef67664dSMatt Arsenault; GFX10_1-NEXT: s_setpc_b64 s[30:31] 485ef67664dSMatt Arsenault; 486ef67664dSMatt Arsenault; GFX10_3-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs: 487ef67664dSMatt Arsenault; GFX10_3: ; %bb.0: 488ef67664dSMatt Arsenault; GFX10_3-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 489ef67664dSMatt Arsenault; GFX10_3-NEXT: s_xor_saveexec_b32 s4, -1 490ef67664dSMatt Arsenault; GFX10_3-NEXT: s_add_i32 s5, s32, 0x80880 491ef67664dSMatt Arsenault; GFX10_3-NEXT: buffer_store_dword v23, off, s[0:3], s5 ; 4-byte Folded Spill 492ef67664dSMatt Arsenault; GFX10_3-NEXT: s_mov_b32 exec_lo, s4 493ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s30, 0 494ef67664dSMatt Arsenault; GFX10_3-NEXT: v_lshrrev_b32_e64 v0, 5, s32 495ef67664dSMatt Arsenault; GFX10_3-NEXT: s_and_b32 s4, 0, exec_lo 496ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s31, 1 497ef67664dSMatt Arsenault; GFX10_3-NEXT: v_add_nc_u32_e32 v0, 64, v0 498ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMSTART 499ef67664dSMatt Arsenault; GFX10_3-NEXT: ; use alloca0 v0 500ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMEND 501ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s33, 2 502ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s34, 3 503ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s35, 4 504ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s36, 5 505ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s37, 6 506ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s38, 7 507ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s39, 8 508ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s40, 9 509ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s41, 10 510ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s42, 11 511ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s43, 12 512ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s44, 13 513ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s45, 14 514ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s46, 15 515ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s47, 16 516ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s48, 17 517ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s49, 18 518ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s50, 19 519ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s51, 20 520ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s52, 21 521ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s53, 22 522ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s54, 23 523ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s55, 24 524ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s56, 25 525ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s57, 26 526ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s58, 27 527ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMSTART 528ef67664dSMatt Arsenault; GFX10_3-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc 529ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMEND 530ef67664dSMatt Arsenault; GFX10_3-NEXT: v_lshrrev_b32_e64 v24, 5, s32 531ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v23, s59, 28 532ef67664dSMatt Arsenault; GFX10_3-NEXT: v_add_nc_u32_e32 v24, 0x4040, v24 533ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readfirstlane_b32 s59, v24 534ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMSTART 535ef67664dSMatt Arsenault; GFX10_3-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc 536ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMEND 537ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s59, v23, 28 538ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s58, v23, 27 539ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s57, v23, 26 540ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s56, v23, 25 541ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s55, v23, 24 542ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s54, v23, 23 543ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s53, v23, 22 544ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s52, v23, 21 545ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s51, v23, 20 546ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s50, v23, 19 547ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s49, v23, 18 548ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s48, v23, 17 549ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s47, v23, 16 550ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s46, v23, 15 551ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s45, v23, 14 552ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s44, v23, 13 553ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s43, v23, 12 554ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s42, v23, 11 555ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s41, v23, 10 556ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s40, v23, 9 557ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s39, v23, 8 558ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s38, v23, 7 559ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s37, v23, 6 560ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s36, v23, 5 561ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s35, v23, 4 562ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s34, v23, 3 563ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s33, v23, 2 564ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s31, v23, 1 565ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s30, v23, 0 566ef67664dSMatt Arsenault; GFX10_3-NEXT: s_xor_saveexec_b32 s4, -1 567ef67664dSMatt Arsenault; GFX10_3-NEXT: s_add_i32 s5, s32, 0x80880 568ef67664dSMatt Arsenault; GFX10_3-NEXT: buffer_load_dword v23, off, s[0:3], s5 ; 4-byte Folded Reload 569ef67664dSMatt Arsenault; GFX10_3-NEXT: s_mov_b32 exec_lo, s4 570ef67664dSMatt Arsenault; GFX10_3-NEXT: s_waitcnt vmcnt(0) 571ef67664dSMatt Arsenault; GFX10_3-NEXT: s_setpc_b64 s[30:31] 572ef67664dSMatt Arsenault; 573ef67664dSMatt Arsenault; GFX11-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs: 574ef67664dSMatt Arsenault; GFX11: ; %bb.0: 575ef67664dSMatt Arsenault; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 576ef67664dSMatt Arsenault; GFX11-NEXT: s_xor_saveexec_b32 s0, -1 577ef67664dSMatt Arsenault; GFX11-NEXT: s_add_i32 s1, s32, 0x4044 578ef67664dSMatt Arsenault; GFX11-NEXT: scratch_store_b32 off, v23, s1 ; 4-byte Folded Spill 579ef67664dSMatt Arsenault; GFX11-NEXT: s_mov_b32 exec_lo, s0 580ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s30, 0 581ef67664dSMatt Arsenault; GFX11-NEXT: s_add_i32 s0, s32, 64 582ef67664dSMatt Arsenault; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) 583ef67664dSMatt Arsenault; GFX11-NEXT: v_mov_b32_e32 v0, s0 584ef67664dSMatt Arsenault; GFX11-NEXT: s_and_b32 s0, 0, exec_lo 585ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s31, 1 586ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMSTART 587ef67664dSMatt Arsenault; GFX11-NEXT: ; use alloca0 v0 588ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMEND 589ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s33, 2 590ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s34, 3 591ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s35, 4 592ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s36, 5 593ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s37, 6 594ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s38, 7 595ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s39, 8 596ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s40, 9 597ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s41, 10 598ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s42, 11 599ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s43, 12 600ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s44, 13 601ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s45, 14 602ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s46, 15 603ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s47, 16 604ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s48, 17 605ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s49, 18 606ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s50, 19 607ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s51, 20 608ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s52, 21 609ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s53, 22 610ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s54, 23 611ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s55, 24 612ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s56, 25 613ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s57, 26 614ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s58, 27 615ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMSTART 616ef67664dSMatt Arsenault; GFX11-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc 617ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMEND 618ef67664dSMatt Arsenault; GFX11-NEXT: s_addc_u32 s32, s32, 0x4040 619ef67664dSMatt Arsenault; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_2) | instid1(SALU_CYCLE_1) 620ef67664dSMatt Arsenault; GFX11-NEXT: s_bitcmp1_b32 s32, 0 621ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v23, s59, 28 622ef67664dSMatt Arsenault; GFX11-NEXT: s_bitset0_b32 s32, 0 623ef67664dSMatt Arsenault; GFX11-NEXT: s_mov_b32 s59, s32 624ef67664dSMatt Arsenault; GFX11-NEXT: s_addc_u32 s32, s32, 0xffffbfc0 625ef67664dSMatt Arsenault; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) 626ef67664dSMatt Arsenault; GFX11-NEXT: s_bitcmp1_b32 s32, 0 627ef67664dSMatt Arsenault; GFX11-NEXT: s_bitset0_b32 s32, 0 628ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMSTART 629ef67664dSMatt Arsenault; GFX11-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc 630ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMEND 631ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s59, v23, 28 632ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s58, v23, 27 633ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s57, v23, 26 634ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s56, v23, 25 635ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s55, v23, 24 636ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s54, v23, 23 637ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s53, v23, 22 638ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s52, v23, 21 639ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s51, v23, 20 640ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s50, v23, 19 641ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s49, v23, 18 642ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s48, v23, 17 643ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s47, v23, 16 644ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s46, v23, 15 645ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s45, v23, 14 646ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s44, v23, 13 647ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s43, v23, 12 648ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s42, v23, 11 649ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s41, v23, 10 650ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s40, v23, 9 651ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s39, v23, 8 652ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s38, v23, 7 653ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s37, v23, 6 654ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s36, v23, 5 655ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s35, v23, 4 656ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s34, v23, 3 657ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s33, v23, 2 658ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s31, v23, 1 659ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s30, v23, 0 660ef67664dSMatt Arsenault; GFX11-NEXT: s_xor_saveexec_b32 s0, -1 661ef67664dSMatt Arsenault; GFX11-NEXT: s_add_i32 s1, s32, 0x4044 662ef67664dSMatt Arsenault; GFX11-NEXT: scratch_load_b32 v23, off, s1 ; 4-byte Folded Reload 663ef67664dSMatt Arsenault; GFX11-NEXT: s_mov_b32 exec_lo, s0 664ef67664dSMatt Arsenault; GFX11-NEXT: s_waitcnt vmcnt(0) 665ef67664dSMatt Arsenault; GFX11-NEXT: s_setpc_b64 s[30:31] 666ef67664dSMatt Arsenault; 667ef67664dSMatt Arsenault; GFX12-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs: 668ef67664dSMatt Arsenault; GFX12: ; %bb.0: 669ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 670ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_expcnt 0x0 671ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_samplecnt 0x0 672ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_bvhcnt 0x0 673ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_kmcnt 0x0 674ef67664dSMatt Arsenault; GFX12-NEXT: s_xor_saveexec_b32 s0, -1 675ef67664dSMatt Arsenault; GFX12-NEXT: scratch_store_b32 off, v23, s32 offset:16388 ; 4-byte Folded Spill 67686627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 677ef67664dSMatt Arsenault; GFX12-NEXT: s_mov_b32 exec_lo, s0 678ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s30, 0 679ef67664dSMatt Arsenault; GFX12-NEXT: v_mov_b32_e32 v0, s32 680ef67664dSMatt Arsenault; GFX12-NEXT: s_and_b32 s0, 0, exec_lo 681ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMSTART 682ef67664dSMatt Arsenault; GFX12-NEXT: ; use alloca0 v0 683ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMEND 684ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s31, 1 685ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s33, 2 686ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s34, 3 687ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s35, 4 688ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s36, 5 689ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s37, 6 690ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s38, 7 691ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s39, 8 692ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s40, 9 693ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s41, 10 694ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s42, 11 695ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s43, 12 696ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s44, 13 697ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s45, 14 698ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s46, 15 699ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s47, 16 700ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s48, 17 701ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s49, 18 702ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s50, 19 703ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s51, 20 704ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s52, 21 705ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s53, 22 706ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s54, 23 707ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s55, 24 708ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s56, 25 709ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s57, 26 710ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s58, 27 711ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMSTART 712ef67664dSMatt Arsenault; GFX12-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc 713ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMEND 714ef67664dSMatt Arsenault; GFX12-NEXT: s_add_co_ci_u32 s32, s32, 0x4000 71586627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 716ef67664dSMatt Arsenault; GFX12-NEXT: s_bitcmp1_b32 s32, 0 717ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v23, s59, 28 718ef67664dSMatt Arsenault; GFX12-NEXT: s_bitset0_b32 s32, 0 71986627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 720ef67664dSMatt Arsenault; GFX12-NEXT: s_mov_b32 s59, s32 721ef67664dSMatt Arsenault; GFX12-NEXT: s_add_co_ci_u32 s32, s32, 0xffffc000 72286627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 723ef67664dSMatt Arsenault; GFX12-NEXT: s_bitcmp1_b32 s32, 0 724ef67664dSMatt Arsenault; GFX12-NEXT: s_bitset0_b32 s32, 0 725ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMSTART 726ef67664dSMatt Arsenault; GFX12-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:22], vcc, s59, scc 727ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMEND 728ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s59, v23, 28 729ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s58, v23, 27 730ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s57, v23, 26 731ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s56, v23, 25 732ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s55, v23, 24 733ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s54, v23, 23 734ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s53, v23, 22 735ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s52, v23, 21 736ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s51, v23, 20 737ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s50, v23, 19 738ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s49, v23, 18 739ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s48, v23, 17 740ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s47, v23, 16 741ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s46, v23, 15 742ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s45, v23, 14 743ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s44, v23, 13 744ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s43, v23, 12 745ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s42, v23, 11 746ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s41, v23, 10 747ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s40, v23, 9 748ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s39, v23, 8 749ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s38, v23, 7 750ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s37, v23, 6 751ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s36, v23, 5 752ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s35, v23, 4 753ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s34, v23, 3 754ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s33, v23, 2 755ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s31, v23, 1 756ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s30, v23, 0 757ef67664dSMatt Arsenault; GFX12-NEXT: s_xor_saveexec_b32 s0, -1 758ef67664dSMatt Arsenault; GFX12-NEXT: scratch_load_b32 v23, off, s32 offset:16388 ; 4-byte Folded Reload 75986627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 760ef67664dSMatt Arsenault; GFX12-NEXT: s_mov_b32 exec_lo, s0 761ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_loadcnt 0x0 76286627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 763ef67664dSMatt Arsenault; GFX12-NEXT: s_setpc_b64 s[30:31] 764ef67664dSMatt Arsenault %alloca0 = alloca [4096 x i32], align 64, addrspace(5) 765ef67664dSMatt Arsenault %alloca1 = alloca i32, align 4, addrspace(5) 766ef67664dSMatt Arsenault call void asm sideeffect "; use alloca0 $0", "v"(ptr addrspace(5) %alloca0) 767ef67664dSMatt Arsenault 768ef67664dSMatt Arsenault ; Force no SGPRs to be available for the carry-out of the vector add. 769ef67664dSMatt Arsenault %asm = call %asm.output asm sideeffect 770ef67664dSMatt Arsenault "; def $0, $1, $2, $3, $4, $5, $6, $7, $8", 771ef67664dSMatt Arsenault "={s[0:15]},={s[16:31]},={s[32:47]},={s[48:55]},={s[56:57]},={s58},={v[0:15]},={v[16:22]},={vcc}"() 772ef67664dSMatt Arsenault 773ef67664dSMatt Arsenault %s0 = extractvalue %asm.output %asm, 0 774ef67664dSMatt Arsenault %s1 = extractvalue %asm.output %asm, 1 775ef67664dSMatt Arsenault %s2 = extractvalue %asm.output %asm, 2 776ef67664dSMatt Arsenault %s3 = extractvalue %asm.output %asm, 3 777ef67664dSMatt Arsenault %s4 = extractvalue %asm.output %asm, 4 778ef67664dSMatt Arsenault %s5 = extractvalue %asm.output %asm, 5 779ef67664dSMatt Arsenault 780ef67664dSMatt Arsenault %v0 = extractvalue %asm.output %asm, 6 781ef67664dSMatt Arsenault %v1 = extractvalue %asm.output %asm, 7 782ef67664dSMatt Arsenault 783ef67664dSMatt Arsenault %vcc = extractvalue %asm.output %asm, 8 784ef67664dSMatt Arsenault 785ef67664dSMatt Arsenault ; scc is unavailable since it is live in 786ef67664dSMatt Arsenault call void asm sideeffect "; use $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10", 787ef67664dSMatt Arsenault "{s[0:15]},{s[16:31]},{s[32:47]},{s[48:55]},{s[56:57]},{s58},{v[0:15]},{v[16:22]},{vcc},{s59},{scc}"( 788ef67664dSMatt Arsenault <16 x i32> %s0, 789ef67664dSMatt Arsenault <16 x i32> %s1, 790ef67664dSMatt Arsenault <16 x i32> %s2, 791ef67664dSMatt Arsenault <8 x i32> %s3, 792ef67664dSMatt Arsenault <2 x i32> %s4, 793ef67664dSMatt Arsenault i32 %s5, 794ef67664dSMatt Arsenault <16 x i32> %v0, 795ef67664dSMatt Arsenault <7 x i32> %v1, 796ef67664dSMatt Arsenault i64 %vcc, 797ef67664dSMatt Arsenault ptr addrspace(5) %alloca1, 798ef67664dSMatt Arsenault i32 0) ; use of scc 799ef67664dSMatt Arsenault 800ef67664dSMatt Arsenault ret void 801ef67664dSMatt Arsenault} 802ef67664dSMatt Arsenault 803ef67664dSMatt Arsenault; FIXME: This would have test FI at offset 0, but other objects get 804ef67664dSMatt Arsenault; assigned there. This shows a non-0, but inline immediate that can 805ef67664dSMatt Arsenault; fold directly into the address computation. 806ef67664dSMatt Arsenaultdefine void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset() #1 { 807ef67664dSMatt Arsenault; GFX7-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset: 808ef67664dSMatt Arsenault; GFX7: ; %bb.0: 809ef67664dSMatt Arsenault; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 810ef67664dSMatt Arsenault; GFX7-NEXT: s_xor_saveexec_b64 s[4:5], -1 811ef67664dSMatt Arsenault; GFX7-NEXT: s_add_i32 s6, s32, 0x100400 812ef67664dSMatt Arsenault; GFX7-NEXT: buffer_store_dword v21, off, s[0:3], s6 ; 4-byte Folded Spill 813ef67664dSMatt Arsenault; GFX7-NEXT: s_mov_b64 exec, s[4:5] 814ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s30, 0 815ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s31, 1 816ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s33, 2 817ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s34, 3 818ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s35, 4 819ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s36, 5 820ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s37, 6 821ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s38, 7 822ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s39, 8 823ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s40, 9 824ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s41, 10 825ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s42, 11 826ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s43, 12 827ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s44, 13 828ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s45, 14 829ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s46, 15 830ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s47, 16 831ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s48, 17 832ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s49, 18 833ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s50, 19 834ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s51, 20 835ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s52, 21 836ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s53, 22 837ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s54, 23 838ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s55, 24 839ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s56, 25 840ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s57, 26 841ef67664dSMatt Arsenault; GFX7-NEXT: s_and_b64 s[4:5], 0, exec 842ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s58, 27 843ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMSTART 844ef67664dSMatt Arsenault; GFX7-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc 845ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMEND 84642bae9c5SPankaj Dwivedi; GFX7-NEXT: v_mad_u32_u24 v22, 16, 64, s32 847adac04ffSPankaj Dwivedi; GFX7-NEXT: v_lshrrev_b32_e32 v22, 6, v22 848ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v21, s59, 28 849ef67664dSMatt Arsenault; GFX7-NEXT: v_readfirstlane_b32 s59, v22 850ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMSTART 851ef67664dSMatt Arsenault; GFX7-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc 852ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMEND 853ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s59, v21, 28 854ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s58, v21, 27 855ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s57, v21, 26 856ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s56, v21, 25 857ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s55, v21, 24 858ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s54, v21, 23 859ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s53, v21, 22 860ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s52, v21, 21 861ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s51, v21, 20 862ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s50, v21, 19 863ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s49, v21, 18 864ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s48, v21, 17 865ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s47, v21, 16 866ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s46, v21, 15 867ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s45, v21, 14 868ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s44, v21, 13 869ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s43, v21, 12 870ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s42, v21, 11 871ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s41, v21, 10 872ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s40, v21, 9 873ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s39, v21, 8 874ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s38, v21, 7 875ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s37, v21, 6 876ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s36, v21, 5 877ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s35, v21, 4 878ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s34, v21, 3 879ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s33, v21, 2 880ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s31, v21, 1 881ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s30, v21, 0 882ef67664dSMatt Arsenault; GFX7-NEXT: s_xor_saveexec_b64 s[4:5], -1 883ef67664dSMatt Arsenault; GFX7-NEXT: s_add_i32 s6, s32, 0x100400 884ef67664dSMatt Arsenault; GFX7-NEXT: buffer_load_dword v21, off, s[0:3], s6 ; 4-byte Folded Reload 885ef67664dSMatt Arsenault; GFX7-NEXT: s_mov_b64 exec, s[4:5] 886ef67664dSMatt Arsenault; GFX7-NEXT: s_waitcnt vmcnt(0) 887ef67664dSMatt Arsenault; GFX7-NEXT: s_setpc_b64 s[30:31] 888ef67664dSMatt Arsenault; 889ef67664dSMatt Arsenault; GFX8-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset: 890ef67664dSMatt Arsenault; GFX8: ; %bb.0: 891ef67664dSMatt Arsenault; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 892ef67664dSMatt Arsenault; GFX8-NEXT: s_xor_saveexec_b64 s[4:5], -1 893ef67664dSMatt Arsenault; GFX8-NEXT: s_add_i32 s6, s32, 0x100400 894ef67664dSMatt Arsenault; GFX8-NEXT: buffer_store_dword v21, off, s[0:3], s6 ; 4-byte Folded Spill 895ef67664dSMatt Arsenault; GFX8-NEXT: s_mov_b64 exec, s[4:5] 896ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s30, 0 897ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s31, 1 898ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s33, 2 899ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s34, 3 900ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s35, 4 901ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s36, 5 902ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s37, 6 903ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s38, 7 904ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s39, 8 905ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s40, 9 906ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s41, 10 907ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s42, 11 908ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s43, 12 909ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s44, 13 910ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s45, 14 911ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s46, 15 912ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s47, 16 913ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s48, 17 914ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s49, 18 915ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s50, 19 916ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s51, 20 917ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s52, 21 918ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s53, 22 919ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s54, 23 920ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s55, 24 921ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s56, 25 922ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s57, 26 923ef67664dSMatt Arsenault; GFX8-NEXT: s_and_b64 s[4:5], 0, exec 924ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s58, 27 925ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMSTART 926ef67664dSMatt Arsenault; GFX8-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc 927ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMEND 92842bae9c5SPankaj Dwivedi; GFX8-NEXT: v_mad_u32_u24 v22, 16, 64, s32 929adac04ffSPankaj Dwivedi; GFX8-NEXT: v_lshrrev_b32_e32 v22, 6, v22 930ef67664dSMatt Arsenault; GFX8-NEXT: v_writelane_b32 v21, s59, 28 931ef67664dSMatt Arsenault; GFX8-NEXT: v_readfirstlane_b32 s59, v22 932ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMSTART 933ef67664dSMatt Arsenault; GFX8-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc 934ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMEND 935ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s59, v21, 28 936ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s58, v21, 27 937ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s57, v21, 26 938ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s56, v21, 25 939ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s55, v21, 24 940ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s54, v21, 23 941ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s53, v21, 22 942ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s52, v21, 21 943ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s51, v21, 20 944ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s50, v21, 19 945ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s49, v21, 18 946ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s48, v21, 17 947ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s47, v21, 16 948ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s46, v21, 15 949ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s45, v21, 14 950ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s44, v21, 13 951ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s43, v21, 12 952ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s42, v21, 11 953ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s41, v21, 10 954ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s40, v21, 9 955ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s39, v21, 8 956ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s38, v21, 7 957ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s37, v21, 6 958ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s36, v21, 5 959ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s35, v21, 4 960ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s34, v21, 3 961ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s33, v21, 2 962ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s31, v21, 1 963ef67664dSMatt Arsenault; GFX8-NEXT: v_readlane_b32 s30, v21, 0 964ef67664dSMatt Arsenault; GFX8-NEXT: s_xor_saveexec_b64 s[4:5], -1 965ef67664dSMatt Arsenault; GFX8-NEXT: s_add_i32 s6, s32, 0x100400 966ef67664dSMatt Arsenault; GFX8-NEXT: buffer_load_dword v21, off, s[0:3], s6 ; 4-byte Folded Reload 967ef67664dSMatt Arsenault; GFX8-NEXT: s_mov_b64 exec, s[4:5] 968ef67664dSMatt Arsenault; GFX8-NEXT: s_waitcnt vmcnt(0) 969ef67664dSMatt Arsenault; GFX8-NEXT: s_setpc_b64 s[30:31] 970ef67664dSMatt Arsenault; 971ef67664dSMatt Arsenault; GFX900-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset: 972ef67664dSMatt Arsenault; GFX900: ; %bb.0: 973ef67664dSMatt Arsenault; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 974ef67664dSMatt Arsenault; GFX900-NEXT: s_xor_saveexec_b64 s[4:5], -1 975ef67664dSMatt Arsenault; GFX900-NEXT: s_add_i32 s6, s32, 0x100400 976ef67664dSMatt Arsenault; GFX900-NEXT: buffer_store_dword v21, off, s[0:3], s6 ; 4-byte Folded Spill 977ef67664dSMatt Arsenault; GFX900-NEXT: s_mov_b64 exec, s[4:5] 978ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s30, 0 979ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s31, 1 980ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s33, 2 981ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s34, 3 982ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s35, 4 983ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s36, 5 984ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s37, 6 985ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s38, 7 986ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s39, 8 987ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s40, 9 988ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s41, 10 989ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s42, 11 990ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s43, 12 991ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s44, 13 992ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s45, 14 993ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s46, 15 994ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s47, 16 995ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s48, 17 996ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s49, 18 997ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s50, 19 998ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s51, 20 999ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s52, 21 1000ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s53, 22 1001ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s54, 23 1002ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s55, 24 1003ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s56, 25 1004ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s57, 26 1005ef67664dSMatt Arsenault; GFX900-NEXT: s_and_b64 s[4:5], 0, exec 1006ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s58, 27 1007ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMSTART 1008ef67664dSMatt Arsenault; GFX900-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc 1009ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMEND 1010ef67664dSMatt Arsenault; GFX900-NEXT: v_lshrrev_b32_e64 v22, 6, s32 1011ef67664dSMatt Arsenault; GFX900-NEXT: v_add_u32_e32 v22, 16, v22 1012ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v21, s59, 28 1013ef67664dSMatt Arsenault; GFX900-NEXT: v_readfirstlane_b32 s59, v22 1014ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMSTART 1015ef67664dSMatt Arsenault; GFX900-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc 1016ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMEND 1017ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s59, v21, 28 1018ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s58, v21, 27 1019ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s57, v21, 26 1020ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s56, v21, 25 1021ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s55, v21, 24 1022ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s54, v21, 23 1023ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s53, v21, 22 1024ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s52, v21, 21 1025ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s51, v21, 20 1026ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s50, v21, 19 1027ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s49, v21, 18 1028ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s48, v21, 17 1029ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s47, v21, 16 1030ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s46, v21, 15 1031ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s45, v21, 14 1032ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s44, v21, 13 1033ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s43, v21, 12 1034ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s42, v21, 11 1035ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s41, v21, 10 1036ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s40, v21, 9 1037ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s39, v21, 8 1038ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s38, v21, 7 1039ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s37, v21, 6 1040ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s36, v21, 5 1041ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s35, v21, 4 1042ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s34, v21, 3 1043ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s33, v21, 2 1044ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s31, v21, 1 1045ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s30, v21, 0 1046ef67664dSMatt Arsenault; GFX900-NEXT: s_xor_saveexec_b64 s[4:5], -1 1047ef67664dSMatt Arsenault; GFX900-NEXT: s_add_i32 s6, s32, 0x100400 1048ef67664dSMatt Arsenault; GFX900-NEXT: buffer_load_dword v21, off, s[0:3], s6 ; 4-byte Folded Reload 1049ef67664dSMatt Arsenault; GFX900-NEXT: s_mov_b64 exec, s[4:5] 1050ef67664dSMatt Arsenault; GFX900-NEXT: s_waitcnt vmcnt(0) 1051ef67664dSMatt Arsenault; GFX900-NEXT: s_setpc_b64 s[30:31] 1052ef67664dSMatt Arsenault; 1053ef67664dSMatt Arsenault; GFX940-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset: 1054ef67664dSMatt Arsenault; GFX940: ; %bb.0: 1055ef67664dSMatt Arsenault; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1056ef67664dSMatt Arsenault; GFX940-NEXT: s_xor_saveexec_b64 s[0:1], -1 1057ef67664dSMatt Arsenault; GFX940-NEXT: s_add_i32 s2, s32, 0x4010 1058ef67664dSMatt Arsenault; GFX940-NEXT: scratch_store_dword off, v21, s2 sc0 sc1 ; 4-byte Folded Spill 1059ef67664dSMatt Arsenault; GFX940-NEXT: s_mov_b64 exec, s[0:1] 1060ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s30, 0 1061ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s31, 1 1062ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s33, 2 1063ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s34, 3 1064ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s35, 4 1065ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s36, 5 1066ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s37, 6 1067ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s38, 7 1068ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s39, 8 1069ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s40, 9 1070ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s41, 10 1071ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s42, 11 1072ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s43, 12 1073ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s44, 13 1074ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s45, 14 1075ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s46, 15 1076ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s47, 16 1077ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s48, 17 1078ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s49, 18 1079ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s50, 19 1080ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s51, 20 1081ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s52, 21 1082ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s53, 22 1083ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s54, 23 1084ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s55, 24 1085ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s56, 25 1086ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s57, 26 1087ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s58, 27 1088ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s59, 28 1089ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s60, 29 1090ef67664dSMatt Arsenault; GFX940-NEXT: v_writelane_b32 v21, s61, 30 1091ef67664dSMatt Arsenault; GFX940-NEXT: s_and_b64 s[60:61], 0, exec 1092ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMSTART 1093ef67664dSMatt Arsenault; GFX940-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc 1094ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMEND 1095ef67664dSMatt Arsenault; GFX940-NEXT: s_addc_u32 s60, s32, 16 1096ef67664dSMatt Arsenault; GFX940-NEXT: s_bitcmp1_b32 s60, 0 1097ef67664dSMatt Arsenault; GFX940-NEXT: s_bitset0_b32 s60, 0 1098ef67664dSMatt Arsenault; GFX940-NEXT: s_mov_b32 s59, s60 1099ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMSTART 1100ef67664dSMatt Arsenault; GFX940-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc 1101ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMEND 1102ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s61, v21, 30 1103ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s60, v21, 29 1104ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s59, v21, 28 1105ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s58, v21, 27 1106ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s57, v21, 26 1107ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s56, v21, 25 1108ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s55, v21, 24 1109ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s54, v21, 23 1110ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s53, v21, 22 1111ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s52, v21, 21 1112ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s51, v21, 20 1113ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s50, v21, 19 1114ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s49, v21, 18 1115ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s48, v21, 17 1116ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s47, v21, 16 1117ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s46, v21, 15 1118ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s45, v21, 14 1119ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s44, v21, 13 1120ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s43, v21, 12 1121ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s42, v21, 11 1122ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s41, v21, 10 1123ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s40, v21, 9 1124ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s39, v21, 8 1125ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s38, v21, 7 1126ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s37, v21, 6 1127ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s36, v21, 5 1128ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s35, v21, 4 1129ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s34, v21, 3 1130ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s33, v21, 2 1131ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s31, v21, 1 1132ef67664dSMatt Arsenault; GFX940-NEXT: v_readlane_b32 s30, v21, 0 1133ef67664dSMatt Arsenault; GFX940-NEXT: s_xor_saveexec_b64 s[0:1], -1 1134ef67664dSMatt Arsenault; GFX940-NEXT: s_add_i32 s2, s32, 0x4010 1135ef67664dSMatt Arsenault; GFX940-NEXT: scratch_load_dword v21, off, s2 ; 4-byte Folded Reload 1136ef67664dSMatt Arsenault; GFX940-NEXT: s_mov_b64 exec, s[0:1] 1137ef67664dSMatt Arsenault; GFX940-NEXT: s_waitcnt vmcnt(0) 1138ef67664dSMatt Arsenault; GFX940-NEXT: s_setpc_b64 s[30:31] 1139ef67664dSMatt Arsenault; 1140ef67664dSMatt Arsenault; GFX10_1-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset: 1141ef67664dSMatt Arsenault; GFX10_1: ; %bb.0: 1142ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1143ef67664dSMatt Arsenault; GFX10_1-NEXT: s_xor_saveexec_b32 s4, -1 1144ef67664dSMatt Arsenault; GFX10_1-NEXT: s_add_i32 s5, s32, 0x80200 1145ef67664dSMatt Arsenault; GFX10_1-NEXT: buffer_store_dword v21, off, s[0:3], s5 ; 4-byte Folded Spill 1146ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt_depctr 0xffe3 1147ef67664dSMatt Arsenault; GFX10_1-NEXT: s_mov_b32 exec_lo, s4 1148ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s30, 0 1149ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s31, 1 1150ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s33, 2 1151ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s34, 3 1152ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s35, 4 1153ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s36, 5 1154ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s37, 6 1155ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s38, 7 1156ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s39, 8 1157ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s40, 9 1158ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s41, 10 1159ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s42, 11 1160ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s43, 12 1161ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s44, 13 1162ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s45, 14 1163ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s46, 15 1164ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s47, 16 1165ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s48, 17 1166ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s49, 18 1167ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s50, 19 1168ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s51, 20 1169ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s52, 21 1170ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s53, 22 1171ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s54, 23 1172ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s55, 24 1173ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s56, 25 1174ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s57, 26 1175ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s58, 27 1176ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMSTART 1177ef67664dSMatt Arsenault; GFX10_1-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc 1178ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMEND 1179ef67664dSMatt Arsenault; GFX10_1-NEXT: v_lshrrev_b32_e64 v22, 5, s32 1180ef67664dSMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v21, s59, 28 1181ef67664dSMatt Arsenault; GFX10_1-NEXT: s_and_b32 s59, 0, exec_lo 1182ef67664dSMatt Arsenault; GFX10_1-NEXT: v_add_nc_u32_e32 v22, 16, v22 1183ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readfirstlane_b32 s59, v22 1184ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMSTART 1185ef67664dSMatt Arsenault; GFX10_1-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc 1186ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMEND 1187ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s59, v21, 28 1188ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s58, v21, 27 1189ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s57, v21, 26 1190ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s56, v21, 25 1191ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s55, v21, 24 1192ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s54, v21, 23 1193ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s53, v21, 22 1194ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s52, v21, 21 1195ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s51, v21, 20 1196ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s50, v21, 19 1197ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s49, v21, 18 1198ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s48, v21, 17 1199ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s47, v21, 16 1200ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s46, v21, 15 1201ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s45, v21, 14 1202ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s44, v21, 13 1203ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s43, v21, 12 1204ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s42, v21, 11 1205ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s41, v21, 10 1206ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s40, v21, 9 1207ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s39, v21, 8 1208ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s38, v21, 7 1209ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s37, v21, 6 1210ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s36, v21, 5 1211ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s35, v21, 4 1212ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s34, v21, 3 1213ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s33, v21, 2 1214ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s31, v21, 1 1215ef67664dSMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s30, v21, 0 1216ef67664dSMatt Arsenault; GFX10_1-NEXT: s_xor_saveexec_b32 s4, -1 1217ef67664dSMatt Arsenault; GFX10_1-NEXT: s_add_i32 s5, s32, 0x80200 1218ef67664dSMatt Arsenault; GFX10_1-NEXT: buffer_load_dword v21, off, s[0:3], s5 ; 4-byte Folded Reload 1219ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt_depctr 0xffe3 1220ef67664dSMatt Arsenault; GFX10_1-NEXT: s_mov_b32 exec_lo, s4 1221ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt vmcnt(0) 1222ef67664dSMatt Arsenault; GFX10_1-NEXT: s_setpc_b64 s[30:31] 1223ef67664dSMatt Arsenault; 1224ef67664dSMatt Arsenault; GFX10_3-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset: 1225ef67664dSMatt Arsenault; GFX10_3: ; %bb.0: 1226ef67664dSMatt Arsenault; GFX10_3-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1227ef67664dSMatt Arsenault; GFX10_3-NEXT: s_xor_saveexec_b32 s4, -1 1228ef67664dSMatt Arsenault; GFX10_3-NEXT: s_add_i32 s5, s32, 0x80200 1229ef67664dSMatt Arsenault; GFX10_3-NEXT: buffer_store_dword v21, off, s[0:3], s5 ; 4-byte Folded Spill 1230ef67664dSMatt Arsenault; GFX10_3-NEXT: s_mov_b32 exec_lo, s4 1231ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s30, 0 1232ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s31, 1 1233ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s33, 2 1234ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s34, 3 1235ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s35, 4 1236ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s36, 5 1237ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s37, 6 1238ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s38, 7 1239ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s39, 8 1240ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s40, 9 1241ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s41, 10 1242ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s42, 11 1243ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s43, 12 1244ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s44, 13 1245ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s45, 14 1246ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s46, 15 1247ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s47, 16 1248ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s48, 17 1249ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s49, 18 1250ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s50, 19 1251ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s51, 20 1252ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s52, 21 1253ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s53, 22 1254ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s54, 23 1255ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s55, 24 1256ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s56, 25 1257ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s57, 26 1258ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s58, 27 1259ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMSTART 1260ef67664dSMatt Arsenault; GFX10_3-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc 1261ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMEND 1262ef67664dSMatt Arsenault; GFX10_3-NEXT: v_lshrrev_b32_e64 v22, 5, s32 1263ef67664dSMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v21, s59, 28 1264ef67664dSMatt Arsenault; GFX10_3-NEXT: s_and_b32 s59, 0, exec_lo 1265ef67664dSMatt Arsenault; GFX10_3-NEXT: v_add_nc_u32_e32 v22, 16, v22 1266ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readfirstlane_b32 s59, v22 1267ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMSTART 1268ef67664dSMatt Arsenault; GFX10_3-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc 1269ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMEND 1270ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s59, v21, 28 1271ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s58, v21, 27 1272ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s57, v21, 26 1273ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s56, v21, 25 1274ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s55, v21, 24 1275ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s54, v21, 23 1276ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s53, v21, 22 1277ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s52, v21, 21 1278ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s51, v21, 20 1279ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s50, v21, 19 1280ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s49, v21, 18 1281ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s48, v21, 17 1282ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s47, v21, 16 1283ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s46, v21, 15 1284ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s45, v21, 14 1285ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s44, v21, 13 1286ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s43, v21, 12 1287ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s42, v21, 11 1288ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s41, v21, 10 1289ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s40, v21, 9 1290ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s39, v21, 8 1291ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s38, v21, 7 1292ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s37, v21, 6 1293ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s36, v21, 5 1294ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s35, v21, 4 1295ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s34, v21, 3 1296ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s33, v21, 2 1297ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s31, v21, 1 1298ef67664dSMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s30, v21, 0 1299ef67664dSMatt Arsenault; GFX10_3-NEXT: s_xor_saveexec_b32 s4, -1 1300ef67664dSMatt Arsenault; GFX10_3-NEXT: s_add_i32 s5, s32, 0x80200 1301ef67664dSMatt Arsenault; GFX10_3-NEXT: buffer_load_dword v21, off, s[0:3], s5 ; 4-byte Folded Reload 1302ef67664dSMatt Arsenault; GFX10_3-NEXT: s_mov_b32 exec_lo, s4 1303ef67664dSMatt Arsenault; GFX10_3-NEXT: s_waitcnt vmcnt(0) 1304ef67664dSMatt Arsenault; GFX10_3-NEXT: s_setpc_b64 s[30:31] 1305ef67664dSMatt Arsenault; 1306ef67664dSMatt Arsenault; GFX11-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset: 1307ef67664dSMatt Arsenault; GFX11: ; %bb.0: 1308ef67664dSMatt Arsenault; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1309ef67664dSMatt Arsenault; GFX11-NEXT: s_xor_saveexec_b32 s0, -1 1310ef67664dSMatt Arsenault; GFX11-NEXT: s_add_i32 s1, s32, 0x4010 1311ef67664dSMatt Arsenault; GFX11-NEXT: scratch_store_b32 off, v21, s1 ; 4-byte Folded Spill 1312ef67664dSMatt Arsenault; GFX11-NEXT: s_mov_b32 exec_lo, s0 1313ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s30, 0 1314ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s31, 1 1315ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s33, 2 1316ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s34, 3 1317ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s35, 4 1318ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s36, 5 1319ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s37, 6 1320ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s38, 7 1321ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s39, 8 1322ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s40, 9 1323ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s41, 10 1324ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s42, 11 1325ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s43, 12 1326ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s44, 13 1327ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s45, 14 1328ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s46, 15 1329ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s47, 16 1330ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s48, 17 1331ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s49, 18 1332ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s50, 19 1333ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s51, 20 1334ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s52, 21 1335ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s53, 22 1336ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s54, 23 1337ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s55, 24 1338ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s56, 25 1339ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s57, 26 1340ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s58, 27 1341ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMSTART 1342ef67664dSMatt Arsenault; GFX11-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc 1343ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMEND 1344ef67664dSMatt Arsenault; GFX11-NEXT: v_writelane_b32 v21, s59, 28 1345ef67664dSMatt Arsenault; GFX11-NEXT: s_and_b32 s59, 0, exec_lo 1346ef67664dSMatt Arsenault; GFX11-NEXT: s_addc_u32 s32, s32, 16 1347ef67664dSMatt Arsenault; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1) 1348ef67664dSMatt Arsenault; GFX11-NEXT: s_bitcmp1_b32 s32, 0 1349ef67664dSMatt Arsenault; GFX11-NEXT: s_bitset0_b32 s32, 0 1350ef67664dSMatt Arsenault; GFX11-NEXT: s_mov_b32 s59, s32 1351ef67664dSMatt Arsenault; GFX11-NEXT: s_addc_u32 s32, s32, -16 1352ef67664dSMatt Arsenault; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) 1353ef67664dSMatt Arsenault; GFX11-NEXT: s_bitcmp1_b32 s32, 0 1354ef67664dSMatt Arsenault; GFX11-NEXT: s_bitset0_b32 s32, 0 1355ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMSTART 1356ef67664dSMatt Arsenault; GFX11-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc 1357ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMEND 1358ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s59, v21, 28 1359ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s58, v21, 27 1360ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s57, v21, 26 1361ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s56, v21, 25 1362ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s55, v21, 24 1363ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s54, v21, 23 1364ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s53, v21, 22 1365ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s52, v21, 21 1366ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s51, v21, 20 1367ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s50, v21, 19 1368ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s49, v21, 18 1369ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s48, v21, 17 1370ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s47, v21, 16 1371ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s46, v21, 15 1372ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s45, v21, 14 1373ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s44, v21, 13 1374ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s43, v21, 12 1375ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s42, v21, 11 1376ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s41, v21, 10 1377ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s40, v21, 9 1378ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s39, v21, 8 1379ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s38, v21, 7 1380ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s37, v21, 6 1381ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s36, v21, 5 1382ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s35, v21, 4 1383ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s34, v21, 3 1384ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s33, v21, 2 1385ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s31, v21, 1 1386ef67664dSMatt Arsenault; GFX11-NEXT: v_readlane_b32 s30, v21, 0 1387ef67664dSMatt Arsenault; GFX11-NEXT: s_xor_saveexec_b32 s0, -1 1388ef67664dSMatt Arsenault; GFX11-NEXT: s_add_i32 s1, s32, 0x4010 1389ef67664dSMatt Arsenault; GFX11-NEXT: scratch_load_b32 v21, off, s1 ; 4-byte Folded Reload 1390ef67664dSMatt Arsenault; GFX11-NEXT: s_mov_b32 exec_lo, s0 1391ef67664dSMatt Arsenault; GFX11-NEXT: s_waitcnt vmcnt(0) 1392ef67664dSMatt Arsenault; GFX11-NEXT: s_setpc_b64 s[30:31] 1393ef67664dSMatt Arsenault; 1394ef67664dSMatt Arsenault; GFX12-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs__lowest_offset: 1395ef67664dSMatt Arsenault; GFX12: ; %bb.0: 1396ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 1397ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_expcnt 0x0 1398ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_samplecnt 0x0 1399ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_bvhcnt 0x0 1400ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_kmcnt 0x0 1401ef67664dSMatt Arsenault; GFX12-NEXT: s_xor_saveexec_b32 s0, -1 1402ef67664dSMatt Arsenault; GFX12-NEXT: scratch_store_b32 off, v21, s32 offset:16384 ; 4-byte Folded Spill 140386627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 1404ef67664dSMatt Arsenault; GFX12-NEXT: s_mov_b32 exec_lo, s0 1405ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s30, 0 1406ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s31, 1 1407ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s33, 2 1408ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s34, 3 1409ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s35, 4 1410ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s36, 5 1411ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s37, 6 1412ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s38, 7 1413ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s39, 8 1414ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s40, 9 1415ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s41, 10 1416ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s42, 11 1417ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s43, 12 1418ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s44, 13 1419ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s45, 14 1420ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s46, 15 1421ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s47, 16 1422ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s48, 17 1423ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s49, 18 1424ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s50, 19 1425ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s51, 20 1426ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s52, 21 1427ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s53, 22 1428ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s54, 23 1429ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s55, 24 1430ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s56, 25 1431ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s57, 26 1432ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s58, 27 1433ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMSTART 1434ef67664dSMatt Arsenault; GFX12-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc 1435ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMEND 1436ef67664dSMatt Arsenault; GFX12-NEXT: v_writelane_b32 v21, s59, 28 1437ef67664dSMatt Arsenault; GFX12-NEXT: s_and_b32 s59, 0, exec_lo 1438ef67664dSMatt Arsenault; GFX12-NEXT: s_mov_b32 s59, s32 1439ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMSTART 1440ef67664dSMatt Arsenault; GFX12-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], s58, v[0:15], v[16:20], vcc, s59, scc 1441ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMEND 1442ef67664dSMatt Arsenault; GFX12-NEXT: s_delay_alu instid0(VALU_DEP_1) 1443ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s59, v21, 28 1444ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s58, v21, 27 1445ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s57, v21, 26 1446ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s56, v21, 25 1447ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s55, v21, 24 1448ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s54, v21, 23 1449ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s53, v21, 22 1450ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s52, v21, 21 1451ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s51, v21, 20 1452ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s50, v21, 19 1453ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s49, v21, 18 1454ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s48, v21, 17 1455ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s47, v21, 16 1456ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s46, v21, 15 1457ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s45, v21, 14 1458ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s44, v21, 13 1459ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s43, v21, 12 1460ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s42, v21, 11 1461ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s41, v21, 10 1462ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s40, v21, 9 1463ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s39, v21, 8 1464ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s38, v21, 7 1465ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s37, v21, 6 1466ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s36, v21, 5 1467ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s35, v21, 4 1468ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s34, v21, 3 1469ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s33, v21, 2 1470ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s31, v21, 1 1471ef67664dSMatt Arsenault; GFX12-NEXT: v_readlane_b32 s30, v21, 0 1472ef67664dSMatt Arsenault; GFX12-NEXT: s_xor_saveexec_b32 s0, -1 1473ef67664dSMatt Arsenault; GFX12-NEXT: scratch_load_b32 v21, off, s32 offset:16384 ; 4-byte Folded Reload 147486627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 1475ef67664dSMatt Arsenault; GFX12-NEXT: s_mov_b32 exec_lo, s0 1476ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_loadcnt 0x0 147786627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 1478ef67664dSMatt Arsenault; GFX12-NEXT: s_setpc_b64 s[30:31] 1479ef67664dSMatt Arsenault %alloca0 = alloca [4096 x i32], align 16, addrspace(5) 1480ef67664dSMatt Arsenault 1481ef67664dSMatt Arsenault ; Force no SGPRs to be available for the carry-out of the vector add. 1482ef67664dSMatt Arsenault %asm = call %asm.output2 asm sideeffect 1483ef67664dSMatt Arsenault "; def $0, $1, $2, $3, $4, $5, $6, $7, $8", 1484ef67664dSMatt Arsenault "={s[0:15]},={s[16:31]},={s[32:47]},={s[48:55]},={s[56:57]},={s58},={v[0:15]},={v[16:20]},={vcc}"() 1485ef67664dSMatt Arsenault 1486ef67664dSMatt Arsenault %s0 = extractvalue %asm.output2 %asm, 0 1487ef67664dSMatt Arsenault %s1 = extractvalue %asm.output2 %asm, 1 1488ef67664dSMatt Arsenault %s2 = extractvalue %asm.output2 %asm, 2 1489ef67664dSMatt Arsenault %s3 = extractvalue %asm.output2 %asm, 3 1490ef67664dSMatt Arsenault %s4 = extractvalue %asm.output2 %asm, 4 1491ef67664dSMatt Arsenault %s5 = extractvalue %asm.output2 %asm, 5 1492ef67664dSMatt Arsenault 1493ef67664dSMatt Arsenault %v0 = extractvalue %asm.output2 %asm, 6 1494ef67664dSMatt Arsenault %v1 = extractvalue %asm.output2 %asm, 7 1495ef67664dSMatt Arsenault 1496ef67664dSMatt Arsenault %vcc = extractvalue %asm.output2 %asm, 8 1497ef67664dSMatt Arsenault 1498ef67664dSMatt Arsenault ; scc is unavailable since it is live in 1499ef67664dSMatt Arsenault call void asm sideeffect "; use $0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10", 1500ef67664dSMatt Arsenault "{s[0:15]},{s[16:31]},{s[32:47]},{s[48:55]},{s[56:57]},{s58},{v[0:15]},{v[16:20]},{vcc},{s59},{scc}"( 1501ef67664dSMatt Arsenault <16 x i32> %s0, 1502ef67664dSMatt Arsenault <16 x i32> %s1, 1503ef67664dSMatt Arsenault <16 x i32> %s2, 1504ef67664dSMatt Arsenault <8 x i32> %s3, 1505ef67664dSMatt Arsenault <2 x i32> %s4, 1506ef67664dSMatt Arsenault i32 %s5, 1507ef67664dSMatt Arsenault <16 x i32> %v0, 1508ef67664dSMatt Arsenault <5 x i32> %v1, 1509ef67664dSMatt Arsenault i64 %vcc, 1510ef67664dSMatt Arsenault ptr addrspace(5) %alloca0, 1511ef67664dSMatt Arsenault i32 0) ; use of scc 1512ef67664dSMatt Arsenault 1513ef67664dSMatt Arsenault ret void 1514ef67664dSMatt Arsenault} 1515ef67664dSMatt Arsenault 1516ef67664dSMatt Arsenault; This case isn't using SGPRs yet. 1517ef67664dSMatt Arsenault; FIXME: Should also use one more VGPR, but currently fails to allocate on gfx8. 1518ef67664dSMatt Arsenaultdefine void @scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset() #0 { 1519ef67664dSMatt Arsenault; GFX7-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset: 1520ef67664dSMatt Arsenault; GFX7: ; %bb.0: 1521ef67664dSMatt Arsenault; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1522ef67664dSMatt Arsenault; GFX7-NEXT: s_xor_saveexec_b64 s[4:5], -1 15231bf385f1SMatt Arsenault; GFX7-NEXT: s_add_i32 s6, s32, 0x201000 1524ef67664dSMatt Arsenault; GFX7-NEXT: buffer_store_dword v23, off, s[0:3], s6 ; 4-byte Folded Spill 15251bf385f1SMatt Arsenault; GFX7-NEXT: s_add_i32 s6, s32, 0x201100 1526ef67664dSMatt Arsenault; GFX7-NEXT: buffer_store_dword v22, off, s[0:3], s6 ; 4-byte Folded Spill 1527ef67664dSMatt Arsenault; GFX7-NEXT: s_mov_b64 exec, s[4:5] 1528ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s28, 28 1529ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s29, 29 1530ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s30, 0 1531ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s31, 1 1532ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s33, 2 1533ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s34, 3 1534ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s35, 4 1535ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s36, 5 1536ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s37, 6 1537ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s38, 7 1538ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s39, 8 1539ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s40, 9 1540ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s41, 10 1541ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s42, 11 1542ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s43, 12 1543ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s44, 13 1544ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s45, 14 1545ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s46, 15 1546ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s47, 16 1547ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s48, 17 1548ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s49, 18 1549ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s50, 19 1550ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s51, 20 1551ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s52, 21 1552ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s53, 22 1553ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s54, 23 1554ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s55, 24 15551bf385f1SMatt Arsenault; GFX7-NEXT: s_lshr_b32 s5, s32, 6 1556ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s56, 25 15571bf385f1SMatt Arsenault; GFX7-NEXT: v_lshr_b32_e64 v0, s32, 6 15581bf385f1SMatt Arsenault; GFX7-NEXT: s_add_i32 s4, s5, 0x4240 15591bf385f1SMatt Arsenault; GFX7-NEXT: ; implicit-def: $vgpr22 : SGPR spill to VGPR lane 1560ef67664dSMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s57, 26 15611bf385f1SMatt Arsenault; GFX7-NEXT: v_add_i32_e32 v0, vcc, 64, v0 15621bf385f1SMatt Arsenault; GFX7-NEXT: v_writelane_b32 v22, s4, 0 15631bf385f1SMatt Arsenault; GFX7-NEXT: s_and_b64 s[4:5], 0, exec 15641bf385f1SMatt Arsenault; GFX7-NEXT: v_writelane_b32 v23, s59, 27 1565ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMSTART 1566ef67664dSMatt Arsenault; GFX7-NEXT: ; use alloca0 v0 1567ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMEND 1568ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMSTART 1569ef67664dSMatt Arsenault; GFX7-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc 1570ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMEND 15711bf385f1SMatt Arsenault; GFX7-NEXT: v_readlane_b32 s59, v22, 0 1572ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMSTART 1573ef67664dSMatt Arsenault; GFX7-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc 1574ef67664dSMatt Arsenault; GFX7-NEXT: ;;#ASMEND 1575ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s59, v23, 27 1576ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s57, v23, 26 1577ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s56, v23, 25 1578ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s55, v23, 24 1579ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s54, v23, 23 1580ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s53, v23, 22 1581ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s52, v23, 21 1582ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s51, v23, 20 1583ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s50, v23, 19 1584ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s49, v23, 18 1585ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s48, v23, 17 1586ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s47, v23, 16 1587ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s46, v23, 15 1588ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s45, v23, 14 1589ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s44, v23, 13 1590ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s43, v23, 12 1591ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s42, v23, 11 1592ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s41, v23, 10 1593ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s40, v23, 9 1594ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s39, v23, 8 1595ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s38, v23, 7 1596ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s37, v23, 6 1597ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s36, v23, 5 1598ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s35, v23, 4 1599ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s34, v23, 3 1600ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s33, v23, 2 1601ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s31, v23, 1 1602ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s30, v23, 0 1603ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s28, v23, 28 1604ef67664dSMatt Arsenault; GFX7-NEXT: v_readlane_b32 s29, v23, 29 1605ef67664dSMatt Arsenault; GFX7-NEXT: s_xor_saveexec_b64 s[4:5], -1 16061bf385f1SMatt Arsenault; GFX7-NEXT: s_add_i32 s6, s32, 0x201000 1607ef67664dSMatt Arsenault; GFX7-NEXT: buffer_load_dword v23, off, s[0:3], s6 ; 4-byte Folded Reload 16081bf385f1SMatt Arsenault; GFX7-NEXT: s_add_i32 s6, s32, 0x201100 1609ef67664dSMatt Arsenault; GFX7-NEXT: buffer_load_dword v22, off, s[0:3], s6 ; 4-byte Folded Reload 1610ef67664dSMatt Arsenault; GFX7-NEXT: s_mov_b64 exec, s[4:5] 1611ef67664dSMatt Arsenault; GFX7-NEXT: s_waitcnt vmcnt(0) 1612ef67664dSMatt Arsenault; GFX7-NEXT: s_setpc_b64 s[30:31] 1613ef67664dSMatt Arsenault; 1614ef67664dSMatt Arsenault; GFX8-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset: 1615ef67664dSMatt Arsenault; GFX8: ; %bb.0: 1616ef67664dSMatt Arsenault; GFX8-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1617ef67664dSMatt Arsenault; GFX8-NEXT: s_xor_saveexec_b64 s[4:5], -1 16181bf385f1SMatt Arsenault; GFX8-NEXT: s_add_i32 s6, s32, 0x201000 1619ef67664dSMatt Arsenault; GFX8-NEXT: buffer_store_dword v22, off, s[0:3], s6 ; 4-byte Folded Spill 1620ef67664dSMatt Arsenault; GFX8-NEXT: s_mov_b64 exec, s[4:5] 16211bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s30, 0 16221bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s31, 1 16231bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s33, 2 16241bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s34, 3 16251bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s35, 4 16261bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s36, 5 16271bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s37, 6 16281bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s38, 7 16291bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s39, 8 16301bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s40, 9 16311bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s41, 10 16321bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s42, 11 16331bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s43, 12 16341bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s44, 13 16351bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s45, 14 16361bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s46, 15 16371bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s47, 16 16381bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s48, 17 16391bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s49, 18 16401bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s50, 19 16411bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s51, 20 16421bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s52, 21 16431bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s53, 22 16441bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s54, 23 16451bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s55, 24 16461bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s56, 25 16471bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s57, 26 16481bf385f1SMatt Arsenault; GFX8-NEXT: s_lshr_b32 s4, s32, 6 16491bf385f1SMatt Arsenault; GFX8-NEXT: v_writelane_b32 v22, s59, 27 1650ef67664dSMatt Arsenault; GFX8-NEXT: v_lshrrev_b32_e64 v0, 6, s32 16511bf385f1SMatt Arsenault; GFX8-NEXT: s_add_i32 s59, s4, 0x4240 1652ef67664dSMatt Arsenault; GFX8-NEXT: v_add_u32_e32 v0, vcc, 64, v0 16531bf385f1SMatt Arsenault; GFX8-NEXT: s_and_b64 s[4:5], 0, exec 1654ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMSTART 1655ef67664dSMatt Arsenault; GFX8-NEXT: ; use alloca0 v0 1656ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMEND 1657ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMSTART 1658ef67664dSMatt Arsenault; GFX8-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc 1659ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMEND 1660ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMSTART 1661ef67664dSMatt Arsenault; GFX8-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc 1662ef67664dSMatt Arsenault; GFX8-NEXT: ;;#ASMEND 16631bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s59, v22, 27 16641bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s57, v22, 26 16651bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s56, v22, 25 16661bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s55, v22, 24 16671bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s54, v22, 23 16681bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s53, v22, 22 16691bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s52, v22, 21 16701bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s51, v22, 20 16711bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s50, v22, 19 16721bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s49, v22, 18 16731bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s48, v22, 17 16741bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s47, v22, 16 16751bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s46, v22, 15 16761bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s45, v22, 14 16771bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s44, v22, 13 16781bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s43, v22, 12 16791bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s42, v22, 11 16801bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s41, v22, 10 16811bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s40, v22, 9 16821bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s39, v22, 8 16831bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s38, v22, 7 16841bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s37, v22, 6 16851bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s36, v22, 5 16861bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s35, v22, 4 16871bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s34, v22, 3 16881bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s33, v22, 2 16891bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s31, v22, 1 16901bf385f1SMatt Arsenault; GFX8-NEXT: v_readlane_b32 s30, v22, 0 1691ef67664dSMatt Arsenault; GFX8-NEXT: s_xor_saveexec_b64 s[4:5], -1 16921bf385f1SMatt Arsenault; GFX8-NEXT: s_add_i32 s6, s32, 0x201000 1693ef67664dSMatt Arsenault; GFX8-NEXT: buffer_load_dword v22, off, s[0:3], s6 ; 4-byte Folded Reload 1694ef67664dSMatt Arsenault; GFX8-NEXT: s_mov_b64 exec, s[4:5] 1695ef67664dSMatt Arsenault; GFX8-NEXT: s_waitcnt vmcnt(0) 1696ef67664dSMatt Arsenault; GFX8-NEXT: s_setpc_b64 s[30:31] 1697ef67664dSMatt Arsenault; 1698ef67664dSMatt Arsenault; GFX900-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset: 1699ef67664dSMatt Arsenault; GFX900: ; %bb.0: 1700ef67664dSMatt Arsenault; GFX900-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1701ef67664dSMatt Arsenault; GFX900-NEXT: s_xor_saveexec_b64 s[4:5], -1 1702ef67664dSMatt Arsenault; GFX900-NEXT: s_add_i32 s6, s32, 0x201000 1703ef67664dSMatt Arsenault; GFX900-NEXT: buffer_store_dword v22, off, s[0:3], s6 ; 4-byte Folded Spill 1704ef67664dSMatt Arsenault; GFX900-NEXT: s_mov_b64 exec, s[4:5] 1705ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s30, 0 1706ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s31, 1 1707ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s33, 2 1708ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s34, 3 1709ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s35, 4 1710ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s36, 5 1711ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s37, 6 1712ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s38, 7 1713ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s39, 8 1714ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s40, 9 1715ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s41, 10 1716ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s42, 11 1717ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s43, 12 1718ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s44, 13 1719ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s45, 14 1720ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s46, 15 1721ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s47, 16 1722ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s48, 17 1723ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s49, 18 1724ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s50, 19 1725ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s51, 20 1726ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s52, 21 1727ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s53, 22 1728ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s54, 23 1729ef67664dSMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s55, 24 17301bf385f1SMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s56, 25 17311bf385f1SMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s57, 26 17321bf385f1SMatt Arsenault; GFX900-NEXT: s_lshr_b32 s4, s32, 6 17331bf385f1SMatt Arsenault; GFX900-NEXT: v_writelane_b32 v22, s59, 27 17341bf385f1SMatt Arsenault; GFX900-NEXT: v_lshrrev_b32_e64 v0, 6, s32 17351bf385f1SMatt Arsenault; GFX900-NEXT: s_add_i32 s59, s4, 0x4240 17361bf385f1SMatt Arsenault; GFX900-NEXT: v_add_u32_e32 v0, 64, v0 17371bf385f1SMatt Arsenault; GFX900-NEXT: s_and_b64 s[4:5], 0, exec 1738ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMSTART 1739ef67664dSMatt Arsenault; GFX900-NEXT: ; use alloca0 v0 1740ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMEND 1741ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMSTART 1742ef67664dSMatt Arsenault; GFX900-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc 1743ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMEND 1744ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMSTART 1745ef67664dSMatt Arsenault; GFX900-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc 1746ef67664dSMatt Arsenault; GFX900-NEXT: ;;#ASMEND 1747ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s59, v22, 27 1748ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s57, v22, 26 1749ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s56, v22, 25 1750ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s55, v22, 24 1751ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s54, v22, 23 1752ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s53, v22, 22 1753ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s52, v22, 21 1754ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s51, v22, 20 1755ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s50, v22, 19 1756ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s49, v22, 18 1757ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s48, v22, 17 1758ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s47, v22, 16 1759ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s46, v22, 15 1760ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s45, v22, 14 1761ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s44, v22, 13 1762ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s43, v22, 12 1763ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s42, v22, 11 1764ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s41, v22, 10 1765ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s40, v22, 9 1766ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s39, v22, 8 1767ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s38, v22, 7 1768ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s37, v22, 6 1769ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s36, v22, 5 1770ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s35, v22, 4 1771ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s34, v22, 3 1772ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s33, v22, 2 1773ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s31, v22, 1 1774ef67664dSMatt Arsenault; GFX900-NEXT: v_readlane_b32 s30, v22, 0 1775ef67664dSMatt Arsenault; GFX900-NEXT: s_xor_saveexec_b64 s[4:5], -1 1776ef67664dSMatt Arsenault; GFX900-NEXT: s_add_i32 s6, s32, 0x201000 1777ef67664dSMatt Arsenault; GFX900-NEXT: buffer_load_dword v22, off, s[0:3], s6 ; 4-byte Folded Reload 1778ef67664dSMatt Arsenault; GFX900-NEXT: s_mov_b64 exec, s[4:5] 1779ef67664dSMatt Arsenault; GFX900-NEXT: s_waitcnt vmcnt(0) 1780ef67664dSMatt Arsenault; GFX900-NEXT: s_setpc_b64 s[30:31] 1781ef67664dSMatt Arsenault; 1782ef67664dSMatt Arsenault; GFX940-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset: 1783ef67664dSMatt Arsenault; GFX940: ; %bb.0: 1784ef67664dSMatt Arsenault; GFX940-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1785ef67664dSMatt Arsenault; GFX940-NEXT: s_xor_saveexec_b64 s[0:1], -1 1786ef67664dSMatt Arsenault; GFX940-NEXT: s_add_i32 s2, s32, 0x8040 17871bf385f1SMatt Arsenault; GFX940-NEXT: scratch_store_dword off, v22, s2 sc0 sc1 ; 4-byte Folded Spill 1788ef67664dSMatt Arsenault; GFX940-NEXT: s_mov_b64 exec, s[0:1] 17891bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s30, 0 17901bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s31, 1 17911bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s33, 2 17921bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s34, 3 17931bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s35, 4 17941bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s36, 5 17951bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s37, 6 17961bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s38, 7 17971bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s39, 8 17981bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s40, 9 17991bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s41, 10 18001bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s42, 11 18011bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s43, 12 18021bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s44, 13 18031bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s45, 14 18041bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s46, 15 18051bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s47, 16 18061bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s48, 17 18071bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s49, 18 18081bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s50, 19 18091bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s51, 20 18101bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s52, 21 18111bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s53, 22 18121bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s54, 23 18131bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s55, 24 18141bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s56, 25 18151bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s57, 26 1816ef67664dSMatt Arsenault; GFX940-NEXT: s_add_i32 s0, s32, 64 18171bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s59, 27 1818ef67664dSMatt Arsenault; GFX940-NEXT: v_mov_b32_e32 v0, s0 18191bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s60, 28 1820ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMSTART 1821ef67664dSMatt Arsenault; GFX940-NEXT: ; use alloca0 v0 1822ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMEND 1823ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMSTART 1824ef67664dSMatt Arsenault; GFX940-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc 1825ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMEND 18261bf385f1SMatt Arsenault; GFX940-NEXT: s_add_i32 s59, s32, 0x4240 18271bf385f1SMatt Arsenault; GFX940-NEXT: v_writelane_b32 v22, s61, 29 1828ef67664dSMatt Arsenault; GFX940-NEXT: s_and_b64 s[60:61], 0, exec 1829ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMSTART 1830ef67664dSMatt Arsenault; GFX940-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc 1831ef67664dSMatt Arsenault; GFX940-NEXT: ;;#ASMEND 18321bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s61, v22, 29 18331bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s60, v22, 28 18341bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s59, v22, 27 18351bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s57, v22, 26 18361bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s56, v22, 25 18371bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s55, v22, 24 18381bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s54, v22, 23 18391bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s53, v22, 22 18401bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s52, v22, 21 18411bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s51, v22, 20 18421bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s50, v22, 19 18431bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s49, v22, 18 18441bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s48, v22, 17 18451bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s47, v22, 16 18461bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s46, v22, 15 18471bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s45, v22, 14 18481bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s44, v22, 13 18491bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s43, v22, 12 18501bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s42, v22, 11 18511bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s41, v22, 10 18521bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s40, v22, 9 18531bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s39, v22, 8 18541bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s38, v22, 7 18551bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s37, v22, 6 18561bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s36, v22, 5 18571bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s35, v22, 4 18581bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s34, v22, 3 18591bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s33, v22, 2 18601bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s31, v22, 1 18611bf385f1SMatt Arsenault; GFX940-NEXT: v_readlane_b32 s30, v22, 0 1862ef67664dSMatt Arsenault; GFX940-NEXT: s_xor_saveexec_b64 s[0:1], -1 1863ef67664dSMatt Arsenault; GFX940-NEXT: s_add_i32 s2, s32, 0x8040 18641bf385f1SMatt Arsenault; GFX940-NEXT: scratch_load_dword v22, off, s2 ; 4-byte Folded Reload 1865ef67664dSMatt Arsenault; GFX940-NEXT: s_mov_b64 exec, s[0:1] 1866ef67664dSMatt Arsenault; GFX940-NEXT: s_waitcnt vmcnt(0) 1867ef67664dSMatt Arsenault; GFX940-NEXT: s_setpc_b64 s[30:31] 1868ef67664dSMatt Arsenault; 1869ef67664dSMatt Arsenault; GFX10_1-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset: 1870ef67664dSMatt Arsenault; GFX10_1: ; %bb.0: 1871ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1872ef67664dSMatt Arsenault; GFX10_1-NEXT: s_xor_saveexec_b32 s4, -1 1873ef67664dSMatt Arsenault; GFX10_1-NEXT: s_add_i32 s5, s32, 0x100800 18741bf385f1SMatt Arsenault; GFX10_1-NEXT: buffer_store_dword v22, off, s[0:3], s5 ; 4-byte Folded Spill 1875ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt_depctr 0xffe3 1876ef67664dSMatt Arsenault; GFX10_1-NEXT: s_mov_b32 exec_lo, s4 18771bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s30, 0 1878ef91cd3fSMatt Arsenault; GFX10_1-NEXT: v_lshrrev_b32_e64 v0, 5, s32 18791bf385f1SMatt Arsenault; GFX10_1-NEXT: s_lshr_b32 s4, s32, 5 18801bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s31, 1 1881ef91cd3fSMatt Arsenault; GFX10_1-NEXT: v_add_nc_u32_e32 v0, 64, v0 1882ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMSTART 1883ef91cd3fSMatt Arsenault; GFX10_1-NEXT: ; use alloca0 v0 1884ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMEND 18851bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s33, 2 18861bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s34, 3 18871bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s35, 4 18881bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s36, 5 18891bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s37, 6 18901bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s38, 7 18911bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s39, 8 18921bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s40, 9 18931bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s41, 10 18941bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s42, 11 18951bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s43, 12 18961bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s44, 13 18971bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s45, 14 18981bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s46, 15 18991bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s47, 16 19001bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s48, 17 19011bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s49, 18 19021bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s50, 19 19031bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s51, 20 19041bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s52, 21 19051bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s53, 22 19061bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s54, 23 19071bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s55, 24 19081bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s56, 25 19091bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s57, 26 19101bf385f1SMatt Arsenault; GFX10_1-NEXT: v_writelane_b32 v22, s59, 27 19111bf385f1SMatt Arsenault; GFX10_1-NEXT: s_add_i32 s59, s4, 0x4240 19121bf385f1SMatt Arsenault; GFX10_1-NEXT: s_and_b32 s4, 0, exec_lo 1913ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMSTART 1914ef67664dSMatt Arsenault; GFX10_1-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc 1915ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMEND 1916ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMSTART 1917ef67664dSMatt Arsenault; GFX10_1-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc 1918ef67664dSMatt Arsenault; GFX10_1-NEXT: ;;#ASMEND 19191bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s59, v22, 27 19201bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s57, v22, 26 19211bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s56, v22, 25 19221bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s55, v22, 24 19231bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s54, v22, 23 19241bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s53, v22, 22 19251bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s52, v22, 21 19261bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s51, v22, 20 19271bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s50, v22, 19 19281bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s49, v22, 18 19291bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s48, v22, 17 19301bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s47, v22, 16 19311bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s46, v22, 15 19321bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s45, v22, 14 19331bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s44, v22, 13 19341bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s43, v22, 12 19351bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s42, v22, 11 19361bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s41, v22, 10 19371bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s40, v22, 9 19381bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s39, v22, 8 19391bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s38, v22, 7 19401bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s37, v22, 6 19411bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s36, v22, 5 19421bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s35, v22, 4 19431bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s34, v22, 3 19441bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s33, v22, 2 19451bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s31, v22, 1 19461bf385f1SMatt Arsenault; GFX10_1-NEXT: v_readlane_b32 s30, v22, 0 1947ef67664dSMatt Arsenault; GFX10_1-NEXT: s_xor_saveexec_b32 s4, -1 1948ef67664dSMatt Arsenault; GFX10_1-NEXT: s_add_i32 s5, s32, 0x100800 19491bf385f1SMatt Arsenault; GFX10_1-NEXT: buffer_load_dword v22, off, s[0:3], s5 ; 4-byte Folded Reload 1950ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt_depctr 0xffe3 1951ef67664dSMatt Arsenault; GFX10_1-NEXT: s_mov_b32 exec_lo, s4 1952ef67664dSMatt Arsenault; GFX10_1-NEXT: s_waitcnt vmcnt(0) 1953ef67664dSMatt Arsenault; GFX10_1-NEXT: s_setpc_b64 s[30:31] 1954ef67664dSMatt Arsenault; 1955ef67664dSMatt Arsenault; GFX10_3-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset: 1956ef67664dSMatt Arsenault; GFX10_3: ; %bb.0: 1957ef67664dSMatt Arsenault; GFX10_3-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 1958ef67664dSMatt Arsenault; GFX10_3-NEXT: s_xor_saveexec_b32 s4, -1 1959ef67664dSMatt Arsenault; GFX10_3-NEXT: s_add_i32 s5, s32, 0x100800 19601bf385f1SMatt Arsenault; GFX10_3-NEXT: buffer_store_dword v22, off, s[0:3], s5 ; 4-byte Folded Spill 1961ef67664dSMatt Arsenault; GFX10_3-NEXT: s_mov_b32 exec_lo, s4 19621bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s30, 0 1963ef91cd3fSMatt Arsenault; GFX10_3-NEXT: v_lshrrev_b32_e64 v0, 5, s32 19641bf385f1SMatt Arsenault; GFX10_3-NEXT: s_lshr_b32 s4, s32, 5 19651bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s31, 1 1966ef91cd3fSMatt Arsenault; GFX10_3-NEXT: v_add_nc_u32_e32 v0, 64, v0 1967ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMSTART 1968ef91cd3fSMatt Arsenault; GFX10_3-NEXT: ; use alloca0 v0 1969ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMEND 19701bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s33, 2 19711bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s34, 3 19721bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s35, 4 19731bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s36, 5 19741bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s37, 6 19751bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s38, 7 19761bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s39, 8 19771bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s40, 9 19781bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s41, 10 19791bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s42, 11 19801bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s43, 12 19811bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s44, 13 19821bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s45, 14 19831bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s46, 15 19841bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s47, 16 19851bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s48, 17 19861bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s49, 18 19871bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s50, 19 19881bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s51, 20 19891bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s52, 21 19901bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s53, 22 19911bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s54, 23 19921bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s55, 24 19931bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s56, 25 19941bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s57, 26 19951bf385f1SMatt Arsenault; GFX10_3-NEXT: v_writelane_b32 v22, s59, 27 19961bf385f1SMatt Arsenault; GFX10_3-NEXT: s_add_i32 s59, s4, 0x4240 19971bf385f1SMatt Arsenault; GFX10_3-NEXT: s_and_b32 s4, 0, exec_lo 1998ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMSTART 1999ef67664dSMatt Arsenault; GFX10_3-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc 2000ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMEND 2001ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMSTART 2002ef67664dSMatt Arsenault; GFX10_3-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc 2003ef67664dSMatt Arsenault; GFX10_3-NEXT: ;;#ASMEND 20041bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s59, v22, 27 20051bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s57, v22, 26 20061bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s56, v22, 25 20071bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s55, v22, 24 20081bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s54, v22, 23 20091bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s53, v22, 22 20101bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s52, v22, 21 20111bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s51, v22, 20 20121bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s50, v22, 19 20131bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s49, v22, 18 20141bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s48, v22, 17 20151bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s47, v22, 16 20161bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s46, v22, 15 20171bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s45, v22, 14 20181bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s44, v22, 13 20191bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s43, v22, 12 20201bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s42, v22, 11 20211bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s41, v22, 10 20221bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s40, v22, 9 20231bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s39, v22, 8 20241bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s38, v22, 7 20251bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s37, v22, 6 20261bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s36, v22, 5 20271bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s35, v22, 4 20281bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s34, v22, 3 20291bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s33, v22, 2 20301bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s31, v22, 1 20311bf385f1SMatt Arsenault; GFX10_3-NEXT: v_readlane_b32 s30, v22, 0 2032ef67664dSMatt Arsenault; GFX10_3-NEXT: s_xor_saveexec_b32 s4, -1 2033ef67664dSMatt Arsenault; GFX10_3-NEXT: s_add_i32 s5, s32, 0x100800 20341bf385f1SMatt Arsenault; GFX10_3-NEXT: buffer_load_dword v22, off, s[0:3], s5 ; 4-byte Folded Reload 2035ef67664dSMatt Arsenault; GFX10_3-NEXT: s_mov_b32 exec_lo, s4 2036ef67664dSMatt Arsenault; GFX10_3-NEXT: s_waitcnt vmcnt(0) 2037ef67664dSMatt Arsenault; GFX10_3-NEXT: s_setpc_b64 s[30:31] 2038ef67664dSMatt Arsenault; 2039ef67664dSMatt Arsenault; GFX11-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset: 2040ef67664dSMatt Arsenault; GFX11: ; %bb.0: 2041ef67664dSMatt Arsenault; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 2042ef67664dSMatt Arsenault; GFX11-NEXT: s_xor_saveexec_b32 s0, -1 2043ef67664dSMatt Arsenault; GFX11-NEXT: s_add_i32 s1, s32, 0x8040 20441bf385f1SMatt Arsenault; GFX11-NEXT: scratch_store_b32 off, v22, s1 ; 4-byte Folded Spill 2045ef67664dSMatt Arsenault; GFX11-NEXT: s_mov_b32 exec_lo, s0 20461bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s30, 0 2047ef67664dSMatt Arsenault; GFX11-NEXT: s_add_i32 s0, s32, 64 20481bf385f1SMatt Arsenault; GFX11-NEXT: s_delay_alu instid0(SALU_CYCLE_1) 20491bf385f1SMatt Arsenault; GFX11-NEXT: v_mov_b32_e32 v0, s0 2050ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMSTART 2051ef91cd3fSMatt Arsenault; GFX11-NEXT: ; use alloca0 v0 2052ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMEND 20531bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s31, 1 20541bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s33, 2 20551bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s34, 3 20561bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s35, 4 20571bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s36, 5 20581bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s37, 6 20591bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s38, 7 20601bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s39, 8 20611bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s40, 9 20621bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s41, 10 20631bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s42, 11 20641bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s43, 12 20651bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s44, 13 20661bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s45, 14 20671bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s46, 15 20681bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s47, 16 20691bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s48, 17 20701bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s49, 18 20711bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s50, 19 20721bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s51, 20 20731bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s52, 21 20741bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s53, 22 20751bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s54, 23 20761bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s55, 24 20771bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s56, 25 20781bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s57, 26 20791bf385f1SMatt Arsenault; GFX11-NEXT: v_writelane_b32 v22, s59, 27 20801bf385f1SMatt Arsenault; GFX11-NEXT: s_add_i32 s59, s32, 0x4240 20811bf385f1SMatt Arsenault; GFX11-NEXT: s_and_b32 s0, 0, exec_lo 2082ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMSTART 2083ef67664dSMatt Arsenault; GFX11-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc 2084ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMEND 2085ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMSTART 2086ef67664dSMatt Arsenault; GFX11-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc 2087ef67664dSMatt Arsenault; GFX11-NEXT: ;;#ASMEND 20881bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s59, v22, 27 20891bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s57, v22, 26 20901bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s56, v22, 25 20911bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s55, v22, 24 20921bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s54, v22, 23 20931bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s53, v22, 22 20941bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s52, v22, 21 20951bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s51, v22, 20 20961bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s50, v22, 19 20971bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s49, v22, 18 20981bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s48, v22, 17 20991bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s47, v22, 16 21001bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s46, v22, 15 21011bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s45, v22, 14 21021bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s44, v22, 13 21031bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s43, v22, 12 21041bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s42, v22, 11 21051bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s41, v22, 10 21061bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s40, v22, 9 21071bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s39, v22, 8 21081bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s38, v22, 7 21091bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s37, v22, 6 21101bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s36, v22, 5 21111bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s35, v22, 4 21121bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s34, v22, 3 21131bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s33, v22, 2 21141bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s31, v22, 1 21151bf385f1SMatt Arsenault; GFX11-NEXT: v_readlane_b32 s30, v22, 0 2116ef67664dSMatt Arsenault; GFX11-NEXT: s_xor_saveexec_b32 s0, -1 2117ef67664dSMatt Arsenault; GFX11-NEXT: s_add_i32 s1, s32, 0x8040 21181bf385f1SMatt Arsenault; GFX11-NEXT: scratch_load_b32 v22, off, s1 ; 4-byte Folded Reload 2119ef67664dSMatt Arsenault; GFX11-NEXT: s_mov_b32 exec_lo, s0 2120ef67664dSMatt Arsenault; GFX11-NEXT: s_waitcnt vmcnt(0) 2121ef67664dSMatt Arsenault; GFX11-NEXT: s_setpc_b64 s[30:31] 2122ef67664dSMatt Arsenault; 2123ef67664dSMatt Arsenault; GFX12-LABEL: scalar_mov_materializes_frame_index_no_live_scc_no_live_sgprs_gep_immoffset: 2124ef67664dSMatt Arsenault; GFX12: ; %bb.0: 2125ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_loadcnt_dscnt 0x0 2126ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_expcnt 0x0 2127ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_samplecnt 0x0 2128ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_bvhcnt 0x0 2129ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_kmcnt 0x0 2130ef67664dSMatt Arsenault; GFX12-NEXT: s_xor_saveexec_b32 s0, -1 21311bf385f1SMatt Arsenault; GFX12-NEXT: scratch_store_b32 off, v22, s32 offset:32768 ; 4-byte Folded Spill 213286627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 2133ef67664dSMatt Arsenault; GFX12-NEXT: s_mov_b32 exec_lo, s0 21341bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s30, 0 21351bf385f1SMatt Arsenault; GFX12-NEXT: v_mov_b32_e32 v0, s32 2136ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMSTART 2137ef91cd3fSMatt Arsenault; GFX12-NEXT: ; use alloca0 v0 2138ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMEND 21391bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s31, 1 21401bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s33, 2 21411bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s34, 3 21421bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s35, 4 21431bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s36, 5 21441bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s37, 6 21451bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s38, 7 21461bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s39, 8 21471bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s40, 9 21481bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s41, 10 21491bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s42, 11 21501bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s43, 12 21511bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s44, 13 21521bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s45, 14 21531bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s46, 15 21541bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s47, 16 21551bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s48, 17 21561bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s49, 18 21571bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s50, 19 21581bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s51, 20 21591bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s52, 21 21601bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s53, 22 21611bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s54, 23 21621bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s55, 24 21631bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s56, 25 21641bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s57, 26 21651bf385f1SMatt Arsenault; GFX12-NEXT: v_writelane_b32 v22, s59, 27 21661bf385f1SMatt Arsenault; GFX12-NEXT: s_add_co_i32 s59, s32, 0x4200 21671bf385f1SMatt Arsenault; GFX12-NEXT: s_and_b32 s0, 0, exec_lo 2168ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMSTART 2169ef67664dSMatt Arsenault; GFX12-NEXT: ; def s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc 2170ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMEND 2171ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMSTART 2172ef67664dSMatt Arsenault; GFX12-NEXT: ; use s[0:15], s[16:31], s[32:47], s[48:55], s[56:57], v[0:15], v[16:21], vcc, s59, scc 2173ef67664dSMatt Arsenault; GFX12-NEXT: ;;#ASMEND 21741bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s59, v22, 27 21751bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s57, v22, 26 21761bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s56, v22, 25 21771bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s55, v22, 24 21781bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s54, v22, 23 21791bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s53, v22, 22 21801bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s52, v22, 21 21811bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s51, v22, 20 21821bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s50, v22, 19 21831bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s49, v22, 18 21841bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s48, v22, 17 21851bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s47, v22, 16 21861bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s46, v22, 15 21871bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s45, v22, 14 21881bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s44, v22, 13 21891bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s43, v22, 12 21901bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s42, v22, 11 21911bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s41, v22, 10 21921bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s40, v22, 9 21931bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s39, v22, 8 21941bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s38, v22, 7 21951bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s37, v22, 6 21961bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s36, v22, 5 21971bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s35, v22, 4 21981bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s34, v22, 3 21991bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s33, v22, 2 22001bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s31, v22, 1 22011bf385f1SMatt Arsenault; GFX12-NEXT: v_readlane_b32 s30, v22, 0 2202ef67664dSMatt Arsenault; GFX12-NEXT: s_xor_saveexec_b32 s0, -1 22031bf385f1SMatt Arsenault; GFX12-NEXT: scratch_load_b32 v22, off, s32 offset:32768 ; 4-byte Folded Reload 220486627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 2205ef67664dSMatt Arsenault; GFX12-NEXT: s_mov_b32 exec_lo, s0 2206ef67664dSMatt Arsenault; GFX12-NEXT: s_wait_loadcnt 0x0 220786627149SCarl Ritson; GFX12-NEXT: s_wait_alu 0xfffe 2208ef67664dSMatt Arsenault; GFX12-NEXT: s_setpc_b64 s[30:31] 2209ef67664dSMatt Arsenault %alloca0 = alloca [4096 x i32], align 64, addrspace(5) 2210ef67664dSMatt Arsenault %alloca1 = alloca [4096 x i32], align 4, addrspace(5) 2211ef67664dSMatt Arsenault call void asm sideeffect "; use alloca0 $0", "v"(ptr addrspace(5) %alloca0) 2212ef67664dSMatt Arsenault 2213ef67664dSMatt Arsenault ; Force no SGPRs to be available for the carry-out of the vector add. 2214ef67664dSMatt Arsenault %asm = call %asm.output3 asm sideeffect 2215ef67664dSMatt Arsenault "; def $0, $1, $2, $3, $4, $5, $6, $7", 2216ef67664dSMatt Arsenault "={s[0:15]},={s[16:31]},={s[32:47]},={s[48:55]},={s[56:57]},={v[0:15]},={v[16:21]},={vcc}"() 2217ef67664dSMatt Arsenault 2218ef67664dSMatt Arsenault %s0 = extractvalue %asm.output3 %asm, 0 2219ef67664dSMatt Arsenault %s1 = extractvalue %asm.output3 %asm, 1 2220ef67664dSMatt Arsenault %s2 = extractvalue %asm.output3 %asm, 2 2221ef67664dSMatt Arsenault %s3 = extractvalue %asm.output3 %asm, 3 2222ef67664dSMatt Arsenault %s4 = extractvalue %asm.output3 %asm, 4 2223ef67664dSMatt Arsenault 2224ef67664dSMatt Arsenault %v0 = extractvalue %asm.output3 %asm, 5 2225ef67664dSMatt Arsenault %v1 = extractvalue %asm.output3 %asm, 6 2226ef67664dSMatt Arsenault 2227ef67664dSMatt Arsenault %vcc = extractvalue %asm.output3 %asm, 7 2228ef67664dSMatt Arsenault 2229ef67664dSMatt Arsenault %alloca1.offset = getelementptr [4096 x i32], ptr addrspace(5) %alloca1, i32 0, i32 128 2230ef67664dSMatt Arsenault 2231ef67664dSMatt Arsenault ; scc is unavailable since it is live in 2232ef67664dSMatt Arsenault call void asm sideeffect "; use $0, $1, $2, $3, $4, $5, $6, $7, $8, $9", 2233ef67664dSMatt Arsenault "{s[0:15]},{s[16:31]},{s[32:47]},{s[48:55]},{s[56:57]},{v[0:15]},{v[16:21]},{vcc},{s59},{scc}"( 2234ef67664dSMatt Arsenault <16 x i32> %s0, 2235ef67664dSMatt Arsenault <16 x i32> %s1, 2236ef67664dSMatt Arsenault <16 x i32> %s2, 2237ef67664dSMatt Arsenault <8 x i32> %s3, 2238ef67664dSMatt Arsenault <2 x i32> %s4, 2239ef67664dSMatt Arsenault <16 x i32> %v0, 2240ef67664dSMatt Arsenault <6 x i32> %v1, 2241ef67664dSMatt Arsenault i64 %vcc, 2242ef67664dSMatt Arsenault ptr addrspace(5) %alloca1.offset, 2243ef67664dSMatt Arsenault i32 0) ; use of scc 2244ef67664dSMatt Arsenault 2245ef67664dSMatt Arsenault ret void 2246ef67664dSMatt Arsenault} 2247ef67664dSMatt Arsenault 2248ef67664dSMatt Arsenault; For gfx8/gfx9, this should enforce a budget of 24 VGPRs, and 60 SGPRs (4 2249ef67664dSMatt Arsenault; are reserved at the end for xnack + vcc). 2250ef67664dSMatt Arsenaultattributes #0 = { nounwind alignstack=64 "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "amdgpu-waves-per-eu"="10,10" "no-realign-stack" } 2251ef67664dSMatt Arsenaultattributes #1 = { nounwind alignstack=16 "amdgpu-no-workitem-id-x" "amdgpu-no-workitem-id-y" "amdgpu-no-workitem-id-z" "amdgpu-waves-per-eu"="10,10" "no-realign-stack" } 2252