Skip to content

Commit 71f6bfe

Browse files
committed
[AArch64] Add mir test coverage for madd imm combine. NFC
1 parent 8e104d6 commit 71f6bfe

File tree

1 file changed

+147
-0
lines changed

1 file changed

+147
-0
lines changed
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
2+
# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass machine-combiner -verify-machineinstrs -o - %s | FileCheck %s
3+
4+
---
5+
name: madd_addwi
6+
alignment: 4
7+
tracksRegLiveness: true
8+
body: |
9+
bb.0.entry:
10+
liveins: $w0, $w1
11+
12+
; CHECK-LABEL: name: madd_addwi
13+
; CHECK: liveins: $w0, $w1
14+
; CHECK-NEXT: {{ $}}
15+
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
16+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
17+
; CHECK-NEXT: [[MOVZWi:%[0-9]+]]:gpr32common = nsw MOVZWi 79, 0
18+
; CHECK-NEXT: [[MADDWrrr:%[0-9]+]]:gpr32common = nsw MADDWrrr [[COPY1]], [[COPY]], [[MOVZWi]]
19+
; CHECK-NEXT: $w0 = COPY [[MADDWrrr]]
20+
; CHECK-NEXT: RET_ReallyLR implicit $w0
21+
%0:gpr32 = COPY $w0
22+
%1:gpr32 = COPY $w1
23+
%2:gpr32common = nsw MADDWrrr %1:gpr32, %0:gpr32, $wzr
24+
%3:gpr32sp = nsw ADDWri killed %2:gpr32common, 79, 0
25+
$w0 = COPY %3:gpr32sp
26+
RET_ReallyLR implicit $w0
27+
...
28+
---
29+
name: madd_addxi
30+
alignment: 4
31+
tracksRegLiveness: true
32+
body: |
33+
bb.0.entry:
34+
liveins: $x0, $x1
35+
36+
; CHECK-LABEL: name: madd_addxi
37+
; CHECK: liveins: $x0, $x1
38+
; CHECK-NEXT: {{ $}}
39+
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
40+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
41+
; CHECK-NEXT: [[MOVZXi:%[0-9]+]]:gpr64common = nsw MOVZXi 79, 0
42+
; CHECK-NEXT: [[MADDXrrr:%[0-9]+]]:gpr64common = nsw MADDXrrr [[COPY1]], [[COPY]], [[MOVZXi]]
43+
; CHECK-NEXT: $x0 = COPY [[MADDXrrr]]
44+
; CHECK-NEXT: RET_ReallyLR implicit $x0
45+
%0:gpr64 = COPY $x0
46+
%1:gpr64 = COPY $x1
47+
%2:gpr64common = nsw MADDXrrr %1:gpr64, %0:gpr64, $xzr
48+
%3:gpr64sp = nsw ADDXri killed %2:gpr64common, 79, 0
49+
$x0 = COPY %3:gpr64sp
50+
RET_ReallyLR implicit $x0
51+
...
52+
---
53+
name: madd_subwi
54+
alignment: 4
55+
tracksRegLiveness: true
56+
body: |
57+
bb.0.entry:
58+
liveins: $w0, $w1
59+
60+
; CHECK-LABEL: name: madd_subwi
61+
; CHECK: liveins: $w0, $w1
62+
; CHECK-NEXT: {{ $}}
63+
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
64+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
65+
; CHECK-NEXT: [[MOVNWi:%[0-9]+]]:gpr32common = nsw MOVNWi 0, 0
66+
; CHECK-NEXT: [[MADDWrrr:%[0-9]+]]:gpr32 = nsw MADDWrrr [[COPY1]], [[COPY]], [[MOVNWi]]
67+
; CHECK-NEXT: $w0 = COPY [[MADDWrrr]]
68+
; CHECK-NEXT: RET_ReallyLR implicit $w0
69+
%0:gpr32 = COPY $w0
70+
%1:gpr32 = COPY $w1
71+
%2:gpr32common = nsw MADDWrrr %1:gpr32, %0:gpr32, $wzr
72+
%3:gpr32 = nsw SUBSWri killed %2:gpr32common, 1, 0, implicit-def dead $nzcv
73+
$w0 = COPY %3:gpr32
74+
RET_ReallyLR implicit $w0
75+
...
76+
---
77+
name: madd_subxi
78+
alignment: 4
79+
tracksRegLiveness: true
80+
body: |
81+
bb.0.entry:
82+
liveins: $x0, $x1
83+
84+
; CHECK-LABEL: name: madd_subxi
85+
; CHECK: liveins: $x0, $x1
86+
; CHECK-NEXT: {{ $}}
87+
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
88+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
89+
; CHECK-NEXT: [[MOVNXi:%[0-9]+]]:gpr64common = nsw MOVNXi 0, 0
90+
; CHECK-NEXT: [[MADDXrrr:%[0-9]+]]:gpr64 = nsw MADDXrrr [[COPY1]], [[COPY]], [[MOVNXi]]
91+
; CHECK-NEXT: $x0 = COPY [[MADDXrrr]]
92+
; CHECK-NEXT: RET_ReallyLR implicit $x0
93+
%0:gpr64 = COPY $x0
94+
%1:gpr64 = COPY $x1
95+
%2:gpr64common = nsw MADDXrrr %1:gpr64, %0:gpr64, $xzr
96+
%3:gpr64 = nsw SUBSXri killed %2:gpr64common, 1, 0, implicit-def dead $nzcv
97+
$x0 = COPY %3:gpr64
98+
RET_ReallyLR implicit $x0
99+
...
100+
---
101+
name: madd_addorwi
102+
alignment: 4
103+
tracksRegLiveness: true
104+
body: |
105+
bb.0.entry:
106+
liveins: $w0, $w1
107+
108+
; CHECK-LABEL: name: madd_addorwi
109+
; CHECK: liveins: $w0, $w1
110+
; CHECK-NEXT: {{ $}}
111+
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
112+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
113+
; CHECK-NEXT: [[ORRWri:%[0-9]+]]:gpr32common = nsw ORRWri $wzr, 1291
114+
; CHECK-NEXT: [[MADDWrrr:%[0-9]+]]:gpr32common = nsw MADDWrrr [[COPY1]], [[COPY]], [[ORRWri]]
115+
; CHECK-NEXT: $w0 = COPY [[MADDWrrr]]
116+
; CHECK-NEXT: RET_ReallyLR implicit $w0
117+
%0:gpr32 = COPY $w0
118+
%1:gpr32 = COPY $w1
119+
%2:gpr32common = nsw MADDWrrr %1:gpr32, %0:gpr32, $wzr
120+
%3:gpr32sp = nsw ADDWri killed %2:gpr32common, 4095, 12
121+
$w0 = COPY %3:gpr32sp
122+
RET_ReallyLR implicit $w0
123+
...
124+
---
125+
name: madd_addorxi
126+
alignment: 4
127+
tracksRegLiveness: true
128+
body: |
129+
bb.0.entry:
130+
liveins: $x0, $x1
131+
132+
; CHECK-LABEL: name: madd_addorxi
133+
; CHECK: liveins: $x0, $x1
134+
; CHECK-NEXT: {{ $}}
135+
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
136+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
137+
; CHECK-NEXT: [[ORRXri:%[0-9]+]]:gpr64common = nsw ORRXri $xzr, 7435
138+
; CHECK-NEXT: [[MADDXrrr:%[0-9]+]]:gpr64common = nsw MADDXrrr [[COPY1]], [[COPY]], [[ORRXri]]
139+
; CHECK-NEXT: $x0 = COPY [[MADDXrrr]]
140+
; CHECK-NEXT: RET_ReallyLR implicit $x0
141+
%0:gpr64 = COPY $x0
142+
%1:gpr64 = COPY $x1
143+
%2:gpr64common = nsw MADDXrrr %1:gpr64, %0:gpr64, $xzr
144+
%3:gpr64sp = nsw ADDXri killed %2:gpr64common, 4095, 12
145+
$x0 = COPY %3:gpr64sp
146+
RET_ReallyLR implicit $x0
147+
...

0 commit comments

Comments
 (0)