Apple Microarchitecture Research by Dougall Johnson

M1/A14 P-core (Firestorm): Overview | Base Instructions | SIMD and FP Instructions
M1/A14 E-core (Icestorm):  Overview | Base Instructions | SIMD and FP Instructions

LDR (literal, Q)

Test 1: uops

Code:

  ldr q0, .+4

(no loop instructions)

1000 unrolls and 1 iteration

Retires: 1.000

Issues: 1.000

Integer unit issues: 0.000

Load/store unit issues: 1.000

SIMD/FP unit issues: 0.000

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0e0f1e2022233a3e3f404346494f51schedule uop (52)schedule ldst uop (55)dispatch ldst uop (58)simd uops in schedulers (5a)60696d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map ldst uop (7d)8283flush restart other nonspec (84)85inst all (8c)inst simd load (98)inst ldst (9b)9dl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafldst x64 uop (b1)b5b6bbl1d cache miss ld nonspec (bf)c2cfd5map dispatch bubble (d6)ddfetch restart (de)e0e7eaebec? ldst retires (ed)f5f6f7f8fd
1004398310000022000603794000725100010001000145430367384392197324210001000392385111001100010000100000381032000641101618612232190731161138109951000393411386385393
1004392310000144410303785000425100010001000145540359384396205325210001000385392111001100010000100501381016700016104518618149380731161138109951000389418395393393
10043923000010441710303690000142510001000100014571035939239220732511000100039339411100110001000010000019101650131416104418612216380731161138209941000395385393393385
1004384300000045700203855000825100010001000145630359384384208324210001000392393111001100010000100500191016170001610381866117190731161138907951000385386385385386
1004385300000044171020369000014251000100010001453613603843942153241100010003843921110011000100001012003810348081632104418612232380731161138109951000394385395393386
10043922100000237003037813100825100010001000145360360392385207324110001000384384111001100010000100000381016000016101618612135190731161138209751000395393393385385
1004392301000022510203770300725100010001000150000368394384207324210001000385392111001100010000101200571016120131016104518612216380731161138109951000385393386385386
10043843000000450003036900001125100010001000145710368385384207325010001000384392111001100010000100000191016000032103218612132380731161139009951000393395385393385
100439330000002300000377113001125100010001000145360359394393216325010001000384392111001100010000100400381034100101216101618612216190731161138109951000393386384394385
100438430000002212102036904001425100010001000149470369384385216324210001000393384111001100010001101300391016120131632104318612216380731161138909951000401385393395385

Test 2: throughput

Count: 8

Code:

  ldr q0, .+4
  ldr q0, .+4
  ldr q0, .+4
  ldr q0, .+4
  ldr q0, .+4
  ldr q0, .+4
  ldr q0, .+4
  ldr q0, .+4

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code divided by count): 0.3341

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0e0f1e1f2022233a3e3f404346494f51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)696d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int alu (97)inst simd load (98)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafldst x64 uop (b1)b5b6bbl1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0e7eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
8020426738200162000063061018502671103005258010010080000100800005001167711266982672426726166473167728010020080000200267232673311802011009910010080000800000100803857723880064901648448011715000172521919353443511021622267340475800001002673226739267292673026738
8020426733200120108106501310840267134267162580100100800001008000050011673772669826726267271666131679780100200800002002672426723118020110099100100800008000001008024320338800513970395045801681500061381919111155511021622267270710800001002672926731267272673026725
802042673420011713200460510310267095100102580100100800001008000050011674162671026728267291665531678880100200800002002673026734118020110099100100800008000001008006713725480065891520638802521500061381919341469511021622267233302800001002672526732267292672426730
8020426731200141058005006101440267173202925801001008000010080000500116730526700267252672416646316786801002008000020026729267331180201100991001008000080000010080148170335800471660274040801691500061471919419115511021622267260772800001002672926725267272673126725
802042673120111116200520500164426723622012258010010080000100800005001166105266992672526728166523167838010020080000200267282672911802011009910010080000800000100800774056388003841502390448027515000122453519226148511021622267241745800001002672726724267302672726726
802042673020019804004703101930267209500725801001008000010080000500117109626706267242672416645316828801002008000020026725267291180201100991001008000080000010080123213238800661252389067802511500061381919477420511021622267232714800001002672726726267272672426726
802042672620017013000460510163026720457012258010010080000100800005001167549267052672526728166523167818010020080000200267352673911802011009910010080000800000100801582744198003846013846398030215000122513819526459511021622267220775800001002672826726267262672526724
802042672720014501500670410122026709525052580100100800001008000050011752812670026723267261665031678380100200800002002672526726118020110099100100800008000001008017959338800631480984528011115000122543819175324511021622267212775800001002672726723267232672526730
80204267262001661115004301310149026723440062580100100800001008000050011686002669926732267271664431678180100200800002002672426725118020110099100100800008000001008042246053880052477099037802921500061381919422317511021622267280214800001002672626728267262672526726
802042672420017812100860130030267133200625801001008000010080000500116749526699267252672316648316796801002008000020026725267231180201100991001008000080000010080637271238800533400365037802371500061361919309286511021622267202742800001002673426738267262672626726

1000 unrolls and 10 iterations

Result (median cycles for code divided by count): 0.3476

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0e0f1e1f2022292b3a3e3f404346494f51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)60696d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)92inst branch cond (94)inst int alu (97)inst simd load (98)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)a5ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafldst x64 uop (b1)ldst xpg uop (b2)b5b6bbbel1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0e7? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
80024279552091141107370143100151122776610016062949532580010108000010800005012183281277342775927856177833178338001020800002027752278721180021109010108000080000010801872017493656806901373174146708080715000301411495230305194811450201616121127790119031211680000102785027791278692781427783
8002427807208111100778084156015642775279179845192525800101080000108000050121928902779127769277841772131782380010208000020278562781911800211090101080000800000108024319304506608066620711357284880790150003081187763043719101450201216121227812107017271280000102782627795277872784527842
80024278212071100008010970002084277765917442629112580010108000010800005012171240277752783627837178193178068001020800002027775278001180021109010108000080000010802151912369680807141362138405918061515000309016619302611917750201116131127829122022181280000102784127833278112781927809
80024278142081611008830166100591082779010418611310293225800101080000108000050121620512779827851277881776531778080012208000020278152788411800211090101080000800000108027020112636618069678111940675808381500030931578030338193448502011161072779611301019980000102776927790277762780127771
800242776620810200089601160320186027784120161764890125800101080000108000050121658802775327747277621779831774980010208000020278032781211800211090101080000800000108022719163566668097214951085275680659150003011416621303531926355020121612122781413402215980000102779127734278002775727774
800242777420811110185101051002010828449119210685592125800101080000108000050121918912771927810277581778831781280010208000020278462785011800211090101080000800000108019320177386668074716501534473380967150003083156753033719514250201316111227813119021111080000102779327832278352782527760
8002427772208103000738073000312827793115163831039102580010108000010800005012203930278062786027783177473178058001020800002027795278331180021109010108000080000010802272874356728077313132092480880995150003011216802303991932485020111610827851114026171280000102781727847278242786627809
8002427866208121000775011210016922775711916972558692580010108000010800005012170690277572776527739176773177938001020800002027775278101180021109010108000080000010801323012419670806771582138186628065415000308096143032419384050201216111327867130016131980000102782227783277632776127787
800242782120711000080809210012882780012416871779242580010108000010800005012176570277332776027763177183177458001020800002027792278171180021109010108000080000010801722019498670807551573156186608082415000301471267330319194918150201116121127810125035271280000102781927828277802780527787
800242783320813010077707625612064277681221927664927258001010800001080000501220050027799277772777817785241792380010208000020278762791211800211090101080000800000108018121243466638082111521070731808021500030102258663028719913650201216111127794115024141380000102794927770278582782527763