llvm/llvm/test/CodeGen/AArch64/misched-detail-resource-booking-01.mir

# RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon  -mcpu=cortex-a55 %s -o - 2>&1 \
# RUN:   -misched-dump-reserved-cycles=true \
# RUN:   -run-pass=machine-scheduler -debug-only=machine-scheduler \
# RUN:   -misched-bottomup=true -sched-print-cycles=true \
# RUN:   -misched-detail-resource-booking=true \
# RUN:   -misched-dump-schedule-trace=true -misched-dump-schedule-trace-col-header-width=21 \
# RUN: | FileCheck  %s

# REQUIRES: asserts, aarch64-registered-target

--- |
  ; ModuleID = '../llvm-project/llvm/test/CodeGen/AArch64/aarch64-smull.failing.ll'
  source_filename = "../llvm-project/llvm/test/CodeGen/AArch64/aarch64-smull.failing.ll"
  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
  target triple = "aarch64-none-linux-gnu"

  define <8 x i32> @umull_and_v8i32(<8 x i16> %src1, <8 x i32> %src2) #0 {
  entry:
    %in1 = zext <8 x i16> %src1 to <8 x i32>
    %in2 = and <8 x i32> %src2, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
    %out = mul nsw <8 x i32> %in1, %in2
    ret <8 x i32> %out
  }

  attributes #0 = { "target-features"="+neon" }

...
---
name:            umull_and_v8i32
alignment:       4
tracksRegLiveness: true
registers:
  - { id: 0, class: fpr128 }
  - { id: 1, class: fpr128 }
  - { id: 2, class: fpr128 }
  - { id: 3, class: fpr128 }
  - { id: 4, class: fpr64 }
  - { id: 5, class: fpr64 }
  - { id: 6, class: fpr128 }
  - { id: 7, class: fpr128 }
  - { id: 8, class: fpr128 }
  - { id: 9, class: fpr64 }
  - { id: 10, class: fpr128 }
  - { id: 11, class: fpr64 }
  - { id: 12, class: fpr128 }
liveins:
  - { reg: '$q0', virtual-reg: '%0' }
  - { reg: '$q1', virtual-reg: '%1' }
  - { reg: '$q2', virtual-reg: '%2' }
frameInfo:
  maxAlignment:    1
  maxCallFrameSize: 0
machineFunctionInfo: {}
body:             |
  bb.0.entry:
    liveins: $q0, $q1, $q2

    %2:fpr128 = COPY $q2
    %1:fpr128 = COPY $q1
    %0:fpr128 = COPY $q0
    %3:fpr128 = EXTv16i8 %0, %0, 8
    %6:fpr128 = MOVIv2d_ns 17
    %7:fpr128 = ANDv16i8 %2, %6
    %8:fpr128 = ANDv16i8 %1, %6
    %9:fpr64 = XTNv4i16 %8
    %10:fpr128 = UMULLv4i16_v4i32 %0.dsub, %9
    %11:fpr64 = XTNv4i16 %7
    %12:fpr128 = UMULLv4i16_v4i32 %3.dsub, %11
    $q0 = COPY %10
    $q1 = COPY %12
    RET_ReallyLR implicit $q0, implicit $q1

...

# CHECK-LABEL: Before MISched:
# CHECK-NEXT: # Machine code for function umull_and_v8i32: IsSSA, NoPHIs, TracksLiveness
# CHECK-NEXT: Function Live Ins: $q0 in %0, $q1 in %1, $q2 in %2
# CHECK-EMPTY:
# CHECK-NEXT: bb.0.entry:
# CHECK-NEXT:   liveins: $q0, $q1, $q2
# CHECK-NEXT:   %2:fpr128 = COPY $q2
# CHECK-NEXT:   %1:fpr128 = COPY $q1
# CHECK-NEXT:   %0:fpr128 = COPY $q0
# CHECK-NEXT:   %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8
# CHECK-NEXT:   %6:fpr128 = MOVIv2d_ns 17
# CHECK-NEXT:   %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128
# CHECK-NEXT:   %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128
# CHECK-NEXT:   %9:fpr64 = XTNv4i16 %8:fpr128
# CHECK-NEXT:   %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64
# CHECK-NEXT:   %11:fpr64 = XTNv4i16 %7:fpr128
# CHECK-NEXT:   %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64
# CHECK-NEXT:   $q0 = COPY %10:fpr128
# CHECK-NEXT:   $q1 = COPY %12:fpr128
# CHECK-NEXT:   RET_ReallyLR implicit $q0, implicit $q1
# CHECK-EMPTY:
# CHECK-NEXT: # End machine code for function umull_and_v8i32.
# CHECK-EMPTY:
# CHECK-NEXT: ********** MI Scheduling **********
# CHECK-NEXT: umull_and_v8i32:%bb.0 entry
# CHECK-NEXT:   From: %2:fpr128 = COPY $q2
# CHECK-NEXT:     To: RET_ReallyLR implicit $q0, implicit $q1
# CHECK-NEXT:  RegionInstrs: 13
# CHECK-NEXT: ScheduleDAGMILive::schedule starting
# CHECK-NEXT: GenericScheduler RegionPolicy:  ShouldTrackPressure=0 OnlyTopDown=0 OnlyBottomUp=1
# CHECK-NEXT: Disabled scoreboard hazard recognizer
# CHECK-NEXT: Disabled scoreboard hazard recognizer
# CHECK-NEXT: SU(0) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %2:fpr128 = COPY $q2
# CHECK-NEXT:   # preds left       : 0
# CHECK-NEXT:   # succs left       : 1
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 3
# CHECK-NEXT:   Depth              : 0
# CHECK-NEXT:   Height             : 13
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(5): Data Latency=3 Reg=%2
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(1) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %1:fpr128 = COPY $q1
# CHECK-NEXT:   # preds left       : 0
# CHECK-NEXT:   # succs left       : 2
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 3
# CHECK-NEXT:   Depth              : 0
# CHECK-NEXT:   Height             : 13
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(6): Data Latency=3 Reg=%1
# CHECK-NEXT:     SU(12): Anti Latency=0
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(2) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %0:fpr128 = COPY $q0
# CHECK-NEXT:   # preds left       : 0
# CHECK-NEXT:   # succs left       : 3
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 3
# CHECK-NEXT:   Depth              : 0
# CHECK-NEXT:   Height             : 14
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(8): Data Latency=3 Reg=%0
# CHECK-NEXT:     SU(3): Data Latency=3 Reg=%0
# CHECK-NEXT:     SU(11): Anti Latency=0
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(3) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8
# CHECK-NEXT:   # preds left       : 1
# CHECK-NEXT:   # succs left       : 1
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 4
# CHECK-NEXT:   Depth              : 3
# CHECK-NEXT:   Height             : 11
# CHECK-NEXT:   Predecessors:
# CHECK-NEXT:     SU(2): Data Latency=3 Reg=%0
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(10): Data Latency=4 Reg=%3
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(4) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %6:fpr128 = MOVIv2d_ns 17
# CHECK-NEXT:   # preds left       : 0
# CHECK-NEXT:   # succs left       : 2
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 4
# CHECK-NEXT:   Depth              : 0
# CHECK-NEXT:   Height             : 14
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(6): Data Latency=4 Reg=%6
# CHECK-NEXT:     SU(5): Data Latency=4 Reg=%6
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(5) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128
# CHECK-NEXT:   # preds left       : 2
# CHECK-NEXT:   # succs left       : 1
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 1
# CHECK-NEXT:   Depth              : 4
# CHECK-NEXT:   Height             : 10
# CHECK-NEXT:   Predecessors:
# CHECK-NEXT:     SU(4): Data Latency=4 Reg=%6
# CHECK-NEXT:     SU(0): Data Latency=3 Reg=%2
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(9): Data Latency=1 Reg=%7
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(6) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128
# CHECK-NEXT:   # preds left       : 2
# CHECK-NEXT:   # succs left       : 1
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 1
# CHECK-NEXT:   Depth              : 4
# CHECK-NEXT:   Height             : 10
# CHECK-NEXT:   Predecessors:
# CHECK-NEXT:     SU(4): Data Latency=4 Reg=%6
# CHECK-NEXT:     SU(1): Data Latency=3 Reg=%1
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(7): Data Latency=1 Reg=%8
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(7) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %9:fpr64 = XTNv4i16 %8:fpr128
# CHECK-NEXT:   # preds left       : 1
# CHECK-NEXT:   # succs left       : 1
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 2
# CHECK-NEXT:   Depth              : 5
# CHECK-NEXT:   Height             : 9
# CHECK-NEXT:   Predecessors:
# CHECK-NEXT:     SU(6): Data Latency=1 Reg=%8
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(8): Data Latency=2 Reg=%9
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(8) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64
# CHECK-NEXT:   # preds left       : 2
# CHECK-NEXT:   # succs left       : 1
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 4
# CHECK-NEXT:   Depth              : 7
# CHECK-NEXT:   Height             : 7
# CHECK-NEXT:   Predecessors:
# CHECK-NEXT:     SU(7): Data Latency=2 Reg=%9
# CHECK-NEXT:     SU(2): Data Latency=3 Reg=%0
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(11): Data Latency=4 Reg=%10
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(9) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %11:fpr64 = XTNv4i16 %7:fpr128
# CHECK-NEXT:   # preds left       : 1
# CHECK-NEXT:   # succs left       : 1
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 2
# CHECK-NEXT:   Depth              : 5
# CHECK-NEXT:   Height             : 9
# CHECK-NEXT:   Predecessors:
# CHECK-NEXT:     SU(5): Data Latency=1 Reg=%7
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(10): Data Latency=2 Reg=%11
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(10) [TopReadyCycle = 0, BottomReadyCycle = 0]:   %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64
# CHECK-NEXT:   # preds left       : 2
# CHECK-NEXT:   # succs left       : 1
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 4
# CHECK-NEXT:   Depth              : 7
# CHECK-NEXT:   Height             : 7
# CHECK-NEXT:   Predecessors:
# CHECK-NEXT:     SU(9): Data Latency=2 Reg=%11
# CHECK-NEXT:     SU(3): Data Latency=4 Reg=%3
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     SU(12): Data Latency=4 Reg=%12
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(11) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $q0 = COPY %10:fpr128
# CHECK-NEXT:   # preds left       : 2
# CHECK-NEXT:   # succs left       : 1
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 3
# CHECK-NEXT:   Depth              : 11
# CHECK-NEXT:   Height             : 3
# CHECK-NEXT:   Predecessors:
# CHECK-NEXT:     SU(8): Data Latency=4 Reg=%10
# CHECK-NEXT:     SU(2): Anti Latency=0
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     ExitSU: Ord  Latency=3 Artificial
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: SU(12) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $q1 = COPY %12:fpr128
# CHECK-NEXT:   # preds left       : 2
# CHECK-NEXT:   # succs left       : 1
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 3
# CHECK-NEXT:   Depth              : 11
# CHECK-NEXT:   Height             : 3
# CHECK-NEXT:   Predecessors:
# CHECK-NEXT:     SU(10): Data Latency=4 Reg=%12
# CHECK-NEXT:     SU(1): Anti Latency=0
# CHECK-NEXT:   Successors:
# CHECK-NEXT:     ExitSU: Ord  Latency=3 Artificial
# CHECK-NEXT:   Single Issue       : false;
# CHECK-NEXT: ExitSU [TopReadyCycle = 0, BottomReadyCycle = 0]:   RET_ReallyLR implicit $q0, implicit $q1
# CHECK-NEXT:   # preds left       : 2
# CHECK-NEXT:   # succs left       : 0
# CHECK-NEXT:   # rdefs left       : 0
# CHECK-NEXT:   Latency            : 0
# CHECK-NEXT:   Depth              : 14
# CHECK-NEXT:   Height             : 0
# CHECK-NEXT:   Predecessors:
# CHECK-NEXT:     SU(12): Ord  Latency=3 Artificial
# CHECK-NEXT:     SU(11): Ord  Latency=3 Artificial
# CHECK-NEXT:   Resource booking (@0c):
# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@0c):
# CHECK-NEXT:     Instance 0 available @0c
# CHECK-NEXT:     Instance 1 available @0c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
# CHECK-NEXT:   Resource booking (@0c):
# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@0c):
# CHECK-NEXT:     Instance 0 available @0c
# CHECK-NEXT:     Instance 1 available @0c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
# CHECK-NEXT:   Resource booking (@0c):
# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@0c):
# CHECK-NEXT:     Instance 0 available @0c
# CHECK-NEXT:     Instance 1 available @0c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c
# CHECK-NEXT:   Resource booking (@0c):
# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@0c):
# CHECK-NEXT:     Instance 0 available @0c
# CHECK-NEXT:     Instance 1 available @0c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @0c
# CHECK-NEXT: Critical Path(GS-RR ): 14
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT: Cycle: 3 BotQ.A
# CHECK-NEXT:   Resource booking (@3c):
# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@3c):
# CHECK-NEXT:     Instance 0 available @3c
# CHECK-NEXT:     Instance 1 available @3c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @3c
# CHECK-NEXT:   Resource booking (@3c):
# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@3c):
# CHECK-NEXT:     Instance 0 available @3c
# CHECK-NEXT:     Instance 1 available @3c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @3c
# CHECK-NEXT: Queue BotQ.P:
# CHECK-NEXT: Queue BotQ.A: 12 11
# CHECK-NEXT:   Cand SU(12) ORDER
# CHECK-NEXT: Pick Bot ORDER
# CHECK-NEXT: Scheduling SU(12) $q1 = COPY %12:fpr128
# CHECK-NEXT:   Ready @3c
# CHECK-NEXT:   CortexA55UnitALU +1x1u
# CHECK-NEXT:   Resource booking (@3c):
# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@3c):
# CHECK-NEXT:     Instance 0 available @3c
# CHECK-NEXT:     Instance 1 available @3c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @3c
# CHECK-NEXT:   Resource booking (@3c):
# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@3c):
# CHECK-NEXT:     Instance 0 available @3c
# CHECK-NEXT:     Instance 1 available @3c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @3c
# CHECK-NEXT:   BotQ.A TopLatency SU(12) 11c
# CHECK-NEXT:   BotQ.A BotLatency SU(12) 3c
# CHECK-NEXT: BotQ.A @3c
# CHECK-NEXT:   Retired: 1
# CHECK-NEXT:   Executed: 3c
# CHECK-NEXT:   Critical: 0c, 1 MOps
# CHECK-NEXT:   ExpectedLatency: 3c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT:   Resource booking (@3c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@3c):
# CHECK-NEXT:     Instance 0 available @4c
# CHECK-NEXT:     Instance 1 available @3c
# CHECK-NEXT:     selecting CortexA55UnitALU[1] available @3c
# CHECK-NEXT: Queue BotQ.P: 10
# CHECK-NEXT: Queue BotQ.A: 11
# CHECK-NEXT: Scheduling SU(11) $q0 = COPY %10:fpr128
# CHECK-NEXT:   Ready @3c
# CHECK-NEXT:   CortexA55UnitALU +1x1u
# CHECK-NEXT:   Resource booking (@3c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@3c):
# CHECK-NEXT:     Instance 0 available @4c
# CHECK-NEXT:     Instance 1 available @3c
# CHECK-NEXT:     selecting CortexA55UnitALU[1] available @3c
# CHECK-NEXT:   Resource booking (@3c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@3c):
# CHECK-NEXT:     Instance 0 available @4c
# CHECK-NEXT:     Instance 1 available @3c
# CHECK-NEXT:     selecting CortexA55UnitALU[1] available @3c
# CHECK-NEXT:   *** Max MOps 2 at cycle 3
# CHECK-NEXT: Cycle: 4 BotQ.A
# CHECK-NEXT: BotQ.A @4c
# CHECK-NEXT:   Retired: 2
# CHECK-NEXT:   Executed: 4c
# CHECK-NEXT:   Critical: 1c, 2 MOps
# CHECK-NEXT:   ExpectedLatency: 3c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT: Cycle: 7 BotQ.A
# CHECK-NEXT:   Resource booking (@7c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@7c):
# CHECK-NEXT:     Instance 0 available @7c
# CHECK-NEXT:     Instance 1 available @7c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @7c
# CHECK-NEXT:   Resource booking (@7c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@7c):
# CHECK-NEXT:     Instance 0 available @7c
# CHECK-NEXT:     Instance 1 available @7c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @7c
# CHECK-NEXT: Queue BotQ.P:
# CHECK-NEXT: Queue BotQ.A: 10 8
# CHECK-NEXT:   Cand SU(10) ORDER
# CHECK-NEXT: Pick Bot ORDER
# CHECK-NEXT: Scheduling SU(10) %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64
# CHECK-NEXT:   Ready @7c
# CHECK-NEXT:   CortexA55UnitFPALU +2x1u
# CHECK-NEXT:   Resource booking (@7c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@7c):
# CHECK-NEXT:     Instance 0 available @7c
# CHECK-NEXT:     Instance 1 available @7c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @7c
# CHECK-NEXT:   Resource booking (@7c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@7c):
# CHECK-NEXT:     Instance 0 available @7c
# CHECK-NEXT:     Instance 1 available @7c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @7c
# CHECK-NEXT:   BotQ.A BotLatency SU(10) 7c
# CHECK-NEXT:   Bump cycle to begin group
# CHECK-NEXT: Cycle: 8 BotQ.A
# CHECK-NEXT: BotQ.A @8c
# CHECK-NEXT:   Retired: 3
# CHECK-NEXT:   Executed: 8c
# CHECK-NEXT:   Critical: 1c, 3 MOps
# CHECK-NEXT:   ExpectedLatency: 7c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 7
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT:   Resource booking (@8c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 7
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@8c):
# CHECK-NEXT:     Instance 0 available @9c
# CHECK-NEXT:     Instance 1 available @8c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[1] available @8c
# CHECK-NEXT: Queue BotQ.P: 9 3
# CHECK-NEXT: Queue BotQ.A: 8
# CHECK-NEXT: Scheduling SU(8) %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64
# CHECK-NEXT:   Ready @8c
# CHECK-NEXT:   CortexA55UnitFPALU +2x1u
# CHECK-NEXT:   Resource booking (@8c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 7
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@8c):
# CHECK-NEXT:     Instance 0 available @9c
# CHECK-NEXT:     Instance 1 available @8c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[1] available @8c
# CHECK-NEXT:   Resource booking (@8c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 7
# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@8c):
# CHECK-NEXT:     Instance 0 available @9c
# CHECK-NEXT:     Instance 1 available @8c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[1] available @8c
# CHECK-NEXT:   BotQ.A TopLatency SU(8) 7c
# CHECK-NEXT:   Bump cycle to begin group
# CHECK-NEXT: Cycle: 9 BotQ.A
# CHECK-NEXT: BotQ.A @9c
# CHECK-NEXT:   Retired: 4
# CHECK-NEXT:   Executed: 9c
# CHECK-NEXT:   Critical: 2c, 4 MOps
# CHECK-NEXT:   ExpectedLatency: 7c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 7
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT:   Resource booking (@9c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 7
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@9c):
# CHECK-NEXT:     Instance 0 available @9c
# CHECK-NEXT:     Instance 1 available @9c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @9c
# CHECK-NEXT:   Resource booking (@9c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 7
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@9c):
# CHECK-NEXT:     Instance 0 available @9c
# CHECK-NEXT:     Instance 1 available @9c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @9c
# CHECK-NEXT: Queue BotQ.P: 7 3
# CHECK-NEXT: Queue BotQ.A: 9
# CHECK-NEXT: Scheduling SU(9) %11:fpr64 = XTNv4i16 %7:fpr128
# CHECK-NEXT:   Ready @9c
# CHECK-NEXT:   CortexA55UnitFPALU +1x1u
# CHECK-NEXT:   Resource booking (@9c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 7
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@9c):
# CHECK-NEXT:     Instance 0 available @9c
# CHECK-NEXT:     Instance 1 available @9c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @9c
# CHECK-NEXT:   Resource booking (@9c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 7
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@9c):
# CHECK-NEXT:     Instance 0 available @9c
# CHECK-NEXT:     Instance 1 available @9c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @9c
# CHECK-NEXT:   BotQ.A BotLatency SU(9) 9c
# CHECK-NEXT: BotQ.A @9c
# CHECK-NEXT:   Retired: 5
# CHECK-NEXT:   Executed: 9c
# CHECK-NEXT:   Critical: 2c, 5 MOps
# CHECK-NEXT:   ExpectedLatency: 9c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 9
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT: Cycle: 10 BotQ.A
# CHECK-NEXT:   Resource booking (@10c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 9
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@10c):
# CHECK-NEXT:     Instance 0 available @10c
# CHECK-NEXT:     Instance 1 available @10c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @10c
# CHECK-NEXT:   Resource booking (@10c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 9
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@10c):
# CHECK-NEXT:     Instance 0 available @11c
# CHECK-NEXT:     Instance 1 available @10c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[1] available @10c
# CHECK-NEXT: Queue BotQ.P: 3
# CHECK-NEXT: Queue BotQ.A: 7 5
# CHECK-NEXT:   Cand SU(7) ORDER
# CHECK-NEXT: Pick Bot ORDER
# CHECK-NEXT: Scheduling SU(7) %9:fpr64 = XTNv4i16 %8:fpr128
# CHECK-NEXT:   Ready @10c
# CHECK-NEXT:   CortexA55UnitFPALU +1x1u
# CHECK-NEXT:   Resource booking (@10c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 9
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@10c):
# CHECK-NEXT:     Instance 0 available @10c
# CHECK-NEXT:     Instance 1 available @10c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @10c
# CHECK-NEXT:   Resource booking (@10c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 9
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@10c):
# CHECK-NEXT:     Instance 0 available @10c
# CHECK-NEXT:     Instance 1 available @10c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @10c
# CHECK-NEXT: BotQ.A @10c
# CHECK-NEXT:   Retired: 6
# CHECK-NEXT:   Executed: 10c
# CHECK-NEXT:   Critical: 3c, 6 MOps
# CHECK-NEXT:   ExpectedLatency: 9c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT:   Resource booking (@10c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@10c):
# CHECK-NEXT:     Instance 0 available @12c
# CHECK-NEXT:     Instance 1 available @10c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[1] available @10c
# CHECK-NEXT: Queue BotQ.P: 3 6
# CHECK-NEXT: Queue BotQ.A: 5
# CHECK-NEXT: Scheduling SU(5) %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128
# CHECK-NEXT:   Ready @10c
# CHECK-NEXT:   CortexA55UnitFPALU +2x1u
# CHECK-NEXT:   *** Critical resource CortexA55UnitFPALU: 4c
# CHECK-NEXT:   Resource booking (@10c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@10c):
# CHECK-NEXT:     Instance 0 available @12c
# CHECK-NEXT:     Instance 1 available @10c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[1] available @10c
# CHECK-NEXT:   Resource booking (@10c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 8
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@10c):
# CHECK-NEXT:     Instance 0 available @12c
# CHECK-NEXT:     Instance 1 available @10c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[1] available @10c
# CHECK-NEXT:   BotQ.A BotLatency SU(5) 10c
# CHECK-NEXT:   Bump cycle to begin group
# CHECK-NEXT: Cycle: 11 BotQ.A
# CHECK-NEXT: BotQ.A @11c
# CHECK-NEXT:   Retired: 7
# CHECK-NEXT:   Executed: 11c
# CHECK-NEXT:   Critical: 4c, 8 CortexA55UnitFPALU
# CHECK-NEXT:   ExpectedLatency: 10c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT:   Resource booking (@11c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@11c):
# CHECK-NEXT:     Instance 0 available @12c
# CHECK-NEXT:     Instance 1 available @12c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @12c
# CHECK-NEXT:   SU(3) CortexA55UnitFPALU[0]=12c
# CHECK-NEXT:   Resource booking (@11c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@11c):
# CHECK-NEXT:     Instance 0 available @12c
# CHECK-NEXT:     Instance 1 available @12c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @12c
# CHECK-NEXT:   SU(6) CortexA55UnitFPALU[0]=12c
# CHECK-NEXT: Cycle: 12 BotQ.A
# CHECK-NEXT:   Resource booking (@12c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@12c):
# CHECK-NEXT:     Instance 0 available @12c
# CHECK-NEXT:     Instance 1 available @12c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @12c
# CHECK-NEXT:   Resource booking (@12c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@12c):
# CHECK-NEXT:     Instance 0 available @12c
# CHECK-NEXT:     Instance 1 available @12c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @12c
# CHECK-NEXT: Queue BotQ.P: 0
# CHECK-NEXT: Queue BotQ.A: 3 6
# CHECK-NEXT:   Cand SU(3) ORDER
# CHECK-NEXT:   Cand SU(6) ORDER
# CHECK-NEXT: Pick Bot ORDER
# CHECK-NEXT: Scheduling SU(6) %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128
# CHECK-NEXT:   Ready @12c
# CHECK-NEXT:   CortexA55UnitFPALU +2x1u
# CHECK-NEXT:   Resource booking (@12c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@12c):
# CHECK-NEXT:     Instance 0 available @12c
# CHECK-NEXT:     Instance 1 available @12c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @12c
# CHECK-NEXT:   Resource booking (@12c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 10
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@12c):
# CHECK-NEXT:     Instance 0 available @12c
# CHECK-NEXT:     Instance 1 available @12c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @12c
# CHECK-NEXT:   BotQ.A TopLatency SU(6) 4c
# CHECK-NEXT:   Bump cycle to begin group
# CHECK-NEXT: Cycle: 13 BotQ.A
# CHECK-NEXT: BotQ.A @13c
# CHECK-NEXT:   Retired: 8
# CHECK-NEXT:   Executed: 13c
# CHECK-NEXT:   Critical: 5c, 10 CortexA55UnitFPALU
# CHECK-NEXT:   ExpectedLatency: 10c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT:   Resource booking (@13c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@13c):
# CHECK-NEXT:     Instance 0 available @13c
# CHECK-NEXT:     Instance 1 available @13c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @13c
# CHECK-NEXT:   Resource booking (@13c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@13c):
# CHECK-NEXT:     Instance 0 available @14c
# CHECK-NEXT:     Instance 1 available @13c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[1] available @13c
# CHECK-NEXT:   Resource booking (@13c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@13c):
# CHECK-NEXT:     Instance 0 available @13c
# CHECK-NEXT:     Instance 1 available @13c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @13c
# CHECK-NEXT: Queue BotQ.P: 1 4
# CHECK-NEXT: Queue BotQ.A: 3 0
# CHECK-NEXT:   Cand SU(3) ORDER
# CHECK-NEXT: Pick Bot PHYS-REG
# CHECK-NEXT: Scheduling SU(3) %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8
# CHECK-NEXT:   Ready @13c
# CHECK-NEXT:   CortexA55UnitFPALU +2x1u
# CHECK-NEXT:   Resource booking (@13c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@13c):
# CHECK-NEXT:     Instance 0 available @14c
# CHECK-NEXT:     Instance 1 available @13c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[1] available @13c
# CHECK-NEXT:   Resource booking (@13c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 10
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@13c):
# CHECK-NEXT:     Instance 0 available @14c
# CHECK-NEXT:     Instance 1 available @13c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[1] available @13c
# CHECK-NEXT:   BotQ.A BotLatency SU(3) 11c
# CHECK-NEXT:   Bump cycle to begin group
# CHECK-NEXT: Cycle: 14 BotQ.A
# CHECK-NEXT: BotQ.A @14c
# CHECK-NEXT:   Retired: 9
# CHECK-NEXT:   Executed: 14c
# CHECK-NEXT:   Critical: 6c, 12 CortexA55UnitFPALU
# CHECK-NEXT:   ExpectedLatency: 11c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT:   Resource booking (@14c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@14c):
# CHECK-NEXT:     Instance 0 available @14c
# CHECK-NEXT:     Instance 1 available @14c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @14c
# CHECK-NEXT: Queue BotQ.P: 1 4 2
# CHECK-NEXT: Queue BotQ.A: 0
# CHECK-NEXT: Scheduling SU(0) %2:fpr128 = COPY $q2
# CHECK-NEXT:   Ready @14c
# CHECK-NEXT:   CortexA55UnitALU +1x1u
# CHECK-NEXT:   Resource booking (@14c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@14c):
# CHECK-NEXT:     Instance 0 available @14c
# CHECK-NEXT:     Instance 1 available @14c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @14c
# CHECK-NEXT:   Resource booking (@14c):
# CHECK-NEXT: CortexA55UnitALU(0) = 3
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@14c):
# CHECK-NEXT:     Instance 0 available @14c
# CHECK-NEXT:     Instance 1 available @14c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @14c
# CHECK-NEXT:   BotQ.A BotLatency SU(0) 13c
# CHECK-NEXT: BotQ.A @14c
# CHECK-NEXT:   Retired: 10
# CHECK-NEXT:   Executed: 14c
# CHECK-NEXT:   Critical: 6c, 12 CortexA55UnitFPALU
# CHECK-NEXT:   ExpectedLatency: 13c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 14
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT: Cycle: 15 BotQ.A
# CHECK-NEXT:   Resource booking (@15c):
# CHECK-NEXT: CortexA55UnitALU(0) = 14
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@15c):
# CHECK-NEXT:     Instance 0 available @15c
# CHECK-NEXT:     Instance 1 available @15c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @15c
# CHECK-NEXT: Queue BotQ.P: 2 4
# CHECK-NEXT: Queue BotQ.A: 1
# CHECK-NEXT: Scheduling SU(1) %1:fpr128 = COPY $q1
# CHECK-NEXT:   Ready @15c
# CHECK-NEXT:   CortexA55UnitALU +1x1u
# CHECK-NEXT:   Resource booking (@15c):
# CHECK-NEXT: CortexA55UnitALU(0) = 14
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@15c):
# CHECK-NEXT:     Instance 0 available @15c
# CHECK-NEXT:     Instance 1 available @15c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @15c
# CHECK-NEXT:   Resource booking (@15c):
# CHECK-NEXT: CortexA55UnitALU(0) = 14
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@15c):
# CHECK-NEXT:     Instance 0 available @15c
# CHECK-NEXT:     Instance 1 available @15c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @15c
# CHECK-NEXT: BotQ.A @15c
# CHECK-NEXT:   Retired: 11
# CHECK-NEXT:   Executed: 15c
# CHECK-NEXT:   Critical: 6c, 12 CortexA55UnitFPALU
# CHECK-NEXT:   ExpectedLatency: 13c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 15
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT: Cycle: 16 BotQ.A
# CHECK-NEXT:   Resource booking (@16c):
# CHECK-NEXT: CortexA55UnitALU(0) = 15
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@16c):
# CHECK-NEXT:     Instance 0 available @16c
# CHECK-NEXT:     Instance 1 available @16c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @16c
# CHECK-NEXT:   Resource booking (@16c):
# CHECK-NEXT: CortexA55UnitALU(0) = 15
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@16c):
# CHECK-NEXT:     Instance 0 available @16c
# CHECK-NEXT:     Instance 1 available @16c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @16c
# CHECK-NEXT: Queue BotQ.P:
# CHECK-NEXT: Queue BotQ.A: 2 4
# CHECK-NEXT:   Cand SU(2) ORDER
# CHECK-NEXT:   Cand SU(4) PHYS-REG
# CHECK-NEXT: Pick Bot PHYS-REG
# CHECK-NEXT: Scheduling SU(4) %6:fpr128 = MOVIv2d_ns 17
# CHECK-NEXT:   Ready @16c
# CHECK-NEXT:   CortexA55UnitFPALU +2x1u
# CHECK-NEXT:   Resource booking (@16c):
# CHECK-NEXT: CortexA55UnitALU(0) = 15
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@16c):
# CHECK-NEXT:     Instance 0 available @16c
# CHECK-NEXT:     Instance 1 available @16c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @16c
# CHECK-NEXT:   Resource booking (@16c):
# CHECK-NEXT: CortexA55UnitALU(0) = 15
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 12
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@16c):
# CHECK-NEXT:     Instance 0 available @16c
# CHECK-NEXT:     Instance 1 available @16c
# CHECK-NEXT:     selecting CortexA55UnitFPALU[0] available @16c
# CHECK-NEXT:   BotQ.A BotLatency SU(4) 14c
# CHECK-NEXT:   Bump cycle to begin group
# CHECK-NEXT: Cycle: 17 BotQ.A
# CHECK-NEXT: BotQ.A @17c
# CHECK-NEXT:   Retired: 12
# CHECK-NEXT:   Executed: 17c
# CHECK-NEXT:   Critical: 7c, 14 CortexA55UnitFPALU
# CHECK-NEXT:   ExpectedLatency: 14c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 15
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 16
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT:   Resource booking (@17c):
# CHECK-NEXT: CortexA55UnitALU(0) = 15
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 16
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@17c):
# CHECK-NEXT:     Instance 0 available @17c
# CHECK-NEXT:     Instance 1 available @17c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @17c
# CHECK-NEXT: Queue BotQ.P:
# CHECK-NEXT: Queue BotQ.A: 2
# CHECK-NEXT: Scheduling SU(2) %0:fpr128 = COPY $q0
# CHECK-NEXT:   Ready @17c
# CHECK-NEXT:   CortexA55UnitALU +1x1u
# CHECK-NEXT:   Resource booking (@17c):
# CHECK-NEXT: CortexA55UnitALU(0) = 15
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 16
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@17c):
# CHECK-NEXT:     Instance 0 available @17c
# CHECK-NEXT:     Instance 1 available @17c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @17c
# CHECK-NEXT:   Resource booking (@17c):
# CHECK-NEXT: CortexA55UnitALU(0) = 15
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 16
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT:   getNextResourceCycle (@17c):
# CHECK-NEXT:     Instance 0 available @17c
# CHECK-NEXT:     Instance 1 available @17c
# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @17c
# CHECK-NEXT: BotQ.A @17c
# CHECK-NEXT:   Retired: 13
# CHECK-NEXT:   Executed: 17c
# CHECK-NEXT:   Critical: 7c, 14 CortexA55UnitFPALU
# CHECK-NEXT:   ExpectedLatency: 14c
# CHECK-NEXT:   - Latency limited.
# CHECK-NEXT: CortexA55UnitALU(0) = 17
# CHECK-NEXT: CortexA55UnitALU(1) = 3
# CHECK-NEXT: CortexA55UnitB(0) = 4294967295
# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPALU(0) = 16
# CHECK-NEXT: CortexA55UnitFPALU(1) = 13
# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295
# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295
# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295
# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295
# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node
# CHECK-NEXT: *** Final schedule for %bb.0 ***
# CHECK-NEXT:  * Schedule table (BottomUp):
# CHECK-NEXT:   i: issue
# CHECK-NEXT:   x: resource booked
# CHECK-NEXT: Cycle              | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9  | 8  | 7  | 6  | 5  | 4  | 3  |
# CHECK-NEXT: SU(2)              | i  |    |    |    |    |    |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT:   CortexA55UnitALU | x  |    |    |    |    |    |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT: SU(4)              |    | i  |    |    |    |    |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT: CortexA55UnitFPALU |    | x  | x  |    |    |    |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT: SU(1)              |    |    | i  |    |    |    |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT:   CortexA55UnitALU |    |    | x  |    |    |    |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT: SU(0)              |    |    |    | i  |    |    |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT:   CortexA55UnitALU |    |    |    | x  |    |    |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT: SU(3)              |    |    |    |    | i  |    |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT: CortexA55UnitFPALU |    |    |    |    | x  | x  |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT: SU(6)              |    |    |    |    |    | i  |    |    |    |    |    |    |    |    |    |
# CHECK-NEXT: CortexA55UnitFPALU |    |    |    |    |    | x  | x  |    |    |    |    |    |    |    |    |
# CHECK-NEXT: SU(5)              |    |    |    |    |    |    |    | i  |    |    |    |    |    |    |    |
# CHECK-NEXT: CortexA55UnitFPALU |    |    |    |    |    |    |    | x  | x  |    |    |    |    |    |    |
# CHECK-NEXT: SU(7)              |    |    |    |    |    |    |    | i  |    |    |    |    |    |    |    |
# CHECK-NEXT: CortexA55UnitFPALU |    |    |    |    |    |    |    | x  |    |    |    |    |    |    |    |
# CHECK-NEXT: SU(9)              |    |    |    |    |    |    |    |    | i  |    |    |    |    |    |    |
# CHECK-NEXT: CortexA55UnitFPALU |    |    |    |    |    |    |    |    | x  |    |    |    |    |    |    |
# CHECK-NEXT: SU(8)              |    |    |    |    |    |    |    |    |    | i  |    |    |    |    |    |
# CHECK-NEXT: CortexA55UnitFPALU |    |    |    |    |    |    |    |    |    | x  | x  |    |    |    |    |
# CHECK-NEXT: SU(10)             |    |    |    |    |    |    |    |    |    |    | i  |    |    |    |    |
# CHECK-NEXT: CortexA55UnitFPALU |    |    |    |    |    |    |    |    |    |    | x  | x  |    |    |    |
# CHECK-NEXT: SU(11)             |    |    |    |    |    |    |    |    |    |    |    |    |    |    | i  |
# CHECK-NEXT:   CortexA55UnitALU |    |    |    |    |    |    |    |    |    |    |    |    |    |    | x  |
# CHECK-NEXT: SU(12)             |    |    |    |    |    |    |    |    |    |    |    |    |    |    | i  |
# CHECK-NEXT:   CortexA55UnitALU |    |    |    |    |    |    |    |    |    |    |    |    |    |    | x  |
# CHECK-NEXT: SU(2) [TopReadyCycle = 0, BottomReadyCycle = 17]:   %0:fpr128 = COPY $q0
# CHECK-NEXT: SU(4) [TopReadyCycle = 0, BottomReadyCycle = 16]:   %6:fpr128 = MOVIv2d_ns 17
# CHECK-NEXT: SU(1) [TopReadyCycle = 0, BottomReadyCycle = 15]:   %1:fpr128 = COPY $q1
# CHECK-NEXT: SU(0) [TopReadyCycle = 0, BottomReadyCycle = 14]:   %2:fpr128 = COPY $q2
# CHECK-NEXT: SU(3) [TopReadyCycle = 0, BottomReadyCycle = 13]:   %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8
# CHECK-NEXT: SU(6) [TopReadyCycle = 0, BottomReadyCycle = 12]:   %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128
# CHECK-NEXT: SU(5) [TopReadyCycle = 0, BottomReadyCycle = 10]:   %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128
# CHECK-NEXT: SU(7) [TopReadyCycle = 0, BottomReadyCycle = 10]:   %9:fpr64 = XTNv4i16 %8:fpr128
# CHECK-NEXT: SU(9) [TopReadyCycle = 0, BottomReadyCycle = 9]:   %11:fpr64 = XTNv4i16 %7:fpr128
# CHECK-NEXT: SU(8) [TopReadyCycle = 0, BottomReadyCycle = 8]:   %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64
# CHECK-NEXT: SU(10) [TopReadyCycle = 0, BottomReadyCycle = 7]:   %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64
# CHECK-NEXT: SU(11) [TopReadyCycle = 0, BottomReadyCycle = 3]:   $q0 = COPY %10:fpr128
# CHECK-NEXT: SU(12) [TopReadyCycle = 0, BottomReadyCycle = 3]:   $q1 = COPY %12:fpr128
# CHECK-EMPTY:
# CHECK-NEXT: ********** INTERVALS **********
# CHECK-NEXT: B0 [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r
# CHECK-NEXT: B1 [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r
# CHECK-NEXT: B2 [0B,96r:0) 0@0B-phi
# CHECK-NEXT: %0 [48r,168r:0) 0@48r  weight:0.000000e+00
# CHECK-NEXT: %1 [88r,120r:0) 0@88r  weight:0.000000e+00
# CHECK-NEXT: %2 [96r,128r:0) 0@96r  weight:0.000000e+00
# CHECK-NEXT: %3 [104r,176r:0) 0@104r  weight:0.000000e+00
# CHECK-NEXT: %6 [80r,128r:0) 0@80r  weight:0.000000e+00
# CHECK-NEXT: %7 [128r,160r:0) 0@128r  weight:0.000000e+00
# CHECK-NEXT: %8 [120r,136r:0) 0@120r  weight:0.000000e+00
# CHECK-NEXT: %9 [136r,168r:0) 0@136r  weight:0.000000e+00
# CHECK-NEXT: %10 [168r,192r:0) 0@168r  weight:0.000000e+00
# CHECK-NEXT: %11 [160r,176r:0) 0@160r  weight:0.000000e+00
# CHECK-NEXT: %12 [176r,208r:0) 0@176r  weight:0.000000e+00
# CHECK-NEXT: RegMasks:
# CHECK-NEXT: ********** MACHINEINSTRS **********
# CHECK-NEXT: # Machine code for function umull_and_v8i32: IsSSA, NoPHIs, TracksLiveness
# CHECK-NEXT: Function Live Ins: $q0 in %0, $q1 in %1, $q2 in %2
# CHECK-EMPTY:
# CHECK-NEXT: 0B	bb.0.entry:
# CHECK-NEXT: 	  liveins: $q0, $q1, $q2
# CHECK-NEXT: 48B	  %0:fpr128 = COPY $q0
# CHECK-NEXT: 80B	  %6:fpr128 = MOVIv2d_ns 17
# CHECK-NEXT: 88B	  %1:fpr128 = COPY $q1
# CHECK-NEXT: 96B	  %2:fpr128 = COPY $q2
# CHECK-NEXT: 104B	  %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8
# CHECK-NEXT: 120B	  %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128
# CHECK-NEXT: 128B	  %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128
# CHECK-NEXT: 136B	  %9:fpr64 = XTNv4i16 %8:fpr128
# CHECK-NEXT: 160B	  %11:fpr64 = XTNv4i16 %7:fpr128
# CHECK-NEXT: 168B	  %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64
# CHECK-NEXT: 176B	  %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64
# CHECK-NEXT: 192B	  $q0 = COPY %10:fpr128
# CHECK-NEXT: 208B	  $q1 = COPY %12:fpr128
# CHECK-NEXT: 224B	  RET_ReallyLR implicit $q0, implicit $q1
# CHECK-EMPTY:
# CHECK-NEXT: # End machine code for function umull_and_v8i32.