[llvm] [WebAssembly,llvm] Add llvm.wasm.ref.test.func intrinsic, option 2 (PR #147486)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 8 02:36:51 PDT 2025


================
@@ -402,7 +402,12 @@ void InstrEmitter::AddOperand(MachineInstrBuilder &MIB, SDValue Op,
     AddRegisterOperand(MIB, Op, IIOpNum, II, VRBaseMap,
                        IsDebug, IsClone, IsCloned);
   } else if (ConstantSDNode *C = dyn_cast<ConstantSDNode>(Op)) {
-    MIB.addImm(C->getSExtValue());
+    if (C->getOpcode() == ISD::TargetConstantAP) {
+      MIB.addCImm(
+          ConstantInt::get(MF->getFunction().getContext(), C->getAPIntValue()));
+    } else {
+      MIB.addImm(C->getSExtValue());
+    }
----------------
arsenm wrote:

You shouldn't unconditionally do that, no. For this case I would either treat this as a special case in emission (e.g. EmitSpecialNode), or do what GetMOForConstDbgOp does and swap the operand type based on the APInt bitwidth 

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


More information about the llvm-commits mailing list