Apple M1 Microarchitecture Research by Dougall Johnson

Firestorm: Overview | Base Instructions | SIMD and FP Instructions
Icestorm:  Overview | Base Instructions | SIMD and FP Instructions

FMLA (by element, 8H)

Test 1: uops

Code:

  fmla v0.8h, v1.8h, v2.h[1]
  movi v0.16b, 1
  movi v1.16b, 2
  movi v2.16b, 3

(no loop instructions)

1000 unrolls and 1 iteration

Retires: 1.000

Issues: 1.000

Integer unit issues: 0.000

Load/store unit issues: 0.000

SIMD/FP unit issues: 1.000

retire (01)cycle (02)031e1f3f4e51inst issue (52)~issue fp/simd (54)~dispatch fp/simd (57)huge thing fp/simd (5b)60696d6edispatch stall (70)scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op fp/simd (7e)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst neon or fp (9a)a8accfd5d6ddinst fetch restart (de)e0? fp/simd (ee)f5f6f7f8fd
1004403730006134072510001000100053190814018403740373258338951000100030004037403711100110000073116113473100040384038403840384038
1004403730008434072510001000100053190804018403740373258338951000100030004037403711100110000073116113473100040384038403840384038
10044037312106134072510001000100053190804018403740373258338951000100030004037403711100110000073116113473100040384038403840384038
1004403730606134072510001000100053190804018403740373258338951000100030004037403711100110000073116113473100040384038403840384038
1004403730008234072510001000100053190804018403740373258338951000100030004037403711100110000073116113473100040384038403840384038
1004403731008234072510001000100053190814018403740373258338951000100030004037403711100110000073116113473100040844038403840384038
1004403731006134072510001000100053190804018403740373258338951000100030004037403711100110000073116113473100040384038403840384038
1004403730006134072510001000100053190814018403740373258338951000100030004037403711100110000073116113473100040384038403840384038
1004403730006134072510001000100053190804018403740373258338951000100030004037403711100110000073116113473100040384038403840384038
1004403730006134072510001000100053190814018403740373258338951000100030004037403711100110000073116113473100040384038403840384038

Test 2: Latency 1->1

Code:

  fmla v0.8h, v1.8h, v2.h[1]
  movi v0.16b, 1
  movi v1.16b, 2
  movi v2.16b, 3

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 4.0037

retire (01)cycle (02)03193a3f4e51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)60696b6d6edispatch stall (70)72scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa8accfd0d5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1020440037300006139407251010010010000100100005005706908140018040037400373810803387451010020010000200300004003740037111020110099100100100001000071002162239479100001004003840038402294003840182
10204400373000094339407251010010010000100100005005706908140018040037400373810803387451010020010000200300004003740037111020110099100100100001000071002162239479100001004003840038400384003840038
1020440037300006139407251010010010000100100005005706908140018040037400373810803387451010020010000200300004003740037111020110099100100100001000071012162239479100001004003840038400384003840038
1020440037300006139407251010010010000100100005005706908140018040037400373810803387451010020010000200300004003740037111020110099100100100001000071012162239479100001004003840038400384003840038
1020440037299006139407251010010010000100100005005706908140018340037400373810803387451010020010000200300004003740037111020110099100100100001000071012162239479100001004003840038400384003840038
1020440037300006139407251010010010000100100005005706908140018040037400373810803387451010020010000200300004003740037111020110099100100100001000071012162239479100001004003840038400384003840038
10204400373000165739407251011010010000100100005005706908140018040037400373810803387451010020010000200300004003740037111020110099100100100001000371012162239479100001004003840038400384003840038
1020440037300006139407251010010010000100100005005706908140018040037400373810803387451010021010000200300004003740037111020110099100100100001001071012162239479100001004003840038400384003840038
1020440037300006139407251010010010000100100005005706908140018040037400373810803387451010020010000200300004003740037111020110099100100100001000071012162239479100001004003840038400384003840038
1020440037300006139407251010010010000100100005005706908140018040037400373810803387451010020010000200300004003740037111020110099100100100001000071012162239479100001004003840038400384003840038

1000 unrolls and 10 iterations

Result (median cycles for code): 4.0037

retire (01)cycle (02)030818191e1f3f4e51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)60696d6edispatch stall (70)scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa8acc2cfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1002440037300000008239407251001010100001010000505706908140018400374003738130338767100102010000203000040037400371110021109101010000100210640216223947310000104003840038400384003840038
1002440037300000006139407251001010100001010000505706908040018400374003738130338767100102010000203000040037400371110021109101010000100270640316223947310000104003840038400384003840038
100244003730000000108394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001001440640216223947310000104003840038400384003840038
1002440037299000006139407251001010100001010000505706908040018400374003738130338767100102010000203000040037400371110021109101010000100120640216223947310000104003840038400384003840038
1002440085301000006139407251001010100001010000505706908040018400374003738130338767100102010000203000040037400371110021109101010000100240640216223947310000104003840038400384003840038
1002440037300000006139407251001010100001010000505706908040018400374003738130338767100102010000203000040037400371110021109101010000100900640216123947310000104003840038400384003840038
10024400372990000061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001001230640216223947310000104003840038400384003840038
10024400373000000061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001001710640216223947310000104003840038400384003840038
10024400373000000061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001055150640216223947310000104003840038400384003840038
100244003730000000613940725100101010000101000050570690804001840037400373813033876710010201000020300004003740037111002110910101000010100640324333947310000104003840038400384003840038

Test 3: Latency 1->2

Code:

  fmla v0.8h, v0.8h, v1.h[1]
  movi v0.16b, 1
  movi v1.16b, 2

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 4.0037

retire (01)cycle (02)031e3f4e51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)696b6d6edispatch stall (70)scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa8acbranch mispredict (cb)cfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1020440037300061394072510100100100001001000050057069084001804003740037381083387451010020010000200300004003740037111020110099100100100001000007102162239479100001004003840038400384003840038
1020440037300084394072510100100100001001000050057069084001804003740037381083387451010020010000200300004003740037111020110099100100100001000007102162239479100001004003840038400384003840087
10204400373010483394072510100100100001001000050057069084001804003740037381083387451010020010000200304984013140037111020110099100100100001000007102162239479100001004003840038400384003840038
102044003729912726394072510100100100001001000050057069084001804003740037381083387451010020010000200300004003740037111020110099100100100001001007102162239479100001004003840038400384003840038
10204400373000613940725101001001000010010000500570690840018040037400373810833874510100200100002003000040037400371110201100991001001000010011071907102162239479100001004003840038400384003840038
10204400372990258394072510100100100001001000050057069084001804003740037381083387451010020010000200300004003740037111020110099100100100001000007102162239479100001004003840038400384003840038
10204400373000214394072510100100100001001000050057069084001804003740037381083387451010020010000200300004003740037111020110099100100100001000007102162239479100001004003840038400384003840038
10204400372990542394072510100100100001001000050057069084001804003740037381083387451010020010000200300004003740037111020110099100100100001000007102162239479100001004003840038400384003840038
10204400372990512394072510100100100001001000050057069084001804003740037381083387451010020010000200300004003740037111020110099100100100001000007102162239479100001004003840038400384003840038
10204400373000297394072510100100100001001000050057069084001804003740037381083387451010020010000200300004003740037111020110099100100100001000007102162239479100001004003840038400384003840038

1000 unrolls and 10 iterations

Result (median cycles for code): 4.0037

retire (01)cycle (02)031e3f4e51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)60696b6d6edispatch stall (70)scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa8accfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
100244003730001453940725100101010000101000050570690804001804003740037381303387671001020100002030000400374003711100211091010100001000640416233947310000104003840038400384003840038
100244003730001703940725100101010000101000050570690804001804003740037381303387671001020100002030000400374003711100211091010100001000640316433947310000104008440038400384003840038
100244003729901663940725100101010000101000050570690804001804003740037381303387671001020100002030000400374003711100211091010100001000640316343947310000104003840038400384003840038
10024400373000823940725100101010000101000050570690804001804003740037381303387671001020100002030000400374003711100211091010100001000640316343947310000104003840038400384003840038
10024400373000843940725100101010000101000050570690804001804003740037381303387671001020100002030000400374003711100211091010100001000640416343947310000104003840038400384003840038
100244003730001263940725100101010000101000050570690804001804003740037381303387671001020100002030000400374003711100211091010100001000640316323947310000104003840038400384003840038
100244003730002453940725100101010000101000050570690804001804003740037381303387671001020100002030000400374003711100211091010100001000640416443947310000104003840038400384003840038
100244003730003903940725100101010000101000050570690804001804003740037381303387671001020100002030000400374003711100211091010100001000640216433947310000104003840038400384003840038
100244003730004793940725100101010000101000050570690804001804003740037381303387671001020100002030000400374003711100211091010100001000640416443947310000104003840038400384003840038
100244003730001703940725100101010000101000050570690804001804003740037381303387671001020100002030000400374003711100211091010100001000640416433947310000104003840038400384003840038

Test 4: Latency 1->3

Code:

  fmla v0.8h, v1.8h, v0.h[1]
  movi v0.16b, 1
  movi v1.16b, 2

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 4.0037

retire (01)cycle (02)031e3f4e51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)60696d6edispatch stall (70)scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa1a6a8accfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1020440037299034039407251010010010000100100005005706908140018400374003738108338745101002001000020030000400374003711102011009910010010000100100071011611394790100001004003840038400384003840038
102044003730006139407251010010010000100100005005706908140018400374003738108338745101002001000020030000400374003711102011009910010010000100000071011611394790100001004003840038400384003840038
102044003730006139407251010010010000100100005005706908140018400374003738108338745102662001000020030000400374003711102011009910010010000100000071011611394790100001004003840038400384003840038
102044003730008239407251010010010000100100005005706908140018400374003738108338745101002001000020030000400374003711102011009910010010000100000071011611394790100001004003840038400384003840038
102044003730006139407251010010010000100100005005706908140018400374003738108338745101002001000020030000400374003711102011009910010010000100000071011611394790100001004003840038400384003840038
102044003730007639407251010010010000100100005005706908140018400374003738108338745101002001000020030000400374003711102011009910010010000100000071011611394790100001004003840038400384003840038
102044003730006139407251010010010000100100005005706908140018400374003738108338745101002001000020030000400374003711102011009910010010000100000071011611394790100001004003840038400384003840038
102044003730006139407251010010010000100100005005706908140018400374003738108338745101002001000020030000400374003711102011009910010010000100000071011611394790100001004003840038400384003840038
1020440037300012439407251010010010000110102965005706908140018400374003738108338745101002001000020030000400374003711102011009910010010000100000071011611394790100001004003840038400384003840038
102044003730006139407251010010010000100100005005706908140018400374003738108338745101002001000020030000400374003711102011009910010010000100000071011611394790100001004003840038400384003840038

1000 unrolls and 10 iterations

Result (median cycles for code): 4.0037

retire (01)cycle (02)03081e3a3f4e51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)60696d6edispatch stall (70)scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa1a6a8acc5cfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
100244003730000061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001000000640216223947310000104003840038400384003840038
100244003729900061394072510010101000010100005057069081400184003740037381303387671001020100002030000400374003711100211091010100001000000640216223947310000104003840038400384003840038
100244003729900061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001000000640216223947310000104003840038400384003840038
100244003730000061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001000000640216223947310000104003840038400384003840038
1002440037300000103394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001000000640216223963910000104003840038400384003840038
100244003730000061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001000000640216223947310000104003840038400384003840038
100244003730000061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001000000640216223947310000104003840038400384003840038
100244003730000061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001000000640216223947310000104003840038400384003840038
100244003730000061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001000000640216223947310000104003840038400384003840038
100244003730000061394072510010101000010100005057069080400184003740037381303387671001020100002030000400374003711100211091010100001000000681216223947310000104003840038400384003840038

Test 5: throughput

Count: 8

Code:

  movi v0.16b, 0
  fmla v0.8h, v8.8h, v9.h[1]
  movi v1.16b, 0
  fmla v1.8h, v8.8h, v9.h[1]
  movi v2.16b, 0
  fmla v2.8h, v8.8h, v9.h[1]
  movi v3.16b, 0
  fmla v3.8h, v8.8h, v9.h[1]
  movi v4.16b, 0
  fmla v4.8h, v8.8h, v9.h[1]
  movi v5.16b, 0
  fmla v5.8h, v8.8h, v9.h[1]
  movi v6.16b, 0
  fmla v6.8h, v8.8h, v9.h[1]
  movi v7.16b, 0
  fmla v7.8h, v8.8h, v9.h[1]
  movi v8.16b, 9
  movi v9.16b, 10

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

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

retire (01)cycle (02)031e3f51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)60696d6escheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa8a9accfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
160204200901500842580100100800001008000050064000002004620065200653238010020080000200240000200712006511160201100991001001600001000101011491648200621600001002006620066200662006620066
1602042006515004025801001008000010080000500640000020046200652006532380100200800002002400002007020065111602011009910010016000010000010118416109200621600001002006620066200662006620066
160204200651500402580100100800001008000050064000002004620065200653238010020080000200240000200652006511160201100991001001600001000001011981697200621600001002006620066200662006620066
160204200651510402580100100800001008000050064000012004620065200653238010020080000200240000200732006511160201100991001001600001000001011991699200621600001002006620066200662006620066
160204200651500402580100100800001008000050064000002004620065200653238010020080000200240000200652006511160201100991001001600001000001011991749200621600001002006620066200662006620066
1602042006515005272580100100800001008000050064000002004620065200653238010020080000200240000200652006511160201100991001001600001000001011891699200621600001002006620066200662006620066
160204200651500402580100100800001008000050064000012004620065200653238010020080000200240000200702006511160201100991001001600001000001011991699200621600001002006620066200662006620066
160204200651500402580100100800001008000050064000002004620065200653238010020080000200240000200652006511160201100991001001600001000001011491699200621600001002006620066200662006620066
160204200651500402580100100800001008000050064000012004620065200653238010020080000200240000200652006511160201100991001001600001000001011491699200621600001002006620066200662006620066
160204200651500402580100100800001008000050064000012004620065200653238010020080000200240000200732006511160201100991001001600001000001011991698200621600001002006620066200662006620066

1000 unrolls and 10 iterations

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

retire (01)cycle (02)03070a1e1f3a3f51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)5f6061696d6escheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa1a8accdcfd0d2icache miss (d3)itlb miss (d4)d5d6d9dadbddinst fetch restart (de)e0? int output thing (e9)eaec? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
160024200991504200052278001212800001280000626400001152003320052200523238001220800002024000020246200521116002110910101600001000001003781102025211915200492201160000102005320053200532005320053
1600242005215100000732780012128000012800006264000011020033200522005232380012208000020240000202112005411160021109101016000010000010041311014254111514200492201160000102005320053200532006220053
1600242005215011000462780012128000012800006264000010020033200522005232380012208000020240000202222006111160021109101016000010000010031311015252111515200492201160000102006220053200532005320053
1600242005215011000462780012128000012800006264000010020042200522005232380012208000020240000201892005211160021109101016000010000010038811013342111313200492201160000102005320053200532005320053
1600242005215002000582780012128000012800006264000010520033200522005232380012208000020240000202042005411160021109101016000010000010038811016252111517200492201160000102005320053200532006220053
1600242005215101000812780012128000012800006264000010520033200522005232380012208000020240000201902006111160021109101016000010000010037321016252121413200492201160000102005320053200532005320053
1600242005215012000182278001212800001280000626400001152003320052200523238001220800002024000020174200611116002110910101600001000001003781108252111314200492401160000102005320053200532005320053
1600242005215011000522780012128000012800006264000010020033200522005232380012208000020240000201772006111160021109101016000010000010032721015252111414200492201160000102005320053200622005320053
1600242005215012000462780012128000012800006264000011520033200522005232380012208000020240000202032005211160021109101016000010000010037821014252111414200492201160000102005320053200532005320053
1600242005215011000522780012128000012800006264000011520033200522005232380012208000020240000201992005211160021109101016000010000010037811015252111315200492202160000102005320053200532005320053

Test 6: throughput

Count: 12

Code:

  fmla v0.8h, v12.8h, v13.h[1]
  fmla v1.8h, v12.8h, v13.h[1]
  fmla v2.8h, v12.8h, v13.h[1]
  fmla v3.8h, v12.8h, v13.h[1]
  fmla v4.8h, v12.8h, v13.h[1]
  fmla v5.8h, v12.8h, v13.h[1]
  fmla v6.8h, v12.8h, v13.h[1]
  fmla v7.8h, v12.8h, v13.h[1]
  fmla v8.8h, v12.8h, v13.h[1]
  fmla v9.8h, v12.8h, v13.h[1]
  fmla v10.8h, v12.8h, v13.h[1]
  fmla v11.8h, v12.8h, v13.h[1]
  movi v12.16b, 13
  movi v13.16b, 14

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

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

retire (01)cycle (02)03181e373f4e51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)696d6edispatch stall (70)72scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)91inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa8acc2c5cfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
12020540039300000613796625120101100120003100120000500585186941672416914003924932032499712031620012000020036000041686400391112020110099010010012000010000007610216114168301200001004004041692400404169240040
1202044003931200161996125120100100120000100120000500585186941672416914003924932032499712010020012000020036000041691400391112020110099010010012000010000007610116114003001200001004169240040416924004040040
1202044169130000361996125120100100120000100120000500585199341672416914003924932032499712010020012000020036000041691400391112020110099010010012000010000007610116114003001200001004169240040416924004041692
1202044168629900061996125120103100120001100120000500563064040020400394169126582032664912010020012000020036000041691400391112020110099010010012000010000007610116114003001200001004004041692400404169240040
1202044003931200082996125120100100120000100120000500585186941672416914003924932032499712010020012000020036000041686400391112020110099010010012000010000007610116114168301200001004004041692400404169240040
120204400393120002513796625120101100120001100120000500563064040020400394169126582032664912010020012000020036000040039416911112020110099010010012000010000007610116114003001200001004169240040416924004041692
12020441691299000613796625120101100120000100120000500563064040020400394003924932032499712010020012000020036000040039400391112020110099010010012000010000007610116114168301200001004004040040400404004040040
1202044003930000061996125120100100120001100120000500563064040020400394169126582032664912010020012000020036000040039400391112020110099010010012000010000007610116114003001200001004004040040400404004040040
12020440039300000613796625120101100120001100120000500563064040020400394169124932032664912032620012000020036000040039416911112020110099010010012000010000007610116114168301200001004004041692400404169240040
1202044003931200261996125120100100120000100120215500563064040020400394169126577032664912010020012000020036000040039400391112020110099010010012000010006007610116114003001200001004004041692400404004040040

1000 unrolls and 10 iterations

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

retire (01)cycle (02)03070a0b18191e1f373a3f4e51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)60696b6d6edispatch stall (70)scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa6a8a9acc2cfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
120024400393000000000006199612512001010120000101200005056306401400200400394003924955325019120010201200002036000040039400391112002110910101200001000000752012162412400300120000104004040040400404004040040
120024400393000000000006199612512001010120000101200005056306401400200400394003924955325019120010201200002036000040039400391112002110910101200001000000752024161024400300120000104004040040400404004040040
120024400392990000000006199612512001010120000101200005056306401400200400394003924955325019120010201200002036000040039400391112002110910101200001000000752024162423400300120000104004040040400404004040040
120024400393000000000006199612512001010120000101200005056306401400200400394003924955825019120010201200002036000040039400391112002110910101200001000000752024162424400300120000104004040040400404004040040
120024400393000000000006199612512001310120000101200005056306401400200400394003924955325019120010201200002036000040039400391112002110910101200001000000752024162424400300120000104004040040400404004040040
120024400393000000000006199612512001010120000101200005056306401400200400394003924955325019120010201200002036000040039400391112002110910101200001000000752024162424416273120000104162341347403944160241586
1200244157331220110913208801322344304672291208071412085717121763655688630141396041432410812579869253451219792012080522366606415894155512112002110910101200001000269682775525971230415183120000104157641496418914174741515
120024417073101201091452968140253529302170120802141208501312216061572984914163104099341165257526926464122176201200002036000040039400391112002110910101200001000000752026162626400300120000104004040040400404004040040
120024400393000000000006199612512001010120000101200005656306401400200400394003924955325019120010201200002036000040039400391112002110910101200001000000752014162614400300120000104004040040400404004040040
120024400393000000000005041996125120010101200001012000050563064014002004003940039249553250191200102012000020360000400394003911120021109101012000010055030755523162626400300120000104004040040400904004040040