[PATCH] D71879: [X86] Custom widen 128/256-bit vXi32 fp_to_uint on avx512f targets without avx512vl. Similar for vXi64 on avx512dq without avx512vl.

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 25 13:22:48 PST 2019


craig.topper marked 2 inline comments as done.
craig.topper added inline comments.


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:19763
                   Op.getOpcode() == ISD::STRICT_FP_TO_SINT;
-  MVT VT = Op.getSimpleValueType();
+  MVT VT = Op->getSimpleValueType(0);
   SDValue Src = Op.getOperand(IsStrict ? 1 : 0);
----------------
This was needed because LegalizeVectorOps can send the Chain result in when its checking to see if our widened code needs to be legalized itself. So we have to make sure we get the VT from result 0 regardless of what's in Op.


================
Comment at: llvm/lib/Target/X86/X86TargetTransformInfo.cpp:1401
     { ISD::FP_TO_UINT,  MVT::v8i32,  MVT::v8f32,  1 },
+    { ISD::FP_TO_UINT,  MVT::v8i32,  MVT::v8f64,  1 },
     { ISD::FP_TO_UINT,  MVT::v8i16,  MVT::v8f64,  2 },
----------------
The conversion being "Legal" made generic code return 1 previously. Now that it's Custom, the generic code doesn't work.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71879/new/

https://reviews.llvm.org/D71879





More information about the llvm-commits mailing list