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, 64-bit)

Test 1: uops

Code:

  ldr x0, .+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)03mmu table walk data (08)09l2 tlb miss data (0b)0e1e20223a3e3f404346494f51schedule uop (52)schedule ldst uop (55)dispatch ldst uop (58)simd uops in schedulers (5a)606d6emap 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 int load (95)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)cfd5map dispatch bubble (d6)ddfetch restart (de)e0e7eaebec? ldst retires (ed)f5f6f7f8fd
1004393300001800003650011325100010001000147041382381204324810001000380631110011000100001006005010237070231038621232233733161138507001000388394394395389
100438731010540010372000192510001000100015420138738721032461000100038770111001100010000100000461012700611103562611233731161138400001000383389388388389
10043813000034120003724001102510001000100014776138238121032451000100038770111001100010000100000331012008012102262622217731161138400001000388388389382383
1004387310103400003660010102510001000100015207138738821032401000100038162111001100010000100000181012707025103062611233731161137807001000382389388383388
10043812000034100003780011102510001000100015374138238821032401000100038870111001100010000100000181012000012103562621217731161138100001000388389388383382
10043813000043000036650114251000100010001494003803872103239100010003806211100110001000110240018101200120121031621222233731161137900021000382388381401383
1004381300001851103720010425100010001000149550381382204325110001000381621110011000100001000001810220000131032621212217731161137807601000388388394390381
1004387300104081003730000102510001000100014847038738220432391000100038862111001100010000100000181013710012103162611217731161137900001000382382383383383
1004382300001800003730011625100010001000143410380380209323810001000388631110011000100001000003310120000221012621832217731161138600001000383395389388383
1004387310001800003670011102510001000100014362138738220432391000100040170111001100010000100000351022000012103262611217731161139000001000382383382381383

Test 2: throughput

Count: 8

Code:

  ldr x0, .+4
  ldr x0, .+4
  ldr x0, .+4
  ldr x0, .+4
  ldr x0, .+4
  ldr x0, .+4
  ldr x0, .+4
  ldr x0, .+4

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

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

retire uop (01)cycle (02)03mmu table walk data (08)l2 tlb miss data (0b)18191e20223a3e3f404346494f51schedule 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)696a6d6emap 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 load (95)inst int alu (97)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)b5b6bbl1d cache miss ld nonspec (bf)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0e7eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
8020426736200291004140183026703610062580100100802601008000050011672634923635267212671516636316674801002008000020026714621180201100991008000010080000010080152430340800244360538022800925000622217272332511031633267101662800001002672126717267172672226715
80204267202002359002200721626707000052580100100800001008000050011671084923641267142672116637316672801002008000020026715561180201100991008000010080000010080387128034080023142056801380184500062133384377511031633267130602800001002671526723267152671526722
8020426720200834600241604202670000006258010010080000100800005001165514492363526715267161664331667480100200800002002671456118020110099100800001008000011008045511500800232221479023802745000611233160366511031633267041660800001002671626721267162671626722
80204267142006758001901231226706010052580100100803901008000050011673264923636267152671516637316674801002008000020026715561180201100991008000010080000010080466110336080023381132101680295500061110409332511031633267230702800001002672326722267222672126728
80204267212000000205014116266990000425801001008000010080000500116671549236422671426714166433166728010020080000200267146311802011009910080000100800000100800061054510800241620585016802735000611317479345511031633267130702800001002673426715267162671626715
802042672120077630041601991626699001092580100100800001008000050011715154923642267202672116647316681801002008000020026708561180201100991008000010080000010080329209150080035283077024802795000622317276245511031633267190762800001002672126722267222672226721
8020426713200742900340018026773101004258010010080000100800005001166840492364026724267161664631667380100200800002002672662118020110099100800001008000001008057100360800251041352024801045000622233392115511031633267220702800001002672127179267312672826722
8020426720200680003400702671460104258010010080000100800005001167881492365626730267231664031668080100200800002002671470118020110099100800001008000001008011001170800345090870358016050001211233482501511031633267170762800001002673226716273132671526715
802042672120079600500000267065210325801001008000010080000500116663249236462671526757170593166728010020080000200267215611802011009910080000100800000100803376410080025482011510218002150001211133396450511031633267181762800001002672826729267242672226721
8020426723200147200360011402675300225025801001008000010080000500116693649236402671426722166402116672801002008000020026713621180201100991008000010080000010080302915108002713404280178027750001812317102307511031633267240662800001002672226723267172671626723

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0f1e2022292b3a3e3f404346494f51schedule 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)60696a6d6emap 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 load (95)inst int alu (97)inst ldst (9b)9fl1d 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)c2c3cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0e7eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
80024276972060003116161031002615227495133108963924702580010108013010800005012041601492442227478274641747031744180010208000020275967011800211090108000010800001080129013497190814091664171161386816335000101672914671033103555050201716910275721430161180000102749227470275232748127400
80024274612060000015471031091288274181149613515553325800101080000108000050120339504924383274802749117403317482800102080000202755375118002110901080000108000010802090173951918150612529772137081535500010841614551025201022605020616101027440162422680000102749627493274852749027501
800242742820500100153312710130402754411512026210753425800101080000108000050120313804924415274702750917457317442800102080000202762575118002110901080000108000010802200144791838126674112740146581698500010106241372103270465050521216612274752234161980000102745527462274652750027442
8002427492206000001629211001580274458411585710650825800101080000108000050120402104924399274762744417402317414800102080000202760975118002110911080000108000010801560166891928147814331252414508154750001077221457103650400050201116131227427161310780000102749627457274582751427446
800242744020600000150012810112442749154102514015352525800101080000108000050120352104924365274092744517389317409800102080000202757178118002110901080000108000010801500134731898149311523801433817115000109119146510406099915020121671327448172713980000102752027550274762750127544
800242746020500200146585100256427471125110599535212580010108000010800005012053070492434027437274681736231736380010208000020276487511800211090108000010800001080188016490183815231184132441567814095000107815141810274033530502011161111275311622161380000102744727537275152749227562
8002427463206000001629560002902745312311285011552825800101080000108000050120703904924445274592757117389317473800102080000202761275118002110901080000108000010801620163721828146412811401814158152350001094161491104360302205020101611927513181316480000102743927443274522748027501
80024275042060100016451501002064274569791666150511258001010800001080000501202882049245352749127478174373174668001020800002027621701180021109010800001080000108024409489192813761252213901497814765000107918144210326023119050201216101027451172629380000102749327490274822748027473
800242750720600100169614810027522746389106164144494258001010800001080000501206026149244022745927498173773174478001020800002027630751180021109010800001080000108013101049218981496144318312146681448500010982314321041202316605020716111027455152325880000102753227463275312761627499
800242749320501000162392100224827459631108671014862580010108000010800005012046101492445827521274901740031746580010208000020275378211800211090108000010800001080164214400182813971693134601404814945000109120163410273038650502012161110275211614331380000102744827503275292745727468