implement unordered floating point compares

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30928 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2006-10-13 13:14:59 +00:00
parent 339ec4cb15
commit 42b62f3f81
3 changed files with 95 additions and 29 deletions

View File

@@ -5,7 +5,9 @@
; RUN: llvm-as < %s | llc -march=arm | grep movge &&
; RUN: llvm-as < %s | llc -march=arm | grep movle &&
; RUN: llvm-as < %s | llc -march=arm | grep fcmpes &&
; RUN: llvm-as < %s | llc -march=arm | grep fcmped
; RUN: llvm-as < %s | llc -march=arm | grep fcmps &&
; RUN: llvm-as < %s | llc -march=arm | grep fcmped &&
; RUN: llvm-as < %s | llc -march=arm | grep fcmpd
int %f1(float %a) {
entry:
@@ -42,9 +44,23 @@ entry:
ret int %tmp
}
int %f6(float %a) {
entry:
%tmp = setne float %a, 1.000000e+00 ; <bool> [#uses=1]
%tmp = cast bool %tmp to int ; <int> [#uses=1]
ret int %tmp
}
int %g1(double %a) {
entry:
%tmp = setlt double %a, 1.000000e+00 ; <bool> [#uses=1]
%tmp = cast bool %tmp to int ; <int> [#uses=1]
ret int %tmp
}
int %g2(double %a) {
entry:
%tmp = setne double %a, 1.000000e+00 ; <bool> [#uses=1]
%tmp = cast bool %tmp to int ; <int> [#uses=1]
ret int %tmp
}