1# RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon -mcpu=cortex-a55 %s -o - 2>&1 \ 2# RUN: -misched-dump-reserved-cycles=true \ 3# RUN: -run-pass=machine-scheduler -debug-only=machine-scheduler \ 4# RUN: -misched-prera-direction=bottomup -sched-print-cycles=true \ 5# RUN: -misched-detail-resource-booking=true \ 6# RUN: -misched-dump-schedule-trace=true -misched-dump-schedule-trace-col-header-width=21 \ 7# RUN: | FileCheck %s 8 9# REQUIRES: asserts, aarch64-registered-target 10 11--- | 12 ; ModuleID = '../llvm-project/llvm/test/CodeGen/AArch64/aarch64-smull.failing.ll' 13 source_filename = "../llvm-project/llvm/test/CodeGen/AArch64/aarch64-smull.failing.ll" 14 target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" 15 target triple = "aarch64-none-linux-gnu" 16 17 define <8 x i32> @umull_and_v8i32(<8 x i16> %src1, <8 x i32> %src2) #0 { 18 entry: 19 %in1 = zext <8 x i16> %src1 to <8 x i32> 20 %in2 = and <8 x i32> %src2, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255> 21 %out = mul nsw <8 x i32> %in1, %in2 22 ret <8 x i32> %out 23 } 24 25 attributes #0 = { "target-features"="+neon" } 26 27... 28--- 29name: umull_and_v8i32 30alignment: 4 31tracksRegLiveness: true 32registers: 33 - { id: 0, class: fpr128 } 34 - { id: 1, class: fpr128 } 35 - { id: 2, class: fpr128 } 36 - { id: 3, class: fpr128 } 37 - { id: 4, class: fpr64 } 38 - { id: 5, class: fpr64 } 39 - { id: 6, class: fpr128 } 40 - { id: 7, class: fpr128 } 41 - { id: 8, class: fpr128 } 42 - { id: 9, class: fpr64 } 43 - { id: 10, class: fpr128 } 44 - { id: 11, class: fpr64 } 45 - { id: 12, class: fpr128 } 46liveins: 47 - { reg: '$q0', virtual-reg: '%0' } 48 - { reg: '$q1', virtual-reg: '%1' } 49 - { reg: '$q2', virtual-reg: '%2' } 50frameInfo: 51 maxAlignment: 1 52 maxCallFrameSize: 0 53machineFunctionInfo: {} 54body: | 55 bb.0.entry: 56 liveins: $q0, $q1, $q2 57 58 %2:fpr128 = COPY $q2 59 %1:fpr128 = COPY $q1 60 %0:fpr128 = COPY $q0 61 %3:fpr128 = EXTv16i8 %0, %0, 8 62 %6:fpr128 = MOVIv2d_ns 17 63 %7:fpr128 = ANDv16i8 %2, %6 64 %8:fpr128 = ANDv16i8 %1, %6 65 %9:fpr64 = XTNv4i16 %8 66 %10:fpr128 = UMULLv4i16_v4i32 %0.dsub, %9 67 %11:fpr64 = XTNv4i16 %7 68 %12:fpr128 = UMULLv4i16_v4i32 %3.dsub, %11 69 $q0 = COPY %10 70 $q1 = COPY %12 71 RET_ReallyLR implicit $q0, implicit $q1 72 73... 74 75# CHECK-LABEL: Before MISched: 76# CHECK-NEXT: # Machine code for function umull_and_v8i32: IsSSA, NoPHIs, TracksLiveness 77# CHECK-NEXT: Function Live Ins: $q0 in %0, $q1 in %1, $q2 in %2 78# CHECK-EMPTY: 79# CHECK-NEXT: bb.0.entry: 80# CHECK-NEXT: liveins: $q0, $q1, $q2 81# CHECK-NEXT: %2:fpr128 = COPY $q2 82# CHECK-NEXT: %1:fpr128 = COPY $q1 83# CHECK-NEXT: %0:fpr128 = COPY $q0 84# CHECK-NEXT: %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8 85# CHECK-NEXT: %6:fpr128 = MOVIv2d_ns 17 86# CHECK-NEXT: %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128 87# CHECK-NEXT: %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128 88# CHECK-NEXT: %9:fpr64 = XTNv4i16 %8:fpr128 89# CHECK-NEXT: %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64 90# CHECK-NEXT: %11:fpr64 = XTNv4i16 %7:fpr128 91# CHECK-NEXT: %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64 92# CHECK-NEXT: $q0 = COPY %10:fpr128 93# CHECK-NEXT: $q1 = COPY %12:fpr128 94# CHECK-NEXT: RET_ReallyLR implicit $q0, implicit $q1 95# CHECK-EMPTY: 96# CHECK-NEXT: # End machine code for function umull_and_v8i32. 97# CHECK-EMPTY: 98# CHECK-NEXT: ********** MI Scheduling ********** 99# CHECK-NEXT: umull_and_v8i32:%bb.0 entry 100# CHECK-NEXT: From: %2:fpr128 = COPY $q2 101# CHECK-NEXT: To: RET_ReallyLR implicit $q0, implicit $q1 102# CHECK-NEXT: RegionInstrs: 13 103# CHECK-NEXT: ScheduleDAGMILive::schedule starting 104# CHECK-NEXT: GenericScheduler RegionPolicy: ShouldTrackPressure=0 OnlyTopDown=0 OnlyBottomUp=1 105# CHECK-NEXT: Disabled scoreboard hazard recognizer 106# CHECK-NEXT: Disabled scoreboard hazard recognizer 107# CHECK-NEXT: SU(0) [TopReadyCycle = 0, BottomReadyCycle = 0]: %2:fpr128 = COPY $q2 108# CHECK-NEXT: # preds left : 0 109# CHECK-NEXT: # succs left : 1 110# CHECK-NEXT: # rdefs left : 0 111# CHECK-NEXT: Latency : 3 112# CHECK-NEXT: Depth : 0 113# CHECK-NEXT: Height : 13 114# CHECK-NEXT: Successors: 115# CHECK-NEXT: SU(5): Data Latency=3 Reg=%2 116# CHECK-NEXT: Single Issue : false; 117# CHECK-NEXT: SU(1) [TopReadyCycle = 0, BottomReadyCycle = 0]: %1:fpr128 = COPY $q1 118# CHECK-NEXT: # preds left : 0 119# CHECK-NEXT: # succs left : 2 120# CHECK-NEXT: # rdefs left : 0 121# CHECK-NEXT: Latency : 3 122# CHECK-NEXT: Depth : 0 123# CHECK-NEXT: Height : 13 124# CHECK-NEXT: Successors: 125# CHECK-NEXT: SU(6): Data Latency=3 Reg=%1 126# CHECK-NEXT: SU(12): Anti Latency=0 127# CHECK-NEXT: Single Issue : false; 128# CHECK-NEXT: SU(2) [TopReadyCycle = 0, BottomReadyCycle = 0]: %0:fpr128 = COPY $q0 129# CHECK-NEXT: # preds left : 0 130# CHECK-NEXT: # succs left : 3 131# CHECK-NEXT: # rdefs left : 0 132# CHECK-NEXT: Latency : 3 133# CHECK-NEXT: Depth : 0 134# CHECK-NEXT: Height : 14 135# CHECK-NEXT: Successors: 136# CHECK-NEXT: SU(8): Data Latency=3 Reg=%0 137# CHECK-NEXT: SU(3): Data Latency=3 Reg=%0 138# CHECK-NEXT: SU(11): Anti Latency=0 139# CHECK-NEXT: Single Issue : false; 140# CHECK-NEXT: SU(3) [TopReadyCycle = 0, BottomReadyCycle = 0]: %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8 141# CHECK-NEXT: # preds left : 1 142# CHECK-NEXT: # succs left : 1 143# CHECK-NEXT: # rdefs left : 0 144# CHECK-NEXT: Latency : 4 145# CHECK-NEXT: Depth : 3 146# CHECK-NEXT: Height : 11 147# CHECK-NEXT: Predecessors: 148# CHECK-NEXT: SU(2): Data Latency=3 Reg=%0 149# CHECK-NEXT: Successors: 150# CHECK-NEXT: SU(10): Data Latency=4 Reg=%3 151# CHECK-NEXT: Single Issue : false; 152# CHECK-NEXT: SU(4) [TopReadyCycle = 0, BottomReadyCycle = 0]: %6:fpr128 = MOVIv2d_ns 17 153# CHECK-NEXT: # preds left : 0 154# CHECK-NEXT: # succs left : 2 155# CHECK-NEXT: # rdefs left : 0 156# CHECK-NEXT: Latency : 4 157# CHECK-NEXT: Depth : 0 158# CHECK-NEXT: Height : 14 159# CHECK-NEXT: Successors: 160# CHECK-NEXT: SU(6): Data Latency=4 Reg=%6 161# CHECK-NEXT: SU(5): Data Latency=4 Reg=%6 162# CHECK-NEXT: Single Issue : false; 163# CHECK-NEXT: SU(5) [TopReadyCycle = 0, BottomReadyCycle = 0]: %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128 164# CHECK-NEXT: # preds left : 2 165# CHECK-NEXT: # succs left : 1 166# CHECK-NEXT: # rdefs left : 0 167# CHECK-NEXT: Latency : 1 168# CHECK-NEXT: Depth : 4 169# CHECK-NEXT: Height : 10 170# CHECK-NEXT: Predecessors: 171# CHECK-NEXT: SU(4): Data Latency=4 Reg=%6 172# CHECK-NEXT: SU(0): Data Latency=3 Reg=%2 173# CHECK-NEXT: Successors: 174# CHECK-NEXT: SU(9): Data Latency=1 Reg=%7 175# CHECK-NEXT: Single Issue : false; 176# CHECK-NEXT: SU(6) [TopReadyCycle = 0, BottomReadyCycle = 0]: %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128 177# CHECK-NEXT: # preds left : 2 178# CHECK-NEXT: # succs left : 1 179# CHECK-NEXT: # rdefs left : 0 180# CHECK-NEXT: Latency : 1 181# CHECK-NEXT: Depth : 4 182# CHECK-NEXT: Height : 10 183# CHECK-NEXT: Predecessors: 184# CHECK-NEXT: SU(4): Data Latency=4 Reg=%6 185# CHECK-NEXT: SU(1): Data Latency=3 Reg=%1 186# CHECK-NEXT: Successors: 187# CHECK-NEXT: SU(7): Data Latency=1 Reg=%8 188# CHECK-NEXT: Single Issue : false; 189# CHECK-NEXT: SU(7) [TopReadyCycle = 0, BottomReadyCycle = 0]: %9:fpr64 = XTNv4i16 %8:fpr128 190# CHECK-NEXT: # preds left : 1 191# CHECK-NEXT: # succs left : 1 192# CHECK-NEXT: # rdefs left : 0 193# CHECK-NEXT: Latency : 2 194# CHECK-NEXT: Depth : 5 195# CHECK-NEXT: Height : 9 196# CHECK-NEXT: Predecessors: 197# CHECK-NEXT: SU(6): Data Latency=1 Reg=%8 198# CHECK-NEXT: Successors: 199# CHECK-NEXT: SU(8): Data Latency=2 Reg=%9 200# CHECK-NEXT: Single Issue : false; 201# CHECK-NEXT: SU(8) [TopReadyCycle = 0, BottomReadyCycle = 0]: %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64 202# CHECK-NEXT: # preds left : 2 203# CHECK-NEXT: # succs left : 1 204# CHECK-NEXT: # rdefs left : 0 205# CHECK-NEXT: Latency : 4 206# CHECK-NEXT: Depth : 7 207# CHECK-NEXT: Height : 7 208# CHECK-NEXT: Predecessors: 209# CHECK-NEXT: SU(7): Data Latency=2 Reg=%9 210# CHECK-NEXT: SU(2): Data Latency=3 Reg=%0 211# CHECK-NEXT: Successors: 212# CHECK-NEXT: SU(11): Data Latency=4 Reg=%10 213# CHECK-NEXT: Single Issue : false; 214# CHECK-NEXT: SU(9) [TopReadyCycle = 0, BottomReadyCycle = 0]: %11:fpr64 = XTNv4i16 %7:fpr128 215# CHECK-NEXT: # preds left : 1 216# CHECK-NEXT: # succs left : 1 217# CHECK-NEXT: # rdefs left : 0 218# CHECK-NEXT: Latency : 2 219# CHECK-NEXT: Depth : 5 220# CHECK-NEXT: Height : 9 221# CHECK-NEXT: Predecessors: 222# CHECK-NEXT: SU(5): Data Latency=1 Reg=%7 223# CHECK-NEXT: Successors: 224# CHECK-NEXT: SU(10): Data Latency=2 Reg=%11 225# CHECK-NEXT: Single Issue : false; 226# CHECK-NEXT: SU(10) [TopReadyCycle = 0, BottomReadyCycle = 0]: %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64 227# CHECK-NEXT: # preds left : 2 228# CHECK-NEXT: # succs left : 1 229# CHECK-NEXT: # rdefs left : 0 230# CHECK-NEXT: Latency : 4 231# CHECK-NEXT: Depth : 7 232# CHECK-NEXT: Height : 7 233# CHECK-NEXT: Predecessors: 234# CHECK-NEXT: SU(9): Data Latency=2 Reg=%11 235# CHECK-NEXT: SU(3): Data Latency=4 Reg=%3 236# CHECK-NEXT: Successors: 237# CHECK-NEXT: SU(12): Data Latency=4 Reg=%12 238# CHECK-NEXT: Single Issue : false; 239# CHECK-NEXT: SU(11) [TopReadyCycle = 0, BottomReadyCycle = 0]: $q0 = COPY %10:fpr128 240# CHECK-NEXT: # preds left : 2 241# CHECK-NEXT: # succs left : 1 242# CHECK-NEXT: # rdefs left : 0 243# CHECK-NEXT: Latency : 3 244# CHECK-NEXT: Depth : 11 245# CHECK-NEXT: Height : 3 246# CHECK-NEXT: Predecessors: 247# CHECK-NEXT: SU(8): Data Latency=4 Reg=%10 248# CHECK-NEXT: SU(2): Anti Latency=0 249# CHECK-NEXT: Successors: 250# CHECK-NEXT: ExitSU: Ord Latency=3 Artificial 251# CHECK-NEXT: Single Issue : false; 252# CHECK-NEXT: SU(12) [TopReadyCycle = 0, BottomReadyCycle = 0]: $q1 = COPY %12:fpr128 253# CHECK-NEXT: # preds left : 2 254# CHECK-NEXT: # succs left : 1 255# CHECK-NEXT: # rdefs left : 0 256# CHECK-NEXT: Latency : 3 257# CHECK-NEXT: Depth : 11 258# CHECK-NEXT: Height : 3 259# CHECK-NEXT: Predecessors: 260# CHECK-NEXT: SU(10): Data Latency=4 Reg=%12 261# CHECK-NEXT: SU(1): Anti Latency=0 262# CHECK-NEXT: Successors: 263# CHECK-NEXT: ExitSU: Ord Latency=3 Artificial 264# CHECK-NEXT: Single Issue : false; 265# CHECK-NEXT: ExitSU [TopReadyCycle = 0, BottomReadyCycle = 0]: RET_ReallyLR implicit $q0, implicit $q1 266# CHECK-NEXT: # preds left : 2 267# CHECK-NEXT: # succs left : 0 268# CHECK-NEXT: # rdefs left : 0 269# CHECK-NEXT: Latency : 0 270# CHECK-NEXT: Depth : 14 271# CHECK-NEXT: Height : 0 272# CHECK-NEXT: Predecessors: 273# CHECK-NEXT: SU(12): Ord Latency=3 Artificial 274# CHECK-NEXT: SU(11): Ord Latency=3 Artificial 275# CHECK-NEXT: Resource booking (@0c): 276# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295 277# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 278# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 279# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 280# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 281# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 282# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 283# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 284# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 285# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 286# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 287# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 288# CHECK-NEXT: getNextResourceCycle (@0c): 289# CHECK-NEXT: Instance 0 available @0c 290# CHECK-NEXT: Instance 1 available @0c 291# CHECK-NEXT: selecting CortexA55UnitALU[0] available @0c 292# CHECK-NEXT: Resource booking (@0c): 293# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295 294# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 295# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 296# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 297# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 298# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 299# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 300# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 301# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 302# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 303# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 304# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 305# CHECK-NEXT: getNextResourceCycle (@0c): 306# CHECK-NEXT: Instance 0 available @0c 307# CHECK-NEXT: Instance 1 available @0c 308# CHECK-NEXT: selecting CortexA55UnitALU[0] available @0c 309# CHECK-NEXT: Resource booking (@0c): 310# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295 311# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 312# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 313# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 314# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 315# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 316# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 317# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 318# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 319# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 320# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 321# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 322# CHECK-NEXT: getNextResourceCycle (@0c): 323# CHECK-NEXT: Instance 0 available @0c 324# CHECK-NEXT: Instance 1 available @0c 325# CHECK-NEXT: selecting CortexA55UnitALU[0] available @0c 326# CHECK-NEXT: Resource booking (@0c): 327# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295 328# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 329# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 330# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 331# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 332# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 333# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 334# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 335# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 336# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 337# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 338# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 339# CHECK-NEXT: getNextResourceCycle (@0c): 340# CHECK-NEXT: Instance 0 available @0c 341# CHECK-NEXT: Instance 1 available @0c 342# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @0c 343# CHECK-NEXT: Critical Path(GS-RR ): 14 344# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 345# CHECK-NEXT: Cycle: 3 BotQ.A 346# CHECK-NEXT: Resource booking (@3c): 347# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295 348# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 349# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 350# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 351# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 352# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 353# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 354# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 355# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 356# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 357# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 358# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 359# CHECK-NEXT: getNextResourceCycle (@3c): 360# CHECK-NEXT: Instance 0 available @3c 361# CHECK-NEXT: Instance 1 available @3c 362# CHECK-NEXT: selecting CortexA55UnitALU[0] available @3c 363# CHECK-NEXT: Resource booking (@3c): 364# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295 365# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 366# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 367# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 368# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 369# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 370# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 371# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 372# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 373# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 374# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 375# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 376# CHECK-NEXT: getNextResourceCycle (@3c): 377# CHECK-NEXT: Instance 0 available @3c 378# CHECK-NEXT: Instance 1 available @3c 379# CHECK-NEXT: selecting CortexA55UnitALU[0] available @3c 380# CHECK-NEXT: Queue BotQ.P: 381# CHECK-NEXT: Queue BotQ.A: 12 11 382# CHECK-NEXT: Cand SU(12) ORDER 383# CHECK-NEXT: Pick Bot ORDER 384# CHECK-NEXT: Scheduling SU(12) $q1 = COPY %12:fpr128 385# CHECK-NEXT: Ready @3c 386# CHECK-NEXT: CortexA55UnitALU +1x1u 387# CHECK-NEXT: Resource booking (@3c): 388# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295 389# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 390# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 391# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 392# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 393# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 394# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 395# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 396# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 397# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 398# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 399# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 400# CHECK-NEXT: getNextResourceCycle (@3c): 401# CHECK-NEXT: Instance 0 available @3c 402# CHECK-NEXT: Instance 1 available @3c 403# CHECK-NEXT: selecting CortexA55UnitALU[0] available @3c 404# CHECK-NEXT: Resource booking (@3c): 405# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295 406# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 407# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 408# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 409# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 410# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 411# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 412# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 413# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 414# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 415# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 416# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 417# CHECK-NEXT: getNextResourceCycle (@3c): 418# CHECK-NEXT: Instance 0 available @3c 419# CHECK-NEXT: Instance 1 available @3c 420# CHECK-NEXT: selecting CortexA55UnitALU[0] available @3c 421# CHECK-NEXT: BotQ.A TopLatency SU(12) 11c 422# CHECK-NEXT: BotQ.A BotLatency SU(12) 3c 423# CHECK-NEXT: BotQ.A @3c 424# CHECK-NEXT: Retired: 1 425# CHECK-NEXT: Executed: 3c 426# CHECK-NEXT: Critical: 0c, 1 MOps 427# CHECK-NEXT: ExpectedLatency: 3c 428# CHECK-NEXT: - Latency limited. 429# CHECK-NEXT: CortexA55UnitALU(0) = 3 430# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 431# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 432# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 433# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 434# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 435# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 436# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 437# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 438# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 439# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 440# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 441# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 442# CHECK-NEXT: Resource booking (@3c): 443# CHECK-NEXT: CortexA55UnitALU(0) = 3 444# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 445# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 446# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 447# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 448# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 449# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 450# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 451# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 452# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 453# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 454# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 455# CHECK-NEXT: getNextResourceCycle (@3c): 456# CHECK-NEXT: Instance 0 available @4c 457# CHECK-NEXT: Instance 1 available @3c 458# CHECK-NEXT: selecting CortexA55UnitALU[1] available @3c 459# CHECK-NEXT: Queue BotQ.P: 10 460# CHECK-NEXT: Queue BotQ.A: 11 461# CHECK-NEXT: Scheduling SU(11) $q0 = COPY %10:fpr128 462# CHECK-NEXT: Ready @3c 463# CHECK-NEXT: CortexA55UnitALU +1x1u 464# CHECK-NEXT: Resource booking (@3c): 465# CHECK-NEXT: CortexA55UnitALU(0) = 3 466# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 467# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 468# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 469# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 470# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 471# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 472# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 473# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 474# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 475# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 476# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 477# CHECK-NEXT: getNextResourceCycle (@3c): 478# CHECK-NEXT: Instance 0 available @4c 479# CHECK-NEXT: Instance 1 available @3c 480# CHECK-NEXT: selecting CortexA55UnitALU[1] available @3c 481# CHECK-NEXT: Resource booking (@3c): 482# CHECK-NEXT: CortexA55UnitALU(0) = 3 483# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295 484# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 485# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 486# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 487# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 488# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 489# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 490# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 491# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 492# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 493# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 494# CHECK-NEXT: getNextResourceCycle (@3c): 495# CHECK-NEXT: Instance 0 available @4c 496# CHECK-NEXT: Instance 1 available @3c 497# CHECK-NEXT: selecting CortexA55UnitALU[1] available @3c 498# CHECK-NEXT: *** Max MOps 2 at cycle 3 499# CHECK-NEXT: Cycle: 4 BotQ.A 500# CHECK-NEXT: BotQ.A @4c 501# CHECK-NEXT: Retired: 2 502# CHECK-NEXT: Executed: 4c 503# CHECK-NEXT: Critical: 1c, 2 MOps 504# CHECK-NEXT: ExpectedLatency: 3c 505# CHECK-NEXT: - Latency limited. 506# CHECK-NEXT: CortexA55UnitALU(0) = 3 507# CHECK-NEXT: CortexA55UnitALU(1) = 3 508# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 509# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 510# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 511# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 512# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 513# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 514# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 515# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 516# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 517# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 518# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 519# CHECK-NEXT: Cycle: 7 BotQ.A 520# CHECK-NEXT: Resource booking (@7c): 521# CHECK-NEXT: CortexA55UnitALU(0) = 3 522# CHECK-NEXT: CortexA55UnitALU(1) = 3 523# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 524# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 525# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 526# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 527# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 528# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 529# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 530# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 531# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 532# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 533# CHECK-NEXT: getNextResourceCycle (@7c): 534# CHECK-NEXT: Instance 0 available @7c 535# CHECK-NEXT: Instance 1 available @7c 536# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @7c 537# CHECK-NEXT: Resource booking (@7c): 538# CHECK-NEXT: CortexA55UnitALU(0) = 3 539# CHECK-NEXT: CortexA55UnitALU(1) = 3 540# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 541# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 542# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 543# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 544# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 545# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 546# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 547# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 548# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 549# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 550# CHECK-NEXT: getNextResourceCycle (@7c): 551# CHECK-NEXT: Instance 0 available @7c 552# CHECK-NEXT: Instance 1 available @7c 553# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @7c 554# CHECK-NEXT: Queue BotQ.P: 555# CHECK-NEXT: Queue BotQ.A: 10 8 556# CHECK-NEXT: Cand SU(10) ORDER 557# CHECK-NEXT: Pick Bot ORDER 558# CHECK-NEXT: Scheduling SU(10) %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64 559# CHECK-NEXT: Ready @7c 560# CHECK-NEXT: CortexA55UnitFPALU +2x1u 561# CHECK-NEXT: Resource booking (@7c): 562# CHECK-NEXT: CortexA55UnitALU(0) = 3 563# CHECK-NEXT: CortexA55UnitALU(1) = 3 564# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 565# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 566# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 567# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 568# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 569# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 570# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 571# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 572# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 573# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 574# CHECK-NEXT: getNextResourceCycle (@7c): 575# CHECK-NEXT: Instance 0 available @7c 576# CHECK-NEXT: Instance 1 available @7c 577# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @7c 578# CHECK-NEXT: Resource booking (@7c): 579# CHECK-NEXT: CortexA55UnitALU(0) = 3 580# CHECK-NEXT: CortexA55UnitALU(1) = 3 581# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 582# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 583# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295 584# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 585# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 586# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 587# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 588# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 589# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 590# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 591# CHECK-NEXT: getNextResourceCycle (@7c): 592# CHECK-NEXT: Instance 0 available @7c 593# CHECK-NEXT: Instance 1 available @7c 594# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @7c 595# CHECK-NEXT: BotQ.A BotLatency SU(10) 7c 596# CHECK-NEXT: Bump cycle to begin group 597# CHECK-NEXT: Cycle: 8 BotQ.A 598# CHECK-NEXT: BotQ.A @8c 599# CHECK-NEXT: Retired: 3 600# CHECK-NEXT: Executed: 8c 601# CHECK-NEXT: Critical: 1c, 3 MOps 602# CHECK-NEXT: ExpectedLatency: 7c 603# CHECK-NEXT: - Latency limited. 604# CHECK-NEXT: CortexA55UnitALU(0) = 3 605# CHECK-NEXT: CortexA55UnitALU(1) = 3 606# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 607# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 608# CHECK-NEXT: CortexA55UnitFPALU(0) = 7 609# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 610# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 611# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 612# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 613# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 614# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 615# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 616# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 617# CHECK-NEXT: Resource booking (@8c): 618# CHECK-NEXT: CortexA55UnitALU(0) = 3 619# CHECK-NEXT: CortexA55UnitALU(1) = 3 620# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 621# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 622# CHECK-NEXT: CortexA55UnitFPALU(0) = 7 623# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 624# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 625# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 626# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 627# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 628# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 629# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 630# CHECK-NEXT: getNextResourceCycle (@8c): 631# CHECK-NEXT: Instance 0 available @9c 632# CHECK-NEXT: Instance 1 available @8c 633# CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @8c 634# CHECK-NEXT: Queue BotQ.P: 9 3 635# CHECK-NEXT: Queue BotQ.A: 8 636# CHECK-NEXT: Scheduling SU(8) %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64 637# CHECK-NEXT: Ready @8c 638# CHECK-NEXT: CortexA55UnitFPALU +2x1u 639# CHECK-NEXT: Resource booking (@8c): 640# CHECK-NEXT: CortexA55UnitALU(0) = 3 641# CHECK-NEXT: CortexA55UnitALU(1) = 3 642# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 643# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 644# CHECK-NEXT: CortexA55UnitFPALU(0) = 7 645# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 646# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 647# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 648# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 649# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 650# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 651# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 652# CHECK-NEXT: getNextResourceCycle (@8c): 653# CHECK-NEXT: Instance 0 available @9c 654# CHECK-NEXT: Instance 1 available @8c 655# CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @8c 656# CHECK-NEXT: Resource booking (@8c): 657# CHECK-NEXT: CortexA55UnitALU(0) = 3 658# CHECK-NEXT: CortexA55UnitALU(1) = 3 659# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 660# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 661# CHECK-NEXT: CortexA55UnitFPALU(0) = 7 662# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295 663# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 664# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 665# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 666# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 667# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 668# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 669# CHECK-NEXT: getNextResourceCycle (@8c): 670# CHECK-NEXT: Instance 0 available @9c 671# CHECK-NEXT: Instance 1 available @8c 672# CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @8c 673# CHECK-NEXT: BotQ.A TopLatency SU(8) 7c 674# CHECK-NEXT: Bump cycle to begin group 675# CHECK-NEXT: Cycle: 9 BotQ.A 676# CHECK-NEXT: BotQ.A @9c 677# CHECK-NEXT: Retired: 4 678# CHECK-NEXT: Executed: 9c 679# CHECK-NEXT: Critical: 2c, 4 MOps 680# CHECK-NEXT: ExpectedLatency: 7c 681# CHECK-NEXT: - Latency limited. 682# CHECK-NEXT: CortexA55UnitALU(0) = 3 683# CHECK-NEXT: CortexA55UnitALU(1) = 3 684# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 685# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 686# CHECK-NEXT: CortexA55UnitFPALU(0) = 7 687# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 688# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 689# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 690# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 691# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 692# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 693# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 694# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 695# CHECK-NEXT: Resource booking (@9c): 696# CHECK-NEXT: CortexA55UnitALU(0) = 3 697# CHECK-NEXT: CortexA55UnitALU(1) = 3 698# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 699# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 700# CHECK-NEXT: CortexA55UnitFPALU(0) = 7 701# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 702# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 703# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 704# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 705# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 706# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 707# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 708# CHECK-NEXT: getNextResourceCycle (@9c): 709# CHECK-NEXT: Instance 0 available @9c 710# CHECK-NEXT: Instance 1 available @9c 711# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @9c 712# CHECK-NEXT: Resource booking (@9c): 713# CHECK-NEXT: CortexA55UnitALU(0) = 3 714# CHECK-NEXT: CortexA55UnitALU(1) = 3 715# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 716# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 717# CHECK-NEXT: CortexA55UnitFPALU(0) = 7 718# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 719# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 720# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 721# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 722# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 723# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 724# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 725# CHECK-NEXT: getNextResourceCycle (@9c): 726# CHECK-NEXT: Instance 0 available @9c 727# CHECK-NEXT: Instance 1 available @9c 728# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @9c 729# CHECK-NEXT: Queue BotQ.P: 7 3 730# CHECK-NEXT: Queue BotQ.A: 9 731# CHECK-NEXT: Scheduling SU(9) %11:fpr64 = XTNv4i16 %7:fpr128 732# CHECK-NEXT: Ready @9c 733# CHECK-NEXT: CortexA55UnitFPALU +1x1u 734# CHECK-NEXT: Resource booking (@9c): 735# CHECK-NEXT: CortexA55UnitALU(0) = 3 736# CHECK-NEXT: CortexA55UnitALU(1) = 3 737# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 738# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 739# CHECK-NEXT: CortexA55UnitFPALU(0) = 7 740# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 741# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 742# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 743# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 744# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 745# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 746# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 747# CHECK-NEXT: getNextResourceCycle (@9c): 748# CHECK-NEXT: Instance 0 available @9c 749# CHECK-NEXT: Instance 1 available @9c 750# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @9c 751# CHECK-NEXT: Resource booking (@9c): 752# CHECK-NEXT: CortexA55UnitALU(0) = 3 753# CHECK-NEXT: CortexA55UnitALU(1) = 3 754# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 755# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 756# CHECK-NEXT: CortexA55UnitFPALU(0) = 7 757# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 758# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 759# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 760# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 761# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 762# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 763# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 764# CHECK-NEXT: getNextResourceCycle (@9c): 765# CHECK-NEXT: Instance 0 available @9c 766# CHECK-NEXT: Instance 1 available @9c 767# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @9c 768# CHECK-NEXT: BotQ.A BotLatency SU(9) 9c 769# CHECK-NEXT: BotQ.A @9c 770# CHECK-NEXT: Retired: 5 771# CHECK-NEXT: Executed: 9c 772# CHECK-NEXT: Critical: 2c, 5 MOps 773# CHECK-NEXT: ExpectedLatency: 9c 774# CHECK-NEXT: - Latency limited. 775# CHECK-NEXT: CortexA55UnitALU(0) = 3 776# CHECK-NEXT: CortexA55UnitALU(1) = 3 777# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 778# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 779# CHECK-NEXT: CortexA55UnitFPALU(0) = 9 780# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 781# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 782# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 783# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 784# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 785# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 786# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 787# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 788# CHECK-NEXT: Cycle: 10 BotQ.A 789# CHECK-NEXT: Resource booking (@10c): 790# CHECK-NEXT: CortexA55UnitALU(0) = 3 791# CHECK-NEXT: CortexA55UnitALU(1) = 3 792# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 793# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 794# CHECK-NEXT: CortexA55UnitFPALU(0) = 9 795# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 796# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 797# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 798# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 799# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 800# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 801# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 802# CHECK-NEXT: getNextResourceCycle (@10c): 803# CHECK-NEXT: Instance 0 available @10c 804# CHECK-NEXT: Instance 1 available @10c 805# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @10c 806# CHECK-NEXT: Resource booking (@10c): 807# CHECK-NEXT: CortexA55UnitALU(0) = 3 808# CHECK-NEXT: CortexA55UnitALU(1) = 3 809# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 810# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 811# CHECK-NEXT: CortexA55UnitFPALU(0) = 9 812# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 813# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 814# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 815# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 816# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 817# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 818# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 819# CHECK-NEXT: getNextResourceCycle (@10c): 820# CHECK-NEXT: Instance 0 available @11c 821# CHECK-NEXT: Instance 1 available @10c 822# CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @10c 823# CHECK-NEXT: Queue BotQ.P: 3 824# CHECK-NEXT: Queue BotQ.A: 7 5 825# CHECK-NEXT: Cand SU(7) ORDER 826# CHECK-NEXT: Pick Bot ORDER 827# CHECK-NEXT: Scheduling SU(7) %9:fpr64 = XTNv4i16 %8:fpr128 828# CHECK-NEXT: Ready @10c 829# CHECK-NEXT: CortexA55UnitFPALU +1x1u 830# CHECK-NEXT: Resource booking (@10c): 831# CHECK-NEXT: CortexA55UnitALU(0) = 3 832# CHECK-NEXT: CortexA55UnitALU(1) = 3 833# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 834# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 835# CHECK-NEXT: CortexA55UnitFPALU(0) = 9 836# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 837# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 838# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 839# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 840# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 841# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 842# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 843# CHECK-NEXT: getNextResourceCycle (@10c): 844# CHECK-NEXT: Instance 0 available @10c 845# CHECK-NEXT: Instance 1 available @10c 846# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @10c 847# CHECK-NEXT: Resource booking (@10c): 848# CHECK-NEXT: CortexA55UnitALU(0) = 3 849# CHECK-NEXT: CortexA55UnitALU(1) = 3 850# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 851# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 852# CHECK-NEXT: CortexA55UnitFPALU(0) = 9 853# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 854# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 855# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 856# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 857# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 858# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 859# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 860# CHECK-NEXT: getNextResourceCycle (@10c): 861# CHECK-NEXT: Instance 0 available @10c 862# CHECK-NEXT: Instance 1 available @10c 863# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @10c 864# CHECK-NEXT: BotQ.A @10c 865# CHECK-NEXT: Retired: 6 866# CHECK-NEXT: Executed: 10c 867# CHECK-NEXT: Critical: 3c, 6 MOps 868# CHECK-NEXT: ExpectedLatency: 9c 869# CHECK-NEXT: - Latency limited. 870# CHECK-NEXT: CortexA55UnitALU(0) = 3 871# CHECK-NEXT: CortexA55UnitALU(1) = 3 872# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 873# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 874# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 875# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 876# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 877# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 878# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 879# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 880# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 881# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 882# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 883# CHECK-NEXT: Resource booking (@10c): 884# CHECK-NEXT: CortexA55UnitALU(0) = 3 885# CHECK-NEXT: CortexA55UnitALU(1) = 3 886# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 887# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 888# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 889# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 890# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 891# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 892# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 893# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 894# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 895# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 896# CHECK-NEXT: getNextResourceCycle (@10c): 897# CHECK-NEXT: Instance 0 available @12c 898# CHECK-NEXT: Instance 1 available @10c 899# CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @10c 900# CHECK-NEXT: Queue BotQ.P: 3 6 901# CHECK-NEXT: Queue BotQ.A: 5 902# CHECK-NEXT: Scheduling SU(5) %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128 903# CHECK-NEXT: Ready @10c 904# CHECK-NEXT: CortexA55UnitFPALU +2x1u 905# CHECK-NEXT: *** Critical resource CortexA55UnitFPALU: 4c 906# CHECK-NEXT: Resource booking (@10c): 907# CHECK-NEXT: CortexA55UnitALU(0) = 3 908# CHECK-NEXT: CortexA55UnitALU(1) = 3 909# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 910# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 911# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 912# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 913# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 914# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 915# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 916# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 917# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 918# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 919# CHECK-NEXT: getNextResourceCycle (@10c): 920# CHECK-NEXT: Instance 0 available @12c 921# CHECK-NEXT: Instance 1 available @10c 922# CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @10c 923# CHECK-NEXT: Resource booking (@10c): 924# CHECK-NEXT: CortexA55UnitALU(0) = 3 925# CHECK-NEXT: CortexA55UnitALU(1) = 3 926# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 927# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 928# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 929# CHECK-NEXT: CortexA55UnitFPALU(1) = 8 930# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 931# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 932# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 933# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 934# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 935# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 936# CHECK-NEXT: getNextResourceCycle (@10c): 937# CHECK-NEXT: Instance 0 available @12c 938# CHECK-NEXT: Instance 1 available @10c 939# CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @10c 940# CHECK-NEXT: BotQ.A BotLatency SU(5) 10c 941# CHECK-NEXT: Bump cycle to begin group 942# CHECK-NEXT: Cycle: 11 BotQ.A 943# CHECK-NEXT: BotQ.A @11c 944# CHECK-NEXT: Retired: 7 945# CHECK-NEXT: Executed: 11c 946# CHECK-NEXT: Critical: 4c, 8 CortexA55UnitFPALU 947# CHECK-NEXT: ExpectedLatency: 10c 948# CHECK-NEXT: - Latency limited. 949# CHECK-NEXT: CortexA55UnitALU(0) = 3 950# CHECK-NEXT: CortexA55UnitALU(1) = 3 951# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 952# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 953# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 954# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 955# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 956# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 957# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 958# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 959# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 960# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 961# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 962# CHECK-NEXT: Resource booking (@11c): 963# CHECK-NEXT: CortexA55UnitALU(0) = 3 964# CHECK-NEXT: CortexA55UnitALU(1) = 3 965# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 966# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 967# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 968# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 969# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 970# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 971# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 972# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 973# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 974# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 975# CHECK-NEXT: getNextResourceCycle (@11c): 976# CHECK-NEXT: Instance 0 available @12c 977# CHECK-NEXT: Instance 1 available @12c 978# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c 979# CHECK-NEXT: SU(3) CortexA55UnitFPALU[0]=12c 980# CHECK-NEXT: Resource booking (@11c): 981# CHECK-NEXT: CortexA55UnitALU(0) = 3 982# CHECK-NEXT: CortexA55UnitALU(1) = 3 983# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 984# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 985# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 986# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 987# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 988# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 989# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 990# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 991# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 992# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 993# CHECK-NEXT: getNextResourceCycle (@11c): 994# CHECK-NEXT: Instance 0 available @12c 995# CHECK-NEXT: Instance 1 available @12c 996# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c 997# CHECK-NEXT: SU(6) CortexA55UnitFPALU[0]=12c 998# CHECK-NEXT: Cycle: 12 BotQ.A 999# CHECK-NEXT: Resource booking (@12c): 1000# CHECK-NEXT: CortexA55UnitALU(0) = 3 1001# CHECK-NEXT: CortexA55UnitALU(1) = 3 1002# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1003# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1004# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 1005# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 1006# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1007# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1008# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1009# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1010# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1011# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1012# CHECK-NEXT: getNextResourceCycle (@12c): 1013# CHECK-NEXT: Instance 0 available @12c 1014# CHECK-NEXT: Instance 1 available @12c 1015# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c 1016# CHECK-NEXT: Resource booking (@12c): 1017# CHECK-NEXT: CortexA55UnitALU(0) = 3 1018# CHECK-NEXT: CortexA55UnitALU(1) = 3 1019# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1020# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1021# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 1022# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 1023# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1024# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1025# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1026# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1027# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1028# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1029# CHECK-NEXT: getNextResourceCycle (@12c): 1030# CHECK-NEXT: Instance 0 available @12c 1031# CHECK-NEXT: Instance 1 available @12c 1032# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c 1033# CHECK-NEXT: Queue BotQ.P: 0 1034# CHECK-NEXT: Queue BotQ.A: 3 6 1035# CHECK-NEXT: Cand SU(3) ORDER 1036# CHECK-NEXT: Cand SU(6) ORDER 1037# CHECK-NEXT: Pick Bot ORDER 1038# CHECK-NEXT: Scheduling SU(6) %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128 1039# CHECK-NEXT: Ready @12c 1040# CHECK-NEXT: CortexA55UnitFPALU +2x1u 1041# CHECK-NEXT: Resource booking (@12c): 1042# CHECK-NEXT: CortexA55UnitALU(0) = 3 1043# CHECK-NEXT: CortexA55UnitALU(1) = 3 1044# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1045# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1046# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 1047# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 1048# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1049# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1050# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1051# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1052# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1053# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1054# CHECK-NEXT: getNextResourceCycle (@12c): 1055# CHECK-NEXT: Instance 0 available @12c 1056# CHECK-NEXT: Instance 1 available @12c 1057# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c 1058# CHECK-NEXT: Resource booking (@12c): 1059# CHECK-NEXT: CortexA55UnitALU(0) = 3 1060# CHECK-NEXT: CortexA55UnitALU(1) = 3 1061# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1062# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1063# CHECK-NEXT: CortexA55UnitFPALU(0) = 10 1064# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 1065# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1066# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1067# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1068# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1069# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1070# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1071# CHECK-NEXT: getNextResourceCycle (@12c): 1072# CHECK-NEXT: Instance 0 available @12c 1073# CHECK-NEXT: Instance 1 available @12c 1074# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @12c 1075# CHECK-NEXT: BotQ.A TopLatency SU(6) 4c 1076# CHECK-NEXT: Bump cycle to begin group 1077# CHECK-NEXT: Cycle: 13 BotQ.A 1078# CHECK-NEXT: BotQ.A @13c 1079# CHECK-NEXT: Retired: 8 1080# CHECK-NEXT: Executed: 13c 1081# CHECK-NEXT: Critical: 5c, 10 CortexA55UnitFPALU 1082# CHECK-NEXT: ExpectedLatency: 10c 1083# CHECK-NEXT: - Latency limited. 1084# CHECK-NEXT: CortexA55UnitALU(0) = 3 1085# CHECK-NEXT: CortexA55UnitALU(1) = 3 1086# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1087# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1088# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1089# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 1090# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1091# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1092# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1093# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1094# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1095# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1096# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 1097# CHECK-NEXT: Resource booking (@13c): 1098# CHECK-NEXT: CortexA55UnitALU(0) = 3 1099# CHECK-NEXT: CortexA55UnitALU(1) = 3 1100# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1101# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1102# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1103# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 1104# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1105# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1106# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1107# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1108# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1109# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1110# CHECK-NEXT: getNextResourceCycle (@13c): 1111# CHECK-NEXT: Instance 0 available @13c 1112# CHECK-NEXT: Instance 1 available @13c 1113# CHECK-NEXT: selecting CortexA55UnitALU[0] available @13c 1114# CHECK-NEXT: Resource booking (@13c): 1115# CHECK-NEXT: CortexA55UnitALU(0) = 3 1116# CHECK-NEXT: CortexA55UnitALU(1) = 3 1117# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1118# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1119# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1120# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 1121# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1122# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1123# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1124# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1125# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1126# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1127# CHECK-NEXT: getNextResourceCycle (@13c): 1128# CHECK-NEXT: Instance 0 available @14c 1129# CHECK-NEXT: Instance 1 available @13c 1130# CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @13c 1131# CHECK-NEXT: Resource booking (@13c): 1132# CHECK-NEXT: CortexA55UnitALU(0) = 3 1133# CHECK-NEXT: CortexA55UnitALU(1) = 3 1134# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1135# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1136# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1137# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 1138# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1139# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1140# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1141# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1142# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1143# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1144# CHECK-NEXT: getNextResourceCycle (@13c): 1145# CHECK-NEXT: Instance 0 available @13c 1146# CHECK-NEXT: Instance 1 available @13c 1147# CHECK-NEXT: selecting CortexA55UnitALU[0] available @13c 1148# CHECK-NEXT: Queue BotQ.P: 1 4 1149# CHECK-NEXT: Queue BotQ.A: 3 0 1150# CHECK-NEXT: Cand SU(3) ORDER 1151# CHECK-NEXT: Pick Bot PHYS-REG 1152# CHECK-NEXT: Scheduling SU(3) %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8 1153# CHECK-NEXT: Ready @13c 1154# CHECK-NEXT: CortexA55UnitFPALU +2x1u 1155# CHECK-NEXT: Resource booking (@13c): 1156# CHECK-NEXT: CortexA55UnitALU(0) = 3 1157# CHECK-NEXT: CortexA55UnitALU(1) = 3 1158# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1159# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1160# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1161# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 1162# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1163# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1164# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1165# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1166# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1167# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1168# CHECK-NEXT: getNextResourceCycle (@13c): 1169# CHECK-NEXT: Instance 0 available @14c 1170# CHECK-NEXT: Instance 1 available @13c 1171# CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @13c 1172# CHECK-NEXT: Resource booking (@13c): 1173# CHECK-NEXT: CortexA55UnitALU(0) = 3 1174# CHECK-NEXT: CortexA55UnitALU(1) = 3 1175# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1176# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1177# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1178# CHECK-NEXT: CortexA55UnitFPALU(1) = 10 1179# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1180# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1181# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1182# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1183# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1184# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1185# CHECK-NEXT: getNextResourceCycle (@13c): 1186# CHECK-NEXT: Instance 0 available @14c 1187# CHECK-NEXT: Instance 1 available @13c 1188# CHECK-NEXT: selecting CortexA55UnitFPALU[1] available @13c 1189# CHECK-NEXT: BotQ.A BotLatency SU(3) 11c 1190# CHECK-NEXT: Bump cycle to begin group 1191# CHECK-NEXT: Cycle: 14 BotQ.A 1192# CHECK-NEXT: BotQ.A @14c 1193# CHECK-NEXT: Retired: 9 1194# CHECK-NEXT: Executed: 14c 1195# CHECK-NEXT: Critical: 6c, 12 CortexA55UnitFPALU 1196# CHECK-NEXT: ExpectedLatency: 11c 1197# CHECK-NEXT: - Latency limited. 1198# CHECK-NEXT: CortexA55UnitALU(0) = 3 1199# CHECK-NEXT: CortexA55UnitALU(1) = 3 1200# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1201# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1202# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1203# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1204# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1205# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1206# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1207# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1208# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1209# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1210# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 1211# CHECK-NEXT: Resource booking (@14c): 1212# CHECK-NEXT: CortexA55UnitALU(0) = 3 1213# CHECK-NEXT: CortexA55UnitALU(1) = 3 1214# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1215# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1216# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1217# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1218# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1219# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1220# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1221# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1222# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1223# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1224# CHECK-NEXT: getNextResourceCycle (@14c): 1225# CHECK-NEXT: Instance 0 available @14c 1226# CHECK-NEXT: Instance 1 available @14c 1227# CHECK-NEXT: selecting CortexA55UnitALU[0] available @14c 1228# CHECK-NEXT: Queue BotQ.P: 1 4 2 1229# CHECK-NEXT: Queue BotQ.A: 0 1230# CHECK-NEXT: Scheduling SU(0) %2:fpr128 = COPY $q2 1231# CHECK-NEXT: Ready @14c 1232# CHECK-NEXT: CortexA55UnitALU +1x1u 1233# CHECK-NEXT: Resource booking (@14c): 1234# CHECK-NEXT: CortexA55UnitALU(0) = 3 1235# CHECK-NEXT: CortexA55UnitALU(1) = 3 1236# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1237# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1238# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1239# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1240# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1241# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1242# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1243# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1244# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1245# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1246# CHECK-NEXT: getNextResourceCycle (@14c): 1247# CHECK-NEXT: Instance 0 available @14c 1248# CHECK-NEXT: Instance 1 available @14c 1249# CHECK-NEXT: selecting CortexA55UnitALU[0] available @14c 1250# CHECK-NEXT: Resource booking (@14c): 1251# CHECK-NEXT: CortexA55UnitALU(0) = 3 1252# CHECK-NEXT: CortexA55UnitALU(1) = 3 1253# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1254# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1255# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1256# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1257# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1258# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1259# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1260# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1261# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1262# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1263# CHECK-NEXT: getNextResourceCycle (@14c): 1264# CHECK-NEXT: Instance 0 available @14c 1265# CHECK-NEXT: Instance 1 available @14c 1266# CHECK-NEXT: selecting CortexA55UnitALU[0] available @14c 1267# CHECK-NEXT: BotQ.A BotLatency SU(0) 13c 1268# CHECK-NEXT: BotQ.A @14c 1269# CHECK-NEXT: Retired: 10 1270# CHECK-NEXT: Executed: 14c 1271# CHECK-NEXT: Critical: 6c, 12 CortexA55UnitFPALU 1272# CHECK-NEXT: ExpectedLatency: 13c 1273# CHECK-NEXT: - Latency limited. 1274# CHECK-NEXT: CortexA55UnitALU(0) = 14 1275# CHECK-NEXT: CortexA55UnitALU(1) = 3 1276# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1277# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1278# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1279# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1280# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1281# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1282# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1283# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1284# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1285# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1286# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 1287# CHECK-NEXT: Cycle: 15 BotQ.A 1288# CHECK-NEXT: Resource booking (@15c): 1289# CHECK-NEXT: CortexA55UnitALU(0) = 14 1290# CHECK-NEXT: CortexA55UnitALU(1) = 3 1291# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1292# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1293# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1294# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1295# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1296# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1297# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1298# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1299# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1300# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1301# CHECK-NEXT: getNextResourceCycle (@15c): 1302# CHECK-NEXT: Instance 0 available @15c 1303# CHECK-NEXT: Instance 1 available @15c 1304# CHECK-NEXT: selecting CortexA55UnitALU[0] available @15c 1305# CHECK-NEXT: Queue BotQ.P: 2 4 1306# CHECK-NEXT: Queue BotQ.A: 1 1307# CHECK-NEXT: Scheduling SU(1) %1:fpr128 = COPY $q1 1308# CHECK-NEXT: Ready @15c 1309# CHECK-NEXT: CortexA55UnitALU +1x1u 1310# CHECK-NEXT: Resource booking (@15c): 1311# CHECK-NEXT: CortexA55UnitALU(0) = 14 1312# CHECK-NEXT: CortexA55UnitALU(1) = 3 1313# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1314# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1315# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1316# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1317# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1318# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1319# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1320# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1321# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1322# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1323# CHECK-NEXT: getNextResourceCycle (@15c): 1324# CHECK-NEXT: Instance 0 available @15c 1325# CHECK-NEXT: Instance 1 available @15c 1326# CHECK-NEXT: selecting CortexA55UnitALU[0] available @15c 1327# CHECK-NEXT: Resource booking (@15c): 1328# CHECK-NEXT: CortexA55UnitALU(0) = 14 1329# CHECK-NEXT: CortexA55UnitALU(1) = 3 1330# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1331# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1332# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1333# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1334# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1335# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1336# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1337# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1338# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1339# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1340# CHECK-NEXT: getNextResourceCycle (@15c): 1341# CHECK-NEXT: Instance 0 available @15c 1342# CHECK-NEXT: Instance 1 available @15c 1343# CHECK-NEXT: selecting CortexA55UnitALU[0] available @15c 1344# CHECK-NEXT: BotQ.A @15c 1345# CHECK-NEXT: Retired: 11 1346# CHECK-NEXT: Executed: 15c 1347# CHECK-NEXT: Critical: 6c, 12 CortexA55UnitFPALU 1348# CHECK-NEXT: ExpectedLatency: 13c 1349# CHECK-NEXT: - Latency limited. 1350# CHECK-NEXT: CortexA55UnitALU(0) = 15 1351# CHECK-NEXT: CortexA55UnitALU(1) = 3 1352# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1353# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1354# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1355# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1356# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1357# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1358# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1359# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1360# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1361# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1362# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 1363# CHECK-NEXT: Cycle: 16 BotQ.A 1364# CHECK-NEXT: Resource booking (@16c): 1365# CHECK-NEXT: CortexA55UnitALU(0) = 15 1366# CHECK-NEXT: CortexA55UnitALU(1) = 3 1367# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1368# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1369# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1370# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1371# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1372# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1373# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1374# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1375# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1376# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1377# CHECK-NEXT: getNextResourceCycle (@16c): 1378# CHECK-NEXT: Instance 0 available @16c 1379# CHECK-NEXT: Instance 1 available @16c 1380# CHECK-NEXT: selecting CortexA55UnitALU[0] available @16c 1381# CHECK-NEXT: Resource booking (@16c): 1382# CHECK-NEXT: CortexA55UnitALU(0) = 15 1383# CHECK-NEXT: CortexA55UnitALU(1) = 3 1384# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1385# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1386# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1387# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1388# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1389# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1390# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1391# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1392# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1393# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1394# CHECK-NEXT: getNextResourceCycle (@16c): 1395# CHECK-NEXT: Instance 0 available @16c 1396# CHECK-NEXT: Instance 1 available @16c 1397# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @16c 1398# CHECK-NEXT: Queue BotQ.P: 1399# CHECK-NEXT: Queue BotQ.A: 2 4 1400# CHECK-NEXT: Cand SU(2) ORDER 1401# CHECK-NEXT: Cand SU(4) PHYS-REG 1402# CHECK-NEXT: Pick Bot PHYS-REG 1403# CHECK-NEXT: Scheduling SU(4) %6:fpr128 = MOVIv2d_ns 17 1404# CHECK-NEXT: Ready @16c 1405# CHECK-NEXT: CortexA55UnitFPALU +2x1u 1406# CHECK-NEXT: Resource booking (@16c): 1407# CHECK-NEXT: CortexA55UnitALU(0) = 15 1408# CHECK-NEXT: CortexA55UnitALU(1) = 3 1409# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1410# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1411# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1412# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1413# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1414# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1415# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1416# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1417# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1418# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1419# CHECK-NEXT: getNextResourceCycle (@16c): 1420# CHECK-NEXT: Instance 0 available @16c 1421# CHECK-NEXT: Instance 1 available @16c 1422# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @16c 1423# CHECK-NEXT: Resource booking (@16c): 1424# CHECK-NEXT: CortexA55UnitALU(0) = 15 1425# CHECK-NEXT: CortexA55UnitALU(1) = 3 1426# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1427# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1428# CHECK-NEXT: CortexA55UnitFPALU(0) = 12 1429# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1430# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1431# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1432# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1433# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1434# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1435# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1436# CHECK-NEXT: getNextResourceCycle (@16c): 1437# CHECK-NEXT: Instance 0 available @16c 1438# CHECK-NEXT: Instance 1 available @16c 1439# CHECK-NEXT: selecting CortexA55UnitFPALU[0] available @16c 1440# CHECK-NEXT: BotQ.A BotLatency SU(4) 14c 1441# CHECK-NEXT: Bump cycle to begin group 1442# CHECK-NEXT: Cycle: 17 BotQ.A 1443# CHECK-NEXT: BotQ.A @17c 1444# CHECK-NEXT: Retired: 12 1445# CHECK-NEXT: Executed: 17c 1446# CHECK-NEXT: Critical: 7c, 14 CortexA55UnitFPALU 1447# CHECK-NEXT: ExpectedLatency: 14c 1448# CHECK-NEXT: - Latency limited. 1449# CHECK-NEXT: CortexA55UnitALU(0) = 15 1450# CHECK-NEXT: CortexA55UnitALU(1) = 3 1451# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1452# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1453# CHECK-NEXT: CortexA55UnitFPALU(0) = 16 1454# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1455# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1456# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1457# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1458# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1459# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1460# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1461# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 1462# CHECK-NEXT: Resource booking (@17c): 1463# CHECK-NEXT: CortexA55UnitALU(0) = 15 1464# CHECK-NEXT: CortexA55UnitALU(1) = 3 1465# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1466# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1467# CHECK-NEXT: CortexA55UnitFPALU(0) = 16 1468# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1469# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1470# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1471# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1472# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1473# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1474# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1475# CHECK-NEXT: getNextResourceCycle (@17c): 1476# CHECK-NEXT: Instance 0 available @17c 1477# CHECK-NEXT: Instance 1 available @17c 1478# CHECK-NEXT: selecting CortexA55UnitALU[0] available @17c 1479# CHECK-NEXT: Queue BotQ.P: 1480# CHECK-NEXT: Queue BotQ.A: 2 1481# CHECK-NEXT: Scheduling SU(2) %0:fpr128 = COPY $q0 1482# CHECK-NEXT: Ready @17c 1483# CHECK-NEXT: CortexA55UnitALU +1x1u 1484# CHECK-NEXT: Resource booking (@17c): 1485# CHECK-NEXT: CortexA55UnitALU(0) = 15 1486# CHECK-NEXT: CortexA55UnitALU(1) = 3 1487# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1488# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1489# CHECK-NEXT: CortexA55UnitFPALU(0) = 16 1490# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1491# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1492# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1493# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1494# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1495# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1496# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1497# CHECK-NEXT: getNextResourceCycle (@17c): 1498# CHECK-NEXT: Instance 0 available @17c 1499# CHECK-NEXT: Instance 1 available @17c 1500# CHECK-NEXT: selecting CortexA55UnitALU[0] available @17c 1501# CHECK-NEXT: Resource booking (@17c): 1502# CHECK-NEXT: CortexA55UnitALU(0) = 15 1503# CHECK-NEXT: CortexA55UnitALU(1) = 3 1504# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1505# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1506# CHECK-NEXT: CortexA55UnitFPALU(0) = 16 1507# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1508# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1509# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1510# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1511# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1512# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1513# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1514# CHECK-NEXT: getNextResourceCycle (@17c): 1515# CHECK-NEXT: Instance 0 available @17c 1516# CHECK-NEXT: Instance 1 available @17c 1517# CHECK-NEXT: selecting CortexA55UnitALU[0] available @17c 1518# CHECK-NEXT: BotQ.A @17c 1519# CHECK-NEXT: Retired: 13 1520# CHECK-NEXT: Executed: 17c 1521# CHECK-NEXT: Critical: 7c, 14 CortexA55UnitFPALU 1522# CHECK-NEXT: ExpectedLatency: 14c 1523# CHECK-NEXT: - Latency limited. 1524# CHECK-NEXT: CortexA55UnitALU(0) = 17 1525# CHECK-NEXT: CortexA55UnitALU(1) = 3 1526# CHECK-NEXT: CortexA55UnitB(0) = 4294967295 1527# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295 1528# CHECK-NEXT: CortexA55UnitFPALU(0) = 16 1529# CHECK-NEXT: CortexA55UnitFPALU(1) = 13 1530# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295 1531# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295 1532# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295 1533# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295 1534# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295 1535# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295 1536# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node 1537# CHECK-NEXT: *** Final schedule for %bb.0 *** 1538# CHECK-NEXT: * Schedule table (BottomUp): 1539# CHECK-NEXT: i: issue 1540# CHECK-NEXT: x: resource booked 1541# CHECK-NEXT: Cycle | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 1542# CHECK-NEXT: SU(2) | i | | | | | | | | | | | | | | | 1543# CHECK-NEXT: CortexA55UnitALU | x | | | | | | | | | | | | | | | 1544# CHECK-NEXT: SU(4) | | i | | | | | | | | | | | | | | 1545# CHECK-NEXT: CortexA55UnitFPALU | | x | x | | | | | | | | | | | | | 1546# CHECK-NEXT: SU(1) | | | i | | | | | | | | | | | | | 1547# CHECK-NEXT: CortexA55UnitALU | | | x | | | | | | | | | | | | | 1548# CHECK-NEXT: SU(0) | | | | i | | | | | | | | | | | | 1549# CHECK-NEXT: CortexA55UnitALU | | | | x | | | | | | | | | | | | 1550# CHECK-NEXT: SU(3) | | | | | i | | | | | | | | | | | 1551# CHECK-NEXT: CortexA55UnitFPALU | | | | | x | x | | | | | | | | | | 1552# CHECK-NEXT: SU(6) | | | | | | i | | | | | | | | | | 1553# CHECK-NEXT: CortexA55UnitFPALU | | | | | | x | x | | | | | | | | | 1554# CHECK-NEXT: SU(5) | | | | | | | | i | | | | | | | | 1555# CHECK-NEXT: CortexA55UnitFPALU | | | | | | | | x | x | | | | | | | 1556# CHECK-NEXT: SU(7) | | | | | | | | i | | | | | | | | 1557# CHECK-NEXT: CortexA55UnitFPALU | | | | | | | | x | | | | | | | | 1558# CHECK-NEXT: SU(9) | | | | | | | | | i | | | | | | | 1559# CHECK-NEXT: CortexA55UnitFPALU | | | | | | | | | x | | | | | | | 1560# CHECK-NEXT: SU(8) | | | | | | | | | | i | | | | | | 1561# CHECK-NEXT: CortexA55UnitFPALU | | | | | | | | | | x | x | | | | | 1562# CHECK-NEXT: SU(10) | | | | | | | | | | | i | | | | | 1563# CHECK-NEXT: CortexA55UnitFPALU | | | | | | | | | | | x | x | | | | 1564# CHECK-NEXT: SU(11) | | | | | | | | | | | | | | | i | 1565# CHECK-NEXT: CortexA55UnitALU | | | | | | | | | | | | | | | x | 1566# CHECK-NEXT: SU(12) | | | | | | | | | | | | | | | i | 1567# CHECK-NEXT: CortexA55UnitALU | | | | | | | | | | | | | | | x | 1568# CHECK-NEXT: SU(2) [TopReadyCycle = 0, BottomReadyCycle = 17]: %0:fpr128 = COPY $q0 1569# CHECK-NEXT: SU(4) [TopReadyCycle = 0, BottomReadyCycle = 16]: %6:fpr128 = MOVIv2d_ns 17 1570# CHECK-NEXT: SU(1) [TopReadyCycle = 0, BottomReadyCycle = 15]: %1:fpr128 = COPY $q1 1571# CHECK-NEXT: SU(0) [TopReadyCycle = 0, BottomReadyCycle = 14]: %2:fpr128 = COPY $q2 1572# CHECK-NEXT: SU(3) [TopReadyCycle = 0, BottomReadyCycle = 13]: %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8 1573# CHECK-NEXT: SU(6) [TopReadyCycle = 0, BottomReadyCycle = 12]: %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128 1574# CHECK-NEXT: SU(5) [TopReadyCycle = 0, BottomReadyCycle = 10]: %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128 1575# CHECK-NEXT: SU(7) [TopReadyCycle = 0, BottomReadyCycle = 10]: %9:fpr64 = XTNv4i16 %8:fpr128 1576# CHECK-NEXT: SU(9) [TopReadyCycle = 0, BottomReadyCycle = 9]: %11:fpr64 = XTNv4i16 %7:fpr128 1577# CHECK-NEXT: SU(8) [TopReadyCycle = 0, BottomReadyCycle = 8]: %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64 1578# CHECK-NEXT: SU(10) [TopReadyCycle = 0, BottomReadyCycle = 7]: %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64 1579# CHECK-NEXT: SU(11) [TopReadyCycle = 0, BottomReadyCycle = 3]: $q0 = COPY %10:fpr128 1580# CHECK-NEXT: SU(12) [TopReadyCycle = 0, BottomReadyCycle = 3]: $q1 = COPY %12:fpr128 1581# CHECK-EMPTY: 1582# CHECK-NEXT: ********** INTERVALS ********** 1583# CHECK-NEXT: B0 [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r 1584# CHECK-NEXT: B1 [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r 1585# CHECK-NEXT: B2 [0B,96r:0) 0@0B-phi 1586# CHECK-NEXT: B0_HI [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r 1587# CHECK-NEXT: H0_HI [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r 1588# CHECK-NEXT: S0_HI [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r 1589# CHECK-NEXT: B1_HI [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r 1590# CHECK-NEXT: H1_HI [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r 1591# CHECK-NEXT: S1_HI [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r 1592# CHECK-NEXT: B2_HI [0B,96r:0) 0@0B-phi 1593# CHECK-NEXT: H2_HI [0B,96r:0) 0@0B-phi 1594# CHECK-NEXT: S2_HI [0B,96r:0) 0@0B-phi 1595# CHECK-NEXT: D0_HI [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r 1596# CHECK-NEXT: D1_HI [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r 1597# CHECK-NEXT: D2_HI [0B,96r:0) 0@0B-phi 1598# CHECK-NEXT: %0 [48r,168r:0) 0@48r weight:0.000000e+00 1599# CHECK-NEXT: %1 [88r,120r:0) 0@88r weight:0.000000e+00 1600# CHECK-NEXT: %2 [96r,128r:0) 0@96r weight:0.000000e+00 1601# CHECK-NEXT: %3 [104r,176r:0) 0@104r weight:0.000000e+00 1602# CHECK-NEXT: %6 [80r,128r:0) 0@80r weight:0.000000e+00 1603# CHECK-NEXT: %7 [128r,160r:0) 0@128r weight:0.000000e+00 1604# CHECK-NEXT: %8 [120r,136r:0) 0@120r weight:0.000000e+00 1605# CHECK-NEXT: %9 [136r,168r:0) 0@136r weight:0.000000e+00 1606# CHECK-NEXT: %10 [168r,192r:0) 0@168r weight:0.000000e+00 1607# CHECK-NEXT: %11 [160r,176r:0) 0@160r weight:0.000000e+00 1608# CHECK-NEXT: %12 [176r,208r:0) 0@176r weight:0.000000e+00 1609# CHECK-NEXT: RegMasks: 1610# CHECK-NEXT: ********** MACHINEINSTRS ********** 1611# CHECK-NEXT: # Machine code for function umull_and_v8i32: IsSSA, NoPHIs, TracksLiveness 1612# CHECK-NEXT: Function Live Ins: $q0 in %0, $q1 in %1, $q2 in %2 1613# CHECK-EMPTY: 1614# CHECK-NEXT: 0B bb.0.entry: 1615# CHECK-NEXT: liveins: $q0, $q1, $q2 1616# CHECK-NEXT: 48B %0:fpr128 = COPY $q0 1617# CHECK-NEXT: 80B %6:fpr128 = MOVIv2d_ns 17 1618# CHECK-NEXT: 88B %1:fpr128 = COPY $q1 1619# CHECK-NEXT: 96B %2:fpr128 = COPY $q2 1620# CHECK-NEXT: 104B %3:fpr128 = EXTv16i8 %0:fpr128, %0:fpr128, 8 1621# CHECK-NEXT: 120B %8:fpr128 = ANDv16i8 %1:fpr128, %6:fpr128 1622# CHECK-NEXT: 128B %7:fpr128 = ANDv16i8 %2:fpr128, %6:fpr128 1623# CHECK-NEXT: 136B %9:fpr64 = XTNv4i16 %8:fpr128 1624# CHECK-NEXT: 160B %11:fpr64 = XTNv4i16 %7:fpr128 1625# CHECK-NEXT: 168B %10:fpr128 = UMULLv4i16_v4i32 %0.dsub:fpr128, %9:fpr64 1626# CHECK-NEXT: 176B %12:fpr128 = UMULLv4i16_v4i32 %3.dsub:fpr128, %11:fpr64 1627# CHECK-NEXT: 192B $q0 = COPY %10:fpr128 1628# CHECK-NEXT: 208B $q1 = COPY %12:fpr128 1629# CHECK-NEXT: 224B RET_ReallyLR implicit $q0, implicit $q1 1630# CHECK-EMPTY: 1631# CHECK-NEXT: # End machine code for function umull_and_v8i32. 1632