• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3
4# CHECK-NOT: gpr
5
6...
7---
8name:            test_f16.round
9alignment:       4
10legalized:       true
11tracksRegLiveness: true
12frameInfo:
13  maxCallFrameSize: 0
14machineFunctionInfo: {}
15body:             |
16  bb.0:
17    liveins: $h0
18
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
29
30...
31---
32name:            test_f32.round
33alignment:       4
34legalized:       true
35tracksRegLiveness: true
36frameInfo:
37  maxCallFrameSize: 0
38machineFunctionInfo: {}
39body:             |
40  bb.0:
41    liveins: $s0
42
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
53
54...
55---
56name:            test_f64.round
57alignment:       4
58legalized:       true
59tracksRegLiveness: true
60frameInfo:
61  maxCallFrameSize: 0
62machineFunctionInfo: {}
63body:             |
64  bb.0:
65    liveins: $d0
66
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
77
78...
79---
80name:            test_v8f16.round
81alignment:       4
82legalized:       true
83tracksRegLiveness: true
84frameInfo:
85  maxCallFrameSize: 0
86machineFunctionInfo: {}
87body:             |
88  bb.0:
89    liveins: $q0
90
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
101
102...
103---
104name:            test_v4f16.round
105alignment:       4
106legalized:       true
107tracksRegLiveness: true
108frameInfo:
109  maxCallFrameSize: 0
110machineFunctionInfo: {}
111body:             |
112  bb.0:
113    liveins: $d0
114
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
125
126...
127---
128name:            test_v2f32.round
129alignment:       4
130legalized:       true
131tracksRegLiveness: true
132frameInfo:
133  maxCallFrameSize: 0
134machineFunctionInfo: {}
135body:             |
136  bb.0:
137    liveins: $d0
138
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
149
150...
151---
152name:            test_v4f32.round
153alignment:       4
154legalized:       true
155tracksRegLiveness: true
156frameInfo:
157  maxCallFrameSize: 0
158machineFunctionInfo: {}
159body:             |
160  bb.0:
161    liveins: $q0
162
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
173
174...
175---
176name:            test_v2f64.round
177alignment:       4
178legalized:       true
179tracksRegLiveness: true
180frameInfo:
181  maxCallFrameSize: 0
182machineFunctionInfo: {}
183body:             |
184  bb.0:
185    liveins: $q0
186
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
197