1553 lines · plain
1# REQUIRES: asserts2# RUN: llc -mtriple=riscv64-linux-gnu -x=mir < %s \3# RUN: -debug-only=machine-scheduler -start-before=machine-scheduler 2>&1 \4# RUN: -mattr=+lui-addi-fusion,+auipc-addi-fusion,+zexth-fusion,+zextw-fusion,+shifted-zextw-fusion,+ld-add-fusion \5# RUN: -mattr=+add-load-fusion,+auipc-load-fusion,+lui-load-fusion,+addi-load-fusion \6# RUN: -mattr=+zba,+shxadd-load-fusion \7# RUN: | FileCheck %s8# RUN: llc -mtriple=riscv64-linux-gnu -x=mir < %s \9# RUN: -debug-only=machine-scheduler -start-before=machine-scheduler 2>&1 \10# RUN: -mattr=+zba,+bfext-fusion | FileCheck --check-prefixes=CHECK-BFEXT %s11 12# CHECK: lui_addi:%bb.013# CHECK: Macro fuse: {{.*}}LUI - ADDI14---15name: lui_addi16tracksRegLiveness: true17body: |18 bb.0.entry:19 liveins: $x1020 %1:gpr = COPY $x1021 %2:gpr = LUI 122 %3:gpr = XORI %1, 223 %4:gpr = ADDI %2, 324 $x10 = COPY %325 $x11 = COPY %426 PseudoRET27...28 29# CHECK: auipc_addi30# CHECK: Macro fuse: {{.*}}AUIPC - ADDI31---32name: auipc_addi33tracksRegLiveness: true34body: |35 bb.0.entry:36 liveins: $x1037 %1:gpr = COPY $x1038 %2:gpr = AUIPC 139 %3:gpr = XORI %1, 240 %4:gpr = ADDI %2, 341 $x10 = COPY %342 $x11 = COPY %443 PseudoRET44...45 46# CHECK: slli_srli_shifted_zext47# CHECK: Macro fuse: {{.*}}SLLI - SRLI48---49name: slli_srli_shifted_zext50tracksRegLiveness: true51body: |52 bb.0.entry:53 liveins: $x1054 %1:gpr = COPY $x1055 %2:gpr = SLLI %1, 3256 %3:gpr = XORI %1, 357 %4:gpr = SRLI %2, 458 $x10 = COPY %359 $x11 = COPY %460 PseudoRET61...62 63# CHECK: slli_srli_zexth64# CHECK: Macro fuse: {{.*}}SLLI - SRLI65---66name: slli_srli_zexth67tracksRegLiveness: true68body: |69 bb.0.entry:70 liveins: $x1071 %1:gpr = COPY $x1072 %2:gpr = SLLI %1, 4873 %3:gpr = XORI %1, 374 %4:gpr = SRLI %2, 4875 $x10 = COPY %376 $x11 = COPY %477 PseudoRET78...79 80# CHECK: slli_srli_zextw81# CHECK: Macro fuse: {{.*}}SLLI - SRLI82---83name: slli_srli_zextw84tracksRegLiveness: true85body: |86 bb.0.entry:87 liveins: $x1088 %1:gpr = COPY $x1089 %2:gpr = SLLI %1, 3290 %3:gpr = XORI %1, 391 %4:gpr = SRLI %2, 3292 $x10 = COPY %393 $x11 = COPY %494 PseudoRET95...96 97# CHECK: slli_srli_no_fusion_098# CHECK-NOT: Macro fuse: {{.*}}SLLI - SRLI99---100name: slli_srli_no_fusion_0101tracksRegLiveness: true102body: |103 bb.0.entry:104 liveins: $x10105 %1:gpr = COPY $x10106 %2:gpr = SLLI %1, 32107 %3:gpr = XORI %1, 3108 %4:gpr = SRLI %2, 33109 $x10 = COPY %3110 $x11 = COPY %4111 PseudoRET112...113 114# CHECK: slli_srli_no_fusion_1115# CHECK-NOT: Macro fuse: {{.*}}SLLI - SRLI116---117name: slli_srli_no_fusion_1118tracksRegLiveness: true119body: |120 bb.0.entry:121 liveins: $x10122 %1:gpr = COPY $x10123 %2:gpr = SLLI %1, 48124 %3:gpr = XORI %1, 3125 %4:gpr = SRLI %2, 4126 $x10 = COPY %3127 $x11 = COPY %4128 PseudoRET129...130 131# CHECK: slli_srli_no_fusion_2132# CHECK-NOT: Macro fuse: {{.*}}SLLI - SRLI133---134name: slli_srli_no_fusion_2135tracksRegLiveness: true136body: |137 bb.0.entry:138 liveins: $x10139 %1:gpr = COPY $x10140 %2:gpr = SLLI %1, 31141 %3:gpr = XORI %1, 3142 %4:gpr = SRLI %2, 4143 $x10 = COPY %3144 $x11 = COPY %4145 PseudoRET146...147 148# CHECK: slli_srli_no_fusion_3149# CHECK-NOT: Macro fuse: {{.*}}SLLI - SRLI150---151name: slli_srli_no_fusion_3152tracksRegLiveness: true153body: |154 bb.0.entry:155 liveins: $x10156 %1:gpr = COPY $x10157 %2:gpr = SLLI %1, 31158 %3:gpr = XORI %1, 3159 %4:gpr = SRLI %2, 48160 $x10 = COPY %3161 $x11 = COPY %4162 PseudoRET163...164 165# CHECK: ld_add166# CHECK: Macro fuse: {{.*}}ADD - LD167---168name: ld_add169tracksRegLiveness: true170body: |171 bb.0.entry:172 liveins: $x10, $x11173 %1:gpr = COPY $x10174 %2:gpr = COPY $x11175 %3:gpr = ADD %1, %2176 %4:gpr = XORI %2, 3177 %5:gpr = LD %3, 0178 $x10 = COPY %4179 $x11 = COPY %5180 PseudoRET181...182 183# CHECK: add_lb184# CHECK: Macro fuse: {{.*}}ADD - LB185---186name: add_lb187tracksRegLiveness: true188body: |189 bb.0.entry:190 liveins: $x10, $x11191 %1:gpr = COPY $x10192 %2:gpr = COPY $x11193 %3:gpr = ADD %1, %2194 %4:gpr = XORI %2, 3195 %5:gpr = LB %3, 0196 $x10 = COPY %4197 $x11 = COPY %5198 PseudoRET199...200 201# CHECK: add_lh202# CHECK: Macro fuse: {{.*}}ADD - LH203---204name: add_lh205tracksRegLiveness: true206body: |207 bb.0.entry:208 liveins: $x10, $x11209 %1:gpr = COPY $x10210 %2:gpr = COPY $x11211 %3:gpr = ADD %1, %2212 %4:gpr = XORI %2, 3213 %5:gpr = LH %3, 0214 $x10 = COPY %4215 $x11 = COPY %5216 PseudoRET217...218 219# CHECK: add_lw220# CHECK: Macro fuse: {{.*}}ADD - LW221---222name: add_lw223tracksRegLiveness: true224body: |225 bb.0.entry:226 liveins: $x10, $x11227 %1:gpr = COPY $x10228 %2:gpr = COPY $x11229 %3:gpr = ADD %1, %2230 %4:gpr = XORI %2, 3231 %5:gpr = LW %3, 0232 $x10 = COPY %4233 $x11 = COPY %5234 PseudoRET235...236 237# CHECK: add_lbu238# CHECK: Macro fuse: {{.*}}ADD - LBU239---240name: add_lbu241tracksRegLiveness: true242body: |243 bb.0.entry:244 liveins: $x10, $x11245 %1:gpr = COPY $x10246 %2:gpr = COPY $x11247 %3:gpr = ADD %1, %2248 %4:gpr = XORI %2, 3249 %5:gpr = LBU %3, 0250 $x10 = COPY %4251 $x11 = COPY %5252 PseudoRET253...254 255# CHECK: add_lhu256# CHECK: Macro fuse: {{.*}}ADD - LHU257---258name: add_lhu259tracksRegLiveness: true260body: |261 bb.0.entry:262 liveins: $x10, $x11263 %1:gpr = COPY $x10264 %2:gpr = COPY $x11265 %3:gpr = ADD %1, %2266 %4:gpr = XORI %2, 3267 %5:gpr = LHU %3, 0268 $x10 = COPY %4269 $x11 = COPY %5270 PseudoRET271...272 273# CHECK: add_lwu274# CHECK: Macro fuse: {{.*}}ADD - LWU275---276name: add_lwu277tracksRegLiveness: true278body: |279 bb.0.entry:280 liveins: $x10, $x11281 %1:gpr = COPY $x10282 %2:gpr = COPY $x11283 %3:gpr = ADD %1, %2284 %4:gpr = XORI %2, 3285 %5:gpr = LWU %3, 0286 $x10 = COPY %4287 $x11 = COPY %5288 PseudoRET289...290 291# CHECK: auipc_lb292# CHECK: Macro fuse: {{.*}}AUIPC - LB293---294name: auipc_lb295tracksRegLiveness: true296body: |297 bb.0.entry:298 liveins: $x10299 %1:gpr = COPY $x10300 %2:gpr = AUIPC 1301 %3:gpr = XORI %1, 2302 %4:gpr = LB %2, 4303 $x10 = COPY %3304 $x11 = COPY %4305 PseudoRET306...307 308# CHECK: auipc_lh309# CHECK: Macro fuse: {{.*}}AUIPC - LH310---311name: auipc_lh312tracksRegLiveness: true313body: |314 bb.0.entry:315 liveins: $x10316 %1:gpr = COPY $x10317 %2:gpr = AUIPC 1318 %3:gpr = XORI %1, 2319 %4:gpr = LH %2, 4320 $x10 = COPY %3321 $x11 = COPY %4322 PseudoRET323...324 325# CHECK: auipc_lw326# CHECK: Macro fuse: {{.*}}AUIPC - LW327---328name: auipc_lw329tracksRegLiveness: true330body: |331 bb.0.entry:332 liveins: $x10333 %1:gpr = COPY $x10334 %2:gpr = AUIPC 1335 %3:gpr = XORI %1, 2336 %4:gpr = LW %2, 4337 $x10 = COPY %3338 $x11 = COPY %4339 PseudoRET340...341 342# CHECK: auipc_ld343# CHECK: Macro fuse: {{.*}}AUIPC - LD344---345name: auipc_ld346tracksRegLiveness: true347body: |348 bb.0.entry:349 liveins: $x10350 %1:gpr = COPY $x10351 %2:gpr = AUIPC 1352 %3:gpr = XORI %1, 2353 %4:gpr = LD %2, 4354 $x10 = COPY %3355 $x11 = COPY %4356 PseudoRET357...358 359# CHECK: auipc_lbu360# CHECK: Macro fuse: {{.*}}AUIPC - LBU361---362name: auipc_lbu363tracksRegLiveness: true364body: |365 bb.0.entry:366 liveins: $x10367 %1:gpr = COPY $x10368 %2:gpr = AUIPC 1369 %3:gpr = XORI %1, 2370 %4:gpr = LBU %2, 4371 $x10 = COPY %3372 $x11 = COPY %4373 PseudoRET374...375 376# CHECK: auipc_lhu377# CHECK: Macro fuse: {{.*}}AUIPC - LHU378---379name: auipc_lhu380tracksRegLiveness: true381body: |382 bb.0.entry:383 liveins: $x10384 %1:gpr = COPY $x10385 %2:gpr = AUIPC 1386 %3:gpr = XORI %1, 2387 %4:gpr = LHU %2, 4388 $x10 = COPY %3389 $x11 = COPY %4390 PseudoRET391...392 393# CHECK: auipc_lwu394# CHECK: Macro fuse: {{.*}}AUIPC - LWU395---396name: auipc_lwu397tracksRegLiveness: true398body: |399 bb.0.entry:400 liveins: $x10401 %1:gpr = COPY $x10402 %2:gpr = AUIPC 1403 %3:gpr = XORI %1, 2404 %4:gpr = LWU %2, 4405 $x10 = COPY %3406 $x11 = COPY %4407 PseudoRET408...409 410# CHECK: lui_lb411# CHECK: Macro fuse: {{.*}}LUI - LB412---413name: lui_lb414tracksRegLiveness: true415body: |416 bb.0.entry:417 liveins: $x10418 %1:gpr = COPY $x10419 %2:gpr = LUI 1420 %3:gpr = XORI %1, 2421 %4:gpr = LB %2, 4422 $x10 = COPY %3423 $x11 = COPY %4424 PseudoRET425...426 427# CHECK: lui_lh428# CHECK: Macro fuse: {{.*}}LUI - LH429---430name: lui_lh431tracksRegLiveness: true432body: |433 bb.0.entry:434 liveins: $x10435 %1:gpr = COPY $x10436 %2:gpr = LUI 1437 %3:gpr = XORI %1, 2438 %4:gpr = LH %2, 4439 $x10 = COPY %3440 $x11 = COPY %4441 PseudoRET442...443 444# CHECK: lui_lw445# CHECK: Macro fuse: {{.*}}LUI - LW446---447name: lui_lw448tracksRegLiveness: true449body: |450 bb.0.entry:451 liveins: $x10452 %1:gpr = COPY $x10453 %2:gpr = LUI 1454 %3:gpr = XORI %1, 2455 %4:gpr = LW %2, 4456 $x10 = COPY %3457 $x11 = COPY %4458 PseudoRET459...460 461# CHECK: lui_ld462# CHECK: Macro fuse: {{.*}}LUI - LD463---464name: lui_ld465tracksRegLiveness: true466body: |467 bb.0.entry:468 liveins: $x10469 %1:gpr = COPY $x10470 %2:gpr = LUI 1471 %3:gpr = XORI %1, 2472 %4:gpr = LD %2, 4473 $x10 = COPY %3474 $x11 = COPY %4475 PseudoRET476...477 478# CHECK: lui_lbu479# CHECK: Macro fuse: {{.*}}LUI - LBU480---481name: lui_lbu482tracksRegLiveness: true483body: |484 bb.0.entry:485 liveins: $x10486 %1:gpr = COPY $x10487 %2:gpr = LUI 1488 %3:gpr = XORI %1, 2489 %4:gpr = LBU %2, 4490 $x10 = COPY %3491 $x11 = COPY %4492 PseudoRET493...494 495# CHECK: lui_lhu496# CHECK: Macro fuse: {{.*}}LUI - LHU497---498name: lui_lhu499tracksRegLiveness: true500body: |501 bb.0.entry:502 liveins: $x10503 %1:gpr = COPY $x10504 %2:gpr = LUI 1505 %3:gpr = XORI %1, 2506 %4:gpr = LHU %2, 4507 $x10 = COPY %3508 $x11 = COPY %4509 PseudoRET510...511 512# CHECK: lui_lwu513# CHECK: Macro fuse: {{.*}}LUI - LWU514---515name: lui_lwu516tracksRegLiveness: true517body: |518 bb.0.entry:519 liveins: $x10520 %1:gpr = COPY $x10521 %2:gpr = LUI 1522 %3:gpr = XORI %1, 2523 %4:gpr = LWU %2, 4524 $x10 = COPY %3525 $x11 = COPY %4526 PseudoRET527...528 529# CHECK-BFEXT: bitfield_extract530# CHECK-BFEXT: Macro fuse: {{.*}}SLLI - SRLI531---532name: bitfield_extract533tracksRegLiveness: true534body: |535 bb.0.entry:536 liveins: $x10537 %1:gpr = COPY $x10538 %2:gpr = SLLI %1, 31539 %3:gpr = XORI %1, 3540 %4:gpr = SRLI %2, 48541 $x10 = COPY %3542 $x11 = COPY %4543 PseudoRET544...545 546# CHECK: addi_lb547# CHECK: Macro fuse: {{.*}}ADDI - LB548---549name: addi_lb550tracksRegLiveness: true551body: |552 bb.0.entry:553 liveins: $x10, $x11554 %1:gpr = COPY $x10555 %2:gpr = COPY $x11556 %3:gpr = ADDI %1, 8557 %4:gpr = XORI %2, 3558 %5:gpr = LB %3, 0559 $x10 = COPY %4560 $x11 = COPY %5561 PseudoRET562...563 564# CHECK: addi_lh565# CHECK: Macro fuse: {{.*}}ADDI - LH566---567name: addi_lh568tracksRegLiveness: true569body: |570 bb.0.entry:571 liveins: $x10, $x11572 %1:gpr = COPY $x10573 %2:gpr = COPY $x11574 %3:gpr = ADDI %1, 8575 %4:gpr = XORI %2, 3576 %5:gpr = LH %3, 0577 $x10 = COPY %4578 $x11 = COPY %5579 PseudoRET580...581 582# CHECK: addi_lw583# CHECK: Macro fuse: {{.*}}ADDI - LW584---585name: addi_lw586tracksRegLiveness: true587body: |588 bb.0.entry:589 liveins: $x10, $x11590 %1:gpr = COPY $x10591 %2:gpr = COPY $x11592 %3:gpr = ADDI %1, 8593 %4:gpr = XORI %2, 3594 %5:gpr = LW %3, 0595 $x10 = COPY %4596 $x11 = COPY %5597 PseudoRET598...599 600# CHECK: addi_ld601# CHECK: Macro fuse: {{.*}}ADDI - LD602---603name: addi_ld604tracksRegLiveness: true605body: |606 bb.0.entry:607 liveins: $x10, $x11608 %1:gpr = COPY $x10609 %2:gpr = COPY $x11610 %3:gpr = ADDI %1, 8611 %4:gpr = XORI %2, 3612 %5:gpr = LD %3, 0613 $x10 = COPY %4614 $x11 = COPY %5615 PseudoRET616...617 618# CHECK: addi_lbu619# CHECK: Macro fuse: {{.*}}ADDI - LBU620---621name: addi_lbu622tracksRegLiveness: true623body: |624 bb.0.entry:625 liveins: $x10, $x11626 %1:gpr = COPY $x10627 %2:gpr = COPY $x11628 %3:gpr = ADDI %1, 8629 %4:gpr = XORI %2, 3630 %5:gpr = LBU %3, 0631 $x10 = COPY %4632 $x11 = COPY %5633 PseudoRET634...635 636# CHECK: addi_lhu637# CHECK: Macro fuse: {{.*}}ADDI - LHU638---639name: addi_lhu640tracksRegLiveness: true641body: |642 bb.0.entry:643 liveins: $x10, $x11644 %1:gpr = COPY $x10645 %2:gpr = COPY $x11646 %3:gpr = ADDI %1, 8647 %4:gpr = XORI %2, 3648 %5:gpr = LHU %3, 0649 $x10 = COPY %4650 $x11 = COPY %5651 PseudoRET652...653 654# CHECK: addi_lwu655# CHECK: Macro fuse: {{.*}}ADDI - LWU656---657name: addi_lwu658tracksRegLiveness: true659body: |660 bb.0.entry:661 liveins: $x10, $x11662 %1:gpr = COPY $x10663 %2:gpr = COPY $x11664 %3:gpr = ADDI %1, 8665 %4:gpr = XORI %2, 3666 %5:gpr = LWU %3, 0667 $x10 = COPY %4668 $x11 = COPY %5669 PseudoRET670...671 672# CHECK: adduw_lb673# CHECK: Macro fuse: {{.*}}ADD_UW - LB674---675name: adduw_lb676tracksRegLiveness: true677body: |678 bb.0.entry:679 liveins: $x10, $x11680 %1:gpr = COPY $x10681 %2:gpr = COPY $x11682 %3:gpr = ADD_UW %1, %2683 %4:gpr = XORI %2, 3684 %5:gpr = LB %3, 0685 $x10 = COPY %4686 $x11 = COPY %5687 PseudoRET688...689 690# CHECK: adduw_lh691# CHECK: Macro fuse: {{.*}}ADD_UW - LH692---693name: adduw_lh694tracksRegLiveness: true695body: |696 bb.0.entry:697 liveins: $x10, $x11698 %1:gpr = COPY $x10699 %2:gpr = COPY $x11700 %3:gpr = ADD_UW %1, %2701 %4:gpr = XORI %2, 3702 %5:gpr = LH %3, 0703 $x10 = COPY %4704 $x11 = COPY %5705 PseudoRET706...707 708# CHECK: adduw_lw709# CHECK: Macro fuse: {{.*}}ADD_UW - LW710---711name: adduw_lw712tracksRegLiveness: true713body: |714 bb.0.entry:715 liveins: $x10, $x11716 %1:gpr = COPY $x10717 %2:gpr = COPY $x11718 %3:gpr = ADD_UW %1, %2719 %4:gpr = XORI %2, 3720 %5:gpr = LW %3, 0721 $x10 = COPY %4722 $x11 = COPY %5723 PseudoRET724...725 726# CHECK: adduw_ld727# CHECK: Macro fuse: {{.*}}ADD_UW - LD728---729name: adduw_ld730tracksRegLiveness: true731body: |732 bb.0.entry:733 liveins: $x10, $x11734 %1:gpr = COPY $x10735 %2:gpr = COPY $x11736 %3:gpr = ADD_UW %1, %2737 %4:gpr = XORI %2, 3738 %5:gpr = LD %3, 0739 $x10 = COPY %4740 $x11 = COPY %5741 PseudoRET742...743 744# CHECK: adduw_lbu745# CHECK: Macro fuse: {{.*}}ADD_UW - LBU746---747name: adduw_lbu748tracksRegLiveness: true749body: |750 bb.0.entry:751 liveins: $x10, $x11752 %1:gpr = COPY $x10753 %2:gpr = COPY $x11754 %3:gpr = ADD_UW %1, %2755 %4:gpr = XORI %2, 3756 %5:gpr = LBU %3, 0757 $x10 = COPY %4758 $x11 = COPY %5759 PseudoRET760...761 762# CHECK: adduw_lhu763# CHECK: Macro fuse: {{.*}}ADD_UW - LHU764---765name: adduw_lhu766tracksRegLiveness: true767body: |768 bb.0.entry:769 liveins: $x10, $x11770 %1:gpr = COPY $x10771 %2:gpr = COPY $x11772 %3:gpr = ADD_UW %1, %2773 %4:gpr = XORI %2, 3774 %5:gpr = LHU %3, 0775 $x10 = COPY %4776 $x11 = COPY %5777 PseudoRET778...779 780# CHECK: adduw_lwu781# CHECK: Macro fuse: {{.*}}ADD_UW - LWU782---783name: adduw_lwu784tracksRegLiveness: true785body: |786 bb.0.entry:787 liveins: $x10, $x11788 %1:gpr = COPY $x10789 %2:gpr = COPY $x11790 %3:gpr = ADD_UW %1, %2791 %4:gpr = XORI %2, 3792 %5:gpr = LWU %3, 0793 $x10 = COPY %4794 $x11 = COPY %5795 PseudoRET796...797 798# CHECK: sh1add_lb799# CHECK: Macro fuse: {{.*}}SH1ADD - LB800---801name: sh1add_lb802tracksRegLiveness: true803body: |804 bb.0.entry:805 liveins: $x10, $x11806 %1:gpr = COPY $x10807 %2:gpr = COPY $x11808 %3:gpr = SH1ADD %1, %2809 %4:gpr = XORI %2, 3810 %5:gpr = LB %3, 8811 $x10 = COPY %4812 $x11 = COPY %5813 PseudoRET814...815 816# CHECK: sh2add_lb817# CHECK: Macro fuse: {{.*}}SH2ADD - LB818---819name: sh2add_lb820tracksRegLiveness: true821body: |822 bb.0.entry:823 liveins: $x10, $x11824 %1:gpr = COPY $x10825 %2:gpr = COPY $x11826 %3:gpr = SH2ADD %1, %2827 %4:gpr = XORI %2, 3828 %5:gpr = LB %3, 8829 $x10 = COPY %4830 $x11 = COPY %5831 PseudoRET832...833 834# CHECK: sh3add_lb835# CHECK: Macro fuse: {{.*}}SH3ADD - LB836---837name: sh3add_lb838tracksRegLiveness: true839body: |840 bb.0.entry:841 liveins: $x10, $x11842 %1:gpr = COPY $x10843 %2:gpr = COPY $x11844 %3:gpr = SH3ADD %1, %2845 %4:gpr = XORI %2, 3846 %5:gpr = LB %3, 8847 $x10 = COPY %4848 $x11 = COPY %5849 PseudoRET850...851 852# CHECK: sh1add_lh853# CHECK: Macro fuse: {{.*}}SH1ADD - LH854---855name: sh1add_lh856tracksRegLiveness: true857body: |858 bb.0.entry:859 liveins: $x10, $x11860 %1:gpr = COPY $x10861 %2:gpr = COPY $x11862 %3:gpr = SH1ADD %1, %2863 %4:gpr = XORI %2, 3864 %5:gpr = LH %3, 8865 $x10 = COPY %4866 $x11 = COPY %5867 PseudoRET868...869 870# CHECK: sh2add_lh871# CHECK: Macro fuse: {{.*}}SH2ADD - LH872---873name: sh2add_lh874tracksRegLiveness: true875body: |876 bb.0.entry:877 liveins: $x10, $x11878 %1:gpr = COPY $x10879 %2:gpr = COPY $x11880 %3:gpr = SH2ADD %1, %2881 %4:gpr = XORI %2, 3882 %5:gpr = LH %3, 8883 $x10 = COPY %4884 $x11 = COPY %5885 PseudoRET886...887 888# CHECK: sh3add_lh889# CHECK: Macro fuse: {{.*}}SH3ADD - LH890---891name: sh3add_lh892tracksRegLiveness: true893body: |894 bb.0.entry:895 liveins: $x10, $x11896 %1:gpr = COPY $x10897 %2:gpr = COPY $x11898 %3:gpr = SH3ADD %1, %2899 %4:gpr = XORI %2, 3900 %5:gpr = LH %3, 8901 $x10 = COPY %4902 $x11 = COPY %5903 PseudoRET904...905 906# CHECK: sh1add_lw907# CHECK: Macro fuse: {{.*}}SH1ADD - LW908---909name: sh1add_lw910tracksRegLiveness: true911body: |912 bb.0.entry:913 liveins: $x10, $x11914 %1:gpr = COPY $x10915 %2:gpr = COPY $x11916 %3:gpr = SH1ADD %1, %2917 %4:gpr = XORI %2, 3918 %5:gpr = LW %3, 8919 $x10 = COPY %4920 $x11 = COPY %5921 PseudoRET922...923 924# CHECK: sh2add_lw925# CHECK: Macro fuse: {{.*}}SH2ADD - LW926---927name: sh2add_lw928tracksRegLiveness: true929body: |930 bb.0.entry:931 liveins: $x10, $x11932 %1:gpr = COPY $x10933 %2:gpr = COPY $x11934 %3:gpr = SH2ADD %1, %2935 %4:gpr = XORI %2, 3936 %5:gpr = LW %3, 8937 $x10 = COPY %4938 $x11 = COPY %5939 PseudoRET940...941 942# CHECK: sh3add_lw943# CHECK: Macro fuse: {{.*}}SH3ADD - LW944---945name: sh3add_lw946tracksRegLiveness: true947body: |948 bb.0.entry:949 liveins: $x10, $x11950 %1:gpr = COPY $x10951 %2:gpr = COPY $x11952 %3:gpr = SH3ADD %1, %2953 %4:gpr = XORI %2, 3954 %5:gpr = LW %3, 8955 $x10 = COPY %4956 $x11 = COPY %5957 PseudoRET958...959 960# CHECK: sh1add_ld961# CHECK: Macro fuse: {{.*}}SH1ADD - LD962---963name: sh1add_ld964tracksRegLiveness: true965body: |966 bb.0.entry:967 liveins: $x10, $x11968 %1:gpr = COPY $x10969 %2:gpr = COPY $x11970 %3:gpr = SH1ADD %1, %2971 %4:gpr = XORI %2, 3972 %5:gpr = LD %3, 8973 $x10 = COPY %4974 $x11 = COPY %5975 PseudoRET976...977 978# CHECK: sh2add_ld979# CHECK: Macro fuse: {{.*}}SH2ADD - LD980---981name: sh2add_ld982tracksRegLiveness: true983body: |984 bb.0.entry:985 liveins: $x10, $x11986 %1:gpr = COPY $x10987 %2:gpr = COPY $x11988 %3:gpr = SH2ADD %1, %2989 %4:gpr = XORI %2, 3990 %5:gpr = LD %3, 8991 $x10 = COPY %4992 $x11 = COPY %5993 PseudoRET994...995 996# CHECK: sh3add_ld997# CHECK: Macro fuse: {{.*}}SH3ADD - LD998---999name: sh3add_ld1000tracksRegLiveness: true1001body: |1002 bb.0.entry:1003 liveins: $x10, $x111004 %1:gpr = COPY $x101005 %2:gpr = COPY $x111006 %3:gpr = SH3ADD %1, %21007 %4:gpr = XORI %2, 31008 %5:gpr = LD %3, 81009 $x10 = COPY %41010 $x11 = COPY %51011 PseudoRET1012...1013 1014# CHECK: sh1add_lbu1015# CHECK: Macro fuse: {{.*}}SH1ADD - LBU1016---1017name: sh1add_lbu1018tracksRegLiveness: true1019body: |1020 bb.0.entry:1021 liveins: $x10, $x111022 %1:gpr = COPY $x101023 %2:gpr = COPY $x111024 %3:gpr = SH1ADD %1, %21025 %4:gpr = XORI %2, 31026 %5:gpr = LBU %3, 81027 $x10 = COPY %41028 $x11 = COPY %51029 PseudoRET1030...1031 1032# CHECK: sh2add_lbu1033# CHECK: Macro fuse: {{.*}}SH2ADD - LBU1034---1035name: sh2add_lbu1036tracksRegLiveness: true1037body: |1038 bb.0.entry:1039 liveins: $x10, $x111040 %1:gpr = COPY $x101041 %2:gpr = COPY $x111042 %3:gpr = SH2ADD %1, %21043 %4:gpr = XORI %2, 31044 %5:gpr = LBU %3, 81045 $x10 = COPY %41046 $x11 = COPY %51047 PseudoRET1048...1049 1050# CHECK: sh3add_lbu1051# CHECK: Macro fuse: {{.*}}SH3ADD - LBU1052---1053name: sh3add_lbu1054tracksRegLiveness: true1055body: |1056 bb.0.entry:1057 liveins: $x10, $x111058 %1:gpr = COPY $x101059 %2:gpr = COPY $x111060 %3:gpr = SH3ADD %1, %21061 %4:gpr = XORI %2, 31062 %5:gpr = LBU %3, 81063 $x10 = COPY %41064 $x11 = COPY %51065 PseudoRET1066...1067 1068# CHECK: sh1add_lhu1069# CHECK: Macro fuse: {{.*}}SH1ADD - LHU1070---1071name: sh1add_lhu1072tracksRegLiveness: true1073body: |1074 bb.0.entry:1075 liveins: $x10, $x111076 %1:gpr = COPY $x101077 %2:gpr = COPY $x111078 %3:gpr = SH1ADD %1, %21079 %4:gpr = XORI %2, 31080 %5:gpr = LHU %3, 81081 $x10 = COPY %41082 $x11 = COPY %51083 PseudoRET1084...1085 1086# CHECK: sh2add_lhu1087# CHECK: Macro fuse: {{.*}}SH2ADD - LHU1088---1089name: sh2add_lhu1090tracksRegLiveness: true1091body: |1092 bb.0.entry:1093 liveins: $x10, $x111094 %1:gpr = COPY $x101095 %2:gpr = COPY $x111096 %3:gpr = SH2ADD %1, %21097 %4:gpr = XORI %2, 31098 %5:gpr = LHU %3, 81099 $x10 = COPY %41100 $x11 = COPY %51101 PseudoRET1102...1103 1104# CHECK: sh3add_lhu1105# CHECK: Macro fuse: {{.*}}SH3ADD - LHU1106---1107name: sh3add_lhu1108tracksRegLiveness: true1109body: |1110 bb.0.entry:1111 liveins: $x10, $x111112 %1:gpr = COPY $x101113 %2:gpr = COPY $x111114 %3:gpr = SH3ADD %1, %21115 %4:gpr = XORI %2, 31116 %5:gpr = LHU %3, 81117 $x10 = COPY %41118 $x11 = COPY %51119 PseudoRET1120...1121 1122# CHECK: sh1add_lwu1123# CHECK: Macro fuse: {{.*}}SH1ADD - LWU1124---1125name: sh1add_lwu1126tracksRegLiveness: true1127body: |1128 bb.0.entry:1129 liveins: $x10, $x111130 %1:gpr = COPY $x101131 %2:gpr = COPY $x111132 %3:gpr = SH1ADD %1, %21133 %4:gpr = XORI %2, 31134 %5:gpr = LWU %3, 81135 $x10 = COPY %41136 $x11 = COPY %51137 PseudoRET1138...1139 1140# CHECK: sh2add_lwu1141# CHECK: Macro fuse: {{.*}}SH2ADD - LWU1142---1143name: sh2add_lwu1144tracksRegLiveness: true1145body: |1146 bb.0.entry:1147 liveins: $x10, $x111148 %1:gpr = COPY $x101149 %2:gpr = COPY $x111150 %3:gpr = SH2ADD %1, %21151 %4:gpr = XORI %2, 31152 %5:gpr = LWU %3, 81153 $x10 = COPY %41154 $x11 = COPY %51155 PseudoRET1156...1157 1158# CHECK: sh3add_lwu1159# CHECK: Macro fuse: {{.*}}SH3ADD - LWU1160---1161name: sh3add_lwu1162tracksRegLiveness: true1163body: |1164 bb.0.entry:1165 liveins: $x10, $x111166 %1:gpr = COPY $x101167 %2:gpr = COPY $x111168 %3:gpr = SH3ADD %1, %21169 %4:gpr = XORI %2, 31170 %5:gpr = LWU %3, 81171 $x10 = COPY %41172 $x11 = COPY %51173 PseudoRET1174...1175 1176# CHECK: sh1adduw_lb1177# CHECK: Macro fuse: {{.*}}SH1ADD_UW - LB1178---1179name: sh1adduw_lb1180tracksRegLiveness: true1181body: |1182 bb.0.entry:1183 liveins: $x10, $x111184 %1:gpr = COPY $x101185 %2:gpr = COPY $x111186 %3:gpr = SH1ADD_UW %1, %21187 %4:gpr = XORI %2, 31188 %5:gpr = LB %3, 81189 $x10 = COPY %41190 $x11 = COPY %51191 PseudoRET1192...1193 1194# CHECK: sh2adduw_lb1195# CHECK: Macro fuse: {{.*}}SH2ADD_UW - LB1196---1197name: sh2adduw_lb1198tracksRegLiveness: true1199body: |1200 bb.0.entry:1201 liveins: $x10, $x111202 %1:gpr = COPY $x101203 %2:gpr = COPY $x111204 %3:gpr = SH2ADD_UW %1, %21205 %4:gpr = XORI %2, 31206 %5:gpr = LB %3, 81207 $x10 = COPY %41208 $x11 = COPY %51209 PseudoRET1210...1211 1212# CHECK: sh3adduw_lb1213# CHECK: Macro fuse: {{.*}}SH3ADD_UW - LB1214---1215name: sh3adduw_lb1216tracksRegLiveness: true1217body: |1218 bb.0.entry:1219 liveins: $x10, $x111220 %1:gpr = COPY $x101221 %2:gpr = COPY $x111222 %3:gpr = SH3ADD_UW %1, %21223 %4:gpr = XORI %2, 31224 %5:gpr = LB %3, 81225 $x10 = COPY %41226 $x11 = COPY %51227 PseudoRET1228...1229 1230# CHECK: sh1adduw_lh1231# CHECK: Macro fuse: {{.*}}SH1ADD_UW - LH1232---1233name: sh1adduw_lh1234tracksRegLiveness: true1235body: |1236 bb.0.entry:1237 liveins: $x10, $x111238 %1:gpr = COPY $x101239 %2:gpr = COPY $x111240 %3:gpr = SH1ADD_UW %1, %21241 %4:gpr = XORI %2, 31242 %5:gpr = LH %3, 81243 $x10 = COPY %41244 $x11 = COPY %51245 PseudoRET1246...1247 1248# CHECK: sh2adduw_lh1249# CHECK: Macro fuse: {{.*}}SH2ADD_UW - LH1250---1251name: sh2adduw_lh1252tracksRegLiveness: true1253body: |1254 bb.0.entry:1255 liveins: $x10, $x111256 %1:gpr = COPY $x101257 %2:gpr = COPY $x111258 %3:gpr = SH2ADD_UW %1, %21259 %4:gpr = XORI %2, 31260 %5:gpr = LH %3, 81261 $x10 = COPY %41262 $x11 = COPY %51263 PseudoRET1264...1265 1266# CHECK: sh3adduw_lh1267# CHECK: Macro fuse: {{.*}}SH3ADD_UW - LH1268---1269name: sh3adduw_lh1270tracksRegLiveness: true1271body: |1272 bb.0.entry:1273 liveins: $x10, $x111274 %1:gpr = COPY $x101275 %2:gpr = COPY $x111276 %3:gpr = SH3ADD_UW %1, %21277 %4:gpr = XORI %2, 31278 %5:gpr = LH %3, 81279 $x10 = COPY %41280 $x11 = COPY %51281 PseudoRET1282...1283 1284# CHECK: sh1adduw_lw1285# CHECK: Macro fuse: {{.*}}SH1ADD_UW - LW1286---1287name: sh1adduw_lw1288tracksRegLiveness: true1289body: |1290 bb.0.entry:1291 liveins: $x10, $x111292 %1:gpr = COPY $x101293 %2:gpr = COPY $x111294 %3:gpr = SH1ADD_UW %1, %21295 %4:gpr = XORI %2, 31296 %5:gpr = LW %3, 81297 $x10 = COPY %41298 $x11 = COPY %51299 PseudoRET1300...1301 1302# CHECK: sh2adduw_lw1303# CHECK: Macro fuse: {{.*}}SH2ADD_UW - LW1304---1305name: sh2adduw_lw1306tracksRegLiveness: true1307body: |1308 bb.0.entry:1309 liveins: $x10, $x111310 %1:gpr = COPY $x101311 %2:gpr = COPY $x111312 %3:gpr = SH2ADD_UW %1, %21313 %4:gpr = XORI %2, 31314 %5:gpr = LW %3, 81315 $x10 = COPY %41316 $x11 = COPY %51317 PseudoRET1318...1319 1320# CHECK: sh3adduw_lw1321# CHECK: Macro fuse: {{.*}}SH3ADD_UW - LW1322---1323name: sh3adduw_lw1324tracksRegLiveness: true1325body: |1326 bb.0.entry:1327 liveins: $x10, $x111328 %1:gpr = COPY $x101329 %2:gpr = COPY $x111330 %3:gpr = SH3ADD_UW %1, %21331 %4:gpr = XORI %2, 31332 %5:gpr = LW %3, 81333 $x10 = COPY %41334 $x11 = COPY %51335 PseudoRET1336...1337 1338# CHECK: sh1adduw_ld1339# CHECK: Macro fuse: {{.*}}SH1ADD_UW - LD1340---1341name: sh1adduw_ld1342tracksRegLiveness: true1343body: |1344 bb.0.entry:1345 liveins: $x10, $x111346 %1:gpr = COPY $x101347 %2:gpr = COPY $x111348 %3:gpr = SH1ADD_UW %1, %21349 %4:gpr = XORI %2, 31350 %5:gpr = LD %3, 81351 $x10 = COPY %41352 $x11 = COPY %51353 PseudoRET1354...1355 1356# CHECK: sh2adduw_ld1357# CHECK: Macro fuse: {{.*}}SH2ADD_UW - LD1358---1359name: sh2adduw_ld1360tracksRegLiveness: true1361body: |1362 bb.0.entry:1363 liveins: $x10, $x111364 %1:gpr = COPY $x101365 %2:gpr = COPY $x111366 %3:gpr = SH2ADD_UW %1, %21367 %4:gpr = XORI %2, 31368 %5:gpr = LD %3, 81369 $x10 = COPY %41370 $x11 = COPY %51371 PseudoRET1372...1373 1374# CHECK: sh3adduw_ld1375# CHECK: Macro fuse: {{.*}}SH3ADD_UW - LD1376---1377name: sh3adduw_ld1378tracksRegLiveness: true1379body: |1380 bb.0.entry:1381 liveins: $x10, $x111382 %1:gpr = COPY $x101383 %2:gpr = COPY $x111384 %3:gpr = SH3ADD_UW %1, %21385 %4:gpr = XORI %2, 31386 %5:gpr = LD %3, 81387 $x10 = COPY %41388 $x11 = COPY %51389 PseudoRET1390...1391 1392# CHECK: sh1adduw_lbu1393# CHECK: Macro fuse: {{.*}}SH1ADD_UW - LBU1394---1395name: sh1adduw_lbu1396tracksRegLiveness: true1397body: |1398 bb.0.entry:1399 liveins: $x10, $x111400 %1:gpr = COPY $x101401 %2:gpr = COPY $x111402 %3:gpr = SH1ADD_UW %1, %21403 %4:gpr = XORI %2, 31404 %5:gpr = LBU %3, 81405 $x10 = COPY %41406 $x11 = COPY %51407 PseudoRET1408...1409 1410# CHECK: sh2adduw_lbu1411# CHECK: Macro fuse: {{.*}}SH2ADD_UW - LBU1412---1413name: sh2adduw_lbu1414tracksRegLiveness: true1415body: |1416 bb.0.entry:1417 liveins: $x10, $x111418 %1:gpr = COPY $x101419 %2:gpr = COPY $x111420 %3:gpr = SH2ADD_UW %1, %21421 %4:gpr = XORI %2, 31422 %5:gpr = LBU %3, 81423 $x10 = COPY %41424 $x11 = COPY %51425 PseudoRET1426...1427 1428# CHECK: sh3adduw_lbu1429# CHECK: Macro fuse: {{.*}}SH3ADD_UW - LBU1430---1431name: sh3adduw_lbu1432tracksRegLiveness: true1433body: |1434 bb.0.entry:1435 liveins: $x10, $x111436 %1:gpr = COPY $x101437 %2:gpr = COPY $x111438 %3:gpr = SH3ADD_UW %1, %21439 %4:gpr = XORI %2, 31440 %5:gpr = LBU %3, 81441 $x10 = COPY %41442 $x11 = COPY %51443 PseudoRET1444...1445 1446# CHECK: sh1adduw_lhu1447# CHECK: Macro fuse: {{.*}}SH1ADD_UW - LHU1448---1449name: sh1adduw_lhu1450tracksRegLiveness: true1451body: |1452 bb.0.entry:1453 liveins: $x10, $x111454 %1:gpr = COPY $x101455 %2:gpr = COPY $x111456 %3:gpr = SH1ADD_UW %1, %21457 %4:gpr = XORI %2, 31458 %5:gpr = LHU %3, 81459 $x10 = COPY %41460 $x11 = COPY %51461 PseudoRET1462...1463 1464# CHECK: sh2adduw_lhu1465# CHECK: Macro fuse: {{.*}}SH2ADD_UW - LHU1466---1467name: sh2adduw_lhu1468tracksRegLiveness: true1469body: |1470 bb.0.entry:1471 liveins: $x10, $x111472 %1:gpr = COPY $x101473 %2:gpr = COPY $x111474 %3:gpr = SH2ADD_UW %1, %21475 %4:gpr = XORI %2, 31476 %5:gpr = LHU %3, 81477 $x10 = COPY %41478 $x11 = COPY %51479 PseudoRET1480...1481 1482# CHECK: sh3adduw_lhu1483# CHECK: Macro fuse: {{.*}}SH3ADD_UW - LHU1484---1485name: sh3adduw_lhu1486tracksRegLiveness: true1487body: |1488 bb.0.entry:1489 liveins: $x10, $x111490 %1:gpr = COPY $x101491 %2:gpr = COPY $x111492 %3:gpr = SH3ADD_UW %1, %21493 %4:gpr = XORI %2, 31494 %5:gpr = LHU %3, 81495 $x10 = COPY %41496 $x11 = COPY %51497 PseudoRET1498...1499 1500# CHECK: sh1adduw_lwu1501# CHECK: Macro fuse: {{.*}}SH1ADD_UW - LWU1502---1503name: sh1adduw_lwu1504tracksRegLiveness: true1505body: |1506 bb.0.entry:1507 liveins: $x10, $x111508 %1:gpr = COPY $x101509 %2:gpr = COPY $x111510 %3:gpr = SH1ADD_UW %1, %21511 %4:gpr = XORI %2, 31512 %5:gpr = LWU %3, 81513 $x10 = COPY %41514 $x11 = COPY %51515 PseudoRET1516...1517 1518# CHECK: sh2adduw_lwu1519# CHECK: Macro fuse: {{.*}}SH2ADD_UW - LWU1520---1521name: sh2adduw_lwu1522tracksRegLiveness: true1523body: |1524 bb.0.entry:1525 liveins: $x10, $x111526 %1:gpr = COPY $x101527 %2:gpr = COPY $x111528 %3:gpr = SH2ADD_UW %1, %21529 %4:gpr = XORI %2, 31530 %5:gpr = LWU %3, 81531 $x10 = COPY %41532 $x11 = COPY %51533 PseudoRET1534...1535 1536# CHECK: sh3adduw_lwu1537# CHECK: Macro fuse: {{.*}}SH3ADD_UW - LWU1538---1539name: sh3adduw_lwu1540tracksRegLiveness: true1541body: |1542 bb.0.entry:1543 liveins: $x10, $x111544 %1:gpr = COPY $x101545 %2:gpr = COPY $x111546 %3:gpr = SH3ADD_UW %1, %21547 %4:gpr = XORI %2, 31548 %5:gpr = LWU %3, 81549 $x10 = COPY %41550 $x11 = COPY %51551 PseudoRET1552...1553