diff options
author | Craig Topper <craig.topper@gmail.com> | 2012-08-30 06:56:15 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2012-08-30 06:56:15 +0000 |
commit | b1bdd7d8186c738b7463756867be79a1f664b1d3 (patch) | |
tree | f68f7f97ef123d3b23c43083212d01c6e27b2d52 /lib/Target | |
parent | 73996f44070df026e4d969b1b68461a70ebb3993 (diff) |
Only perform DAG combine on FMAs of legal types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162892 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/X86/X86ISelLowering.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 8b7a4d0a08..b2b30fe387 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -15601,6 +15601,10 @@ static SDValue PerformFMACombine(SDNode *N, SelectionDAG &DAG, DebugLoc dl = N->getDebugLoc(); EVT VT = N->getValueType(0); + // Let legalize expand this if it isn't a legal type yet. + if (!DAG.getTargetLoweringInfo().isTypeLegal(VT)) + return SDValue(); + EVT ScalarVT = VT.getScalarType(); if ((ScalarVT != MVT::f32 && ScalarVT != MVT::f64) || !Subtarget->hasFMA()) return SDValue(); |