blob: f10591f41f76526fda7747227413ed02eb6f7c3a [file] [log] [blame]
Reid Spencer4cda1902007-04-16 15:15:52 +00001; RUN: llvm-as < %s | llc -march=arm -stats |& \
2; RUN: grep {3 .*Number of machine instrs printed}
3; RUN: llvm-as < %s | llc -march=thumb -stats |& \
4; RUN: grep {4 .*Number of machine instrs printed}
Chris Lattner603572a2007-04-11 05:02:57 +00005
6;; Integer absolute value, should produce something as good as: ARM:
7;; add r3, r0, r0, asr #31
8;; eor r0, r3, r0, asr #31
9;; bx lr
10;; Thumb:
11;; asr r2, r0, #31
12;; add r0, r0, r2
13;; eor r0, r2
14;; bx lr
15
16define i32 @test(i32 %a) {
17 %tmp1neg = sub i32 0, %a
18 %b = icmp sgt i32 %a, -1
19 %abs = select i1 %b, i32 %a, i32 %tmp1neg
20 ret i32 %abs
21}
22