79 lines · plain
1# RUN: llc -o /dev/null %s -run-pass=machine-scheduler -mtriple aarch64-- -mattr=-fuse-aes,+crypto -misched-print-dags 2>&1 | FileCheck %s --check-prefixes=CHECK,NOFUSE2# RUN: llc -o /dev/null %s -run-pass=machine-scheduler -mtriple aarch64-- -mattr=+fuse-aes,+crypto -misched-print-dags 2>&1 | FileCheck %s --check-prefixes=CHECK,FUSEAES3# RUN: llc -o /dev/null %s -run-pass=machine-scheduler -mtriple aarch64-- -mattr=+fuse-aes,+fuse-crypto-eor,+crypto -misched-print-dags 2>&1 | FileCheck %s --check-prefixes=CHECK,FUSEAES,FUSECRYPTO4# RUN: llc -o /dev/null %s -passes=machine-scheduler -mtriple aarch64-- -mattr=-fuse-aes,+crypto -misched-print-dags 2>&1 | FileCheck %s --check-prefixes=CHECK,NOFUSE5# RUN: llc -o /dev/null %s -passes=machine-scheduler -mtriple aarch64-- -mattr=+fuse-aes,+crypto -misched-print-dags 2>&1 | FileCheck %s --check-prefixes=CHECK,FUSEAES6# RUN: llc -o /dev/null %s -passes=machine-scheduler -mtriple aarch64-- -mattr=+fuse-aes,+fuse-crypto-eor,+crypto -misched-print-dags 2>&1 | FileCheck %s --check-prefixes=CHECK,FUSEAES,FUSECRYPTO7# REQUIRES: asserts8 9name: func10body: |11 bb.0:12 ; CHECK: SU(0): %0:fpr128 = AESErr undef $q0(tied-def 0), undef $q113 ; CHECK: Successors:14 ; NOFUSE-NOT: SU({{.*}}): Ord15 ; FUSEAES: SU(1): Ord Latency=0 Cluster16 ; CHECK: SU(1): %1:fpr128 = AESMCrrTied %0:fpr12817 %0:fpr128 = AESErr undef $q0, undef $q118 %1:fpr128 = AESMCrrTied %019 20 ; CHECK: SU(2): %2:fpr128 = AESErr undef $q2(tied-def 0), undef $q321 ; CHECK: Successors:22 ; NOFUSE-NOT: SU({{.*}}): Ord23 ; FUSEAES: SU(3): Ord Latency=0 Cluster24 ; CHECK: SU(3): dead %3:fpr128 = AESMCrr %2:fpr12825 %2:fpr128 = AESErr undef $q2, undef $q326 %3:fpr128 = AESMCrr %227 28 ; CHECK: SU(4): %4:fpr128 = AESErr %1:fpr128(tied-def 0), undef $q429 ; CHECK: Successors:30 ; NOFUSE-NOT: SU({{.*}}): Ord31 ; FUSEAES-NOT: SU({{.*}}): Ord32 ; FUSECRYPTO: SU(5): Ord Latency=0 Cluster33 ; CHECK: SU(5): dead %5:fpr128 = EORv16i8 %4:fpr128, undef $q534 %4:fpr128 = AESErr %1, undef $q435 %5:fpr128 = EORv16i8 %4, undef $q536 37 ; CHECK: SU(6): %6:fpr128 = AESDrr undef $q0(tied-def 0), undef $q138 ; CHECK: Successors:39 ; NOFUSE-NOT: SU({{.*}}): Ord40 ; FUSEAES: SU(7): Ord Latency=0 Cluster41 ; CHECK: SU(7): %7:fpr128 = AESIMCrrTied %6:fpr12842 %6:fpr128 = AESDrr undef $q0, undef $q143 %7:fpr128 = AESIMCrrTied %644 45 ; CHECK: SU(8): %8:fpr128 = AESDrr undef $q2(tied-def 0), undef $q346 ; CHECK: Successors:47 ; NOFUSE-NOT: SU({{.*}}): Ord48 ; FUSEAES: SU(9): Ord Latency=0 Cluster49 ; CHECK: SU(9): dead %9:fpr128 = AESIMCrr %8:fpr12850 %8:fpr128 = AESDrr undef $q2, undef $q351 %9:fpr128 = AESIMCrr %852 53 ; CHECK: SU(10): %10:fpr128 = AESDrr %7:fpr128(tied-def 0), undef $q054 ; CHECK: Successors:55 ; NOFUSE-NOT: SU({{.*}}): Ord56 ; FUSEAES-NOT: SU({{.*}}): Ord57 ; FUSECRYPTO: SU(11): Ord Latency=0 Cluster58 ; CHECK: SU(11): dead %11:fpr128 = EORv16i8 %10:fpr128, undef $q159 %10:fpr128 = AESDrr %7, undef $q060 %11:fpr128 = EORv16i8 %10, undef $q161 62 ; CHECK: SU(12): %12:fpr128 = PMULLv16i8 undef $q0, undef $q163 ; CHECK: Successors:64 ; NOFUSE-NOT: SU({{.*}}): Ord65 ; FUSEAES-NOT: SU({{.*}}): Ord66 ; FUSECRYPTO: SU(13): Ord Latency=0 Cluster67 ; CHECK: SU(13): dead %13:fpr128 = EORv16i8 %12:fpr128, undef $q268 %12:fpr128 = PMULLv16i8 undef $q0, undef $q169 %13:fpr128 = EORv16i8 %12, undef $q270 71 ; CHECK: SU(14): %14:fpr128 = PMULLv8i8 undef $d0, undef $d172 ; CHECK: Successors:73 ; NOFUSE-NOT: SU({{.*}}): Ord74 ; FUSEAES-NOT: SU({{.*}}): Ord75 ; FUSECRYPTO: SU(15): Ord Latency=0 Cluster76 ; CHECK: SU(15): dead %15:fpr128 = EORv16i8 %14:fpr128, undef $q377 %14:fpr128 = PMULLv8i8 undef $d0, undef $d178 %15:fpr128 = EORv16i8 %14, undef $q379