brintos

brintos / llvm-project-archived public Read only

0
0
Text · 21.7 KiB · c8bb44c Raw
496 lines · plain
1# RUN: llc -mtriple=aarch64-none-linux-gnu -mcpu=cortex-a55  \2# RUN:  -run-pass=machine-scheduler -debug-only=machine-scheduler -o - %s \3# RUN:  -misched-prera-direction=bottomup -sched-print-cycles=true \4# RUN:  -misched-dump-reserved-cycles=true -misched-detail-resource-booking=true\5# RUN:  -misched-dump-schedule-trace=true -misched-dump-schedule-trace-col-width=4 \6# RUN:  2>&1 | FileCheck %s7 8# RUN: llc -mtriple=aarch64-none-linux-gnu -mcpu=cortex-a55  \9# RUN:  -passes=machine-scheduler -debug-only=machine-scheduler -o - %s \10# RUN:  -misched-prera-direction=bottomup -sched-print-cycles=true \11# RUN:  -misched-dump-reserved-cycles=true -misched-detail-resource-booking=true\12# RUN:  -misched-dump-schedule-trace=true -misched-dump-schedule-trace-col-width=4 \13# RUN:  2>&1 | FileCheck %s14 15# REQUIRES: asserts16---17name: f18tracksRegLiveness: true19body:             |20  bb.0:21    liveins: $x0, $x1, $x222    $x3 = ADDXrr $x0, $x023    $x4 = ADDXrr $x1, $x124    $x5 = ADDXrr $x2, $x225 26# CHECK-LABEL: Before MISched:27# CHECK-NEXT: # Machine code for function f: IsSSA, NoPHIs, TracksLiveness, NoVRegs28# CHECK-EMPTY:29# CHECK-NEXT: bb.0:30# CHECK-NEXT:   liveins: $x0, $x1, $x231# CHECK-NEXT:   $x3 = ADDXrr $x0, $x032# CHECK-NEXT:   $x4 = ADDXrr $x1, $x133# CHECK-NEXT:   $x5 = ADDXrr $x2, $x234# CHECK-EMPTY:35# CHECK-NEXT: # End machine code for function f.36# CHECK-EMPTY:37# CHECK-NEXT: ********** MI Scheduling **********38# CHECK-NEXT: f:%bb.039# CHECK-NEXT:   From: $x3 = ADDXrr $x0, $x040# CHECK-NEXT:     To: End41# CHECK-NEXT:  RegionInstrs: 342# CHECK-NEXT: ScheduleDAGMILive::schedule starting43# CHECK-NEXT: GenericScheduler RegionPolicy:  ShouldTrackPressure=0 OnlyTopDown=0 OnlyBottomUp=144# CHECK-NEXT: Disabled scoreboard hazard recognizer45# CHECK-NEXT: Disabled scoreboard hazard recognizer46# CHECK-NEXT: SU(0) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $x3 = ADDXrr $x0, $x047# CHECK-NEXT:   # preds left       : 048# CHECK-NEXT:   # succs left       : 049# CHECK-NEXT:   # rdefs left       : 050# CHECK-NEXT:   Latency            : 351# CHECK-NEXT:   Depth              : 052# CHECK-NEXT:   Height             : 053# CHECK-NEXT:   Single Issue       : false;54# CHECK-NEXT: SU(1) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $x4 = ADDXrr $x1, $x155# CHECK-NEXT:   # preds left       : 056# CHECK-NEXT:   # succs left       : 057# CHECK-NEXT:   # rdefs left       : 058# CHECK-NEXT:   Latency            : 359# CHECK-NEXT:   Depth              : 060# CHECK-NEXT:   Height             : 061# CHECK-NEXT:   Single Issue       : false;62# CHECK-NEXT: SU(2) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $x5 = ADDXrr $x2, $x263# CHECK-NEXT:   # preds left       : 064# CHECK-NEXT:   # succs left       : 065# CHECK-NEXT:   # rdefs left       : 066# CHECK-NEXT:   Latency            : 367# CHECK-NEXT:   Depth              : 068# CHECK-NEXT:   Height             : 069# CHECK-NEXT:   Single Issue       : false;70# CHECK-NEXT:   Resource booking (@0c):71# CHECK-NEXT: CortexA55UnitALU(0) = 429496729572# CHECK-NEXT: CortexA55UnitALU(1) = 429496729573# CHECK-NEXT: CortexA55UnitB(0) = 429496729574# CHECK-NEXT: CortexA55UnitDiv(0) = 429496729575# CHECK-NEXT: CortexA55UnitFPALU(0) = 429496729576# CHECK-NEXT: CortexA55UnitFPALU(1) = 429496729577# CHECK-NEXT: CortexA55UnitFPDIV(0) = 429496729578# CHECK-NEXT: CortexA55UnitFPMAC(0) = 429496729579# CHECK-NEXT: CortexA55UnitFPMAC(1) = 429496729580# CHECK-NEXT: CortexA55UnitLd(0) = 429496729581# CHECK-NEXT: CortexA55UnitMAC(0) = 429496729582# CHECK-NEXT: CortexA55UnitSt(0) = 429496729583# CHECK-NEXT:   getNextResourceCycle (@0c):84# CHECK-NEXT:     Instance 0 available @0c85# CHECK-NEXT:     Instance 1 available @0c86# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c87# CHECK-NEXT:   Move SU(0) into Available Q88# CHECK-NEXT:   Resource booking (@0c):89# CHECK-NEXT: CortexA55UnitALU(0) = 429496729590# CHECK-NEXT: CortexA55UnitALU(1) = 429496729591# CHECK-NEXT: CortexA55UnitB(0) = 429496729592# CHECK-NEXT: CortexA55UnitDiv(0) = 429496729593# CHECK-NEXT: CortexA55UnitFPALU(0) = 429496729594# CHECK-NEXT: CortexA55UnitFPALU(1) = 429496729595# CHECK-NEXT: CortexA55UnitFPDIV(0) = 429496729596# CHECK-NEXT: CortexA55UnitFPMAC(0) = 429496729597# CHECK-NEXT: CortexA55UnitFPMAC(1) = 429496729598# CHECK-NEXT: CortexA55UnitLd(0) = 429496729599# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295100# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295101# CHECK-NEXT:   getNextResourceCycle (@0c):102# CHECK-NEXT:     Instance 0 available @0c103# CHECK-NEXT:     Instance 1 available @0c104# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c105# CHECK-NEXT:   Move SU(1) into Available Q106# CHECK-NEXT:   Resource booking (@0c):107# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295108# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295109# CHECK-NEXT: CortexA55UnitB(0) = 4294967295110# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295111# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295112# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295113# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295114# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295115# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295116# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295117# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295118# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295119# CHECK-NEXT:   getNextResourceCycle (@0c):120# CHECK-NEXT:     Instance 0 available @0c121# CHECK-NEXT:     Instance 1 available @0c122# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c123# CHECK-NEXT:   Move SU(2) into Available Q124# CHECK-NEXT:   Resource booking (@0c):125# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295126# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295127# CHECK-NEXT: CortexA55UnitB(0) = 4294967295128# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295129# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295130# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295131# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295132# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295133# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295134# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295135# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295136# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295137# CHECK-NEXT:   getNextResourceCycle (@0c):138# CHECK-NEXT:     Instance 0 available @0c139# CHECK-NEXT:     Instance 1 available @0c140# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c141# CHECK-NEXT:   Move SU(2) into Available Q142# CHECK-NEXT:   Resource booking (@0c):143# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295144# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295145# CHECK-NEXT: CortexA55UnitB(0) = 4294967295146# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295147# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295148# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295149# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295150# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295151# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295152# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295153# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295154# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295155# CHECK-NEXT:   getNextResourceCycle (@0c):156# CHECK-NEXT:     Instance 0 available @0c157# CHECK-NEXT:     Instance 1 available @0c158# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c159# CHECK-NEXT:   Move SU(1) into Available Q160# CHECK-NEXT:   Resource booking (@0c):161# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295162# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295163# CHECK-NEXT: CortexA55UnitB(0) = 4294967295164# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295165# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295166# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295167# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295168# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295169# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295170# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295171# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295172# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295173# CHECK-NEXT:   getNextResourceCycle (@0c):174# CHECK-NEXT:     Instance 0 available @0c175# CHECK-NEXT:     Instance 1 available @0c176# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c177# CHECK-NEXT:   Move SU(0) into Available Q178# CHECK-NEXT: Critical Path(GS-RR ): 0179# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node180# CHECK-NEXT:   Resource booking (@0c):181# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295182# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295183# CHECK-NEXT: CortexA55UnitB(0) = 4294967295184# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295185# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295186# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295187# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295188# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295189# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295190# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295191# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295192# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295193# CHECK-NEXT:   getNextResourceCycle (@0c):194# CHECK-NEXT:     Instance 0 available @0c195# CHECK-NEXT:     Instance 1 available @0c196# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c197# CHECK-NEXT:   Resource booking (@0c):198# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295199# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295200# CHECK-NEXT: CortexA55UnitB(0) = 4294967295201# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295202# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295203# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295204# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295205# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295206# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295207# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295208# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295209# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295210# CHECK-NEXT:   getNextResourceCycle (@0c):211# CHECK-NEXT:     Instance 0 available @0c212# CHECK-NEXT:     Instance 1 available @0c213# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c214# CHECK-NEXT:   Resource booking (@0c):215# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295216# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295217# CHECK-NEXT: CortexA55UnitB(0) = 4294967295218# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295219# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295220# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295221# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295222# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295223# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295224# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295225# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295226# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295227# CHECK-NEXT:   getNextResourceCycle (@0c):228# CHECK-NEXT:     Instance 0 available @0c229# CHECK-NEXT:     Instance 1 available @0c230# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c231# CHECK-NEXT: Queue BotQ.P:232# CHECK-NEXT: Queue BotQ.A: 2 1 0233# CHECK-NEXT:   Cand SU(2) FIRST234# CHECK-NEXT: Pick Bot FIRST235# CHECK-NEXT: Scheduling SU(2) $x5 = ADDXrr $x2, $x2236# CHECK-NEXT:   Ready @0c237# CHECK-NEXT:   CortexA55UnitALU +1x1u238# CHECK-NEXT:   Resource booking (@0c):239# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295240# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295241# CHECK-NEXT: CortexA55UnitB(0) = 4294967295242# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295243# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295244# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295245# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295246# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295247# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295248# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295249# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295250# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295251# CHECK-NEXT:   getNextResourceCycle (@0c):252# CHECK-NEXT:     Instance 0 available @0c253# CHECK-NEXT:     Instance 1 available @0c254# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c255# CHECK-NEXT:   Resource booking (@0c):256# CHECK-NEXT: CortexA55UnitALU(0) = 4294967295257# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295258# CHECK-NEXT: CortexA55UnitB(0) = 4294967295259# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295260# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295261# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295262# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295263# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295264# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295265# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295266# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295267# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295268# CHECK-NEXT:   getNextResourceCycle (@0c):269# CHECK-NEXT:     Instance 0 available @0c270# CHECK-NEXT:     Instance 1 available @0c271# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @0c272# CHECK-NEXT: BotQ.A @0c273# CHECK-NEXT:   Retired: 1274# CHECK-NEXT:   Executed: 0c275# CHECK-NEXT:   Critical: 0c, 1 MOps276# CHECK-NEXT:   ExpectedLatency: 0c277# CHECK-NEXT:   - Latency limited.278# CHECK-NEXT: CortexA55UnitALU(0) = 0279# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295280# CHECK-NEXT: CortexA55UnitB(0) = 4294967295281# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295282# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295283# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295284# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295285# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295286# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295287# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295288# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295289# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295290# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node291# CHECK-NEXT:   Resource booking (@0c):292# CHECK-NEXT: CortexA55UnitALU(0) = 0293# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295294# CHECK-NEXT: CortexA55UnitB(0) = 4294967295295# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295296# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295297# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295298# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295299# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295300# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295301# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295302# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295303# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295304# CHECK-NEXT:   getNextResourceCycle (@0c):305# CHECK-NEXT:     Instance 0 available @1c306# CHECK-NEXT:     Instance 1 available @0c307# CHECK-NEXT:     selecting CortexA55UnitALU[1] available @0c308# CHECK-NEXT:   Resource booking (@0c):309# CHECK-NEXT: CortexA55UnitALU(0) = 0310# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295311# CHECK-NEXT: CortexA55UnitB(0) = 4294967295312# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295313# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295314# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295315# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295316# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295317# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295318# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295319# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295320# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295321# CHECK-NEXT:   getNextResourceCycle (@0c):322# CHECK-NEXT:     Instance 0 available @1c323# CHECK-NEXT:     Instance 1 available @0c324# CHECK-NEXT:     selecting CortexA55UnitALU[1] available @0c325# CHECK-NEXT: Queue BotQ.P:326# CHECK-NEXT: Queue BotQ.A: 0 1327# CHECK-NEXT:   Cand SU(0) FIRST328# CHECK-NEXT:   Cand SU(1) ORDER329# CHECK-NEXT: Pick Bot ORDER330# CHECK-NEXT: Scheduling SU(1) $x4 = ADDXrr $x1, $x1331# CHECK-NEXT:   Ready @0c332# CHECK-NEXT:   CortexA55UnitALU +1x1u333# CHECK-NEXT:   Resource booking (@0c):334# CHECK-NEXT: CortexA55UnitALU(0) = 0335# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295336# CHECK-NEXT: CortexA55UnitB(0) = 4294967295337# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295338# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295339# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295340# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295341# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295342# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295343# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295344# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295345# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295346# CHECK-NEXT:   getNextResourceCycle (@0c):347# CHECK-NEXT:     Instance 0 available @1c348# CHECK-NEXT:     Instance 1 available @0c349# CHECK-NEXT:     selecting CortexA55UnitALU[1] available @0c350# CHECK-NEXT:   Resource booking (@0c):351# CHECK-NEXT: CortexA55UnitALU(0) = 0352# CHECK-NEXT: CortexA55UnitALU(1) = 4294967295353# CHECK-NEXT: CortexA55UnitB(0) = 4294967295354# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295355# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295356# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295357# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295358# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295359# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295360# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295361# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295362# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295363# CHECK-NEXT:   getNextResourceCycle (@0c):364# CHECK-NEXT:     Instance 0 available @1c365# CHECK-NEXT:     Instance 1 available @0c366# CHECK-NEXT:     selecting CortexA55UnitALU[1] available @0c367# CHECK-NEXT:   *** Max MOps 2 at cycle 0368# CHECK-NEXT: Cycle: 1 BotQ.A369# CHECK-NEXT: BotQ.A @1c370# CHECK-NEXT:   Retired: 2371# CHECK-NEXT:   Executed: 1c372# CHECK-NEXT:   Critical: 1c, 2 MOps373# CHECK-NEXT:   ExpectedLatency: 0c374# CHECK-NEXT:   - Latency limited.375# CHECK-NEXT: CortexA55UnitALU(0) = 0376# CHECK-NEXT: CortexA55UnitALU(1) = 0377# CHECK-NEXT: CortexA55UnitB(0) = 4294967295378# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295379# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295380# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295381# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295382# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295383# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295384# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295385# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295386# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295387# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node388# CHECK-NEXT:   Resource booking (@1c):389# CHECK-NEXT: CortexA55UnitALU(0) = 0390# CHECK-NEXT: CortexA55UnitALU(1) = 0391# CHECK-NEXT: CortexA55UnitB(0) = 4294967295392# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295393# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295394# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295395# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295396# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295397# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295398# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295399# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295400# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295401# CHECK-NEXT:   getNextResourceCycle (@1c):402# CHECK-NEXT:     Instance 0 available @1c403# CHECK-NEXT:     Instance 1 available @1c404# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @1c405# CHECK-NEXT: Queue BotQ.P:406# CHECK-NEXT: Queue BotQ.A: 0407# CHECK-NEXT: Scheduling SU(0) $x3 = ADDXrr $x0, $x0408# CHECK-NEXT:   Ready @1c409# CHECK-NEXT:   CortexA55UnitALU +1x1u410# CHECK-NEXT:   Resource booking (@1c):411# CHECK-NEXT: CortexA55UnitALU(0) = 0412# CHECK-NEXT: CortexA55UnitALU(1) = 0413# CHECK-NEXT: CortexA55UnitB(0) = 4294967295414# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295415# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295416# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295417# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295418# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295419# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295420# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295421# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295422# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295423# CHECK-NEXT:   getNextResourceCycle (@1c):424# CHECK-NEXT:     Instance 0 available @1c425# CHECK-NEXT:     Instance 1 available @1c426# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @1c427# CHECK-NEXT:   Resource booking (@1c):428# CHECK-NEXT: CortexA55UnitALU(0) = 0429# CHECK-NEXT: CortexA55UnitALU(1) = 0430# CHECK-NEXT: CortexA55UnitB(0) = 4294967295431# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295432# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295433# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295434# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295435# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295436# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295437# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295438# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295439# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295440# CHECK-NEXT:   getNextResourceCycle (@1c):441# CHECK-NEXT:     Instance 0 available @1c442# CHECK-NEXT:     Instance 1 available @1c443# CHECK-NEXT:     selecting CortexA55UnitALU[0] available @1c444# CHECK-NEXT: BotQ.A @1c445# CHECK-NEXT:   Retired: 3446# CHECK-NEXT:   Executed: 1c447# CHECK-NEXT:   Critical: 1c, 3 MOps448# CHECK-NEXT:   ExpectedLatency: 0c449# CHECK-NEXT:   - Latency limited.450# CHECK-NEXT: CortexA55UnitALU(0) = 1451# CHECK-NEXT: CortexA55UnitALU(1) = 0452# CHECK-NEXT: CortexA55UnitB(0) = 4294967295453# CHECK-NEXT: CortexA55UnitDiv(0) = 4294967295454# CHECK-NEXT: CortexA55UnitFPALU(0) = 4294967295455# CHECK-NEXT: CortexA55UnitFPALU(1) = 4294967295456# CHECK-NEXT: CortexA55UnitFPDIV(0) = 4294967295457# CHECK-NEXT: CortexA55UnitFPMAC(0) = 4294967295458# CHECK-NEXT: CortexA55UnitFPMAC(1) = 4294967295459# CHECK-NEXT: CortexA55UnitLd(0) = 4294967295460# CHECK-NEXT: CortexA55UnitMAC(0) = 4294967295461# CHECK-NEXT: CortexA55UnitSt(0) = 4294967295462# CHECK-NEXT: ** ScheduleDAGMILive::schedule picking next node463# CHECK-NEXT: *** Final schedule for %bb.0 ***464# CHECK-NEXT:  * Schedule table (BottomUp):465# CHECK-NEXT:   i: issue466# CHECK-NEXT:   x: resource booked467# CHECK-NEXT: Cycle              | 1 | 0 |468# CHECK-NEXT: SU(0)              | i |   |469# CHECK-NEXT:   CortexA55UnitALU | x |   |470# CHECK-NEXT: SU(1)              |   | i |471# CHECK-NEXT:   CortexA55UnitALU |   | x |472# CHECK-NEXT: SU(2)              |   | i |473# CHECK-NEXT:   CortexA55UnitALU |   | x |474# CHECK-NEXT: SU(0) [TopReadyCycle = 0, BottomReadyCycle = 1]:   $x3 = ADDXrr $x0, $x0475# CHECK-NEXT: SU(1) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $x4 = ADDXrr $x1, $x1476# CHECK-NEXT: SU(2) [TopReadyCycle = 0, BottomReadyCycle = 0]:   $x5 = ADDXrr $x2, $x2477# CHECK-EMPTY:478# CHECK-NEXT: ********** INTERVALS **********479# CHECK-NEXT: W0 [0B,16r:0) 0@0B-phi480# CHECK-NEXT: W1 [0B,32r:0) 0@0B-phi481# CHECK-NEXT: W2 [0B,48r:0) 0@0B-phi482# CHECK-NEXT: W0_HI [0B,16r:0) 0@0B-phi483# CHECK-NEXT: W1_HI [0B,32r:0) 0@0B-phi484# CHECK-NEXT: W2_HI [0B,48r:0) 0@0B-phi485# CHECK-NEXT: RegMasks:486# CHECK-NEXT: ********** MACHINEINSTRS **********487# CHECK-NEXT: # Machine code for function f: IsSSA, NoPHIs, TracksLiveness, NoVRegs488# CHECK-EMPTY:489# CHECK-NEXT: 0B	bb.0:490# CHECK-NEXT: 	  liveins: $x0, $x1, $x2491# CHECK-NEXT: 16B	  $x3 = ADDXrr $x0, $x0492# CHECK-NEXT: 32B	  $x4 = ADDXrr $x1, $x1493# CHECK-NEXT: 48B	  $x5 = ADDXrr $x2, $x2494# CHECK-EMPTY:495# CHECK-NEXT: # End machine code for function f.496