[llvm] [AMDGPU] Change the representation of double literals in operands (PR #68740)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 11 02:28:33 PDT 2023
================
@@ -2241,7 +2242,10 @@ void AMDGPUOperand::addLiteralImmOperand(MCInst &Inst, int64_t Val, bool ApplyMo
return;
}
- Inst.addOperand(MCOperand::createImm(Lo_32(Val)));
+ if (isInt<32>(Val) || isUInt<32>(Val))
+ Val = AMDGPU::isSISrcFPOperand(InstDesc, OpNum) ? Val << 32 : Lo_32(Val);
----------------
jayfoad wrote:
Aren't there three interesting cases?
```
if (!AMDGPU::isSISrcFPOperand(InstDesc, OpNum)) // integer operand
Val = Lo_32(Val);
else if (isInt<32>(Val) || isUInt<32>(Val))) // small hex literal for double operand
Val = Val << 32;
else // large hex literal for double operand
do nothing;
```
https://github.com/llvm/llvm-project/pull/68740
More information about the llvm-commits
mailing list