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

MOVZ (32-bit)

Test 1: uops

Code:

  movz w0, #0x1234, lsl 16
  nop ; nop ; nop

(no loop instructions)

1000 unrolls and 1 iteration

Retires (minus 3 nops): 1.000

Issues: 0.000

Integer unit issues: 0.000

Load/store unit issues: 0.000

SIMD/FP unit issues: 0.000

retire uop (01)cycle (02)031e3f51606d6emap rewind (75)map stall (76)map int uop (7c)8283flush restart other nonspec (84)85inst all (8c)inst int alu (97)l1d cache writeback (a8)accfl1i cache miss demand (d3)l1i tlb miss demand (d4)d5map dispatch bubble (d6)ddfetch restart (de)e0? int retires (ef)f5f6f7f8fd
40045284028525152852831010005289511400110000026500916655251000529529529529529
40045284028525152852831010005289511400110000026600516555251000529529529605571
40045284028525152852831010005289511400110000026500716555251000529529529529529
40045284028525152852831010005289511400110000026500716555251000529529529529529
40045284028525152852831010005289511400110000026500716555251000529529529529529
40045284028547152852831010005289511400110000026500616555251000529529529529529
40045284028525152852831010005289511400110000026500716555251000529529529529529
40045284028525152852831010005289511400110000026501616555251000529529529529529
40045284028525152852831010005289511400110000026500716555251000529529529529529
40045284028525152852831010005289511400110000026500816555251000529529529529529

Test 2: throughput

Count: 8

Code:

  movz w0, #0x1234, lsl 16
  movz w1, #0x1234, lsl 16
  movz w2, #0x1234, lsl 16
  movz w3, #0x1234, lsl 16
  movz w4, #0x1234, lsl 16
  movz w5, #0x1234, lsl 16
  movz w6, #0x1234, lsl 16
  movz w7, #0x1234, lsl 16

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

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

retire uop (01)cycle (02)0309l2 tlb miss data (0b)1e1f3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap 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 taken (90)inst branch cond (94)inst int alu (97)9fl1d cache writeback (a8)accfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
80204100927800003525600506005060050300250149698010060100603186005080200200100603511802011009910080100100005115416551005759950801001006110061100611006110061
80204100607800003525600506005060050300250149698010060100603186005080200200100603511802011009910080100100005115516651005759950801001006110061100611006110061
80204100607700003525600506005060050300250149698010060100603186005080200200100603511802011009910080100100005158516571005760111801001006110061100611006110061
80204100607810003525600506022160050300250149698010060100603186005080200200100603511802011009910080100100005115616551005759950801001006110061100611006110061
80204100607800003525600506005060050300250149698010060100603186005080200200100603511802011009910080100100005115516531005759950801001006110061100611006110061
80204100607800603525600506005060050300250149698010060100603186005080200200100603511802011009910080100100005115516651005759950801001006110061100611006110061
802041006078001503525600506005060050300250149698010060100603186005080200200100603511802011009910080100100035115516551005759950801001006110061100611006110061
802041006081001206325600506005060050300250149698010060100603186005080200200100603521802011009910080100100005115516551005759950801001006110061100611006110061
80204100608000303525600506005060050300250149698010064100643186005080200200100603511802011009910080100100005116616551005759950801001006110061100611006110061
80204100607800003525600506005060050300250149698010060100603186005080200200100603511802011009910080100100035116316551005759950801001006110061100611006110061

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)031e3f51schedule uop (52)schedule int uop (53)dispatch int uop (56)int uops in schedulers (59)60696a6d6emap 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 taken (90)inst branch cond (94)inst int alu (97)9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache writeback (a8)accfd5map dispatch bubble (d6)dbddfetch restart (de)e0? int output thing (e9)eaebec? int retires (ef)f5f6f7f8fd
8002410054780352560004600046000430002004969581003810038318600048002020100383511800211091080010100003502681606410035599940014800101003910039100391003910039
8002410038780351006000460004600043000200496958100381003831860140800202010038351180021109108001010000350266160751003559994008800101003910039100391003910039
8002410038770772560004600046000430002004969581003810038318600048002020100383511800211091080010100000502441604610035599940011800101003910039100391003910039
80024100387807725600046000460004300020149695810038100383186000480020201003835118002110910800101000320502441604610035599940013800101003910039100391003910039
8002410038771235256000460004600043000200496958100381003831860004800202010038351180021109108001010000050246160641003559994009800101003910039100391003910039
8002410038780562560004600046000430002004969581003810038318600048002020100383511800211091080010100010502661606610035599940250800101003910039100391003910039
800241003881035256000460004600043000200496958100381003831860004800202010038351180021109108001010000050235160551003559994060800101003910039100391003910039
800241003878035256000460004600043000200496958100381003831860004800202010038351180021109108001010000050255160531003559994050800101003910039100391003910039
800241003878035256000460004600043000200496958100381003831860004800202010038351180021109108001010000050255160531003559994070800101003910039100391003910039
800241003878035256000460004600043000200496958100381003831860004800202010038351180021109108001010000050255160641003559994060800101003910039100391003910039