[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / regbank-intrinsic-round.mir
blob57e1a4faeca7dd1d02bdd0c9b8ae445d4d1ed830
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -verify-machineinstrs -mtriple aarch64-unknown-unknown -run-pass=regbankselect -mattr=+fullfp16 %s -o - | FileCheck %s
4 # CHECK-NOT: gpr
6 ...
7 ---
8 name:            test_f16.round
9 alignment:       4
10 legalized:       true
11 tracksRegLiveness: true
12 frameInfo:
13   maxCallFrameSize: 0
14 machineFunctionInfo: {}
15 body:             |
16   bb.0:
17     liveins: $h0
19     ; CHECK-LABEL: name: test_f16.round
20     ; CHECK: liveins: $h0
21     ; CHECK: [[COPY:%[0-9]+]]:fpr(s16) = COPY $h0
22     ; CHECK: [[INTRINSIC_ROUND:%[0-9]+]]:fpr(s16) = G_INTRINSIC_ROUND [[COPY]]
23     ; CHECK: $h0 = COPY [[INTRINSIC_ROUND]](s16)
24     ; CHECK: RET_ReallyLR implicit $h0
25     %0:_(s16) = COPY $h0
26     %1:_(s16) = G_INTRINSIC_ROUND %0
27     $h0 = COPY %1(s16)
28     RET_ReallyLR implicit $h0
30 ...
31 ---
32 name:            test_f32.round
33 alignment:       4
34 legalized:       true
35 tracksRegLiveness: true
36 frameInfo:
37   maxCallFrameSize: 0
38 machineFunctionInfo: {}
39 body:             |
40   bb.0:
41     liveins: $s0
43     ; CHECK-LABEL: name: test_f32.round
44     ; CHECK: liveins: $s0
45     ; CHECK: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s0
46     ; CHECK: [[INTRINSIC_ROUND:%[0-9]+]]:fpr(s32) = G_INTRINSIC_ROUND [[COPY]]
47     ; CHECK: $s0 = COPY [[INTRINSIC_ROUND]](s32)
48     ; CHECK: RET_ReallyLR implicit $s0
49     %0:_(s32) = COPY $s0
50     %1:_(s32) = G_INTRINSIC_ROUND %0
51     $s0 = COPY %1(s32)
52     RET_ReallyLR implicit $s0
54 ...
55 ---
56 name:            test_f64.round
57 alignment:       4
58 legalized:       true
59 tracksRegLiveness: true
60 frameInfo:
61   maxCallFrameSize: 0
62 machineFunctionInfo: {}
63 body:             |
64   bb.0:
65     liveins: $d0
67     ; CHECK-LABEL: name: test_f64.round
68     ; CHECK: liveins: $d0
69     ; CHECK: [[COPY:%[0-9]+]]:fpr(s64) = COPY $d0
70     ; CHECK: [[INTRINSIC_ROUND:%[0-9]+]]:fpr(s64) = G_INTRINSIC_ROUND [[COPY]]
71     ; CHECK: $d0 = COPY [[INTRINSIC_ROUND]](s64)
72     ; CHECK: RET_ReallyLR implicit $d0
73     %0:_(s64) = COPY $d0
74     %1:_(s64) = G_INTRINSIC_ROUND %0
75     $d0 = COPY %1(s64)
76     RET_ReallyLR implicit $d0
78 ...
79 ---
80 name:            test_v8f16.round
81 alignment:       4
82 legalized:       true
83 tracksRegLiveness: true
84 frameInfo:
85   maxCallFrameSize: 0
86 machineFunctionInfo: {}
87 body:             |
88   bb.0:
89     liveins: $q0
91     ; CHECK-LABEL: name: test_v8f16.round
92     ; CHECK: liveins: $q0
93     ; CHECK: [[COPY:%[0-9]+]]:fpr(<8 x s16>) = COPY $q0
94     ; CHECK: [[INTRINSIC_ROUND:%[0-9]+]]:fpr(<8 x s16>) = G_INTRINSIC_ROUND [[COPY]]
95     ; CHECK: $q0 = COPY [[INTRINSIC_ROUND]](<8 x s16>)
96     ; CHECK: RET_ReallyLR implicit $q0
97     %0:_(<8 x s16>) = COPY $q0
98     %1:_(<8 x s16>) = G_INTRINSIC_ROUND %0
99     $q0 = COPY %1(<8 x s16>)
100     RET_ReallyLR implicit $q0
104 name:            test_v4f16.round
105 alignment:       4
106 legalized:       true
107 tracksRegLiveness: true
108 frameInfo:
109   maxCallFrameSize: 0
110 machineFunctionInfo: {}
111 body:             |
112   bb.0:
113     liveins: $d0
115     ; CHECK-LABEL: name: test_v4f16.round
116     ; CHECK: liveins: $d0
117     ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s16>) = COPY $d0
118     ; CHECK: [[INTRINSIC_ROUND:%[0-9]+]]:fpr(<4 x s16>) = G_INTRINSIC_ROUND [[COPY]]
119     ; CHECK: $d0 = COPY [[INTRINSIC_ROUND]](<4 x s16>)
120     ; CHECK: RET_ReallyLR implicit $d0
121     %0:_(<4 x s16>) = COPY $d0
122     %1:_(<4 x s16>) = G_INTRINSIC_ROUND %0
123     $d0 = COPY %1(<4 x s16>)
124     RET_ReallyLR implicit $d0
128 name:            test_v2f32.round
129 alignment:       4
130 legalized:       true
131 tracksRegLiveness: true
132 frameInfo:
133   maxCallFrameSize: 0
134 machineFunctionInfo: {}
135 body:             |
136   bb.0:
137     liveins: $d0
139     ; CHECK-LABEL: name: test_v2f32.round
140     ; CHECK: liveins: $d0
141     ; CHECK: [[COPY:%[0-9]+]]:fpr(<2 x s32>) = COPY $d0
142     ; CHECK: [[INTRINSIC_ROUND:%[0-9]+]]:fpr(<2 x s32>) = G_INTRINSIC_ROUND [[COPY]]
143     ; CHECK: $d0 = COPY [[INTRINSIC_ROUND]](<2 x s32>)
144     ; CHECK: RET_ReallyLR implicit $d0
145     %0:_(<2 x s32>) = COPY $d0
146     %1:_(<2 x s32>) = G_INTRINSIC_ROUND %0
147     $d0 = COPY %1(<2 x s32>)
148     RET_ReallyLR implicit $d0
152 name:            test_v4f32.round
153 alignment:       4
154 legalized:       true
155 tracksRegLiveness: true
156 frameInfo:
157   maxCallFrameSize: 0
158 machineFunctionInfo: {}
159 body:             |
160   bb.0:
161     liveins: $q0
163     ; CHECK-LABEL: name: test_v4f32.round
164     ; CHECK: liveins: $q0
165     ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0
166     ; CHECK: [[INTRINSIC_ROUND:%[0-9]+]]:fpr(<4 x s32>) = G_INTRINSIC_ROUND [[COPY]]
167     ; CHECK: $q0 = COPY [[INTRINSIC_ROUND]](<4 x s32>)
168     ; CHECK: RET_ReallyLR implicit $q0
169     %0:_(<4 x s32>) = COPY $q0
170     %1:_(<4 x s32>) = G_INTRINSIC_ROUND %0
171     $q0 = COPY %1(<4 x s32>)
172     RET_ReallyLR implicit $q0
176 name:            test_v2f64.round
177 alignment:       4
178 legalized:       true
179 tracksRegLiveness: true
180 frameInfo:
181   maxCallFrameSize: 0
182 machineFunctionInfo: {}
183 body:             |
184   bb.0:
185     liveins: $q0
187     ; CHECK-LABEL: name: test_v2f64.round
188     ; CHECK: liveins: $q0
189     ; CHECK: [[COPY:%[0-9]+]]:fpr(<2 x s64>) = COPY $q0
190     ; CHECK: [[INTRINSIC_ROUND:%[0-9]+]]:fpr(<2 x s64>) = G_INTRINSIC_ROUND [[COPY]]
191     ; CHECK: $q0 = COPY [[INTRINSIC_ROUND]](<2 x s64>)
192     ; CHECK: RET_ReallyLR implicit $q0
193     %0:_(<2 x s64>) = COPY $q0
194     %1:_(<2 x s64>) = G_INTRINSIC_ROUND %0
195     $q0 = COPY %1(<2 x s64>)
196     RET_ReallyLR implicit $q0