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

BL

Test 1: uops

Code:

  bl .+4

(no loop instructions)

1000 unrolls and 1 iteration

Retires: 1.000

Issues: 1.000

Integer unit issues: 1.000

Load/store unit issues: 0.000

SIMD/FP unit issues: 0.000

retire uop (01)cycle (02)031e3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60616d6emap rewind (75)map stall (76)dispatch uop (78)map int uop (7c)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch call (8e)inst branch taken (90)l1d tlb miss (a1)l1d cache writeback (a8)accfd0d2d5map dispatch bubble (d6)ddfetch restart (de)e0f5f6f7f8fd
1004181816035251000100010005000036202219543161000100018962801110011000100010000001946004651054400437199719411973189318951945
100417861403525100010001000500058019661844318100010001872312111001100010001000000193000434984474450192120511907182119551993
100420141503525100010001000500015401954193431810001000179426811100110001000100000018905824355920461463179119591897190519311951
100419501403525100010001000500004119801904318100010001844302111001100010001000000188000434894444385190919511779200919531967
100420081503525100010001000500005819721860318100010001952268111001100010001000000189200486914434464192719111839194919591949
1004193614033251000100010005000154019941950318100010001948262111001100010001000000193400446970405449188519551973198518351933
1004193015035251000100010005000560187218143181000100019442661110011000100010000101960418449850390457180520511947178519351949
10042014140352510001000100050000581984191231610001000192026411100110001000100000019385818438836440452191719391983190719872031
10041960150352510001000100050000581916195031810001000193230411100110001000100000018325818461826411453182917971943197119671977
1004201215035251000100010005000058193419383181000100019303181110011000100010000001882630467836412442182120711931181719651943

Test 2: throughput

Count: 8

Code:

  bl .+4
  bl .+4
  bl .+4
  bl .+4
  bl .+4
  bl .+4
  bl .+4
  bl .+4

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

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

retire uop (01)cycle (02)03mmu table walk instruction (07)l2 tlb miss data (0b)1e3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)6061696a6b6d6emap rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch call (8e)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d cache writeback (a8)a9acbranch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfd0d2d5map dispatch bubble (d6)ddfetch restart (de)e0? int retires (ef)f5f6f7f8fd
80204811526060002828801058010580107400530021497765108073880744610801078020720080730232118020180100800008009910010010000011180737216397689323297807241008072280713807348073180756
802048073260500028278010580105801074005305411497763108073180749710801078020720080857230118020180100800008009910010010000011180721116286637326297807221008074780754807628077080713
80204807286050002827801058010580107400530149049776580807328074861080107802072008075722811802018010080000800991001001000001118072806294589288297807231008075380769807208071580713
802048071460400028278010580105801074005305411497765708073280745610801078020720080718222218020180100800008009910010010000011180705216299615314324807281008073380721807598072580761
80204807446050002827801058010580107400530541149777000807628078461080107802072008075722411802018010080000800991001001000001118071107315593294306807071008072480719807508077980743
802048074060400028278010580105801074005301490497762708073480756610801078020720080748226118020180100800008009910010010000011180697167336617283315812951008071580759807618073580733
80204807176050092827801058010580107400530142049776400807108069661080107802072008071722411802018010080000800991001001003001118070368321673292313807051008075980780807918072480753
80204807486040002827801058010580107400530016497762808077480738610801078020720080776232118020180100800008009910010010000011180767010307611301276807191008073180725807318070180754
802048073660500013228801058010580107400530149049776640807348072461080107802072008075823211802018010080000800991001001000001118070006304615298306807351008074580753807178074880768
8020480779605000282880105801058010740053052649776743807628078161080107802072008076222611802018010080000800991001001000001118074106317675311290807651008072280735806998072680741

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03181e1f3a3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)6061696a6b6d6emap rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map int uop inputs (7f)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch call (8e)inst branch taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)ld unit uop (a6)l1d cache writeback (a8)acbranch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfd0d2d5map dispatch bubble (d6)ddfetch restart (de)e0? int retires (ef)f5f6f7f8fd
8002423854817860000282880011800118001240005807492352700238338238320619800128002220238326474118002180010800008000910101000001112382397279017158302790857910623828410238239238149238179238106238219
8002423818217840000282880011800118001240005807492352380238312238264610800128002220238164470118002180010800008000910101000001112381140079048158258790117904623810510238215238145238189238115238139
8002423803017840000342880011800118001240005807492350660237892238202610800128002220238126468118002180010800008000910101000001112381867278880158152790287901723808110238115238199238105238155238233
8002423800117830001342880016800118001240005807492350740238092238176610800128002220238022468218002180010800008000910101000101112379687279037158070790057901123806110238087238117238043238091238151
8002423806617830001699288001180011800124000581570492350080238053238132610800128002220238166466118002180010800008000910101000001112380447279033158032790487895423811510237955238077238039238027238055
8002423809317840001342880011800118001240005807492349550237980238090610800128002220237952470118002180010800008000910101000001112380767278978157928789707897023800910238061238041238015237965238035
8002423811017820000699288001180011800124000581570492349740238120237992610800128002220238018464118002280010800008000910101000001112380040079027158018790227903223806710238057238131237981238061238029
8002423801817830001343980011800118001240005807492349570238087238080610800128002220238008470118002180010800008000910101000001112380000079025158048789747899423795510237975238059238017238063238089
8002423807617830001888288001180011800124000581570492350403238034238084610800128002220238114464118002180010800008000910101000001112381080079013158008790127902623815110238037238113238051238015238011
8002423800017840300028288001180011800124000580124923502402380802380806108001280022202380704681180021800108000080009101010000011123810012279006157982790127903523803710237987238021237973238043238029