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

MOVN (32-bit)

Test 1: uops

Code:

  movn 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)03181e3f51606d6emap 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)accfd0map dispatch bubble (d6)e0ea? int retires (ef)f5f6f7f8fd
400452840028525052852831010005289511400110000026001652501000529529529529529
400452841028525152852831010005289511400110000026001652501000529529529529529
400452840028525052852831010005289511400110000026001652501000529529529529529
400452840928525052852831010005289511400110000026001652501000529529529529529
400452840028525052852831010005289511400110000026001652501000529529529529529
400452840028525052852831010005289511400110000026002552501000529529529529529
400452840028525052852831010005289511400110000026001652501000529529529529529
400452840328525152852831010005289511400110000026001652501000529529529529529
400452840028525052852831010005289511400110000026001652501000529529529529529
400452840028525152852831010005289511400110000026001652501000529529529529529

Test 2: throughput

Count: 8

Code:

  movn w0, #0x1234, lsl 16
  movn w1, #0x1234, lsl 16
  movn w2, #0x1234, lsl 16
  movn w3, #0x1234, lsl 16
  movn w4, #0x1234, lsl 16
  movn w5, #0x1234, lsl 16
  movn w6, #0x1234, lsl 16
  movn 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)191e1f3f51schedule 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 miss (a1)l1d cache writeback (a8)accfl1i cache miss demand (d3)d5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)? int retires (ef)f5f6f7f8fd
802041009081000007725600506005060050300250149698010064100772118600508020020010060351180201100991008010010000051120216221005759950801001006110061100611006110061
80204100607700000352560050600506005030025004969801006010060318600508020020010060351180201100991008010010000051120216221005759950801001006110061100611006110061
8020410136790001203525600506005060050300250049698010060100603186005080200200100603511802011009910080100100032651120216221005759950801001006110061100611006110061
80204100607800000352560050600506005030025014969801006010060318600508020020010060351180201100991008010010008651120216221005759950801001006110061100611006110061
802041006078000003525600506005060050300250149698010060100603186005080200200100603511802011009910080100100025051120216221005759950801001006110061100611006110061
80204100607800000352560050600506005030025014969801006010060318600508020020010060351180201100991008010010000351120216221005759950801001006110061100611006110061
802041006078000120352560050600506005030025004969801006010060318600508020020010060351180201100991008010010000051120216221005759950801001006110061100611006110061
80204100607801030352560050600506005030025014969801006010060318600508020020010060351180201100991008010010000051120216221005759950801001006110061100611006110061
80204100607800000352560050600506005030025004969801006010060318600508020020010060351180201100991008010010000051120216221005759950801001006110061100611006110061
80204100607800000352560050600506005030025014969801006010060318600508020020010060351180201100991008010010000351120216221005759950801001006110061100611006110061

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03mmu table walk data (08)09l2 tlb miss data (0b)1e3a3f51schedule 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)accdcfd5map dispatch bubble (d6)d9ddfetch restart (de)e0? int output thing (e9)eb? int retires (ef)f5f6f7f8fd
8002410054780000035256000460004600043000201496958100381003831860004800202010038351180021109108001010000502551606610035599940800101003910039100391003910039
8002410038780000077256000460004600043000200496958100381003831860004800202010038351180021109108001010030502541604510035599940800101003910039100391003910039
8002410038780000035256000460004600043000200496958100381003831860004800202010038351180021109108001010000502561604410035599940800101003910039100391003910039
80024101837800000352560004600046000430002004969581003810038318600048002020100383511800211091080010100630504851605510035599940800101003910039100391003910039
80024100388100000352560004600046000430002004969581003810038318638288002020100383511800211091080010101200502551605510035599940800101003910039100391003910039
8002410038780000035256000460004600043000201496958100381003831860004800202010038351180021109108001010100502551605510035599940800101003910039100391003910039
8002410038770000035256000460004600043000200496958100381003831860004800202010038351180021109108001010000502761605510035599940800101003910039100391003910039
800241003878000120772560004600046000430002004969581003810038318600048002020100383511800211091080010100540502561606610035599940800101003910039100391003910039
8002410123781010035256000460004600043000200496958100381003831860004800202010038351180021109108001010000502561605610035599940800101003910039100391003910039
8002410038770000035256000460004600043000201496958100381003831860004800202010038351180021109108001010030502561606610035599940800101003910039100391003910039