1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -verify-machineinstrs -mtriple aarch64-unknown-unknown -run-pass=instruction-select -mattr=+fullfp16 -global-isel %s -o - | FileCheck %s
10 tracksRegLiveness: true
11 machineFunctionInfo: {}
16 ; CHECK-LABEL: name: test_f16.rint
18 ; CHECK: [[COPY:%[0-9]+]]:fpr16 = COPY $h0
19 ; CHECK: [[FRINTXHr:%[0-9]+]]:fpr16 = nofpexcept FRINTXHr [[COPY]]
20 ; CHECK: $h0 = COPY [[FRINTXHr]]
21 ; CHECK: RET_ReallyLR implicit $h0
22 %0:fpr(s16) = COPY $h0
23 %1:fpr(s16) = G_FRINT %0
25 RET_ReallyLR implicit $h0
33 tracksRegLiveness: true
34 machineFunctionInfo: {}
39 ; CHECK-LABEL: name: test_f32.rint
41 ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
42 ; CHECK: [[FRINTXSr:%[0-9]+]]:fpr32 = nofpexcept FRINTXSr [[COPY]]
43 ; CHECK: $s0 = COPY [[FRINTXSr]]
44 ; CHECK: RET_ReallyLR implicit $s0
45 %0:fpr(s32) = COPY $s0
46 %1:fpr(s32) = G_FRINT %0
48 RET_ReallyLR implicit $s0
56 tracksRegLiveness: true
57 machineFunctionInfo: {}
62 ; CHECK-LABEL: name: test_f64.rint
64 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
65 ; CHECK: [[FRINTXDr:%[0-9]+]]:fpr64 = nofpexcept FRINTXDr [[COPY]]
66 ; CHECK: $d0 = COPY [[FRINTXDr]]
67 ; CHECK: RET_ReallyLR implicit $d0
68 %0:fpr(s64) = COPY $d0
69 %1:fpr(s64) = G_FRINT %0
71 RET_ReallyLR implicit $d0
79 tracksRegLiveness: true
80 machineFunctionInfo: {}
85 ; CHECK-LABEL: name: test_v4f32.rint
87 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
88 ; CHECK: [[FRINTXv4f32_:%[0-9]+]]:fpr128 = nofpexcept FRINTXv4f32 [[COPY]]
89 ; CHECK: $q0 = COPY [[FRINTXv4f32_]]
90 ; CHECK: RET_ReallyLR implicit $q0
91 %0:fpr(<4 x s32>) = COPY $q0
92 %1:fpr(<4 x s32>) = G_FRINT %0
93 $q0 = COPY %1(<4 x s32>)
94 RET_ReallyLR implicit $q0
101 regBankSelected: true
102 tracksRegLiveness: true
103 machineFunctionInfo: {}
108 ; CHECK-LABEL: name: test_v2f64.rint
109 ; CHECK: liveins: $q0
110 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
111 ; CHECK: [[FRINTXv2f64_:%[0-9]+]]:fpr128 = nofpexcept FRINTXv2f64 [[COPY]]
112 ; CHECK: $q0 = COPY [[FRINTXv2f64_]]
113 ; CHECK: RET_ReallyLR implicit $q0
114 %0:fpr(<2 x s64>) = COPY $q0
115 %1:fpr(<2 x s64>) = G_FRINT %0
116 $q0 = COPY %1(<2 x s64>)
117 RET_ReallyLR implicit $q0
121 name: test_v4f16.rint
124 regBankSelected: true
125 tracksRegLiveness: true
126 machineFunctionInfo: {}
131 ; CHECK-LABEL: name: test_v4f16.rint
132 ; CHECK: liveins: $d0
133 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
134 ; CHECK: [[FRINTXv4f16_:%[0-9]+]]:fpr64 = nofpexcept FRINTXv4f16 [[COPY]]
135 ; CHECK: $d0 = COPY [[FRINTXv4f16_]]
136 ; CHECK: RET_ReallyLR implicit $d0
137 %0:fpr(<4 x s16>) = COPY $d0
138 %1:fpr(<4 x s16>) = G_FRINT %0
139 $d0 = COPY %1(<4 x s16>)
140 RET_ReallyLR implicit $d0
144 name: test_v8f16.rint
147 regBankSelected: true
148 tracksRegLiveness: true
149 machineFunctionInfo: {}
154 ; CHECK-LABEL: name: test_v8f16.rint
155 ; CHECK: liveins: $q0
156 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
157 ; CHECK: [[FRINTXv8f16_:%[0-9]+]]:fpr128 = nofpexcept FRINTXv8f16 [[COPY]]
158 ; CHECK: $q0 = COPY [[FRINTXv8f16_]]
159 ; CHECK: RET_ReallyLR implicit $q0
160 %0:fpr(<8 x s16>) = COPY $q0
161 %1:fpr(<8 x s16>) = G_FRINT %0
162 $q0 = COPY %1(<8 x s16>)
163 RET_ReallyLR implicit $q0
167 name: test_v2f32.rint
170 regBankSelected: true
171 tracksRegLiveness: true
172 machineFunctionInfo: {}
177 ; CHECK-LABEL: name: test_v2f32.rint
178 ; CHECK: liveins: $d0
179 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
180 ; CHECK: [[FRINTXv2f32_:%[0-9]+]]:fpr64 = nofpexcept FRINTXv2f32 [[COPY]]
181 ; CHECK: $d0 = COPY [[FRINTXv2f32_]]
182 ; CHECK: RET_ReallyLR implicit $d0
183 %0:fpr(<2 x s32>) = COPY $d0
184 %1:fpr(<2 x s32>) = G_FRINT %0
185 $d0 = COPY %1(<2 x s32>)
186 RET_ReallyLR implicit $d0