[llvm] [X86] handle vector floating point extension from scalar in inline assembly (PR #189159)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 10 06:07:13 PDT 2026


================
@@ -537,7 +537,13 @@ getCopyToParts(SelectionDAG &DAG, const SDLoc &DL, SDValue Val, SDValue *Parts,
     // If the parts cover more bits than the value has, promote the value.
     if (PartVT.isFloatingPoint() && ValueVT.isFloatingPoint()) {
       assert(NumParts == 1 && "Do not know what to promote to!");
-      Val = DAG.getNode(ISD::FP_EXTEND, DL, PartVT, Val);
+      if (PartVT.isVector()) {
+        ValueVT = EVT::getFloatingPointVT(PartBits);
+        Val = DAG.getNode(ISD::FP_EXTEND, DL, ValueVT, Val);
----------------
arsenm wrote:

I wouldn't expect anything involving inline assembly to imply a hidden FP_EXTEND. Does GCC do this?

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


More information about the llvm-commits mailing list