Home | History | Annotate | Download | only in InstCombine
      1 ; RUN: opt < %s -instcombine -S | grep fcmp | count 3
      2 ; RUN: opt < %s -instcombine -S | grep ret | grep 0
      3 
      4 define zeroext i8 @t1(float %x, float %y) nounwind {
      5        %a = fcmp ueq float %x, %y
      6        %b = fcmp ord float %x, %y
      7        %c = and i1 %a, %b
      8        %retval = zext i1 %c to i8
      9        ret i8 %retval
     10 }
     11 
     12 define zeroext i8 @t2(float %x, float %y) nounwind {
     13        %a = fcmp olt float %x, %y
     14        %b = fcmp ord float %x, %y
     15        %c = and i1 %a, %b
     16        %retval = zext i1 %c to i8
     17        ret i8 %retval
     18 }
     19 
     20 define zeroext i8 @t3(float %x, float %y) nounwind {
     21        %a = fcmp oge float %x, %y
     22        %b = fcmp uno float %x, %y
     23        %c = and i1 %a, %b
     24        %retval = zext i1 %c to i8
     25        ret i8 %retval
     26 }
     27 
     28 define zeroext i8 @t4(float %x, float %y) nounwind {
     29        %a = fcmp one float %y, %x
     30        %b = fcmp ord float %x, %y
     31        %c = and i1 %a, %b
     32        %retval = zext i1 %c to i8
     33        ret i8 %retval
     34 }
     35