1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 22:12:57 +02:00
llvm-mirror/test/CodeGen/X86/long-setcc.ll
Andrew Trick a7b48f34b1 Reapply Eli's r127852 now that the pre-RA scheduler can spill EFLAGS.
(target-specific branchless method for double-width relational comparisons on x86)

llvm-svn: 128175
2011-03-23 22:16:02 +00:00

36 lines
602 B
LLVM

; RUN: llc < %s -march=x86 | FileCheck %s
; General case
define i1 @t1(i64 %x, i64 %y) nounwind {
; CHECK: @t1
; CHECK: subl
; CHECK: sbbl
; CHECK: setl %al
%B = icmp slt i64 %x, %y
ret i1 %B
}
; Some special cases
define i1 @t2(i64 %x) nounwind {
; CHECK: @t2
; CHECK: shrl $31, %eax
%B = icmp slt i64 %x, 0
ret i1 %B
}
define i1 @t3(i64 %x) nounwind {
; CHECK: @t3
; CHECX: cmpl $0
; CHECX: sete %al
%tmp = icmp ult i64 %x, 4294967296
ret i1 %tmp
}
define i1 @t4(i64 %x) nounwind {
; CHECK: @t4
; CHECX: cmpl $0
; CHECX: setne %al
%tmp = icmp ugt i64 %x, 4294967295
ret i1 %tmp
}