[llvm] [AMDGPU] Prevent VOP3 from receiving 64b relocations as immediates (PR #221932)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 8 04:19:25 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 141650 tests passed
* 3256 tests skipped
* 1 test failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.CodeGen/AMDGPU/si-fold-operands-64b-reloc.mir</summary>
```
Exit Code: 2
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgpu13.10 -run-pass=si-fold-operands -o - C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\si-fold-operands-64b-reloc.mir | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe -check-prefixes=GFX1310
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgpu13.10 -run-pass=si-fold-operands -o - 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\si-fold-operands-64b-reloc.mir'
# .---command stdout------------
# | --- |
# | ; ModuleID = 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AMDGPU\si-fold-operands-64b-reloc.mir'
# | source_filename = "C:\\_work\\llvm-project\\llvm-project\\llvm\\test\\CodeGen\\AMDGPU\\si-fold-operands-64b-reloc.mir"
# | target datalayout = "e-m:e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-p7:160:256:256:32-p8:128:128:128:48-p9:192:256:256:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7:8:9"
# | target triple = "amdgpu13.10"
# |
# | @mem = internal unnamed_addr addrspace(4) constant [4 x <4 x i32>] zeroinitializer
# |
# | define amdgpu_cs void @fold_vop3_abs64_sgpr() {
# | ret void
# | }
# |
# | define amdgpu_cs void @fold_vop3_abs64_vgpr() {
# | ret void
# | }
# |
# | define amdgpu_cs void @fold_vop3_rel64_sgpr() {
# | ret void
# | }
# |
# | define amdgpu_cs void @fold_vop3_rel64_vgpr() {
# | ret void
# | }
# | ...
# | ---
# | name: fold_vop3_abs64_sgpr
# | alignment: 1
# | exposesReturnsTwice: false
# | legalized: false
# | regBankSelected: false
# | selected: false
# | failedISel: false
# | tracksRegLiveness: true
# | hasWinCFI: false
# | noPhis: true
# | 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: sreg_64, preferred-register: '', flags: [ ] }
# | - { id: 1, class: vreg_64, preferred-register: '', flags: [ ] }
# | liveins: []
# | frameInfo:
# | isFrameAddressTaken: false
# | isReturnAddressTaken: false
# | hasStackMap: false
# | hasPatchPoint: false
# | stackSize: 0
# | offsetAdjustment: 0
# | maxAlignment: 1
# | adjustsStack: false
# | hasCalls: false
# | framePointerPolicy: none
# | stackProtector: ''
# | functionContext: ''
# | maxCallFrameSize: 4294967295
# | cvBytesOfCalleeSavedRegisters: 0
# | hasOpaqueSPAdjustment: false
# | hasVAStart: false
# | hasMustTailInVarArgFunc: false
# | hasTailCall: false
# | isCalleeSavedInfoValid: false
# | localFrameSize: 0
# | fixedStack: []
# | stack: []
# | entry_values: []
# | callSites: []
# | debugValueSubstitutions: []
# | constants: []
# | machineFunctionInfo:
# | explicitKernArgSize: 0
# | maxKernArgAlign: 1
# | ldsSize: 0
# | gdsSize: 0
# | dynLDSAlign: 1
# | isEntryFunction: false
# | isChainFunction: false
# | memoryBound: false
# | waveLimiter: false
# | hasSpilledSGPRs: false
# | hasSpilledVGPRs: false
# | hasNoWWMPoolSGPRSpillFallback: false
# | numWaveDispatchSGPRs: 0
# | numWaveDispatchVGPRs: 0
# | scratchRSrcReg: '$private_rsrc_reg'
# | frameOffsetReg: '$fp_reg'
# | stackPtrOffsetReg: '$sp_reg'
# | bytesInStackArgArea: 0
# | returnsVoid: true
# | psInputAddr: 0
# | psInputEnable: 0
# | maxMemoryClusterDWords: 8
# | mode:
# | ieee: false
# | dx10-clamp: true
# | fp32-input-denormals: true
# | fp32-output-denormals: true
# | fp64-fp16-input-denormals: true
# | fp64-fp16-output-denormals: true
# | highBitsOf32BitAddress: 0
# | occupancy: 16
# | vgprForAGPRCopy: ''
# | sgprForEXECCopy: ''
# | longBranchReservedReg: ''
# | hasInitWholeWave: false
# | dynamicVGPRBlockSize: 0
# | scratchReservedForDynamicVGPRs: 0
# | numKernargPreloadSGPRs: 0
# | isWholeWaveFunction: false
# | minNumAGPRs: 4294967295
# | body: |
# | bb.0:
# | %0:sreg_64 = S_MOV_B64 target-flags(amdgpu-abs64) @mem
# | %1:vreg_64, $sgpr_null = V_MAD_U64_U32_e64 0, 0, %0, 0, implicit $exec
# | ...
# | ---
# | name: fold_vop3_abs64_vgpr
# | alignment: 1
# | exposesReturnsTwice: false
# | legalized: false
# | regBankSelected: false
# | selected: false
# | failedISel: false
# | tracksRegLiveness: true
# | hasWinCFI: false
# | noPhis: true
# | 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: vreg_64, preferred-register: '', flags: [ ] }
# | - { id: 1, class: vreg_64, preferred-register: '', flags: [ ] }
# | liveins: []
# | frameInfo:
# | isFrameAddressTaken: false
# | isReturnAddressTaken: false
# | hasStackMap: false
# | hasPatchPoint: false
# | stackSize: 0
# | offsetAdjustment: 0
# | maxAlignment: 1
# | adjustsStack: false
# | hasCalls: false
# | framePointerPolicy: none
# | stackProtector: ''
# | functionContext: ''
# | maxCallFrameSize: 4294967295
# | cvBytesOfCalleeSavedRegisters: 0
# | hasOpaqueSPAdjustment: false
# | hasVAStart: false
# | hasMustTailInVarArgFunc: false
# | hasTailCall: false
# | isCalleeSavedInfoValid: false
# | localFrameSize: 0
# | fixedStack: []
# | stack: []
# | entry_values: []
# | callSites: []
# | debugValueSubstitutions: []
# | constants: []
# | machineFunctionInfo:
# | explicitKernArgSize: 0
# | maxKernArgAlign: 1
# | ldsSize: 0
# | gdsSize: 0
# | dynLDSAlign: 1
# | isEntryFunction: false
# | isChainFunction: false
# | memoryBound: false
# | waveLimiter: false
# | hasSpilledSGPRs: false
# | hasSpilledVGPRs: false
# | hasNoWWMPoolSGPRSpillFallback: false
# | numWaveDispatchSGPRs: 0
# | numWaveDispatchVGPRs: 0
# | scratchRSrcReg: '$private_rsrc_reg'
# | frameOffsetReg: '$fp_reg'
# | stackPtrOffsetReg: '$sp_reg'
# | bytesInStackArgArea: 0
# | returnsVoid: true
# | psInputAddr: 0
# | psInputEnable: 0
# | maxMemoryClusterDWords: 8
# | mode:
# | ieee: false
# | dx10-clamp: true
# | fp32-input-denormals: true
# | fp32-output-denormals: true
# | fp64-fp16-input-denormals: true
# | fp64-fp16-output-denormals: true
# | highBitsOf32BitAddress: 0
# | occupancy: 16
# | vgprForAGPRCopy: ''
# | sgprForEXECCopy: ''
# | longBranchReservedReg: ''
# | hasInitWholeWave: false
# | dynamicVGPRBlockSize: 0
# | scratchReservedForDynamicVGPRs: 0
# | numKernargPreloadSGPRs: 0
# | isWholeWaveFunction: false
# | minNumAGPRs: 4294967295
# | body: |
# | bb.0:
# | %0:vreg_64 = V_MOV_B64_PSEUDO target-flags(amdgpu-abs64) @mem, implicit $exec
# | %1:vreg_64, $sgpr_null = V_MAD_U64_U32_e64 0, 0, %0, 0, implicit $exec
# | ...
# | ---
# | name: fold_vop3_rel64_sgpr
# | alignment: 1
# | exposesReturnsTwice: false
# | legalized: false
# | regBankSelected: false
# | selected: false
# | failedISel: false
# | tracksRegLiveness: true
# | hasWinCFI: false
# | noPhis: true
# | 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: sreg_64, preferred-register: '', flags: [ ] }
# | - { id: 1, class: vreg_64, preferred-register: '', flags: [ ] }
# | liveins: []
# | frameInfo:
# | isFrameAddressTaken: false
# | isReturnAddressTaken: false
# | hasStackMap: false
# | hasPatchPoint: false
# | stackSize: 0
# | offsetAdjustment: 0
# | maxAlignment: 1
# | adjustsStack: false
# | hasCalls: false
# | framePointerPolicy: none
# | stackProtector: ''
# | functionContext: ''
# | maxCallFrameSize: 4294967295
# | cvBytesOfCalleeSavedRegisters: 0
# | hasOpaqueSPAdjustment: false
# | hasVAStart: false
# | hasMustTailInVarArgFunc: false
# | hasTailCall: false
# | isCalleeSavedInfoValid: false
# | localFrameSize: 0
# | fixedStack: []
# | stack: []
# | entry_values: []
# | callSites: []
# | debugValueSubstitutions: []
# | constants: []
# | machineFunctionInfo:
# | explicitKernArgSize: 0
# | maxKernArgAlign: 1
# | ldsSize: 0
# | gdsSize: 0
# | dynLDSAlign: 1
# | isEntryFunction: false
# | isChainFunction: false
# | memoryBound: false
# | waveLimiter: false
# | hasSpilledSGPRs: false
# | hasSpilledVGPRs: false
# | hasNoWWMPoolSGPRSpillFallback: false
# | numWaveDispatchSGPRs: 0
# | numWaveDispatchVGPRs: 0
# | scratchRSrcReg: '$private_rsrc_reg'
# | frameOffsetReg: '$fp_reg'
# | stackPtrOffsetReg: '$sp_reg'
# | bytesInStackArgArea: 0
# | returnsVoid: true
# | psInputAddr: 0
# | psInputEnable: 0
# | maxMemoryClusterDWords: 8
# | mode:
# | ieee: false
# | dx10-clamp: true
# | fp32-input-denormals: true
# | fp32-output-denormals: true
# | fp64-fp16-input-denormals: true
# | fp64-fp16-output-denormals: true
# | highBitsOf32BitAddress: 0
# | occupancy: 16
# | vgprForAGPRCopy: ''
# | sgprForEXECCopy: ''
# | longBranchReservedReg: ''
# | hasInitWholeWave: false
# | dynamicVGPRBlockSize: 0
# | scratchReservedForDynamicVGPRs: 0
# | numKernargPreloadSGPRs: 0
# | isWholeWaveFunction: false
# | minNumAGPRs: 4294967295
# | body: |
# | bb.0:
# | %0:sreg_64 = S_MOV_B64 target-flags(amdgpu-rel64) @mem
# | %1:vreg_64, $sgpr_null = V_MAD_U64_U32_e64 0, 0, %0, 0, implicit $exec
# | ...
# | ---
# | name: fold_vop3_rel64_vgpr
# | alignment: 1
# | exposesReturnsTwice: false
# | legalized: false
# | regBankSelected: false
# | selected: false
# | failedISel: false
# | tracksRegLiveness: true
# | hasWinCFI: false
# | noPhis: true
# | 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: vreg_64, preferred-register: '', flags: [ ] }
# | - { id: 1, class: vreg_64, preferred-register: '', flags: [ ] }
# | liveins: []
# | frameInfo:
# | isFrameAddressTaken: false
# | isReturnAddressTaken: false
# | hasStackMap: false
# | hasPatchPoint: false
# | stackSize: 0
# | offsetAdjustment: 0
# | maxAlignment: 1
# | adjustsStack: false
# | hasCalls: false
# | framePointerPolicy: none
# | stackProtector: ''
# | functionContext: ''
# | maxCallFrameSize: 4294967295
# | cvBytesOfCalleeSavedRegisters: 0
# | hasOpaqueSPAdjustment: false
# | hasVAStart: false
# | hasMustTailInVarArgFunc: false
# | hasTailCall: false
# | isCalleeSavedInfoValid: false
# | localFrameSize: 0
# | fixedStack: []
# | stack: []
# | entry_values: []
# | callSites: []
# | debugValueSubstitutions: []
# | constants: []
# | machineFunctionInfo:
# | explicitKernArgSize: 0
# | maxKernArgAlign: 1
# | ldsSize: 0
# | gdsSize: 0
# | dynL
# | ...
# `---data was truncated (10240/11397) (change limit with -D output_limit=N)
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' -check-prefixes=GFX1310
# .---command stderr------------
# | <check-file> not specified
# `-----------------------------
# error: command failed with exit status: 2
--
```
</details>
If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.
https://github.com/llvm/llvm-project/pull/221932
More information about the llvm-commits
mailing list