[llvm-branch-commits] [llvm] 619fa4c - PowerPC: Don't hoist float multiply + add to fused operation on SPE
Justin Hibbits via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue May 12 15:07:47 PDT 2020
Author: Justin Hibbits
Date: 2020-05-12T16:53:28-05:00
New Revision: 619fa4c9c852d438ec58bd7d4bedc9d1b8691a8f
URL: https://github.com/llvm/llvm-project/commit/619fa4c9c852d438ec58bd7d4bedc9d1b8691a8f
DIFF: https://github.com/llvm/llvm-project/commit/619fa4c9c852d438ec58bd7d4bedc9d1b8691a8f.diff
LOG: PowerPC: Don't hoist float multiply + add to fused operation on SPE
SPE doesn't have a fmadd instruction, so don't bother hoisting a
multiply and add sequence to this, as it'd become just a library call.
Hoisting happens too late for the CTR usability test to veto using the
CTR in a loop, and results in an assert "Invalid PPC CTR loop!".
Added:
Modified:
llvm/lib/Target/PowerPC/PPCISelLowering.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
index 83a119fec86b..2da0665d5123 100644
--- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -15718,6 +15718,8 @@ bool PPCTargetLowering::isFMAFasterThanFMulAndFAdd(const MachineFunction &MF,
bool PPCTargetLowering::isFMAFasterThanFMulAndFAdd(const Function &F,
Type *Ty) const {
+ if (Subtarget.hasSPE())
+ return false;
switch (Ty->getScalarType()->getTypeID()) {
case Type::FloatTyID:
case Type::DoubleTyID:
More information about the llvm-branch-commits
mailing list