1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 22:42:46 +02:00
llvm-mirror/test/CodeGen/PowerPC/compare-fcmp-ord.ll
Chris Lattner cafc567fb7 Finally implement correct ordered comparisons for PPC, even though
the code generated is not wonderful.  This turns a miscompilation into
a code quality bug (noted in the ppc readme).  This fixes PR642, which
is over 2 years old (!).  Nate, please review this.

llvm-svn: 45742
2008-01-08 06:46:30 +00:00

28 lines
844 B
LLVM

; RUN: llvm-as < %s | llc -march=ppc32 | grep or | count 3
; This should produce one 'or' or 'cror' instruction per function.
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
target triple = "i686-apple-darwin8"
define i32 @test(double %x, double %y) nounwind {
entry:
%tmp3 = fcmp ole double %x, %y ; <i1> [#uses=1]
%tmp345 = zext i1 %tmp3 to i32 ; <i32> [#uses=1]
ret i32 %tmp345
}
define i32 @test2(double %x, double %y) nounwind {
entry:
%tmp3 = fcmp one double %x, %y ; <i1> [#uses=1]
%tmp345 = zext i1 %tmp3 to i32 ; <i32> [#uses=1]
ret i32 %tmp345
}
define i32 @test3(double %x, double %y) nounwind {
entry:
%tmp3 = fcmp ugt double %x, %y ; <i1> [#uses=1]
%tmp34 = zext i1 %tmp3 to i32 ; <i32> [#uses=1]
ret i32 %tmp34
}