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

STRB (register, sxtw)

Test 1: uops

Code:

  strb w0, [x6, w7, sxtw]
  mov x0, 0
  mov x7, 8

(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)l2 tlb miss data (0b)1f22233a3f46494f51schedule 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)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst int store (96)inst ldst (9b)l1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)a4ld unit uop (a6)st unit uop (a7)a9acafbcl1d cache miss st nonspec (c0)l1d tlb miss nonspec (c1)c2cfd5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)f5f6f7f8fd
10055544111191015391616225100010001000234601552554365341210001000300055255411100110001000101516440110161171002164414273216115491000555554552553564
10045634111170015371616225100010001000230281554554377341110001000300056455411100110001000101415440110160171002164414073116115481000555553552564564
10045544100210015391616225100010001000228841552554367341210001000300055255411100110001000101415440110162191002164414173116115481000554552553564555
10045554110190015391616125100010001000235080554552367341010001000300055455311100110001000101515440010161161002164414173116115481000555555554553553
10045524100180015361616225100010001000230281554554377341110001000300056455411100110001000101416440110161161002164414073116115511000554553553565555
10045544111170015391616625100010001000229081552555367341210001000300055455411100110001000101515440010161181002164414173116115511000555555555555554
10045524111180015371616225100010001000230281554554365341210001000300055255411100110001000101414440110160161002164414173116115511000555555553553553
10045634101190015371616125100010001000230281554553367341010001000300055455211100110001000101515440010160181002164414073116115511000555554552553564
10045634101190015381616125100010001000230041552554364341210001000300055155411100110001000101415440010161161002164414173116115491000554552553564555
10045544111170015391616125100010001000234391552554366341210001000300055355411100110001000101514440010160201002164414073116115491000553552564555555

Test 2: throughput

Count: 8

Code:

  strb w0, [x6, w7, sxtw]
  strb w0, [x6, w7, sxtw]
  strb w0, [x6, w7, sxtw]
  strb w0, [x6, w7, sxtw]
  strb w0, [x6, w7, sxtw]
  strb w0, [x6, w7, sxtw]
  strb w0, [x6, w7, sxtw]
  strb w0, [x6, w7, sxtw]
  mov x7, 8

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

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

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)l2 tlb miss data (0b)191e1f22233a3f46494f51schedule 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)60696a6b6d6emap 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)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int store (96)inst int alu (97)inst ldst (9b)9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)a4ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9acafbcl1d cache miss st nonspec (c0)l1d tlb miss nonspec (c1)c2branch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0? ldst retires (ed)? int retires (ef)f5f6f7f8fd
8020540040300111061410140044016300258016010080000100800065001839718149369720400584005029979729999801062008001620024078640059320001180201100991008000010080000100800151436028001601188000016014211151180160040055800001004005340059400534004940051
8020440059300110002100140035160025801001008000010080006500183981404936979040052400472996673001180107200800162002400484005932012118020110099100800001008000010080016150018001600148000016014111151180160040057800001004005840054400484005340059
8020440052300110001710140036160525801001008000010080006500184024614936978040052400582997873001080106200800162002400484005832011118020110099100800001008000010080014160028001601148000216014111151180160040058800001004005440059400534004840053
802044005730010000191014003616002580100100800001008000650018402281493696904004740058299677300038010720080016200240048400483200011802011009910080000100800001008001515360080016011480002163614211151180160040055800001004005940053400484005440060
8020440047300100061900140043161652580100100800001008000750018397181493697804004740047299667299998010620080016200240048400523200011802011009910080000100800001008001516360180014011480002163614111151180170040056800001004006140048400484005940059
80204400473001110018101400420072580100100800001008000750018397491493698004005840048299787299998010720080016200240048400583201111802011009910080000100800001008001515360080016011880002143614211151180160040044800001004005940051400604005240053
8020440047300110001810140044005258010010080000100800065001840296149369800400584005929978730002801072008001620024004840058320111180201100991008000010080000100800161436018001601198000216014111151180160140060800001004004840054400494004840048
80204400473001100019101400320160258010010080000100800075001839718149369770400584005829966730012801072028001620024004840047320011180201100991008000010080000100800141436008001601148000216014011151180160040049800001004004840059400534004940050
802044005930011200181014004316052580100100800001008000650018399581493697204004740051299697299998010620080016200240048400603200511802011009910080000100800001008001414342180016001780002163614011151180160040047800001004005840053400484005340060
8020440053300111001410140044161552580100100800001008000750018402751493697904004740059299717300118010620080016200240048400523200011802011009910080000100800001008001514362180014021480000163514011151180160040055800001004005940050400604005240053

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03l1i tlb fill (04)181e1f223f46494f51schedule 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)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int store (96)inst int alu (97)inst ldst (9b)9fl1d tlb access (a0)l1d cache miss st (a2)a4st unit uop (a7)l1d cache writeback (a8)acafbcl1d cache miss st nonspec (c0)c2cfd0d2l1i tlb miss demand (d4)d5map dispatch bubble (d6)daddfetch restart (de)e0ea? ldst retires (ed)? int retires (ef)f5f6f7f8fd
8002540052300000314002516160258001010800001080000501839352493696240050400402997533002280010208000020240000400424005111800211091080000108000010800003408000202800002340502000017160173140039080000104004140041400504004340050
8002440042300100304003616162258001010800001080000501839856493696040042400422997733002280010208000020240000400424004211800211091080000108000010800003408000212800020340502100116160142040037080000104005240041400414004340043
800244004230010091400251616025800101080000108000050183942449369624005140050299853300228001020800002024000040051400421180021109108000010800001080000008000202800022340502000016160171340039080000104004340043400434004340051
80024400422991003140025161602580010108000010800005018394244936962400494004229975330022800102080000202400004004240042118002110910800001080000108000000800020131800022340502100117160161640047080000104004340043400414004340043
800244004230010090400271616325800101080000108000050183942449369604005040040299773300228001020800002024000040049400401180021109108000010800001080000340800020280002200502000017160152340037080000104004340050400434005140041
800244004230010001400251616025800101080000108000050183935249369604004240040299773300208001020800002024000040042400401180021109108000010800001080000340800020080000200502100117160141440039080000104005240043400524004340041
8002440042300100604003516162258001010800001080000501839760493696240042400422997733002280010208000020240000400424004211800211091080000108000010800003408000008800020340502100116160141240042080000104004340052400414004140043
80024400422991000040027160025800101080000108000050183942449369624005140042299753300208001020800002024000040050400421180021109108000010800001080000008006202800002340502100117160172340042080000104004140041400434004140052
800244004230010030400251616025800101080000108000050183942449369624005040042299843300228001020800002024000040051400421180021109108000010800001080000008000010800022340502100117160151340037080000104004140043400434004340051
800244004229910031400251600258001010800001080000501839424493696040042400402998533002280010208000020240000400404004911800211091080000108000010800003408000200800020005021001181601834400392180000104004140043400434004340043