360 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -mattr=+zfh,+d -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4# RUN: llc -mtriple=riscv64 -mattr=+zfh,+d -run-pass=legalizer %s -o - \5# RUN: | FileCheck %s6 7---8name: fadd_f169body: |10 bb.0:11 liveins: $f10_h, $f11_h12 13 ; CHECK-LABEL: name: fadd_f1614 ; CHECK: liveins: $f10_h, $f11_h15 ; CHECK-NEXT: {{ $}}16 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h17 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h18 ; CHECK-NEXT: [[FADD:%[0-9]+]]:_(s16) = G_FADD [[COPY]], [[COPY1]]19 ; CHECK-NEXT: $f10_h = COPY [[FADD]](s16)20 ; CHECK-NEXT: PseudoRET implicit $f10_h21 %0:_(s16) = COPY $f10_h22 %1:_(s16) = COPY $f11_h23 %2:_(s16) = G_FADD %0, %124 $f10_h = COPY %2(s16)25 PseudoRET implicit $f10_h26 27...28---29name: fsub_f1630body: |31 bb.0:32 liveins: $f10_h, $f11_h33 34 ; CHECK-LABEL: name: fsub_f1635 ; CHECK: liveins: $f10_h, $f11_h36 ; CHECK-NEXT: {{ $}}37 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h38 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h39 ; CHECK-NEXT: [[FSUB:%[0-9]+]]:_(s16) = G_FSUB [[COPY]], [[COPY1]]40 ; CHECK-NEXT: $f10_h = COPY [[FSUB]](s16)41 ; CHECK-NEXT: PseudoRET implicit $f10_h42 %0:_(s16) = COPY $f10_h43 %1:_(s16) = COPY $f11_h44 %2:_(s16) = G_FSUB %0, %145 $f10_h = COPY %2(s16)46 PseudoRET implicit $f10_h47 48...49---50name: fmul_f1651body: |52 bb.0:53 liveins: $f10_h, $f11_h54 55 ; CHECK-LABEL: name: fmul_f1656 ; CHECK: liveins: $f10_h, $f11_h57 ; CHECK-NEXT: {{ $}}58 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h59 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h60 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s16) = G_FMUL [[COPY]], [[COPY1]]61 ; CHECK-NEXT: $f10_h = COPY [[FMUL]](s16)62 ; CHECK-NEXT: PseudoRET implicit $f10_h63 %0:_(s16) = COPY $f10_h64 %1:_(s16) = COPY $f11_h65 %2:_(s16) = G_FMUL %0, %166 $f10_h = COPY %2(s16)67 PseudoRET implicit $f10_h68 69...70---71name: fdiv_f1672body: |73 bb.0:74 liveins: $f10_h, $f11_h75 76 ; CHECK-LABEL: name: fdiv_f1677 ; CHECK: liveins: $f10_h, $f11_h78 ; CHECK-NEXT: {{ $}}79 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h80 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h81 ; CHECK-NEXT: [[FDIV:%[0-9]+]]:_(s16) = G_FDIV [[COPY]], [[COPY1]]82 ; CHECK-NEXT: $f10_h = COPY [[FDIV]](s16)83 ; CHECK-NEXT: PseudoRET implicit $f10_h84 %0:_(s16) = COPY $f10_h85 %1:_(s16) = COPY $f11_h86 %2:_(s16) = G_FDIV %0, %187 $f10_h = COPY %2(s16)88 PseudoRET implicit $f10_h89 90...91---92name: fma_f1693body: |94 bb.0:95 liveins: $f10_h, $f11_h, $f12_h96 97 ; CHECK-LABEL: name: fma_f1698 ; CHECK: liveins: $f10_h, $f11_h, $f12_h99 ; CHECK-NEXT: {{ $}}100 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h101 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h102 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s16) = COPY $f12_h103 ; CHECK-NEXT: [[FMA:%[0-9]+]]:_(s16) = G_FMA [[COPY]], [[COPY1]], [[COPY2]]104 ; CHECK-NEXT: $f10_h = COPY [[FMA]](s16)105 ; CHECK-NEXT: PseudoRET implicit $f10_h106 %0:_(s16) = COPY $f10_h107 %1:_(s16) = COPY $f11_h108 %2:_(s16) = COPY $f12_h109 %3:_(s16) = G_FMA %0, %1, %2110 $f10_h = COPY %3(s16)111 PseudoRET implicit $f10_h112 113...114---115name: fneg_f16116body: |117 bb.0:118 liveins: $f10_h119 120 ; CHECK-LABEL: name: fneg_f16121 ; CHECK: liveins: $f10_h122 ; CHECK-NEXT: {{ $}}123 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h124 ; CHECK-NEXT: [[FNEG:%[0-9]+]]:_(s16) = G_FNEG [[COPY]]125 ; CHECK-NEXT: $f10_h = COPY [[FNEG]](s16)126 ; CHECK-NEXT: PseudoRET implicit $f10_h127 %0:_(s16) = COPY $f10_h128 %1:_(s16) = G_FNEG %0129 $f10_h = COPY %1(s16)130 PseudoRET implicit $f10_h131 132...133---134name: fabs_f16135body: |136 bb.0:137 liveins: $f10_h138 139 ; CHECK-LABEL: name: fabs_f16140 ; CHECK: liveins: $f10_h141 ; CHECK-NEXT: {{ $}}142 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h143 ; CHECK-NEXT: [[FABS:%[0-9]+]]:_(s16) = G_FABS [[COPY]]144 ; CHECK-NEXT: $f10_h = COPY [[FABS]](s16)145 ; CHECK-NEXT: PseudoRET implicit $f10_h146 %0:_(s16) = COPY $f10_h147 %1:_(s16) = G_FABS %0148 $f10_h = COPY %1(s16)149 PseudoRET implicit $f10_h150 151...152---153name: fsqrt_f16154body: |155 bb.0:156 liveins: $f10_h157 158 ; CHECK-LABEL: name: fsqrt_f16159 ; CHECK: liveins: $f10_h160 ; CHECK-NEXT: {{ $}}161 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h162 ; CHECK-NEXT: [[FSQRT:%[0-9]+]]:_(s16) = G_FSQRT [[COPY]]163 ; CHECK-NEXT: $f10_h = COPY [[FSQRT]](s16)164 ; CHECK-NEXT: PseudoRET implicit $f10_h165 %0:_(s16) = COPY $f10_h166 %1:_(s16) = G_FSQRT %0167 $f10_h = COPY %1(s16)168 PseudoRET implicit $f10_h169 170...171---172name: fmaxnum_f16173body: |174 bb.0:175 liveins: $f10_h, $f11_h176 177 ; CHECK-LABEL: name: fmaxnum_f16178 ; CHECK: liveins: $f10_h, $f11_h179 ; CHECK-NEXT: {{ $}}180 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h181 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h182 ; CHECK-NEXT: [[FMAXNUM:%[0-9]+]]:_(s16) = G_FMAXNUM [[COPY]], [[COPY1]]183 ; CHECK-NEXT: $f10_h = COPY [[FMAXNUM]](s16)184 ; CHECK-NEXT: PseudoRET implicit $f10_h185 %0:_(s16) = COPY $f10_h186 %1:_(s16) = COPY $f11_h187 %2:_(s16) = G_FMAXNUM %0, %1188 $f10_h = COPY %2(s16)189 PseudoRET implicit $f10_h190 191...192---193name: fminnum_f16194body: |195 bb.0:196 liveins: $f10_h, $f11_h197 198 ; CHECK-LABEL: name: fminnum_f16199 ; CHECK: liveins: $f10_h, $f11_h200 ; CHECK-NEXT: {{ $}}201 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h202 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h203 ; CHECK-NEXT: [[FMINNUM:%[0-9]+]]:_(s16) = G_FMINNUM [[COPY]], [[COPY1]]204 ; CHECK-NEXT: $f10_h = COPY [[FMINNUM]](s16)205 ; CHECK-NEXT: PseudoRET implicit $f10_h206 %0:_(s16) = COPY $f10_h207 %1:_(s16) = COPY $f11_h208 %2:_(s16) = G_FMINNUM %0, %1209 $f10_h = COPY %2(s16)210 PseudoRET implicit $f10_h211 212...213---214name: fmaximumnum_f16215body: |216 bb.0:217 liveins: $f10_h, $f11_h218 219 ; CHECK-LABEL: name: fmaximumnum_f16220 ; CHECK: liveins: $f10_h, $f11_h221 ; CHECK-NEXT: {{ $}}222 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h223 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h224 ; CHECK-NEXT: [[FMAXIMUMNUM:%[0-9]+]]:_(s16) = G_FMAXIMUMNUM [[COPY]], [[COPY1]]225 ; CHECK-NEXT: $f10_h = COPY [[FMAXIMUMNUM]](s16)226 ; CHECK-NEXT: PseudoRET implicit $f10_h227 %0:_(s16) = COPY $f10_h228 %1:_(s16) = COPY $f11_h229 %2:_(s16) = G_FMAXIMUMNUM %0, %1230 $f10_h = COPY %2(s16)231 PseudoRET implicit $f10_h232 233...234---235name: fminimumnum_f16236body: |237 bb.0:238 liveins: $f10_h, $f11_h239 240 ; CHECK-LABEL: name: fminimumnum_f16241 ; CHECK: liveins: $f10_h, $f11_h242 ; CHECK-NEXT: {{ $}}243 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h244 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h245 ; CHECK-NEXT: [[FMINIMUMNUM:%[0-9]+]]:_(s16) = G_FMINIMUMNUM [[COPY]], [[COPY1]]246 ; CHECK-NEXT: $f10_h = COPY [[FMINIMUMNUM]](s16)247 ; CHECK-NEXT: PseudoRET implicit $f10_h248 %0:_(s16) = COPY $f10_h249 %1:_(s16) = COPY $f11_h250 %2:_(s16) = G_FMINIMUMNUM %0, %1251 $f10_h = COPY %2(s16)252 PseudoRET implicit $f10_h253 254...255---256name: fcopysign_f16_f16257body: |258 bb.0:259 liveins: $f10_h, $f11_h260 261 ; CHECK-LABEL: name: fcopysign_f16_f16262 ; CHECK: liveins: $f10_h, $f11_h263 ; CHECK-NEXT: {{ $}}264 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h265 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h266 ; CHECK-NEXT: [[FCOPYSIGN:%[0-9]+]]:_(s16) = G_FCOPYSIGN [[COPY]], [[COPY1]](s16)267 ; CHECK-NEXT: $f10_h = COPY [[FCOPYSIGN]](s16)268 ; CHECK-NEXT: PseudoRET implicit $f10_h269 %0:_(s16) = COPY $f10_h270 %1:_(s16) = COPY $f11_h271 %2:_(s16) = G_FCOPYSIGN %0, %1272 $f10_h = COPY %2(s16)273 PseudoRET implicit $f10_h274 275...276---277name: fcopysign_f16_f32278body: |279 bb.0:280 liveins: $f10_h, $f11_f281 282 ; CHECK-LABEL: name: fcopysign_f16_f32283 ; CHECK: liveins: $f10_h, $f11_f284 ; CHECK-NEXT: {{ $}}285 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h286 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $f11_f287 ; CHECK-NEXT: [[FCOPYSIGN:%[0-9]+]]:_(s16) = G_FCOPYSIGN [[COPY]], [[COPY1]](s32)288 ; CHECK-NEXT: $f10_h = COPY [[FCOPYSIGN]](s16)289 ; CHECK-NEXT: PseudoRET implicit $f10_h290 %0:_(s16) = COPY $f10_h291 %1:_(s32) = COPY $f11_f292 %2:_(s16) = G_FCOPYSIGN %0, %1293 $f10_h = COPY %2(s16)294 PseudoRET implicit $f10_h295 296...297---298name: fcopysign_f32_f16299body: |300 bb.0:301 liveins: $f10_f, $f11_h302 303 ; CHECK-LABEL: name: fcopysign_f32_f16304 ; CHECK: liveins: $f10_f, $f11_h305 ; CHECK-NEXT: {{ $}}306 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $f10_f307 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h308 ; CHECK-NEXT: [[FCOPYSIGN:%[0-9]+]]:_(s32) = G_FCOPYSIGN [[COPY]], [[COPY1]](s16)309 ; CHECK-NEXT: $f10_f = COPY [[FCOPYSIGN]](s32)310 ; CHECK-NEXT: PseudoRET implicit $f10_f311 %0:_(s32) = COPY $f10_f312 %1:_(s16) = COPY $f11_h313 %2:_(s32) = G_FCOPYSIGN %0, %1314 $f10_f = COPY %2(s32)315 PseudoRET implicit $f10_f316 317...318---319name: fcopysign_f16_f64320body: |321 bb.0:322 liveins: $f10_h, $f11_d323 324 ; CHECK-LABEL: name: fcopysign_f16_f64325 ; CHECK: liveins: $f10_h, $f11_d326 ; CHECK-NEXT: {{ $}}327 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $f10_h328 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $f11_d329 ; CHECK-NEXT: [[FCOPYSIGN:%[0-9]+]]:_(s16) = G_FCOPYSIGN [[COPY]], [[COPY1]](s64)330 ; CHECK-NEXT: $f10_h = COPY [[FCOPYSIGN]](s16)331 ; CHECK-NEXT: PseudoRET implicit $f10_h332 %0:_(s16) = COPY $f10_h333 %1:_(s64) = COPY $f11_d334 %2:_(s16) = G_FCOPYSIGN %0, %1335 $f10_h = COPY %2(s16)336 PseudoRET implicit $f10_h337 338...339---340name: fcopysign_f64_f16341body: |342 bb.0:343 liveins: $f10_d, $f11_h344 345 ; CHECK-LABEL: name: fcopysign_f64_f16346 ; CHECK: liveins: $f10_d, $f11_h347 ; CHECK-NEXT: {{ $}}348 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $f10_d349 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s16) = COPY $f11_h350 ; CHECK-NEXT: [[FCOPYSIGN:%[0-9]+]]:_(s64) = G_FCOPYSIGN [[COPY]], [[COPY1]](s16)351 ; CHECK-NEXT: $f10_d = COPY [[FCOPYSIGN]](s64)352 ; CHECK-NEXT: PseudoRET implicit $f10_d353 %0:_(s64) = COPY $f10_d354 %1:_(s16) = COPY $f11_h355 %2:_(s64) = G_FCOPYSIGN %0, %1356 $f10_d = COPY %2(s64)357 PseudoRET implicit $f10_d358 359...360