-; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep { or}
+; This test makes sure that these instructions are properly eliminated.
+;
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep -v xor | not grep {or }
-define i32 @test1(i32 %b, i32 %c, i32 %d) {
- %tmp3 = and i32 %c, %b
- %tmp4not = xor i32 %b, -1
- %tmp6 = and i32 %d, %tmp4not
- %tmp7 = or i32 %tmp6, %tmp3
- ret i32 %tmp7
+; PR1738
+define i1 @test1(double %X, double %Y) {
+ %tmp9 = fcmp uno double %X, 0.000000e+00 ; <i1> [#uses=1]
+ %tmp13 = fcmp uno double %Y, 0.000000e+00 ; <i1> [#uses=1]
+ %bothcond = or i1 %tmp13, %tmp9 ; <i1> [#uses=1]
+ ret i1 %bothcond
}