[PATCH] D14909: [X86][FMA] Optimize FNEG(FMUL) Patterns
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 24 17:36:30 PST 2015
spatel added a reviewer: scanon.
================
Comment at: lib/Target/X86/X86ISelLowering.cpp:26161
@@ +26160,3 @@
+ // use of a constant by performing (0 - A*B) instead.
+ if (Arg.getOpcode() == ISD::FMUL && DAG.getTarget().Options.UnsafeFPMath &&
+ (SVT == MVT::f32 || SVT == MVT::f64) &&
----------------
Do we need unsafe math for this transform?
================
Comment at: lib/Target/X86/X86ISelLowering.cpp:26163
@@ +26162,3 @@
+ (SVT == MVT::f32 || SVT == MVT::f64) &&
+ (Subtarget->hasFMA() || Subtarget->hasFMA4() || Subtarget->hasAVX512())) {
+ SDLoc DL(N);
----------------
Aren't the FMA checks enough? Is there some target that assumes that AVX512 includes FMA but does not set the FMA attribute?
================
Comment at: lib/Target/X86/X86ISelLowering.cpp:26164
@@ +26163,3 @@
+ (Subtarget->hasFMA() || Subtarget->hasFMA4() || Subtarget->hasAVX512())) {
+ SDLoc DL(N);
+ SDValue Zero = DAG.getConstantFP(0.0, DL, VT);
----------------
Nit: could hoist this and reuse below.
Repository:
rL LLVM
http://reviews.llvm.org/D14909
More information about the llvm-commits
mailing list