Apple M1 Microarchitecture Research by Dougall Johnson

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

MLA (vector, 16B)

Test 1: uops

Code:

  mla v0.16b, v1.16b, v2.16b
  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)033f4e51inst 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
10043037236125482510001000100039831313018303730372415328951000100030003037303711100110000673216112630100030383038303830383038
100430372261254825100010001000398313130183037303724153289510001000300030373037111001100002473116112630100030383038303830383038
10043037236125482510001000100039831313018303730372415328951000100030003037303711100110000073116112630100030383038303830383038
10043037236125482510001000100039831313018303730372415328951000100030003037303711100110000373116112630100030383038303830383038
10043037236125482510001000100039831313018303730372415328951000100030003037303711100110000073116112630100030383038303830383038
10043037236125482510001000100039831313018303730372415328951000100030003037303711100110000073116112630100030383038303830383038
10043037236125482510001000100039831313018303730372415328951000100030003037303711100110000073116112630100030383038303830383038
100430372361254825100010001000398313130183037303724153289510001000300030373037111001100003373116112630100030383038303830383038
10043037236125482510001000100039831313018303730372415328951000100030003037303711100110001073116112630100030383038303830383038
10043037226125482510001000100039831313018303730372415328951000100030003037303711100110000073116112630100030383038303830383038

Test 2: Latency 1->1

Code:

  mla v0.16b, v1.16b, v2.16b
  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): 3.0037

retire (01)cycle (02)0318191e1f3f4e51inst 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)6061696b6d6edispatch 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)9fa1a8acc5branch mispredict (cb)cdcfd0d2d5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
102043003722500006129548251010010010000100100005004277313133001803003730037282726287411010020010008200300243003730037111020110099100100100001000027631117203301600296460100001003003830038300383003830038
102043003722500006129548251010010010000100100005004277313133001803003730037282727287401010020010008200300243003730037111020110099100100100001000031117173301600296460100001003003830038300383003830038
102043003722500006129548251010010010000100100005004277313133001803003730037282726287411010020010008200300243003730037111020110099100100100001002001117173301600296460100001003003830038300383003830038
102043003722500006129548251010010010000100100005004277313133001803003730037282727287401010020010008200300243003730037111020110099100100100001000001117183301601296460100001003003830038300383003830038
102043003722500006129548251010010010000100100005004277313133001803003730037282726287401010020010008200300243003730037111020110099100100100001000000007104321622296340100001003003830038300383003830038
102043003722500006129548251010010010000100100005004277313133001803003730037282653287451010020010000200300003003730037111020110099100100100001000000007124321622296340100001003003830038300383003830038
1020430037225000028529548251010010010000100100005004277313133001803003730037282653287451010020010000200300003003730037111020110099100100100001000000007104321622296340100001003003830038300383003830038
102043003722500006129548251010010010000100100005004277313133001803003730037282653287451010020010000200300003003730037111020110099100100100001000000007104321622296340100001003003830038300383003830038
102043003722500606129548251010010010000100100005004277313133001803003730037282653287451010020010000200300003003730037111020110099100100100001000000007104321622296340100001003003830038300383003830038
102043003722400006129548251010010010000100100005004277313133001803003730037282653287451010020010000200300003003730037111020110099100100100001000000007104321622296340100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)03090b181e3f4e5051inst 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)9fa8accfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
100243003722500007262954802510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
1002430037225000015629548300212510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
100243003722500007362954802510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250000612954802510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250000612954802510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250000612954802510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250000612954802510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250000612954802510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250000612954802510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250000612954802510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001010640216222963010000103003830038300383003830038

Test 3: Latency 1->2

Code:

  mla v0.16b, v0.16b, v1.16b
  movi v0.16b, 1
  movi v1.16b, 2

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)0307081e3f4e51inst 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)9fa8acc5cfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
102043003722500061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007103161129634100001003003830038300383003830038
102043003722500061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
102043003722400061295482510100100100001001000050042773131300183008430037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
102043003722500061295482510100100100001001000050042773130300653003730037282653287451010020010000200300003003730037111020110099100100100001000007102161129634100001003003830038300383003830038
102043003722500061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000307101161129634100001003003830038300383003830038
102043003722400061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
1020430037225000612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010001207101161129634100001003003830038300383003830038
102043003722500061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
102043003722500061295482510100100100001001000050042773130300183003730037282653287451010020010000200304953003730037111020110099100100100001000007101161129634100001003003830038300383003830038
102043003722500061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)03181e1f3a3f4e51inst 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)9fa6a8a9acbranch mispredict (cb)cfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1002430037225090061295482510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000000640316332963010000103003830038300383003830038
1002430037225000061295482510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000000640316332963010000103003830038300383003830038
1002430037225000061295482510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000000640316332963010000103003830038300383003830038
1002430037225000082295482510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000000640316332963010000103003830038300383003830038
1002430037225000061295482510010101000010100005042773131300183003730037282873287671001020100002030000300373021321100211091010100001000000640316332963010000103003830038300383003830038
1002430037225000061295482510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000000640316332963010000103003830038300383003830038
1002430037224000061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001004000640316332963010000103003830038300383003830038
1002430037225000061295482510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001000000640316332963010000103003830038300383003830038
1002430037225000061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000000640316332963010000103003830038300383003830038
1002430037225000061295482510010101000010100005042773131300183003730037282873287671001020100002031935300373003711100211091010100001000000640316332963010000103003830038300383003830038

Test 4: Latency 1->3

Code:

  mla v0.16b, v1.16b, v0.16b
  movi v0.16b, 1
  movi v1.16b, 2

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)031e1f3f4e51inst 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)9fa0a8accfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
10204300372250061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730179111020110099100100100001000007101162129634100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129708100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
102043003722500943295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
1020430037225150156295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773130300183003730037282653287451010020010000200309873003730037111020110099100100100001000007101161129634100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
10204300372240061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)03181e1f3f4e51inst 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
10024300372250600612954825100101010000101000050427731313001803003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372240210822954825100101010000101000050427731313001803003730037282873287671015920100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
100243003722502702182954825100101010000101000050427731303001803003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
100243003722504110612954825100101010000101000050427731313001803003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250240662954825100101010000101000050427731303001803003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250210612954825100101010000101000050427731303001803003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250150612954825100101010000101000050427731303001803003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
10024300372250330612954825100101010000101000050427731303001803003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
100243003722502700612954825100101010000101000050427731303001803003730037282873287671001020100002030000300373003711100211091010100001003640216222963010000103003830038300383003830038
10024300372250270612954825100101010000101000050427731303001803003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038

Test 5: throughput

Count: 8

Code:

  movi v0.16b, 0
  mla v0.16b, v8.16b, v9.16b
  movi v1.16b, 0
  mla v1.16b, v8.16b, v9.16b
  movi v2.16b, 0
  mla v2.16b, v8.16b, v9.16b
  movi v3.16b, 0
  mla v3.16b, v8.16b, v9.16b
  movi v4.16b, 0
  mla v4.16b, v8.16b, v9.16b
  movi v5.16b, 0
  mla v5.16b, v8.16b, v9.16b
  movi v6.16b, 0
  mla v6.16b, v8.16b, v9.16b
  movi v7.16b, 0
  mla v7.16b, v8.16b, v9.16b
  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)0318191e1f3a3f51inst 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)696d6escheduler 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
160204200651500000039258010010080000100800005006400002004520064200643228010020080000200240000200642006411160201100991001001600001000001011221622200611600001002006520065200652006520065
1602042006415000000636258010010080000100800005006400002004520064200643228010020080000200240000200642006411160201100991001001600001000001011221622200611600001002006520065200652006520065
160204200641510000039258010010080000100800005006400002004520064200643228010020080000200240000200642006411160201100991001001600001000001011221622200611600001002006520065200652006520065
160204200641510090039258010010080000100800005006400002004520064200643228010020080000200240000200642006411160201100991001001600001000001011221622200611600001002006520065200652006520065
160204200641500000039258010010080000100800005006400002004520064200643228010020080000200240000200642006411160201100991001001600001000001011221622200611600001002006520065200652006520065
160204200641500060039258010010080000100800005006400002004520064200643228010020080000200240000200642006411160201100991001001600001000001011221622200611600001002006520065200652006520065
1602042006415000210039258010010080000100800005006400002004520064200643228010020080000200240000200642006411160201100991001001600001000001011221622200611600001002006520065200652006520065
1602042006415000000704258010010080000100800005006400002004520064200643228010020080000200240000200642006411160201100991001001600001000001011221622200611600001002006520065200652006520065
160204200641500000039258010010080000100800005006400002004520064200643228010020080000200240000200642006411160201100991001001600001000001011221622200611600001002006520065200652006520065
160204200641500060039258010010080000100800005006400002004520064200643228010020080000200240000200642006411160201100991001001600001000001011221622200611600001002006520065200652006520065

1000 unrolls and 10 iterations

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

retire (01)cycle (02)03191e3f51inst 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)5f60696d6escheduler 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)9fa8accfd0d2icache miss (d3)d5d6d9dadbddinst fetch restart (de)e0? int output thing (e9)eaec? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
160024200801500051278001212800001280000626400003120032200512005132280012208000020240000200512005111160021109101016000010001003031162521177200482201160000102006120052200522006120052
16002420051151001233278001212800001280000626400001120032200512005132280012208000020240000200512005111160021109101016000010001002762243441144200572202160000102005220052200522005220052
160024200511500045278001212800001280000626400001120032200512005132280012208000020240000200512005111160021109101016000010001002931162521144200482201160000102005220052200522005220052
160024200601500045278001212800001280000626400001120032200512005132280012208000020240000200512005111160021109101016000010001002931172521134200482201160000102005220052200522005220052
160024200511510045278001212800001280000626400002120032200512005132280012208000020240000200512005111160021109101016000010001003031162521134200482202160000102005220052200522005220052
160024200511500045278001212800001280000626400001120032200512005132280012208000020240000200512005111160021109101016000010001002731162521134200482201160000102005220052200522005220052
160024200511501162452780012128000012800006264000021200322005120051104380012208000020240000200512005111160021109101016000010001002931142521144200482201160000102006120052200522005220052
160024200511500045278001212800001280000626400001120032200512005132280012208000020240000200512005111160021109101016000010001002931162521134200482201160000102005220052200522005220052
1600242005115000452780012128000012800006264000011200322005120051262280012208000020240000200512005111160021109101016000010001002631132521134200482201160000102005220052200522005220052
160024200511500045298001212800001280000626400001120032200512005132280012208000020240000200512005111160021109101016000010001002731142521168200482401160000102005220052200522005220052

Test 6: throughput

Count: 16

Code:

  mla v0.16b, v16.16b, v17.16b
  mla v1.16b, v16.16b, v17.16b
  mla v2.16b, v16.16b, v17.16b
  mla v3.16b, v16.16b, v17.16b
  mla v4.16b, v16.16b, v17.16b
  mla v5.16b, v16.16b, v17.16b
  mla v6.16b, v16.16b, v17.16b
  mla v7.16b, v16.16b, v17.16b
  mla v8.16b, v16.16b, v17.16b
  mla v9.16b, v16.16b, v17.16b
  mla v10.16b, v16.16b, v17.16b
  mla v11.16b, v16.16b, v17.16b
  mla v12.16b, v16.16b, v17.16b
  mla v13.16b, v16.16b, v17.16b
  mla v14.16b, v16.16b, v17.16b
  mla v15.16b, v16.16b, v17.16b
  movi v16.16b, 17
  movi v17.16b, 18

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

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

retire (01)cycle (02)0309191e373f4e51inst 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)9fa0a6a8a9accfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
160204400603020001420251601001001600171001600005002399055040030400394004819973319997160100200160000200480000400394004011160201100991001001600001000000010110116114003601600001004004940040400504004040040
1602044004830000390510251601011001600001001600005002398999040020400394003919973320029160100200160000200480000400394004011160201100991001001600001000000010110116114004601600001004005040040400404004040040
1602044004830000001690251601001001600001001600005001319998040020400394004919973319997160100200160000200480000400494003911160201100991001001600001000000010110116124003601600001004004140040400404004040050
1602044003930000004202516010010016000110016000050013199981400204003940040199733199971601002001600002004800004004040039111602011009910010016000010000001510110116124006801600001004004040050400404007240040
1602044004830000001360251601001001600001001600005001280000040020400494003919973319997160100200160000200480000400394003911160201100991001001600001000000010110116114003601600001004004040041400504004140163
160204400393000042017410251601011001600171001600005001319999040021400484003919973320006160100200160000200480000400394004811160201100991001001600001000000310110116114003601600001004004040041400504004040040
1602044004930200017410251601171001600171001600005002398999040020400494004819973320007160100200160000200480000400394004811160201100991001001600001000000010110116114003601600001004007240040400724004040072
1602044003930000014101051601171001600181001600005001280000040029400714003919973319997160100200160000200480000400394004911160201100991001001600001000000010110116114003601600001004004940040400504004040041
1602044004930000006425251601001001600171001600005001280000040020400394003919973319997160100200160548200480000400404004911160201100991001001600001000230010177116224003601600001004004040255400414004040040
160204400403000000420251601001001604161001600005002398999040020400394003919973320007160100200160000200480000400484003911160201100991001001600001000010010110116224003601600001004004040050400404004040049

1000 unrolls and 10 iterations

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

retire (01)cycle (02)03080b18191e1f373a3f4e51inst 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)5f6061696d6edispatch 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)9fa0a1a6a8a9accdcfd0d2icache miss (d3)d5d6d9dadbddinst fetch restart (de)e0? int output thing (e9)eaeb? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
160024400492990000001705502516002710160000121600005023989991104002940039400391999603200191600102016010720480000400484003911160021109101016000010000006030100223111016211128400360209160000104004940040400504004040040
1600244003929900000000520251600271016000012160000501280000105400294003940039199960320019160010201600002048000040039400392116002110910101600001000000240100228217162111211400450206160000104004040041400414004940040
160024400713000000001704602516001010160000121600005023989990154002040039400481999603200281600102016000020480000400394003911160021109101016000010000001801002435212164221112400370406160000104005040049400404004140040
1600244004930000000018047025160010101600001216000050128000001040020400494003919996032002816001020160000204800004003940039111600211091010160000100000018010022811760211710400360206160000104004040040400404004940049
1600244003929900000024201750181961610201116109610161472551744658100405214072840509200272462027616115020161233204834444035340558111160021109101016000010700104571010193811131412111520403104209160000104057440654406434063540622
1600244062330411101014524404011964551781612211116126214161115551811202105405374072940598201570442032316127420161297204838494061340520111160021109101016000010222105496010221341101322111114405900209160000104004040049400404004940040
1600244003930000000000470251600101016000012160000501280000115400204003940040199960320029160010201600002048000040039400391116002110910101600001000000420100228411416211912400450209160000104004040040400404004040049
1600244004029900000017046025160010101600001216000050128000011540020400394004819996032001916001020160000204800004003940039111600211091010160000100000000100228411216211129400360209160000104004040040400404004040049
160024400393000000001704702516002710160017121600005023989991154002040039400481999603200191600102016000020480000400394003911160021109101016000010000000010022852916211912400360206160000104004040040400404004040040
1600244004929900000017055025160011101600181216000050239908211540020400484004819996032001916001020160000204800004003940048111600211091010160000100000000100228419162111210400450206160000104005040049400404004940049