From 665720fc98fa8a521e4913f4bba673ec7d986881 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Tue, 15 Oct 2024 09:59:18 +0200 Subject: [PATCH] check for 32-bit immediate instead --- llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 377b4aaebebc99..d68d69fe661415 100644 --- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -1158,10 +1158,9 @@ class ARMOperand : public MCParsedAsmOperand { bool isFPImm() const { if (!isImm()) return false; const MCConstantExpr *CE = dyn_cast(getImm()); - if (!CE) return false; - // TODO: Is implicitTrunc correct here? - int Val = ARM_AM::getFP32Imm( - APInt(32, CE->getValue(), /*isSigned=*/true, /*implicitTrunc=*/true)); + if (!CE || !isUInt<32>(CE->getValue())) + return false; + int Val = ARM_AM::getFP32Imm(APInt(32, CE->getValue())); return Val != -1; }