From: Evan Cheng Date: Tue, 29 Aug 2006 18:37:37 +0000 (+0000) Subject: Don't performance load/op/store transformation if op produces a floating point X-Git-Tag: android-x86-6.0-r1~1003^2~40995 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=780413d4622e3977227c8e11ef27ba53bdee0d94;p=android-x86%2Fexternal-llvm.git Don't performance load/op/store transformation if op produces a floating point or vector result. X86 does not have load/mod/store variants of those instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29957 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp index 9697f259131..6605473f17a 100644 --- a/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -312,7 +312,9 @@ void X86DAGToDAGISel::InstructionSelectPreprocess(SelectionDAG &DAG) { SDOperand N1 = I->getOperand(1); SDOperand N2 = I->getOperand(2); - if (!N1.hasOneUse()) + if (MVT::isFloatingPoint(N1.getValueType()) && + MVT::isVector(N1.getValueType()) && + !N1.hasOneUse()) continue; bool RModW = false;