Skip to content

Commit 3dbd3c2

Browse files
author
Thorsten Schütt
committed
IR test
1 parent dfaf329 commit 3dbd3c2

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2+
; RUN: llc -mtriple=aarch64 -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD
3+
; RUN: llc -mtriple=aarch64 -global-isel -global-isel-abort=2 -verify-machineinstrs %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI
4+
5+
6+
7+
define i64 @APlusC1MinusC2(i64 %a) {
8+
; CHECK-LABEL: APlusC1MinusC2:
9+
; CHECK: // %bb.0: // %entry
10+
; CHECK-NEXT: sub x0, x0, #1
11+
; CHECK-NEXT: ret
12+
entry:
13+
; fold (A+C1)-C2 -> A+(C1-C2)
14+
%add1 = add i64 %a, 5
15+
%sub1 = sub i64 %add1, 6
16+
ret i64 %sub1
17+
}
18+
19+
define i64 @C2MinusAPlusC1(i64 %a) {
20+
; CHECK-LABEL: C2MinusAPlusC1:
21+
; CHECK: // %bb.0: // %entry
22+
; CHECK-NEXT: mov w8, #3 // =0x3
23+
; CHECK-NEXT: sub x0, x8, x0
24+
; CHECK-NEXT: ret
25+
entry:
26+
; fold C2-(A+C1) -> (C2-C1)-A
27+
%add1 = add i64 %a, 6
28+
%sub1 = sub i64 9, %add1
29+
ret i64 %sub1
30+
}
31+
32+
define i64 @AMinusC1MinusC2(i64 %a) {
33+
; CHECK-LABEL: AMinusC1MinusC2:
34+
; CHECK: // %bb.0: // %entry
35+
; CHECK-NEXT: sub x0, x0, #15
36+
; CHECK-NEXT: ret
37+
entry:
38+
; fold (A-C1)-C2 -> A-(C1+C2)
39+
%sub2 = sub i64 %a, 6
40+
%sub1 = sub i64 %sub2, 9
41+
ret i64 %sub1
42+
}
43+
44+
define i64 @C1Minus2MinusC2(i64 %a) {
45+
; CHECK-LABEL: C1Minus2MinusC2:
46+
; CHECK: // %bb.0: // %entry
47+
; CHECK-NEXT: mov w8, #3 // =0x3
48+
; CHECK-NEXT: sub x0, x8, x0
49+
; CHECK-NEXT: ret
50+
entry:
51+
; fold (C1-A)-C2 -> (C1-C2)-A
52+
%sub2 = sub i64 14, %a
53+
%sub1 = sub i64 %sub2, 11
54+
ret i64 %sub1
55+
}
56+
57+
define i64 @AMinusC2PlusC2(i64 %a) {
58+
; CHECK-LABEL: AMinusC2PlusC2:
59+
; CHECK: // %bb.0: // %entry
60+
; CHECK-NEXT: sub x0, x0, #4
61+
; CHECK-NEXT: ret
62+
entry:
63+
; fold ((A-C1)+C2) -> (A+(C2-C1))
64+
%sub1 = sub i64 %a, 21
65+
%add1 = add i64 %sub1, 17
66+
ret i64 %add1
67+
}
68+
69+
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
70+
; CHECK-GI: {{.*}}
71+
; CHECK-SD: {{.*}}

0 commit comments

Comments
 (0)