[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