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 3 4... 5--- 6name: test_f16.rint 7alignment: 4 8legalized: true 9regBankSelected: true 10tracksRegLiveness: true 11machineFunctionInfo: {} 12body: | 13 bb.0: 14 liveins: $h0 15 16 ; CHECK-LABEL: name: test_f16.rint 17 ; CHECK: liveins: $h0 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 24 $h0 = COPY %1(s16) 25 RET_ReallyLR implicit $h0 26 27... 28--- 29name: test_f32.rint 30alignment: 4 31legalized: true 32regBankSelected: true 33tracksRegLiveness: true 34machineFunctionInfo: {} 35body: | 36 bb.0: 37 liveins: $s0 38 39 ; CHECK-LABEL: name: test_f32.rint 40 ; CHECK: liveins: $s0 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 47 $s0 = COPY %1(s32) 48 RET_ReallyLR implicit $s0 49 50... 51--- 52name: test_f64.rint 53alignment: 4 54legalized: true 55regBankSelected: true 56tracksRegLiveness: true 57machineFunctionInfo: {} 58body: | 59 bb.0: 60 liveins: $d0 61 62 ; CHECK-LABEL: name: test_f64.rint 63 ; CHECK: liveins: $d0 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 70 $d0 = COPY %1(s64) 71 RET_ReallyLR implicit $d0 72 73... 74--- 75name: test_v4f32.rint 76alignment: 4 77legalized: true 78regBankSelected: true 79tracksRegLiveness: true 80machineFunctionInfo: {} 81body: | 82 bb.0: 83 liveins: $q0 84 85 ; CHECK-LABEL: name: test_v4f32.rint 86 ; CHECK: liveins: $q0 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 95 96... 97--- 98name: test_v2f64.rint 99alignment: 4 100legalized: true 101regBankSelected: true 102tracksRegLiveness: true 103machineFunctionInfo: {} 104body: | 105 bb.0: 106 liveins: $q0 107 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 118 119... 120--- 121name: test_v4f16.rint 122alignment: 4 123legalized: true 124regBankSelected: true 125tracksRegLiveness: true 126machineFunctionInfo: {} 127body: | 128 bb.0: 129 liveins: $d0 130 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 141 142... 143--- 144name: test_v8f16.rint 145alignment: 4 146legalized: true 147regBankSelected: true 148tracksRegLiveness: true 149machineFunctionInfo: {} 150body: | 151 bb.0: 152 liveins: $q0 153 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 164 165... 166--- 167name: test_v2f32.rint 168alignment: 4 169legalized: true 170regBankSelected: true 171tracksRegLiveness: true 172machineFunctionInfo: {} 173body: | 174 bb.0: 175 liveins: $d0 176 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 187 188... 189