[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / combine-add.mir
blob9a81a5fc176ab8d1028c6b8ac9292ba5fd80f500
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs -mtriple aarch64-unknown-unknown %s -o - | FileCheck %s
4 ---
5 name:            add_lhs_sub_reg
6 alignment:       4
7 tracksRegLiveness: true
8 frameInfo:
9   maxAlignment:    1
10 machineFunctionInfo: {}
11 body:             |
12   bb.0:
13     liveins: $w0, $w1
14     ; CHECK-LABEL: name: add_lhs_sub_reg
15     ; CHECK: liveins: $w0, $w1
16     ; CHECK-NEXT: {{  $}}
17     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
18     ; CHECK-NEXT: $w0 = COPY [[COPY]](s32)
19     %0:_(s32) = COPY $w0
20     %1:_(s32) = COPY $w1
21     %2:_(s32) = G_SUB %0, %1
22     %3:_(s32) = G_ADD %2, %1
23     $w0 = COPY %3
24 ...
25 ---
26 name:            add_lhs_sub_reg_wide
27 alignment:       4
28 tracksRegLiveness: true
29 frameInfo:
30   maxAlignment:    1
31 machineFunctionInfo: {}
32 body:             |
33   bb.0:
34     liveins: $q0, $q1
35     ; CHECK-LABEL: name: add_lhs_sub_reg_wide
36     ; CHECK: liveins: $q0, $q1
37     ; CHECK-NEXT: {{  $}}
38     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $q0
39     ; CHECK-NEXT: $q0 = COPY [[COPY]](s128)
40     %0:_(s128) = COPY $q0
41     %1:_(s128) = COPY $q1
42     %2:_(s128) = G_SUB %0, %1
43     %3:_(s128) = G_ADD %2, %1
44     $q0 = COPY %3
45 ...
46 ---
47 name:            add_lhs_sub_reg_vec
48 alignment:       4
49 tracksRegLiveness: true
50 frameInfo:
51   maxAlignment:    1
52 machineFunctionInfo: {}
53 body:             |
54   bb.0:
55     liveins: $x0, $x1
56     ; CHECK-LABEL: name: add_lhs_sub_reg_vec
57     ; CHECK: liveins: $x0, $x1
58     ; CHECK-NEXT: {{  $}}
59     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $x0
60     ; CHECK-NEXT: $x0 = COPY [[COPY]](<4 x s16>)
61     %0:_(<4 x s16>) = COPY $x0
62     %1:_(<4 x s16>) = COPY $x1
63     %2:_(<4 x s16>) = G_SUB %0, %1
64     %3:_(<4 x s16>) = G_ADD %2, %1
65     $x0 = COPY %3
66 ...
67 ---
68 name:            add_rhs_sub_reg
69 alignment:       4
70 tracksRegLiveness: true
71 frameInfo:
72   maxAlignment:    1
73 machineFunctionInfo: {}
74 body:             |
75   bb.0:
76     liveins: $w0, $w1
77     ; CHECK-LABEL: name: add_rhs_sub_reg
78     ; CHECK: liveins: $w0, $w1
79     ; CHECK-NEXT: {{  $}}
80     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
81     ; CHECK-NEXT: $w0 = COPY [[COPY]](s32)
82     %0:_(s32) = COPY $w0
83     %1:_(s32) = COPY $w1
84     %2:_(s32) = G_SUB %0, %1
85     %3:_(s32) = G_ADD %1, %2
86     $w0 = COPY %3
87 ...
88 ---
89 name:            add_rhs_sub_reg_wide
90 alignment:       4
91 tracksRegLiveness: true
92 frameInfo:
93   maxAlignment:    1
94 machineFunctionInfo: {}
95 body:             |
96   bb.0:
97     liveins: $q0, $q1
98     ; CHECK-LABEL: name: add_rhs_sub_reg_wide
99     ; CHECK: liveins: $q0, $q1
100     ; CHECK-NEXT: {{  $}}
101     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $q0
102     ; CHECK-NEXT: $q0 = COPY [[COPY]](s128)
103     %0:_(s128) = COPY $q0
104     %1:_(s128) = COPY $q1
105     %2:_(s128) = G_SUB %0, %1
106     %3:_(s128) = G_ADD %1, %2
107     $q0 = COPY %3
110 name:            add_rhs_sub_reg_vec
111 alignment:       4
112 tracksRegLiveness: true
113 frameInfo:
114   maxAlignment:    1
115 machineFunctionInfo: {}
116 body:             |
117   bb.0:
118     liveins: $x0, $x1
119     ; CHECK-LABEL: name: add_rhs_sub_reg_vec
120     ; CHECK: liveins: $x0, $x1
121     ; CHECK-NEXT: {{  $}}
122     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $x0
123     ; CHECK-NEXT: $x0 = COPY [[COPY]](<4 x s16>)
124     %0:_(<4 x s16>) = COPY $x0
125     %1:_(<4 x s16>) = COPY $x1
126     %2:_(<4 x s16>) = G_SUB %0, %1
127     %3:_(<4 x s16>) = G_ADD %1, %2
128     $x0 = COPY %3