[PATCH] D56011: [x86] lower extracted fadd/fsub to horizontal vector math
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 2 02:56:50 PST 2019
RKSimon added inline comments.
================
Comment at: lib/Target/X86/X86ISelLowering.cpp:18339
+ SDValue RHS = Op.getOperand(1);
+ if (!LHS.hasOneUse() || !RHS.hasOneUse() || !Subtarget.hasSSE3())
+ return Op;
----------------
Do both ops have to be one use for this to be useful?
================
Comment at: lib/Target/X86/X86ISelLowering.cpp:18358
+ std::swap(LExtIndex, RExtIndex);
+ if (LExtIndex != 0 || RExtIndex != 1)
+ return Op;
----------------
Is it useful to support any suitable neighbouring pairs of extracted values?
================
Comment at: lib/Target/X86/X86ISelLowering.cpp:18364
+ unsigned BitWidth = VecVT.getSizeInBits();
+ if (BitWidth != 128 && BitWidth != 256)
+ return Op;
----------------
Is this important? I think its what you were asking about AVX512 (which doesn't have HADDPS). I'd start by adding avx512f/avx512vl tests to haddsub-undef.ll
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D56011/new/
https://reviews.llvm.org/D56011
More information about the llvm-commits
mailing list