19b5e2b52SQiu Chaofan# REQUIRES: asserts 29b5e2b52SQiu Chaofan# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr10 -x=mir < %s \ 39b5e2b52SQiu Chaofan# RUN: -debug-only=machine-scheduler -start-before=postmisched 2>&1 \ 4*e3c2694dSQiu Chaofan# RUN: -mattr=+fuse-zeromove,+fuse-cmp,+fuse-wideimm,+fuse-back2back \ 59b5e2b52SQiu Chaofan# RUN: | FileCheck %s 69b5e2b52SQiu Chaofan 79b5e2b52SQiu Chaofan# CHECK: add_mulld:%bb.0 89b5e2b52SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / MULLD - ADD8 99b5e2b52SQiu Chaofan--- 109b5e2b52SQiu Chaofanname: add_mulld 119b5e2b52SQiu ChaofantracksRegLiveness: true 129b5e2b52SQiu Chaofanbody: | 139b5e2b52SQiu Chaofan bb.0.entry: 149b5e2b52SQiu Chaofan liveins: $x3, $x4, $x5 159b5e2b52SQiu Chaofan renamable $x4 = MULLD $x3, $x4 169b5e2b52SQiu Chaofan renamable $x3 = ADD8 killed renamable $x4, $x5 179b5e2b52SQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $x3 189b5e2b52SQiu Chaofan... 199b5e2b52SQiu Chaofan 209b5e2b52SQiu Chaofan# CHECK: add_and:%bb.0 219b5e2b52SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / ADD8 - AND8 229b5e2b52SQiu Chaofan--- 239b5e2b52SQiu Chaofanname: add_and 249b5e2b52SQiu ChaofantracksRegLiveness: true 259b5e2b52SQiu Chaofanbody: | 269b5e2b52SQiu Chaofan bb.0.entry: 279b5e2b52SQiu Chaofan liveins: $x3, $x4, $x5 289b5e2b52SQiu Chaofan renamable $x4 = ADD8 $x3, $x4 299b5e2b52SQiu Chaofan renamable $x3 = AND8 killed renamable $x4, $x5 309b5e2b52SQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $x3 319b5e2b52SQiu Chaofan... 329b5e2b52SQiu Chaofan 339b5e2b52SQiu Chaofan# CHECK: xor_subf:%bb.0 349b5e2b52SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / XOR8 - SUBF8 359b5e2b52SQiu Chaofan--- 369b5e2b52SQiu Chaofanname: xor_subf 379b5e2b52SQiu ChaofantracksRegLiveness: true 389b5e2b52SQiu Chaofanbody: | 399b5e2b52SQiu Chaofan bb.0.entry: 409b5e2b52SQiu Chaofan liveins: $x3, $x4, $x5 419b5e2b52SQiu Chaofan renamable $x4 = XOR8 $x3, $x4 429b5e2b52SQiu Chaofan renamable $x3 = SUBF8 killed renamable $x4, $x5 439b5e2b52SQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $x3 449b5e2b52SQiu Chaofan... 459b5e2b52SQiu Chaofan 469b5e2b52SQiu Chaofan# CHECK: or_nand:%bb.0 479b5e2b52SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / OR8 - NAND8 489b5e2b52SQiu Chaofan--- 499b5e2b52SQiu Chaofanname: or_nand 509b5e2b52SQiu ChaofantracksRegLiveness: true 519b5e2b52SQiu Chaofanbody: | 529b5e2b52SQiu Chaofan bb.0.entry: 539b5e2b52SQiu Chaofan liveins: $x3, $x4, $x5 549b5e2b52SQiu Chaofan renamable $x4 = OR8 $x3, $x4 559b5e2b52SQiu Chaofan renamable $x3 = NAND8 killed renamable $x4, $x5 569b5e2b52SQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $x3 579b5e2b52SQiu Chaofan... 589b5e2b52SQiu Chaofan 599b5e2b52SQiu Chaofan# CHECK: vand_vand:%bb.0 609b5e2b52SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / VAND - VAND 619b5e2b52SQiu Chaofan--- 629b5e2b52SQiu Chaofanname: vand_vand 639b5e2b52SQiu ChaofantracksRegLiveness: true 649b5e2b52SQiu Chaofanbody: | 659b5e2b52SQiu Chaofan bb.0.entry: 669b5e2b52SQiu Chaofan liveins: $v2, $v3, $v4 679b5e2b52SQiu Chaofan renamable $v2 = VAND $v3, $v2 689b5e2b52SQiu Chaofan renamable $v2 = VAND killed renamable $v2, $v4 699b5e2b52SQiu Chaofan BLR8 implicit $lr8, implicit $rm 709b5e2b52SQiu Chaofan... 719b5e2b52SQiu Chaofan 729b5e2b52SQiu Chaofan# CHECK: vadd_vadd:%bb.0 739b5e2b52SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / VADDUDM - VADDUDM 749b5e2b52SQiu Chaofan--- 759b5e2b52SQiu Chaofanname: vadd_vadd 769b5e2b52SQiu ChaofantracksRegLiveness: true 779b5e2b52SQiu Chaofanbody: | 789b5e2b52SQiu Chaofan bb.0.entry: 799b5e2b52SQiu Chaofan liveins: $v2, $v3, $v4 809b5e2b52SQiu Chaofan renamable $v2 = VADDUDM $v3, $v2 819b5e2b52SQiu Chaofan renamable $v2 = VADDUDM killed renamable $v2, $v4 829b5e2b52SQiu Chaofan BLR8 implicit $lr8, implicit $rm 839b5e2b52SQiu Chaofan... 849b5e2b52SQiu Chaofan 859b5e2b52SQiu Chaofan# CHECK: sldi_add:%bb.0 869b5e2b52SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / RLDICR - ADD8 879b5e2b52SQiu Chaofan--- 889b5e2b52SQiu Chaofanname: sldi_add 899b5e2b52SQiu ChaofantracksRegLiveness: true 909b5e2b52SQiu Chaofanbody: | 919b5e2b52SQiu Chaofan bb.0.entry: 929b5e2b52SQiu Chaofan liveins: $x3, $x4, $x5 939b5e2b52SQiu Chaofan renamable $x4 = RLDICR $x3, 3, 60 949b5e2b52SQiu Chaofan renamable $x3 = ADD8 killed renamable $x4, $x5 959b5e2b52SQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $x3 969b5e2b52SQiu Chaofan... 9759f4b3d3SQiu Chaofan 9859f4b3d3SQiu Chaofan# CHECK: rldicl_xor:%bb.0 9959f4b3d3SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / RLDICL - XOR8 10059f4b3d3SQiu Chaofan--- 10159f4b3d3SQiu Chaofanname: rldicl_xor 10259f4b3d3SQiu ChaofantracksRegLiveness: true 10359f4b3d3SQiu Chaofanbody: | 10459f4b3d3SQiu Chaofan bb.0.entry: 10559f4b3d3SQiu Chaofan liveins: $x3, $x4, $x5 10659f4b3d3SQiu Chaofan renamable $x4 = RLDICL $x3, 1, 0 10759f4b3d3SQiu Chaofan renamable $x3 = XOR8 killed renamable $x4, $x5 10859f4b3d3SQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $x3 10959f4b3d3SQiu Chaofan... 11059f4b3d3SQiu Chaofan 11159f4b3d3SQiu Chaofan# CHECK: rldicr_xor:%bb.0 11259f4b3d3SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / RLDICR - XOR8 11359f4b3d3SQiu Chaofan--- 11459f4b3d3SQiu Chaofanname: rldicr_xor 11559f4b3d3SQiu ChaofantracksRegLiveness: true 11659f4b3d3SQiu Chaofanbody: | 11759f4b3d3SQiu Chaofan bb.0.entry: 11859f4b3d3SQiu Chaofan liveins: $x3, $x4, $x5 11959f4b3d3SQiu Chaofan renamable $x4 = RLDICR $x3, 1, 63 12059f4b3d3SQiu Chaofan renamable $x3 = XOR8 killed renamable $x4, $x5 12159f4b3d3SQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $x3 12259f4b3d3SQiu Chaofan... 12359f4b3d3SQiu Chaofan 12459f4b3d3SQiu Chaofan# CHECK: ori_oris:%bb.0 12559f4b3d3SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / ORI8 - ORIS8 12659f4b3d3SQiu Chaofan--- 12759f4b3d3SQiu Chaofanname: ori_oris 12859f4b3d3SQiu ChaofantracksRegLiveness: true 12959f4b3d3SQiu Chaofanbody: | 13059f4b3d3SQiu Chaofan bb.0.entry: 13159f4b3d3SQiu Chaofan liveins: $x3, $x4 13259f4b3d3SQiu Chaofan renamable $x4 = ORI8 $x3, 63 13359f4b3d3SQiu Chaofan renamable $x3 = ORIS8 killed renamable $x4, 20 13459f4b3d3SQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $x3 13559f4b3d3SQiu Chaofan... 13659f4b3d3SQiu Chaofan 13759f4b3d3SQiu Chaofan# CHECK: load_cmp:%bb.0 13859f4b3d3SQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / LD - CMPDI 13959f4b3d3SQiu Chaofan--- 14059f4b3d3SQiu Chaofanname: load_cmp 14159f4b3d3SQiu ChaofantracksRegLiveness: true 14259f4b3d3SQiu Chaofanbody: | 14359f4b3d3SQiu Chaofan bb.0.entry: 14459f4b3d3SQiu Chaofan liveins: $x3, $x4, $x5 14559f4b3d3SQiu Chaofan renamable $x3 = LD 0, killed renamable $x3 14659f4b3d3SQiu Chaofan renamable $cr0 = CMPDI killed renamable $x3, 0 14759f4b3d3SQiu Chaofan renamable $x3 = ISEL8 killed renamable $x5, killed renamable $x4, renamable $cr0lt, implicit killed $cr0 14859f4b3d3SQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $x3 149*e3c2694dSQiu Chaofan 150*e3c2694dSQiu Chaofan# CHECK: back2back_1:%bb.0 151*e3c2694dSQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / VADDUBM - VSUBUBM 152*e3c2694dSQiu Chaofan--- 153*e3c2694dSQiu Chaofanname: back2back_1 154*e3c2694dSQiu ChaofantracksRegLiveness: true 155*e3c2694dSQiu Chaofanbody: | 156*e3c2694dSQiu Chaofan bb.0.entry: 157*e3c2694dSQiu Chaofan liveins: $v2, $v3, $v4 158*e3c2694dSQiu Chaofan renamable $v2 = VADDUBM $v3, $v2 159*e3c2694dSQiu Chaofan renamable $v2 = VSUBUBM killed renamable $v2, $v4 160*e3c2694dSQiu Chaofan BLR8 implicit $lr8, implicit $rm 161*e3c2694dSQiu Chaofan 162*e3c2694dSQiu Chaofan# CHECK: back2back_2:%bb.0 163*e3c2694dSQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / XSABSDP - XSNEGDP 164*e3c2694dSQiu Chaofan--- 165*e3c2694dSQiu Chaofanname: back2back_2 166*e3c2694dSQiu ChaofantracksRegLiveness: true 167*e3c2694dSQiu Chaofanbody: | 168*e3c2694dSQiu Chaofan bb.0.entry: 169*e3c2694dSQiu Chaofan liveins: $f1, $f2 170*e3c2694dSQiu Chaofan renamable $f2 = XSABSDP $f1, implicit $rm 171*e3c2694dSQiu Chaofan renamable $f1 = XSNEGDP killed renamable $f2, implicit $rm 172*e3c2694dSQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $f1 173*e3c2694dSQiu Chaofan 174*e3c2694dSQiu Chaofan# CHECK: back2back_3:%bb.0 175*e3c2694dSQiu Chaofan# CHECK: Macro fuse: SU(0) - SU(1) / VMAXFP - XVMINSP 176*e3c2694dSQiu Chaofan--- 177*e3c2694dSQiu Chaofanname: back2back_3 178*e3c2694dSQiu ChaofantracksRegLiveness: true 179*e3c2694dSQiu Chaofanbody: | 180*e3c2694dSQiu Chaofan bb.0.entry: 181*e3c2694dSQiu Chaofan liveins: $v2, $v3, $v4 182*e3c2694dSQiu Chaofan renamable $v3 = VMAXFP $v2, $v3 183*e3c2694dSQiu Chaofan renamable $v2 = XVMINSP killed renamable $v3, $v4, implicit $rm 184*e3c2694dSQiu Chaofan BLR8 implicit $lr8, implicit $rm, implicit $v2 185