Only apply the SETCC+SITOFP -> SELECTCC optimization when the SETCC returns an MVT...
authorOwen Anderson <resistor@mac.com>
Wed, 11 Jul 2012 06:38:55 +0000 (06:38 +0000)
committerOwen Anderson <resistor@mac.com>
Wed, 11 Jul 2012 06:38:55 +0000 (06:38 +0000)
This is a speculative fix for a problem on Mips reported by Akira Hatanaka.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160036 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/DAGCombiner.cpp

index 153f643f730ad96e560e8269942f36ea50f839e3..e2c7dec40c7e27f64a11ef7452fb392074c049f7 100644 (file)
@@ -5975,7 +5975,8 @@ SDValue DAGCombiner::visitSINT_TO_FP(SDNode *N) {
   }
 
   // fold (sint_to_fp (setcc x, y, cc)) -> (select_cc x, y, -1.0, 0.0,, cc)
-  if (N0.getOpcode() == ISD::SETCC && !VT.isVector() &&
+  if (N0.getOpcode() == ISD::SETCC && N0.getValueType() == MVT::i1 &&
+      !VT.isVector() &&
       (!LegalOperations ||
        TLI.isOperationLegalOrCustom(llvm::ISD::ConstantFP, VT))) {
     SDValue Ops[] =