diff --git a/llvm/test/CodeGen/AMDGPU/local-stack-alloc-sort-framerefs.mir b/llvm/test/CodeGen/AMDGPU/local-stack-alloc-sort-framerefs.mir new file mode 100644 index 0000000000000..d3eac690312bc --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/local-stack-alloc-sort-framerefs.mir @@ -0,0 +1,1093 @@ +# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6 +# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -run-pass=localstackalloc -verify-machineinstrs -o - %s | FileCheck %s + +--- +name: issue155902 +alignment: 1 +exposesReturnsTwice: false +legalized: false +regBankSelected: false +selected: false +failedISel: false +tracksRegLiveness: true +hasWinCFI: false +noPhis: false +isSSA: true +noVRegs: false +hasFakeUses: false +callsEHReturn: false +callsUnwindInit: false +hasEHContTarget: false +hasEHScopes: false +hasEHFunclets: false +isOutlined: false +debugInstrRef: false +failsVerification: false +tracksDebugUserValues: false +registers: + - { id: 0, class: vgpr_32, preferred-register: '', flags: [ ] } + - { id: 1, class: sgpr_64, preferred-register: '', flags: [ ] } + - { id: 2, class: sgpr_64, preferred-register: '', flags: [ ] } + - { id: 3, class: sgpr_64, preferred-register: '', flags: [ ] } + - { id: 4, class: sgpr_64, preferred-register: '', flags: [ ] } + - { id: 5, class: sgpr_32, preferred-register: '', flags: [ ] } + - { id: 6, class: sgpr_32, preferred-register: '', flags: [ ] } + - { id: 7, class: sgpr_32, preferred-register: '', flags: [ ] } + - { id: 8, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 9, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 10, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 11, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 12, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 13, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 14, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 15, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 16, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 17, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 18, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 19, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 20, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 21, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 22, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 23, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 24, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 25, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 26, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 27, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 28, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 29, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 30, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 31, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 32, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 33, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 34, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 35, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 36, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 37, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 38, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 39, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 40, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 41, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 42, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 43, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 44, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 45, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 46, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 47, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 48, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 49, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 50, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 51, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 52, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 53, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 54, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 55, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 56, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 57, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 58, class: vreg_64_align2, preferred-register: '', flags: [ ] } + - { id: 59, class: vreg_64_align2, preferred-register: '', flags: [ ] } + - { id: 60, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 61, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 62, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 63, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 64, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 65, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 66, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 67, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 68, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 69, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 70, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 71, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 72, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 73, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 74, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 75, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 76, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 77, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 78, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 79, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 80, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 81, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 82, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 83, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 84, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 85, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 86, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 87, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 88, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 89, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 90, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 91, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 92, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 93, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 94, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 95, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 96, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 97, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 98, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 99, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 100, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 101, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 102, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 103, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 104, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 105, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 106, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 107, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 108, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 109, class: av_64_align2, preferred-register: '', flags: [ ] } +liveins: + - { reg: '$sgpr4_sgpr5', virtual-reg: '%3' } +frameInfo: + isFrameAddressTaken: false + isReturnAddressTaken: false + hasStackMap: false + hasPatchPoint: false + stackSize: 0 + offsetAdjustment: 0 + maxAlignment: 8 + adjustsStack: false + hasCalls: false + stackProtector: '' + functionContext: '' + maxCallFrameSize: 4294967295 + cvBytesOfCalleeSavedRegisters: 0 + hasOpaqueSPAdjustment: false + hasVAStart: false + hasMustTailInVarArgFunc: false + hasTailCall: false + isCalleeSavedInfoValid: false + localFrameSize: 0 +fixedStack: [] +stack: + - { id: 0, type: default, offset: 0, size: 16384, alignment: 4, + stack-id: default, callee-saved-register: '', callee-saved-restored: true, + debug-info-variable: '', debug-info-expression: '', debug-info-location: '' } + - { id: 1, type: default, offset: 0, size: 16, alignment: 8, + stack-id: default, callee-saved-register: '', callee-saved-restored: true, + debug-info-variable: '', debug-info-expression: '', debug-info-location: '' } + - { id: 2, type: default, offset: 0, size: 8, alignment: 8, + stack-id: default, callee-saved-register: '', callee-saved-restored: true, + debug-info-variable: '', debug-info-expression: '', debug-info-location: '' } +entry_values: [] +callSites: [] +debugValueSubstitutions: [] +constants: [] +machineFunctionInfo: + explicitKernArgSize: 400 + maxKernArgAlign: 8 + ldsSize: 0 + gdsSize: 0 + dynLDSAlign: 1 + isEntryFunction: true + isChainFunction: false + noSignedZerosFPMath: false + memoryBound: false + waveLimiter: false + hasSpilledSGPRs: false + hasSpilledVGPRs: false + numWaveDispatchSGPRs: 0 + numWaveDispatchVGPRs: 0 + scratchRSrcReg: '$private_rsrc_reg' + frameOffsetReg: '$fp_reg' + stackPtrOffsetReg: '$sgpr32' + bytesInStackArgArea: 0 + returnsVoid: true + argumentInfo: + dispatchPtr: { reg: '$sgpr0_sgpr1' } + queuePtr: { reg: '$sgpr2_sgpr3' } + kernargSegmentPtr: { reg: '$sgpr4_sgpr5' } + dispatchID: { reg: '$sgpr6_sgpr7' } + workGroupIDX: { reg: '$sgpr8' } + workGroupIDY: { reg: '$sgpr9' } + workGroupIDZ: { reg: '$sgpr10' } + workItemIDX: { reg: '$vgpr0', mask: 1023 } + workItemIDY: { reg: '$vgpr0', mask: 1047552 } + workItemIDZ: { reg: '$vgpr0', mask: 1072693248 } + psInputAddr: 0 + psInputEnable: 0 + maxMemoryClusterDWords: 8 + mode: + ieee: true + dx10-clamp: true + fp32-input-denormals: true + fp32-output-denormals: true + fp64-fp16-input-denormals: true + fp64-fp16-output-denormals: true + highBitsOf32BitAddress: 0 + occupancy: 8 + vgprForAGPRCopy: '' + sgprForEXECCopy: '$sgpr100_sgpr101' + longBranchReservedReg: '' + hasInitWholeWave: false + dynamicVGPRBlockSize: 0 + scratchReservedForDynamicVGPRs: 0 + numKernargPreloadSGPRs: 0 + isWholeWaveFunction: false +body: | + bb.0: + liveins: $sgpr4_sgpr5 + + ; CHECK-LABEL: name: issue155902 + ; CHECK: liveins: $sgpr4_sgpr5 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xexec_hi = S_MOV_B32 %stack.1 + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr_64(p4) = COPY $sgpr4_sgpr5 + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 0, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM1:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 8, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM2:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 16, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM3:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 24, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM4:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 32, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM5:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 40, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM6:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 48, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM7:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 56, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM8:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 64, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM9:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 72, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM10:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 80, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM11:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 88, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM12:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 96, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM13:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 104, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM14:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 112, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM15:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 120, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM16:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 128, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM17:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 136, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM18:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 144, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM19:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 152, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM20:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 160, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM21:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 168, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM22:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 176, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM23:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 184, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM24:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 192, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM25:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 200, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM26:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 208, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM27:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 216, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM28:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 224, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM29:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 232, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM30:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 240, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM31:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 248, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM32:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 256, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM33:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 264, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM34:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 272, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM35:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 280, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM36:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 288, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM37:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 296, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM38:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 304, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM39:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 312, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM40:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 320, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM41:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 328, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM42:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 336, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM43:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 344, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM44:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 352, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM45:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 360, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM46:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 368, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM47:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 376, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM48:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 384, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM49:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 392, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 0, implicit $exec + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR [[V_MOV_B]], %stack.1, 8, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR [[V_MOV_B]], [[S_MOV_B32_]], 0, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[V_MOV_B1:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 900, implicit $exec + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[V_MOV_B1]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY1:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY1]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY2:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM1]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY2]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY3:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM2]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY3]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY4:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM3]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY4]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY5:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM4]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY5]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY6:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM5]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY6]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY7:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM6]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY7]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY8:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM7]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY8]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY9:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM8]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY9]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY10:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM9]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY10]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY11:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM10]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY11]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY12:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM11]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY12]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY13:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM12]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY13]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY14:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM13]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY14]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY15:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM14]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY15]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY16:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM15]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY16]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY17:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM16]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY17]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY18:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM17]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY18]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY19:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM18]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY19]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY20:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM19]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY20]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY21:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM20]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY21]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY22:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM21]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY22]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY23:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM22]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY23]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY24:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM23]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY24]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY25:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM24]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY25]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY26:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM25]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY26]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY27:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM26]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY27]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY28:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM27]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY28]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY29:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM28]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY29]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY30:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM29]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY30]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY31:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM30]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY31]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY32:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM31]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY32]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY33:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM32]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY33]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY34:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM33]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY34]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY35:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM34]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY35]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY36:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM35]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY36]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY37:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM36]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY37]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY38:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM37]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY38]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY39:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM38]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY39]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY40:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM39]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY40]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY41:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM40]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY41]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY42:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM41]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY42]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY43:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM42]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY43]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY44:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM43]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY44]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY45:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM44]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY45]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY46:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM45]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY46]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY47:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM46]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY47]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY48:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM47]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY48]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY49:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM48]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY49]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY50:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM49]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY50]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: S_ENDPGM 0 + %3:sgpr_64(p4) = COPY $sgpr4_sgpr5 + %8:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 0, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %9:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 8, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %10:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 16, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %11:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 24, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %12:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 32, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %13:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 40, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %14:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 48, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %15:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 56, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %16:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 64, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %17:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 72, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %18:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 80, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %19:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 88, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %20:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 96, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %21:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 104, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %22:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 112, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %23:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 120, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %24:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 128, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %25:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 136, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %26:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 144, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %27:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 152, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %28:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 160, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %29:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 168, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %30:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 176, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %31:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 184, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %32:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 192, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %33:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 200, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %34:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 208, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %35:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 216, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %36:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 224, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %37:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 232, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %38:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 240, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %39:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 248, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %40:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 256, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %41:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 264, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %42:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 272, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %43:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 280, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %44:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 288, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %45:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 296, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %46:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 304, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %47:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 312, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %48:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 320, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %49:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 328, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %50:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 336, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %51:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 344, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %52:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 352, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %53:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 360, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %54:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 368, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %55:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 376, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %56:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 384, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %57:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 392, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %58:vreg_64_align2 = V_MOV_B64_PSEUDO 0, implicit $exec + SCRATCH_STORE_DWORDX2_SADDR %58, %stack.1, 8, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + SCRATCH_STORE_DWORDX2_SADDR %58, %stack.1, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %59:vreg_64_align2 = V_MOV_B64_PSEUDO 900, implicit $exec + SCRATCH_STORE_DWORDX2_SADDR killed %59, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %60:av_64_align2 = COPY %8 + SCRATCH_STORE_DWORDX2_SADDR killed %60, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %61:av_64_align2 = COPY %9 + SCRATCH_STORE_DWORDX2_SADDR killed %61, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %62:av_64_align2 = COPY %10 + SCRATCH_STORE_DWORDX2_SADDR killed %62, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %63:av_64_align2 = COPY %11 + SCRATCH_STORE_DWORDX2_SADDR killed %63, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %64:av_64_align2 = COPY %12 + SCRATCH_STORE_DWORDX2_SADDR killed %64, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %65:av_64_align2 = COPY %13 + SCRATCH_STORE_DWORDX2_SADDR killed %65, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %66:av_64_align2 = COPY %14 + SCRATCH_STORE_DWORDX2_SADDR killed %66, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %67:av_64_align2 = COPY %15 + SCRATCH_STORE_DWORDX2_SADDR killed %67, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %68:av_64_align2 = COPY %16 + SCRATCH_STORE_DWORDX2_SADDR killed %68, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %69:av_64_align2 = COPY %17 + SCRATCH_STORE_DWORDX2_SADDR killed %69, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %70:av_64_align2 = COPY %18 + SCRATCH_STORE_DWORDX2_SADDR killed %70, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %71:av_64_align2 = COPY %19 + SCRATCH_STORE_DWORDX2_SADDR killed %71, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %72:av_64_align2 = COPY %20 + SCRATCH_STORE_DWORDX2_SADDR killed %72, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %73:av_64_align2 = COPY %21 + SCRATCH_STORE_DWORDX2_SADDR killed %73, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %74:av_64_align2 = COPY %22 + SCRATCH_STORE_DWORDX2_SADDR killed %74, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %75:av_64_align2 = COPY %23 + SCRATCH_STORE_DWORDX2_SADDR killed %75, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %76:av_64_align2 = COPY %24 + SCRATCH_STORE_DWORDX2_SADDR killed %76, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %77:av_64_align2 = COPY %25 + SCRATCH_STORE_DWORDX2_SADDR killed %77, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %78:av_64_align2 = COPY %26 + SCRATCH_STORE_DWORDX2_SADDR killed %78, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %79:av_64_align2 = COPY %27 + SCRATCH_STORE_DWORDX2_SADDR killed %79, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %80:av_64_align2 = COPY %28 + SCRATCH_STORE_DWORDX2_SADDR killed %80, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %81:av_64_align2 = COPY %29 + SCRATCH_STORE_DWORDX2_SADDR killed %81, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %82:av_64_align2 = COPY %30 + SCRATCH_STORE_DWORDX2_SADDR killed %82, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %83:av_64_align2 = COPY %31 + SCRATCH_STORE_DWORDX2_SADDR killed %83, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %84:av_64_align2 = COPY %32 + SCRATCH_STORE_DWORDX2_SADDR killed %84, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %85:av_64_align2 = COPY %33 + SCRATCH_STORE_DWORDX2_SADDR killed %85, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %86:av_64_align2 = COPY %34 + SCRATCH_STORE_DWORDX2_SADDR killed %86, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %87:av_64_align2 = COPY %35 + SCRATCH_STORE_DWORDX2_SADDR killed %87, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %88:av_64_align2 = COPY %36 + SCRATCH_STORE_DWORDX2_SADDR killed %88, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %89:av_64_align2 = COPY %37 + SCRATCH_STORE_DWORDX2_SADDR killed %89, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %90:av_64_align2 = COPY %38 + SCRATCH_STORE_DWORDX2_SADDR killed %90, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %91:av_64_align2 = COPY %39 + SCRATCH_STORE_DWORDX2_SADDR killed %91, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %92:av_64_align2 = COPY %40 + SCRATCH_STORE_DWORDX2_SADDR killed %92, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %93:av_64_align2 = COPY %41 + SCRATCH_STORE_DWORDX2_SADDR killed %93, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %94:av_64_align2 = COPY %42 + SCRATCH_STORE_DWORDX2_SADDR killed %94, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %95:av_64_align2 = COPY %43 + SCRATCH_STORE_DWORDX2_SADDR killed %95, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %96:av_64_align2 = COPY %44 + SCRATCH_STORE_DWORDX2_SADDR killed %96, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %97:av_64_align2 = COPY %45 + SCRATCH_STORE_DWORDX2_SADDR killed %97, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %98:av_64_align2 = COPY %46 + SCRATCH_STORE_DWORDX2_SADDR killed %98, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %99:av_64_align2 = COPY %47 + SCRATCH_STORE_DWORDX2_SADDR killed %99, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %100:av_64_align2 = COPY %48 + SCRATCH_STORE_DWORDX2_SADDR killed %100, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %101:av_64_align2 = COPY %49 + SCRATCH_STORE_DWORDX2_SADDR killed %101, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %102:av_64_align2 = COPY %50 + SCRATCH_STORE_DWORDX2_SADDR killed %102, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %103:av_64_align2 = COPY %51 + SCRATCH_STORE_DWORDX2_SADDR killed %103, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %104:av_64_align2 = COPY %52 + SCRATCH_STORE_DWORDX2_SADDR killed %104, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %105:av_64_align2 = COPY %53 + SCRATCH_STORE_DWORDX2_SADDR killed %105, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %106:av_64_align2 = COPY %54 + SCRATCH_STORE_DWORDX2_SADDR killed %106, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %107:av_64_align2 = COPY %55 + SCRATCH_STORE_DWORDX2_SADDR killed %107, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %108:av_64_align2 = COPY %56 + SCRATCH_STORE_DWORDX2_SADDR killed %108, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %109:av_64_align2 = COPY %57 + SCRATCH_STORE_DWORDX2_SADDR killed %109, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + S_ENDPGM 0 +... +--- +name: issue155902_fp +alignment: 1 +exposesReturnsTwice: false +legalized: false +regBankSelected: false +selected: false +failedISel: false +tracksRegLiveness: true +hasWinCFI: false +noPhis: false +isSSA: true +noVRegs: false +hasFakeUses: false +callsEHReturn: false +callsUnwindInit: false +hasEHContTarget: false +hasEHScopes: false +hasEHFunclets: false +isOutlined: false +debugInstrRef: false +failsVerification: false +tracksDebugUserValues: false +registers: + - { id: 0, class: vgpr_32, preferred-register: '', flags: [ ] } + - { id: 1, class: sgpr_64, preferred-register: '', flags: [ ] } + - { id: 2, class: sgpr_64, preferred-register: '', flags: [ ] } + - { id: 3, class: sgpr_64, preferred-register: '', flags: [ ] } + - { id: 4, class: sgpr_64, preferred-register: '', flags: [ ] } + - { id: 5, class: sgpr_32, preferred-register: '', flags: [ ] } + - { id: 6, class: sgpr_32, preferred-register: '', flags: [ ] } + - { id: 7, class: sgpr_32, preferred-register: '', flags: [ ] } + - { id: 8, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 9, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 10, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 11, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 12, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 13, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 14, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 15, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 16, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 17, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 18, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 19, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 20, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 21, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 22, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 23, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 24, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 25, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 26, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 27, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 28, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 29, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 30, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 31, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 32, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 33, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 34, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 35, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 36, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 37, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 38, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 39, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 40, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 41, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 42, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 43, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 44, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 45, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 46, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 47, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 48, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 49, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 50, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 51, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 52, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 53, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 54, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 55, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 56, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 57, class: sreg_64_xexec, preferred-register: '', flags: [ ] } + - { id: 58, class: vreg_64_align2, preferred-register: '', flags: [ ] } + - { id: 59, class: vreg_64_align2, preferred-register: '', flags: [ ] } + - { id: 60, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 61, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 62, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 63, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 64, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 65, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 66, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 67, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 68, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 69, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 70, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 71, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 72, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 73, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 74, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 75, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 76, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 77, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 78, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 79, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 80, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 81, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 82, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 83, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 84, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 85, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 86, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 87, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 88, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 89, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 90, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 91, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 92, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 93, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 94, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 95, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 96, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 97, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 98, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 99, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 100, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 101, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 102, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 103, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 104, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 105, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 106, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 107, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 108, class: av_64_align2, preferred-register: '', flags: [ ] } + - { id: 109, class: av_64_align2, preferred-register: '', flags: [ ] } +liveins: + - { reg: '$sgpr4_sgpr5', virtual-reg: '%3' } +frameInfo: + isFrameAddressTaken: false + isReturnAddressTaken: false + hasStackMap: false + hasPatchPoint: false + stackSize: 0 + offsetAdjustment: 0 + maxAlignment: 8 + adjustsStack: false + hasCalls: false + stackProtector: '' + functionContext: '' + maxCallFrameSize: 4294967295 + cvBytesOfCalleeSavedRegisters: 0 + hasOpaqueSPAdjustment: false + hasVAStart: false + hasMustTailInVarArgFunc: false + hasTailCall: false + isCalleeSavedInfoValid: false + localFrameSize: 0 +fixedStack: [] +stack: + - { id: 0, type: default, offset: 0, size: 16384, alignment: 4, + stack-id: default, callee-saved-register: '', callee-saved-restored: true, + debug-info-variable: '', debug-info-expression: '', debug-info-location: '' } + - { id: 1, type: default, offset: 0, size: 16, alignment: 8, + stack-id: default, callee-saved-register: '', callee-saved-restored: true, + debug-info-variable: '', debug-info-expression: '', debug-info-location: '' } + - { id: 2, type: default, offset: 0, size: 8, alignment: 8, + stack-id: default, callee-saved-register: '', callee-saved-restored: true, + debug-info-variable: '', debug-info-expression: '', debug-info-location: '' } +entry_values: [] +callSites: [] +debugValueSubstitutions: [] +constants: [] +machineFunctionInfo: + explicitKernArgSize: 400 + maxKernArgAlign: 8 + ldsSize: 0 + gdsSize: 0 + dynLDSAlign: 1 + isEntryFunction: true + isChainFunction: false + noSignedZerosFPMath: false + memoryBound: false + waveLimiter: false + hasSpilledSGPRs: false + hasSpilledVGPRs: false + numWaveDispatchSGPRs: 0 + numWaveDispatchVGPRs: 0 + scratchRSrcReg: '$private_rsrc_reg' + frameOffsetReg: '$sgpr33' + stackPtrOffsetReg: '$sgpr32' + bytesInStackArgArea: 0 + returnsVoid: true + argumentInfo: + dispatchPtr: { reg: '$sgpr0_sgpr1' } + queuePtr: { reg: '$sgpr2_sgpr3' } + kernargSegmentPtr: { reg: '$sgpr4_sgpr5' } + dispatchID: { reg: '$sgpr6_sgpr7' } + workGroupIDX: { reg: '$sgpr8' } + workGroupIDY: { reg: '$sgpr9' } + workGroupIDZ: { reg: '$sgpr10' } + workItemIDX: { reg: '$vgpr0', mask: 1023 } + workItemIDY: { reg: '$vgpr0', mask: 1047552 } + workItemIDZ: { reg: '$vgpr0', mask: 1072693248 } + psInputAddr: 0 + psInputEnable: 0 + maxMemoryClusterDWords: 8 + mode: + ieee: true + dx10-clamp: true + fp32-input-denormals: true + fp32-output-denormals: true + fp64-fp16-input-denormals: true + fp64-fp16-output-denormals: true + highBitsOf32BitAddress: 0 + occupancy: 8 + vgprForAGPRCopy: '' + sgprForEXECCopy: '$sgpr100_sgpr101' + longBranchReservedReg: '' + hasInitWholeWave: false + dynamicVGPRBlockSize: 0 + scratchReservedForDynamicVGPRs: 0 + numKernargPreloadSGPRs: 0 + isWholeWaveFunction: false +body: | + bb.0: + liveins: $sgpr4_sgpr5 + + ; CHECK-LABEL: name: issue155902_fp + ; CHECK: liveins: $sgpr4_sgpr5 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32_xexec_hi = S_MOV_B32 %stack.1 + ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr_64(p4) = COPY $sgpr4_sgpr5 + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 0, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM1:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 8, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM2:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 16, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM3:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 24, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM4:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 32, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM5:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 40, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM6:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 48, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM7:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 56, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM8:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 64, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM9:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 72, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM10:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 80, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM11:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 88, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM12:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 96, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM13:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 104, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM14:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 112, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM15:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 120, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM16:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 128, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM17:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 136, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM18:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 144, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM19:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 152, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM20:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 160, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM21:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 168, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM22:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 176, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM23:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 184, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM24:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 192, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM25:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 200, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM26:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 208, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM27:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 216, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM28:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 224, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM29:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 232, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM30:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 240, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM31:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 248, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM32:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 256, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM33:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 264, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM34:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 272, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM35:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 280, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM36:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 288, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM37:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 296, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM38:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 304, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM39:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 312, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM40:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 320, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM41:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 328, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM42:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 336, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM43:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 344, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM44:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 352, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM45:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 360, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM46:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 368, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM47:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 376, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM48:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 384, 0 :: (dereferenceable invariant load (s64), align 16, addrspace 4) + ; CHECK-NEXT: [[S_LOAD_DWORDX2_IMM49:%[0-9]+]]:sreg_64_xexec = S_LOAD_DWORDX2_IMM [[COPY]](p4), 392, 0 :: (dereferenceable invariant load (s64), addrspace 4) + ; CHECK-NEXT: [[V_MOV_B:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 0, implicit $exec + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR [[V_MOV_B]], %stack.1, 8, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR [[V_MOV_B]], [[S_MOV_B32_]], 0, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[V_MOV_B1:%[0-9]+]]:vreg_64_align2 = V_MOV_B64_PSEUDO 900, implicit $exec + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[V_MOV_B1]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY1:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY1]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY2:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM1]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY2]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY3:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM2]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY3]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY4:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM3]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY4]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY5:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM4]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY5]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY6:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM5]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY6]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY7:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM6]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY7]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY8:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM7]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY8]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY9:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM8]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY9]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY10:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM9]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY10]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY11:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM10]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY11]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY12:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM11]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY12]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY13:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM12]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY13]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY14:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM13]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY14]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY15:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM14]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY15]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY16:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM15]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY16]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY17:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM16]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY17]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY18:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM17]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY18]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY19:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM18]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY19]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY20:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM19]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY20]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY21:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM20]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY21]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY22:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM21]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY22]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY23:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM22]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY23]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY24:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM23]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY24]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY25:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM24]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY25]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY26:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM25]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY26]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY27:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM26]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY27]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY28:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM27]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY28]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY29:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM28]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY29]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY30:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM29]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY30]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY31:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM30]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY31]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY32:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM31]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY32]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY33:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM32]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY33]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY34:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM33]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY34]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY35:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM34]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY35]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY36:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM35]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY36]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY37:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM36]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY37]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY38:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM37]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY38]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY39:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM38]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY39]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY40:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM39]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY40]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY41:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM40]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY41]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY42:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM41]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY42]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY43:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM42]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY43]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY44:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM43]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY44]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY45:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM44]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY45]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY46:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM45]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY46]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY47:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM46]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY47]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY48:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM47]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY48]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY49:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM48]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY49]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: [[COPY50:%[0-9]+]]:av_64_align2 = COPY [[S_LOAD_DWORDX2_IMM49]] + ; CHECK-NEXT: SCRATCH_STORE_DWORDX2_SADDR killed [[COPY50]], [[S_MOV_B32_]], 16, 0, implicit $exec, implicit $flat_scr :: (store (s64), addrspace 5) + ; CHECK-NEXT: S_ENDPGM 0 + %3:sgpr_64(p4) = COPY $sgpr4_sgpr5 + %8:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 0, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %9:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 8, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %10:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 16, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %11:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 24, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %12:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 32, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %13:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 40, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %14:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 48, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %15:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 56, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %16:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 64, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %17:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 72, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %18:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 80, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %19:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 88, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %20:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 96, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %21:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 104, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %22:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 112, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %23:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 120, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %24:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 128, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %25:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 136, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %26:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 144, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %27:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 152, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %28:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 160, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %29:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 168, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %30:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 176, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %31:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 184, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %32:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 192, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %33:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 200, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %34:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 208, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %35:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 216, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %36:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 224, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %37:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 232, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %38:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 240, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %39:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 248, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %40:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 256, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %41:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 264, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %42:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 272, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %43:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 280, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %44:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 288, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %45:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 296, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %46:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 304, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %47:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 312, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %48:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 320, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %49:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 328, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %50:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 336, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %51:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 344, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %52:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 352, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %53:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 360, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %54:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 368, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %55:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 376, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %56:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 384, 0 :: (dereferenceable invariant load (s64) , align 16, addrspace 4) + %57:sreg_64_xexec = S_LOAD_DWORDX2_IMM %3(p4), 392, 0 :: (dereferenceable invariant load (s64) , addrspace 4) + %58:vreg_64_align2 = V_MOV_B64_PSEUDO 0, implicit $exec + SCRATCH_STORE_DWORDX2_SADDR %58, %stack.1, 8, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + SCRATCH_STORE_DWORDX2_SADDR %58, %stack.1, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %59:vreg_64_align2 = V_MOV_B64_PSEUDO 900, implicit $exec + SCRATCH_STORE_DWORDX2_SADDR killed %59, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %60:av_64_align2 = COPY %8 + SCRATCH_STORE_DWORDX2_SADDR killed %60, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %61:av_64_align2 = COPY %9 + SCRATCH_STORE_DWORDX2_SADDR killed %61, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %62:av_64_align2 = COPY %10 + SCRATCH_STORE_DWORDX2_SADDR killed %62, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %63:av_64_align2 = COPY %11 + SCRATCH_STORE_DWORDX2_SADDR killed %63, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %64:av_64_align2 = COPY %12 + SCRATCH_STORE_DWORDX2_SADDR killed %64, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %65:av_64_align2 = COPY %13 + SCRATCH_STORE_DWORDX2_SADDR killed %65, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %66:av_64_align2 = COPY %14 + SCRATCH_STORE_DWORDX2_SADDR killed %66, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %67:av_64_align2 = COPY %15 + SCRATCH_STORE_DWORDX2_SADDR killed %67, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %68:av_64_align2 = COPY %16 + SCRATCH_STORE_DWORDX2_SADDR killed %68, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %69:av_64_align2 = COPY %17 + SCRATCH_STORE_DWORDX2_SADDR killed %69, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %70:av_64_align2 = COPY %18 + SCRATCH_STORE_DWORDX2_SADDR killed %70, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %71:av_64_align2 = COPY %19 + SCRATCH_STORE_DWORDX2_SADDR killed %71, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %72:av_64_align2 = COPY %20 + SCRATCH_STORE_DWORDX2_SADDR killed %72, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %73:av_64_align2 = COPY %21 + SCRATCH_STORE_DWORDX2_SADDR killed %73, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %74:av_64_align2 = COPY %22 + SCRATCH_STORE_DWORDX2_SADDR killed %74, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %75:av_64_align2 = COPY %23 + SCRATCH_STORE_DWORDX2_SADDR killed %75, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %76:av_64_align2 = COPY %24 + SCRATCH_STORE_DWORDX2_SADDR killed %76, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %77:av_64_align2 = COPY %25 + SCRATCH_STORE_DWORDX2_SADDR killed %77, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %78:av_64_align2 = COPY %26 + SCRATCH_STORE_DWORDX2_SADDR killed %78, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %79:av_64_align2 = COPY %27 + SCRATCH_STORE_DWORDX2_SADDR killed %79, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %80:av_64_align2 = COPY %28 + SCRATCH_STORE_DWORDX2_SADDR killed %80, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %81:av_64_align2 = COPY %29 + SCRATCH_STORE_DWORDX2_SADDR killed %81, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %82:av_64_align2 = COPY %30 + SCRATCH_STORE_DWORDX2_SADDR killed %82, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %83:av_64_align2 = COPY %31 + SCRATCH_STORE_DWORDX2_SADDR killed %83, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %84:av_64_align2 = COPY %32 + SCRATCH_STORE_DWORDX2_SADDR killed %84, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %85:av_64_align2 = COPY %33 + SCRATCH_STORE_DWORDX2_SADDR killed %85, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %86:av_64_align2 = COPY %34 + SCRATCH_STORE_DWORDX2_SADDR killed %86, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %87:av_64_align2 = COPY %35 + SCRATCH_STORE_DWORDX2_SADDR killed %87, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %88:av_64_align2 = COPY %36 + SCRATCH_STORE_DWORDX2_SADDR killed %88, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %89:av_64_align2 = COPY %37 + SCRATCH_STORE_DWORDX2_SADDR killed %89, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %90:av_64_align2 = COPY %38 + SCRATCH_STORE_DWORDX2_SADDR killed %90, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %91:av_64_align2 = COPY %39 + SCRATCH_STORE_DWORDX2_SADDR killed %91, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %92:av_64_align2 = COPY %40 + SCRATCH_STORE_DWORDX2_SADDR killed %92, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %93:av_64_align2 = COPY %41 + SCRATCH_STORE_DWORDX2_SADDR killed %93, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %94:av_64_align2 = COPY %42 + SCRATCH_STORE_DWORDX2_SADDR killed %94, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %95:av_64_align2 = COPY %43 + SCRATCH_STORE_DWORDX2_SADDR killed %95, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %96:av_64_align2 = COPY %44 + SCRATCH_STORE_DWORDX2_SADDR killed %96, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %97:av_64_align2 = COPY %45 + SCRATCH_STORE_DWORDX2_SADDR killed %97, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %98:av_64_align2 = COPY %46 + SCRATCH_STORE_DWORDX2_SADDR killed %98, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %99:av_64_align2 = COPY %47 + SCRATCH_STORE_DWORDX2_SADDR killed %99, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %100:av_64_align2 = COPY %48 + SCRATCH_STORE_DWORDX2_SADDR killed %100, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %101:av_64_align2 = COPY %49 + SCRATCH_STORE_DWORDX2_SADDR killed %101, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %102:av_64_align2 = COPY %50 + SCRATCH_STORE_DWORDX2_SADDR killed %102, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %103:av_64_align2 = COPY %51 + SCRATCH_STORE_DWORDX2_SADDR killed %103, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %104:av_64_align2 = COPY %52 + SCRATCH_STORE_DWORDX2_SADDR killed %104, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %105:av_64_align2 = COPY %53 + SCRATCH_STORE_DWORDX2_SADDR killed %105, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %106:av_64_align2 = COPY %54 + SCRATCH_STORE_DWORDX2_SADDR killed %106, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %107:av_64_align2 = COPY %55 + SCRATCH_STORE_DWORDX2_SADDR killed %107, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %108:av_64_align2 = COPY %56 + SCRATCH_STORE_DWORDX2_SADDR killed %108, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + %109:av_64_align2 = COPY %57 + SCRATCH_STORE_DWORDX2_SADDR killed %109, %stack.2, 0, 0, implicit $exec, implicit $flat_scr :: (store (s64) , addrspace 5) + S_ENDPGM 0 +...