[llvm-branch-commits] [llvm] [AMDGPU] Fix instruction size for 64-bit literal constant operands (PR #180387)

Matt Arsenault via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Sat Feb 7 21:46:53 PST 2026


================
@@ -9791,7 +9791,14 @@ unsigned SIInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
               LiteralSize = 8;
             break;
           case AMDGPU::OPERAND_REG_IMM_INT64:
-            if (!Op.isImm() || !AMDGPU::isValid32BitLiteral(Op.getImm(), false))
+            // A 32-bit literal is only valid when the value fits in BOTH signed
+            // and unsigned 32-bit ranges [0, 2^31-1], matching the MC code
+            // emitter's getLit64Encoding logic. This is because of the lack of
+            // abilility to tell signedness of the literal, therefore we need to
----------------
arsenm wrote:

The signedness should come from the operand type. OPERAND_REG_IMM_INT64 should be split into signed and unsigned versions 

https://github.com/llvm/llvm-project/pull/180387


More information about the llvm-branch-commits mailing list