Revert "[InstSimplify] use any-zero matcher for fcmp folds"

This reverts commit 058bb8351351d56d2a4e8a772570231f9e5305e5.
Forgot to update another test affected by this change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354408 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/InstructionSimplify.cpp b/lib/Analysis/InstructionSimplify.cpp
index 092aaf6..843b3e9 100644
--- a/lib/Analysis/InstructionSimplify.cpp
+++ b/lib/Analysis/InstructionSimplify.cpp
@@ -3648,31 +3648,6 @@
   }
 
   // Handle fcmp with constant RHS.
-  if (match(RHS, m_AnyZeroFP())) {
-    switch (Pred) {
-    case FCmpInst::FCMP_OGE:
-      if (FMF.noNaNs() && CannotBeOrderedLessThanZero(LHS, Q.TLI))
-        return getTrue(RetTy);
-      break;
-    case FCmpInst::FCMP_UGE:
-      if (CannotBeOrderedLessThanZero(LHS, Q.TLI))
-        return getTrue(RetTy);
-      break;
-    case FCmpInst::FCMP_ULT:
-      if (FMF.noNaNs() && CannotBeOrderedLessThanZero(LHS, Q.TLI))
-        return getFalse(RetTy);
-      break;
-    case FCmpInst::FCMP_OLT:
-      if (CannotBeOrderedLessThanZero(LHS, Q.TLI))
-        return getFalse(RetTy);
-      break;
-    default:
-      break;
-    }
-  }
-
-  // TODO: Use match with a specific FP value, so these work with vectors with
-  // undef lanes.
   const APFloat *C;
   if (match(RHS, m_APFloat(C))) {
     // Check whether the constant is an infinity.
@@ -3700,6 +3675,28 @@
           break;
         }
       }
+    }
+    if (C->isZero()) {
+      switch (Pred) {
+      case FCmpInst::FCMP_OGE:
+        if (FMF.noNaNs() && CannotBeOrderedLessThanZero(LHS, Q.TLI))
+          return getTrue(RetTy);
+        break;
+      case FCmpInst::FCMP_UGE:
+        if (CannotBeOrderedLessThanZero(LHS, Q.TLI))
+          return getTrue(RetTy);
+        break;
+      case FCmpInst::FCMP_ULT:
+        if (FMF.noNaNs() && CannotBeOrderedLessThanZero(LHS, Q.TLI))
+          return getFalse(RetTy);
+        break;
+      case FCmpInst::FCMP_OLT:
+        if (CannotBeOrderedLessThanZero(LHS, Q.TLI))
+          return getFalse(RetTy);
+        break;
+      default:
+        break;
+      }
     } else if (C->isNegative()) {
       assert(!C->isNaN() && "Unexpected NaN constant!");
       // TODO: We can catch more cases by using a range check rather than
diff --git a/test/Transforms/InstSimplify/floating-point-compare.ll b/test/Transforms/InstSimplify/floating-point-compare.ll
index 5ce56e0..77db052 100644
--- a/test/Transforms/InstSimplify/floating-point-compare.ll
+++ b/test/Transforms/InstSimplify/floating-point-compare.ll
@@ -399,7 +399,9 @@
 
 define <2 x i1> @fabs_is_not_negative_anyzero(<2 x float> %V) {
 ; CHECK-LABEL: @fabs_is_not_negative_anyzero(
-; CHECK-NEXT:    ret <2 x i1> zeroinitializer
+; CHECK-NEXT:    [[ABS:%.*]] = call <2 x float> @llvm.fabs.v2f32(<2 x float> [[V:%.*]])
+; CHECK-NEXT:    [[CMP:%.*]] = fcmp olt <2 x float> [[ABS]], <float 0.000000e+00, float -0.000000e+00>
+; CHECK-NEXT:    ret <2 x i1> [[CMP]]
 ;
   %abs = call <2 x float> @llvm.fabs.v2f32(<2 x float> %V)
   %cmp = fcmp olt <2 x float> %abs, <float 0.0, float -0.0>
@@ -408,7 +410,9 @@
 
 define <3 x i1> @fabs_is_not_negative_negzero_undef(<3 x float> %V) {
 ; CHECK-LABEL: @fabs_is_not_negative_negzero_undef(
-; CHECK-NEXT:    ret <3 x i1> zeroinitializer
+; CHECK-NEXT:    [[ABS:%.*]] = call <3 x float> @llvm.fabs.v3f32(<3 x float> [[V:%.*]])
+; CHECK-NEXT:    [[CMP:%.*]] = fcmp olt <3 x float> [[ABS]], <float -0.000000e+00, float -0.000000e+00, float undef>
+; CHECK-NEXT:    ret <3 x i1> [[CMP]]
 ;
   %abs = call <3 x float> @llvm.fabs.v3f32(<3 x float> %V)
   %cmp = fcmp olt <3 x float> %abs, <float -0.0, float -0.0, float undef>
@@ -417,7 +421,9 @@
 
 define <3 x i1> @fabs_is_not_negative_poszero_undef(<3 x float> %V) {
 ; CHECK-LABEL: @fabs_is_not_negative_poszero_undef(
-; CHECK-NEXT:    ret <3 x i1> zeroinitializer
+; CHECK-NEXT:    [[ABS:%.*]] = call <3 x float> @llvm.fabs.v3f32(<3 x float> [[V:%.*]])
+; CHECK-NEXT:    [[CMP:%.*]] = fcmp olt <3 x float> [[ABS]], <float 0.000000e+00, float 0.000000e+00, float undef>
+; CHECK-NEXT:    ret <3 x i1> [[CMP]]
 ;
   %abs = call <3 x float> @llvm.fabs.v3f32(<3 x float> %V)
   %cmp = fcmp olt <3 x float> %abs, <float 0.0, float 0.0, float undef>
@@ -426,7 +432,9 @@
 
 define <3 x i1> @fabs_is_not_negative_anyzero_undef(<3 x float> %V) {
 ; CHECK-LABEL: @fabs_is_not_negative_anyzero_undef(
-; CHECK-NEXT:    ret <3 x i1> zeroinitializer
+; CHECK-NEXT:    [[ABS:%.*]] = call <3 x float> @llvm.fabs.v3f32(<3 x float> [[V:%.*]])
+; CHECK-NEXT:    [[CMP:%.*]] = fcmp olt <3 x float> [[ABS]], <float 0.000000e+00, float -0.000000e+00, float undef>
+; CHECK-NEXT:    ret <3 x i1> [[CMP]]
 ;
   %abs = call <3 x float> @llvm.fabs.v3f32(<3 x float> %V)
   %cmp = fcmp olt <3 x float> %abs, <float 0.0, float -0.0, float undef>