1
+ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4
1
2
; RUN: llc -mtriple=arm-eabi -mattr=+v4t %s -o - | FileCheck %s
2
3
3
4
;; Integer absolute value, should produce something as good as: ARM:
6
7
;; bx lr
7
8
8
9
define i32 @test (i32 %a ) {
9
- %tmp1neg = sub i32 0 , %a
10
- %b = icmp sgt i32 %a , -1
11
- %abs = select i1 %b , i32 %a , i32 %tmp1neg
12
- ret i32 %abs
13
- ; CHECK: cmp
14
- ; CHECK: rsbmi r0, r0, #0
15
- ; CHECK: bx lr
10
+ ; CHECK-LABEL: test:
11
+ ; CHECK: @ %bb.0:
12
+ ; CHECK-NEXT: cmp r0, #0
13
+ ; CHECK-NEXT: rsbmi r0, r0, #0
14
+ ; CHECK-NEXT: bx lr
15
+ %tmp1neg = sub i32 0 , %a
16
+ %b = icmp sgt i32 %a , -1
17
+ %abs = select i1 %b , i32 %a , i32 %tmp1neg
18
+ ret i32 %abs
16
19
}
17
20
18
21
; rdar://11633193
@@ -21,11 +24,12 @@ define i32 @test(i32 %a) {
21
24
;; rsbmi
22
25
;; bx
23
26
define i32 @test2 (i32 %a , i32 %b ) nounwind readnone ssp {
27
+ ; CHECK-LABEL: test2:
28
+ ; CHECK: @ %bb.0: @ %entry
29
+ ; CHECK-NEXT: subs r0, r0, r1
30
+ ; CHECK-NEXT: rsbmi r0, r0, #0
31
+ ; CHECK-NEXT: bx lr
24
32
entry:
25
- ; CHECK: test2
26
- ; CHECK: subs
27
- ; CHECK-NEXT: rsbmi
28
- ; CHECK-NEXT: bx
29
33
%sub = sub nsw i32 %a , %b
30
34
%cmp = icmp sgt i32 %sub , -1
31
35
%sub1 = sub nsw i32 0 , %sub
0 commit comments