1 ; RUN: opt < %s -instcombine -S | FileCheck %s
3 define zeroext i8 @t1(float %x, float %y) nounwind {
4 %a = fcmp ueq float %x, %y
5 %b = fcmp ord float %x, %y
7 %retval = zext i1 %c to i8
10 ; CHECK: fcmp oeq float %x, %y
11 ; CHECK-NOT: fcmp ueq float %x, %y
12 ; CHECK-NOT: fcmp ord float %x, %y
16 define zeroext i8 @t2(float %x, float %y) nounwind {
17 %a = fcmp olt float %x, %y
18 %b = fcmp ord float %x, %y
20 %retval = zext i1 %c to i8
23 ; CHECK: fcmp olt float %x, %y
24 ; CHECK-NOT: fcmp ord float %x, %y
28 define zeroext i8 @t3(float %x, float %y) nounwind {
29 %a = fcmp oge float %x, %y
30 %b = fcmp uno float %x, %y
32 %retval = zext i1 %c to i8
38 define zeroext i8 @t4(float %x, float %y) nounwind {
39 %a = fcmp one float %y, %x
40 %b = fcmp ord float %x, %y
42 %retval = zext i1 %c to i8
45 ; CHECK: fcmp one float %y, %x
46 ; CHECK-NOT: fcmp ord float %x, %y
50 define zeroext i8 @t5(float %x, float %y) nounwind {
51 %a = fcmp ord float %x, %y
52 %b = fcmp uno float %x, %y
54 %retval = zext i1 %c to i8
60 define zeroext i8 @t6(float %x, float %y) nounwind {
61 %a = fcmp uno float %x, %y
62 %b = fcmp ord float %x, %y
64 %retval = zext i1 %c to i8
70 define zeroext i8 @t7(float %x, float %y) nounwind {
71 %a = fcmp uno float %x, %y
72 %b = fcmp ult float %x, %y
74 %retval = zext i1 %c to i8