blob: e1eab33e5ebe5600c99b9165dee685efa27fcd14 [file] [log] [blame]
Chris Lattner603572a2007-04-11 05:02:57 +00001; RUN: llvm-as < %s | llc -march=x86-64 -stats 2>&1 | grep '6 .*Number of machine instrs printed'
2
3;; Integer absolute value, should produce something at least as good as:
4;; movl %edi, %eax
5;; sarl $31, %eax
6;; addl %eax, %edi
7;; xorl %eax, %edi
8;; movl %edi, %eax
9;; ret
10define i32 @test(i32 %a) {
11 %tmp1neg = sub i32 0, %a
12 %b = icmp sgt i32 %a, -1
13 %abs = select i1 %b, i32 %a, i32 %tmp1neg
14 ret i32 %abs
15}
16