110 lines · plain
1# RUN: llc --verify-machineinstrs -mtriple=aarch64 -o - %s -run-pass pipeliner -aarch64-enable-pipeliner -debug-only=pipeliner 2>&1 | FileCheck %s2# REQUIRES: asserts3 4# unacceptable loops by pipeliner5 6...7---8name: func19tracksRegLiveness: true10body: |11 ; multiple counter increment instructions12 ; CHECK: Unable to analyzeLoop, can NOT pipeline Loop13 bb.0.entry:14 liveins: $x0, $x115 %10:gpr64 = COPY $x016 %11:gpr64 = COPY $x117 18 bb.1:19 %12:gpr64 = PHI %11, %bb.0, %13, %bb.120 %13:gpr64 = ADDXrr %12, %1121 %14:gpr64 = ADDXrr %13, %1122 dead $xzr = SUBSXrr %10, %14, implicit-def $nzcv23 Bcc 1, %bb.1, implicit $nzcv24 B %bb.225 26 bb.2:27...28---29name: func230tracksRegLiveness: true31body: |32 ; neither operand of the increment instruction is a loop invariant value33 ; CHECK: Unable to analyzeLoop, can NOT pipeline Loop34 bb.0.entry:35 liveins: $x0, $x136 %10:gpr64 = COPY $x037 %11:gpr64 = COPY $x138 39 bb.1:40 %12:gpr64 = PHI %11, %bb.0, %13, %bb.141 %13:gpr64 = ADDXrr %12, %1242 dead $xzr = SUBSXrr %10, %13, implicit-def $nzcv43 Bcc 1, %bb.1, implicit $nzcv44 B %bb.245 46 bb.2:47...48---49name: func350tracksRegLiveness: true51body: |52 ; neither operand of the compare instruction is a loop invariant value53 ; CHECK: Unable to analyzeLoop, can NOT pipeline Loop54 bb.0.entry:55 liveins: $x0, $x156 %10:gpr64 = COPY $x057 %11:gpr64 = COPY $x158 59 bb.1:60 %12:gpr64 = PHI %11, %bb.0, %13, %bb.161 %13:gpr64 = ADDXrr %12, %1162 dead $xzr = SUBSXrr %13, %13, implicit-def $nzcv63 Bcc 1, %bb.1, implicit $nzcv64 B %bb.265 66 bb.2:67...68---69name: func470tracksRegLiveness: true71body: |72 ; multiple phi instructions73 ; CHECK: Unable to analyzeLoop, can NOT pipeline Loop74 bb.0.entry:75 liveins: $x0, $x176 %10:gpr64 = COPY $x077 %11:gpr64 = COPY $x178 79 bb.1:80 %12:gpr64 = PHI %11, %bb.0, %13, %bb.181 %14:gpr64 = PHI %11, %bb.0, %15, %bb.182 dead $xzr = SUBSXrr %12, %10, implicit-def $nzcv83 %13:gpr64 = ADDXrr %14, %1184 %15:gpr64 = ADDXrr %12, %1185 Bcc 1, %bb.1, implicit $nzcv86 B %bb.287 88 bb.2:89...90---91name: func592tracksRegLiveness: true93body: |94 ; not an increment instruction95 ; CHECK: Unable to analyzeLoop, can NOT pipeline Loop96 bb.0.entry:97 liveins: $x0, $x198 %10:gpr64 = COPY $x099 %11:gpr64 = COPY $x1100 101 bb.1:102 %12:gpr64 = PHI %11, %bb.0, %13, %bb.1103 %13:gpr64 = ORRXrr %12, %12104 dead $xzr = SUBSXrr %12, %10, implicit-def $nzcv105 Bcc 1, %bb.1, implicit $nzcv106 B %bb.2107 108 bb.2:109...110