Created
June 29, 2016 01:12
-
-
Save timshen91/51b209c8d1be22ef96a1a9fd4131595d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git test/Transforms/InstCombine/and-fcmp.ll test/Transforms/InstCombine/and-fcmp.ll | |
index 8b90852..8ad6779 100644 | |
--- test/Transforms/InstCombine/and-fcmp.ll | |
+++ test/Transforms/InstCombine/and-fcmp.ll | |
@@ -1,1981 +1,1831 @@ | |
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py | |
; RUN: opt < %s -instcombine -S | FileCheck %s | |
define i1 @t1(float %x, float %y) { | |
; CHECK-LABEL: @t1( | |
; CHECK-NEXT: [[TMP1:%.*]] = fcmp oeq float %x, %y | |
; CHECK-NEXT: ret i1 [[TMP1]] | |
; | |
%a = fcmp ueq float %x, %y | |
%b = fcmp ord float %x, %y | |
%c = and i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @t2(float %x, float %y) { | |
; CHECK-LABEL: @t2( | |
-; CHECK-NEXT: [[A:%.*]] = fcmp olt float %x, %y | |
-; CHECK-NEXT: ret i1 [[A]] | |
+; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt float %x, %y | |
+; CHECK-NEXT: ret i1 [[TMP1]] | |
; | |
%a = fcmp olt float %x, %y | |
%b = fcmp ord float %x, %y | |
%c = and i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @t3(float %x, float %y) { | |
; CHECK-LABEL: @t3( | |
; CHECK-NEXT: ret i1 false | |
; | |
%a = fcmp oge float %x, %y | |
%b = fcmp uno float %x, %y | |
%c = and i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @t4(float %x, float %y) { | |
; CHECK-LABEL: @t4( | |
-; CHECK-NEXT: [[A:%.*]] = fcmp one float %y, %x | |
-; CHECK-NEXT: ret i1 [[A]] | |
+; CHECK-NEXT: [[TMP1:%.*]] = fcmp one float %y, %x | |
+; CHECK-NEXT: ret i1 [[TMP1]] | |
; | |
%a = fcmp one float %y, %x | |
%b = fcmp ord float %x, %y | |
%c = and i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @t5(float %x, float %y) { | |
; CHECK-LABEL: @t5( | |
; CHECK-NEXT: ret i1 false | |
; | |
%a = fcmp ord float %x, %y | |
%b = fcmp uno float %x, %y | |
%c = and i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @t6(float %x, float %y) { | |
; CHECK-LABEL: @t6( | |
; CHECK-NEXT: ret i1 false | |
; | |
%a = fcmp uno float %x, %y | |
%b = fcmp ord float %x, %y | |
%c = and i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @t7(float %x, float %y) { | |
; CHECK-LABEL: @t7( | |
-; CHECK-NEXT: [[A:%.*]] = fcmp uno float %x, %y | |
-; CHECK-NEXT: ret i1 [[A]] | |
+; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno float %x, %y | |
+; CHECK-NEXT: ret i1 [[TMP1]] | |
; | |
%a = fcmp uno float %x, %y | |
%b = fcmp ult float %x, %y | |
%c = and i1 %a, %b | |
ret i1 %c | |
} | |
; PR15737 | |
define i1 @t8(float %a, double %b) { | |
; CHECK-LABEL: @t8( | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp ord float %a, 0.000000e+00 | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double %b, 0.000000e+00 | |
; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP]], [[CMP1]] | |
; CHECK-NEXT: ret i1 [[AND]] | |
; | |
%cmp = fcmp ord float %a, 0.000000e+00 | |
%cmp1 = fcmp ord double %b, 0.000000e+00 | |
%and = and i1 %cmp, %cmp1 | |
ret i1 %and | |
} | |
define <2 x i1> @t9(<2 x float> %a, <2 x double> %b) { | |
; CHECK-LABEL: @t9( | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp ord <2 x float> %a, zeroinitializer | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord <2 x double> %b, zeroinitializer | |
; CHECK-NEXT: [[AND:%.*]] = and <2 x i1> [[CMP]], [[CMP1]] | |
; CHECK-NEXT: ret <2 x i1> [[AND]] | |
; | |
%cmp = fcmp ord <2 x float> %a, zeroinitializer | |
%cmp1 = fcmp ord <2 x double> %b, zeroinitializer | |
%and = and <2 x i1> %cmp, %cmp1 | |
ret <2 x i1> %and | |
} | |
define i1 @auto_gen_0(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_0( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp false double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_1(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_1( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp oeq double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_2(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_2( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp oeq double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_3(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_3( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ogt double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_4(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_4( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ogt double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_5(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_5( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ogt double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_6(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_6( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp oge double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_7(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_7( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp oge double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_8(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_8( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp oge double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_9(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_9( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp oge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp oge double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_10(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_10( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp olt double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_11(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_11( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp olt double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_12(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_12( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp olt double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_13(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_13( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp olt double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_14(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_14( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp olt double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_15(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_15( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_16(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_16( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_17(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_17( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_18(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_18( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_19(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_19( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_20(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_20( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ole double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_21(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_21( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_22(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_22( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_23(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_23( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_24(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_24( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_25(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_25( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_26(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_26( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_27(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_27( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp one double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_28(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_28( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_29(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_29( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP1]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_30(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_30( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP1]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_31(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_31( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP1]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oge double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_32(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_32( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP1]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_33(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_33( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP1]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ole double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_34(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_34( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP1]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp one double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_35(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_35( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
; CHECK-NEXT: ret i1 [[RETVAL]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_36(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_36( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_37(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_37( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_38(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_38( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_39(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_39( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_40(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_40( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_41(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_41( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_42(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_42( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_43(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_43( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_44(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_44( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ueq double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_45(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_45( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_46(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_46( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_47(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_47( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_48(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_48( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_49(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_49( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_50(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_50( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_51(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_51( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_52(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_52( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_53(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_53( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_54(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_54( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ugt double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_55(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_55( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_56(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_56( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_57(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_57( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_58(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_58( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oge double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_59(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_59( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_60(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_60( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_61(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_61( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_62(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_62( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp oge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_63(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_63( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ueq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_64(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_64( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ugt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_65(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_65( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_66(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_66( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_67(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_67( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_68(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_68( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_69(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_69( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_70(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_70( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_71(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_71( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_72(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_72( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_73(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_73( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_74(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_74( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_75(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_75( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_76(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_76( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_77(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_77( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ult double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ult double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_78(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_78( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_79(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_79( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_80(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_80( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_81(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_81( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_82(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_82( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_83(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_83( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ole double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_84(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_84( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_85(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_85( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ole double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_86(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_86( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ueq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_87(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_87( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_88(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_88( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ueq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_89(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_89( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ult double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ult double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_90(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_90( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ule double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_91(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_91( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_92(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_92( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_93(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_93( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_94(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_94( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_95(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_95( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_96(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_96( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_97(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_97( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp one double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_98(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_98( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp one double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_99(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_99( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_100(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_100( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ugt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_101(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_101( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ugt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_102(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_102( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ult double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ult double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_103(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_103( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ult double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ule double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_104(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_104( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp une double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_105(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_105( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_106(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_106( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_107(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_107( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_108(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_108( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_109(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_109( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_110(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_110( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_111(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_111( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_112(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_112( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_113(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_113( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_114(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_114( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_115(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_115( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_116(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_116( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ult double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_117(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_117( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ule double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_118(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_118( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: ret i1 [[CMP]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp une double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_119(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_119( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp uno double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp uno double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_120(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_120( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_121(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_121( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_122(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_122( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_123(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_123( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_124(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_124( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_125(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_125( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_126(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_126( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_127(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_127( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_128(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_128( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp ueq double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_129(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_129( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_130(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_130( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp uge double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_131(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_131( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp ult double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ult double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_132(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_132( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp ule double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ule double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_133(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_133( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp une double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp une double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_134(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_134( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp uno double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP1]] | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp uno double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_135(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_135( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp true double %a, %b | |
%retval = and i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
diff --git test/Transforms/InstCombine/or-fcmp.ll test/Transforms/InstCombine/or-fcmp.ll | |
index ce1bb0e..f961cfa 100644 | |
--- test/Transforms/InstCombine/or-fcmp.ll | |
+++ test/Transforms/InstCombine/or-fcmp.ll | |
@@ -1,1901 +1,1784 @@ | |
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py | |
; RUN: opt < %s -instcombine -S | FileCheck %s | |
define i1 @t1(float %x, float %y) { | |
; CHECK-LABEL: @t1( | |
; CHECK-NEXT: [[TMP1:%.*]] = fcmp ueq float %x, %y | |
; CHECK-NEXT: ret i1 [[TMP1]] | |
; | |
%a = fcmp ueq float %x, %y | |
%b = fcmp uno float %x, %y | |
%c = or i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @t2(float %x, float %y) { | |
; CHECK-LABEL: @t2( | |
; CHECK-NEXT: [[TMP1:%.*]] = fcmp ole float %x, %y | |
; CHECK-NEXT: ret i1 [[TMP1]] | |
; | |
%a = fcmp olt float %x, %y | |
%b = fcmp oeq float %x, %y | |
%c = or i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @t3(float %x, float %y) { | |
; CHECK-LABEL: @t3( | |
; CHECK-NEXT: ret i1 true | |
; | |
%a = fcmp ult float %x, %y | |
%b = fcmp uge float %x, %y | |
%c = or i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @t4(float %x, float %y) { | |
; CHECK-LABEL: @t4( | |
; CHECK-NEXT: [[TMP1:%.*]] = fcmp une float %x, %y | |
; CHECK-NEXT: ret i1 [[TMP1]] | |
; | |
%a = fcmp ult float %x, %y | |
%b = fcmp ugt float %x, %y | |
%c = or i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @t5(float %x, float %y) { | |
; CHECK-LABEL: @t5( | |
; CHECK-NEXT: [[TMP1:%.*]] = fcmp ord float %x, %y | |
; CHECK-NEXT: ret i1 [[TMP1]] | |
; | |
%a = fcmp olt float %x, %y | |
%b = fcmp oge float %x, %y | |
%c = or i1 %a, %b | |
ret i1 %c | |
} | |
define i1 @auto_gen_0(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_0( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 false | |
; | |
bb: | |
%cmp = fcmp false double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_1(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_1( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp oeq double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_2(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_2( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp oeq double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_3(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_3( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp ogt double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_4(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_4( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp oge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ogt double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_5(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_5( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ogt double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_6(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_6( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp oge double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp oge double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_7(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_7( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp oge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp oge double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_8(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_8( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp oge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp oge double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_9(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_9( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp oge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp oge double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_10(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_10( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp olt double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp olt double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_11(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_11( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ole double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp olt double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_12(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_12( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp one double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp olt double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_13(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_13( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp olt double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_14(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_14( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp olt double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_15(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_15( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp ole double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_16(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_16( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ole double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_17(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_17( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_18(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_18( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_19(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_19( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ole double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_20(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_20( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ole double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ole double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_21(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_21( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp one double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_22(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_22( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_23(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_23( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp one double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_24(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_24( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_25(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_25( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp one double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_26(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_26( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_27(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_27( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp one double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp one double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_28(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_28( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_29(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_29( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[TMP0:%.*]] = fcmp oeq double %a, %b | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_30(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_30( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[TMP0:%.*]] = fcmp ogt double %a, %b | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_31(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_31( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[TMP0:%.*]] = fcmp oge double %a, %b | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_32(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_32( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[TMP0:%.*]] = fcmp olt double %a, %b | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_33(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_33( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[TMP0:%.*]] = fcmp ole double %a, %b | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_34(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_34( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[TMP0:%.*]] = fcmp one double %a, %b | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_35(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_35( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ord double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ord double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_36(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_36( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_37(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_37( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ueq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_38(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_38( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_39(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_39( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_40(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_40( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_41(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_41( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_42(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_42( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_43(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_43( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_44(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_44( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ueq double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ueq double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_45(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_45( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_46(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_46( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_47(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_47( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ugt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_48(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_48( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_49(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_49( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_50(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_50( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_51(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_51( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_52(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_52( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_53(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_53( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_54(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_54( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ugt double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ugt double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_55(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_55( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_56(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_56( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_57(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_57( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_58(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_58( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_59(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_59( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_60(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_60( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_61(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_61( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_62(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_62( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uge double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_63(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_63( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_64(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_64( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_65(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_65( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uge double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_66(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_66( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_67(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_67( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_68(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_68( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_69(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_69( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_70(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_70( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ult double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_71(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_71( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_72(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_72( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_73(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_73( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ult double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_74(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_74( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_75(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_75( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_76(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_76( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_77(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_77( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ult double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ult double %a, %b | |
%cmp1 = fcmp ult double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_78(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_78( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_79(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_79( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_80(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_80( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_81(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_81( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_82(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_82( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_83(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_83( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_84(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_84( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_85(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_85( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp ule double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_86(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_86( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_87(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_87( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_88(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_88( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_89(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_89( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ult double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_90(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_90( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp ule double %a, %b | |
%cmp1 = fcmp ule double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_91(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_91( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_92(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_92( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_93(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_93( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_94(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_94( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_95(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_95( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_96(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_96( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_97(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_97( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_98(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_98( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp une double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_99(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_99( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_100(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_100( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_101(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_101( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_102(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_102( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ult double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_103(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_103( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp ule double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_104(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_104( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp une double %a, %b | |
%cmp1 = fcmp une double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_105(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_105( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
; CHECK-NEXT: ret i1 [[CMP]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_106(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_106( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oeq double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ueq double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_107(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_107( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ugt double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_108(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_108( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp oge double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_109(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_109( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp olt double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ult double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_110(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_110( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ole double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_111(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_111( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp one double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
+; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_112(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_112( | |
; CHECK-NEXT: bb: | |
-; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
-; CHECK-NEXT: [[CMP1:%.*]] = fcmp ord double %a, %b | |
-; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
-; CHECK-NEXT: ret i1 [[RETVAL]] | |
+; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_113(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_113( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ueq double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_114(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_114( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ugt double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_115(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_115( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp uge double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_116(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_116( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ult double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ult double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_117(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_117( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp ule double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp ule double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_118(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_118( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[TMP0:%.*]] = fcmp une double %a, %b | |
; CHECK-NEXT: ret i1 [[TMP0]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp une double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_119(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_119( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: [[CMP:%.*]] = fcmp uno double %a, %b | |
; CHECK-NEXT: [[CMP1:%.*]] = fcmp uno double %a, %b | |
; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[CMP]], [[CMP1]] | |
; CHECK-NEXT: ret i1 [[RETVAL]] | |
; | |
bb: | |
%cmp = fcmp uno double %a, %b | |
%cmp1 = fcmp uno double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_120(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_120( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp false double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_121(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_121( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp oeq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_122(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_122( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ogt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_123(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_123( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp oge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_124(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_124( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp olt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_125(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_125( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ole double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_126(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_126( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp one double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_127(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_127( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ord double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_128(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_128( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ueq double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_129(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_129( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ugt double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_130(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_130( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp uge double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_131(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_131( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ult double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_132(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_132( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp ule double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_133(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_133( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp une double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_134(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_134( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp uno double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} | |
define i1 @auto_gen_135(double %a, double %b) { | |
; CHECK-LABEL: @auto_gen_135( | |
; CHECK-NEXT: bb: | |
; CHECK-NEXT: ret i1 true | |
; | |
bb: | |
%cmp = fcmp true double %a, %b | |
%cmp1 = fcmp true double %a, %b | |
%retval = or i1 %cmp, %cmp1 | |
ret i1 %retval | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment