Apple M1 Microarchitecture Research by Dougall Johnson

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

SABA (vector, 2S)

Test 1: uops

Code:

  saba v0.2s, v1.2s, v2.2s
  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)031e3f4e51inst 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)a6a8accfd5d6ddinst fetch restart (de)e0? fp/simd (ee)f5f6f7f8fd
1004303723061254825100010001000398313030183037303724153289510001000300030373037111001100000073116112630100030383038303830383038
1004303722061254825100010001000398313030183037303724153289510001000300030373037111001100000073116112630100030383038303830383038
1004303723061254825100010001000398313030183037303724153289510001000300030373037111001100000073116112630100030383038303830383038
1004303722061254825100010001000398313030183037303724153289510001000300030373037111001100000073116112630100030383038303830383038
1004303722061254825100010001000398313030183037303724153289510001000300030373037111001100000373116112630100030383038303830383038
1004303723061254825100010001000398313030183037303724153289510001000300030373037111001100000073116112630100030383038308630383038
1004303722082254825100010001000398313030183037303724153289510001000300030373037111001100000073116112630100030383038303830383038
1004303723061254825100010001000398313030183037303724153289510001000300030373037111001100000373116112630100030383038303830383038
1004303723061254825100010001000398313030183037303724153289510001000300030373037111001100000073116112630100030383038303830383038
10043037231261254825100010001000398313030183037303724193289510001000300030373037111001100000073116112630100030383038303830383038

Test 2: Latency 1->1

Code:

  saba v0.2s, v1.2s, v2.2s
  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)03070a0b1e3a3f4e51inst 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)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa8acc5cfd0d5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1020430037225110006129548251010010010000100100005004277313300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121632296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710131622296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313300183003730037282650328745101002001000020030000300373003711102011009910010010000100000712121622296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121622296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313300183003730037282650328745101002001000020030000300373003751102011009910010010000100000710121622296341100001003003830038300383003830038
1020430037225000006129548251011110010000100100005004277313300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121622296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313300183003730037282650328745101002001000020030000300373003711102011009910010010000100200710121622296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121622296340100001003003830038300383003830038
1020430037224000006129548251010010010000100100005004277313300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121622296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313300183003730037282650328745101002001000020030000300373008421102011009910010010000100000710121622296340100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)0309191e3f4e51inst 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? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1002430037225000612954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010006403163329630110000103003830038300383003830038
1002430037225000612954825100101010000101000050427731313001830037300372828732876710010201000020300003013230085211002110910101000010056886403163329630010000103003830038300383003830038
1002430037225000612954844100101010000101014950427731313001830037300372828732876710010201000020300003003730037111002110910101000010006403163329630010000103003830038300383003830038
1002430037225000612954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010196403163429630010000103003830038300383003830038
1002430037225000612954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010006403163329630010000103003830038300383003830038
10024300372250012612954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010107033164429630010000103003830038300383003830038
1002430037225110612953025100101010008101000050427867013001830037300372828732876710010201000020300003003730037111002110910101000010006403163329630010000103003830038300383003830038
10024300372250001032954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010006403163329630010000103003830038300383003830038
1002430037225000612954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010036403163329630010000103003830038300383003830038
1002430037224000612954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010006403163329630010000103003830038300383003830038

Test 3: Latency 1->2

Code:

  saba v0.2s, v0.2s, v1.2s
  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)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)9fa0a7a8acc2cdcfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
10204300372250612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071011611296340100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300375110201100991001001000010000000071011611296343100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071011611296340100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071011611296340100001003003830038300383003830038
102043003722512612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071011611296340100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071011611296340100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037301331110201100991001001000010000000071011611296340100001003003830038300383003830038
102043003722501032954825101001001000010010000522427731303001830037300372826532874510576200100002003000030037300371110201100991001001000010000000071011611296340100001003003830038300383003830083
10204300372240612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071011611296340100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071011611296340100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)03070a1e3a3f4e51inst 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)9fcfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
10024300372251102672954825100191010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010644101610102963010000103003830038300383003830038
100243003722511026729548251001010100001010000504277313130018300373003728287328767100102010000203000030037300371110021109101010000106425165102963010000103003830038300383003830038
100243003722411026729548251001010100001010000504277313130018300373003728287328767100102010000203000030037300371110021109101010000106441016582963010000103003830038300383003830038
10024300372251102672954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010644101610102963010000103003830038300383003830038
10024300372251102672954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010644101610102963010000103003830038300383003830038
10024300372251102672954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010644101610112963010000103003830038300383003830038
10024300372251102672954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010644816582963010000103003830038300383003830038
1002430037224110267295482510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001064410161052963010000103003830038300383003830038
10024300372251102672954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010644101610102963010000103003830038300383003830038
10024300372251102672954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010644101612102963010000103003830038300383003830038

Test 4: Latency 1->3

Code:

  saba v0.2s, v1.2s, v0.2s
  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)0308181e3a3f4e51inst 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)9fa8acc2c5cfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
102043003722500006129548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100000071011611296340100001003003830038300383003830038
1020430037225000015629548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100000071011611296340100001003003830038300383003830038
1020430037225000072629548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100000071011611296340100001003003830038300383003830038
102043003722500006129548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100130071011611296340100001003003830038300383003830038
102043003722500006129548251010012610000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100128580071011611296340100001003003830038300383003830038
102043003722500006129548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100100071011611296340100001003003830038300383003830038
102043003722500006129548251010010010000100100005004277313030018300373003728265328745101002001000020030000300373003721102011009910010010000100000071011611296340100001003003830038300383003830038
1020430037225001206129548461010010010000100100005004277313030018300373003728265328745101002001000020030504300373003711102011009910010010000100100071011611296340100001003003830038300383003830038
1020430037225001216129529251010010010000100100005004277313030018300373003728269328745101002001000020030000300373003711102011009910010010000100156080071011611296340100001003003830038300383003830038
10204300372250012012429548251010010010000100100005004277313030018300373003728265328745101002001000020030000300373008511102011009910010010000100000071011611296340100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)0308091e3f4e51inst 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)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)9faccfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
100243003722500061295482510010101000010100005042773131300183003730037282870328767100102010000203000030037300371110021109101010000100640316222963010000103003830038300383003830038
1002430037224100726295482510010101000010100005042773131300183003730085282870328767100102010000203000030037300371110021109101010000100640216222963010000103003830038300383003830038
100243003722500061295482510010101000010100005042773131300183003730037282870328767100102010000203000030037300371110021109101010000100640216222963010000103003830038300383003830038
100243003722500061295482510010101000010100005042773131300183003730037282870328767100102010000203000030037300371110021109101010000100640216222963010000103003830038300383003830038
100243003722500061295482510010101000010100005042773131300183003730037282870328767100102010000203000030037300371110021109101010000100640216222963010000103003830038300383003830038
10024300372250006129548251001010100001010000504277313130018300373003728287032876710010201000020300003003730037111002110910101000010138640216332963010000103003830038300383003830038
100243003722510061295482510010101000010100005042773130300183003730037282870328767100102010000203000030037300371110021109101010000100640216222963010000103003830038300383003830038
100243003722500061295482510010101000010100005042773131300183003730037282870328767100102010000203000030037300371110021109101010000100640216222963010000103003830038300383003830038
100243003722500061295482510010101000010100005042773130300183003730037282870328767100102010000203000030037300371110021109101010000100640216222963010000103003830038300383003830038
100243003722500061295482510010101000010100005042773130300183003730037282870328767100102010000203000030037300371110021109101010000100640216222963010000103003830038300383003830038

Test 5: throughput

Count: 8

Code:

  movi v0.16b, 0
  saba v0.2s, v8.2s, v9.2s
  movi v1.16b, 0
  saba v1.2s, v8.2s, v9.2s
  movi v2.16b, 0
  saba v2.2s, v8.2s, v9.2s
  movi v3.16b, 0
  saba v3.2s, v8.2s, v9.2s
  movi v4.16b, 0
  saba v4.2s, v8.2s, v9.2s
  movi v5.16b, 0
  saba v5.2s, v8.2s, v9.2s
  movi v6.16b, 0
  saba v6.2s, v8.2s, v9.2s
  movi v7.16b, 0
  saba v7.2s, v8.2s, v9.2s
  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)0308090a0b1e3f51inst 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)9fa8accfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
160204200891510000939258010012480000100800005006400000200452006420064322801002008000020024000020064200641116020110099100100160000100901011111611200611600001002006520065200652006520065
1602042006415000000392580100100800001008000050064000012004520064200643228010020080000200240000200642006411160201100991001001600001005501011111611200611600001002006520065200652006520065
160204200641511000081258010012480000100800005006400001200452006420064322801002008000020024000020064200641116020110099100100160000100001011111611200611600001002006520065200652006520065
160204200641500000039258010010080000100800005006400000200452006420064322801002008000020024000020064200641116020110099100100160000100001011111611200611600001002006520065200652006520065
160204200641500000039258010010080000100800005006400001200452006420064322801002008000020024000020064200641116020110099100100160000100061011111611200611600001002006520065200652006520065
160204200641500000039258010010080000100800005006400000200452006420064322801002008000020024000020064200641116020110099100100160000100001011111611200611600001002006520065200652006520065
1602042006415100000392580100100800001008000050064000002004520064200643228010020080000200240000200642006411160201100991001001600001000121011111611200611600001002006520065200652006520065
160204200641500000039258010010080000100800005006400000200452006420155322801002008000020024000020064200641116020110099100100160000100001011111611200611600001002006520065200652006520065
160204200641500000039258010010080000100800005006400000200452006420064322801002008000020024000020064200641116020110099100100160000100061014311611200611600001002006520065200652006520065
160204200641500000039258010010080000100800005006400000200452006420064322801002008000020024000020064200641116020110099100100160000100001011111611200611600001002006520065200652006520065

1000 unrolls and 10 iterations

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

retire (01)cycle (02)030b191e3f51inst 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)9fa1a6a8acc2cfd0d2icache miss (d3)d5d6d9dadbddinst fetch restart (de)e0? int output thing (e9)ea? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
16002420084151000452580117128000012800006264000011200272004620046322800122080000202400002004620046111600211091010160000100003010033622112442271020047230160000102005120051200512005120275
160024200501500005125800121280000128000062640000112002720046200463228001220800002024000020046200461116002110910101600001000030100336221024422101020047230160000102005120051200512005120234
1600242005015000051258001212800001280000626400000120031200502005032280012208000020240000200502005011160021109101016000010000601003662272442210820047230160000102005120051200512005120278
16002420046150010512580012128000012800006264000001200312005020050322800122080000202400002005020050111600211091010160000100242001003361172021171020043230160000102004720047200512004720279
1600242004615000051258001212800001280000626400000120031200502005032280012208000020240000200502005011160021109101016000010006105010030311102421110720043215160000102004720047200472004720235
16002420046150000452580012128000012800006264000011200312004620046322800122080000202400002004620046111600211091010160000100097501003032172021110720043215160000102004720047200472005120266
1600242004615000051258001212800001280000626400000120031200502005032280012208000020240000200502005011160021109101016000010004417401003662272442271020047230160000102005120051200512005120273
16002420050150000751258001212800001280000626400000120031200502005032280012208000020240000200502005011160021109101016000010003516501003331172021171020047215160000102004720047200472004720241
160024200501500465125800121280000128000062640000012003120050200503228001220800002024000020050200501116002110910101600001000541501003362272442271020047230160000102005120051200512005120242
160024200501500005125800121280000128000062640000012003120050200503228001220800002024000020050200501116002110910101600001000620010036622102442271020047230160000102005120051200512005120234

Test 6: throughput

Count: 16

Code:

  saba v0.2s, v16.2s, v17.2s
  saba v1.2s, v16.2s, v17.2s
  saba v2.2s, v16.2s, v17.2s
  saba v3.2s, v16.2s, v17.2s
  saba v4.2s, v16.2s, v17.2s
  saba v5.2s, v16.2s, v17.2s
  saba v6.2s, v16.2s, v17.2s
  saba v7.2s, v16.2s, v17.2s
  saba v8.2s, v16.2s, v17.2s
  saba v9.2s, v16.2s, v17.2s
  saba v10.2s, v16.2s, v17.2s
  saba v11.2s, v16.2s, v17.2s
  saba v12.2s, v16.2s, v17.2s
  saba v13.2s, v16.2s, v17.2s
  saba v14.2s, v16.2s, v17.2s
  saba v15.2s, v16.2s, v17.2s
  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)031e373f4e51inst 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
160204400743000051025160100100160000100160000500239899904002040048400391997332000616010020016000020048000040039400391116020110099100100160000100331011011611400361600001004004940040400414004140041
160204400393000041025160117100160000100160000500128000004002040039400491997331999716010020016000020048000040039400491116020110099100100160000100001011011611400461600001004004940040400494004040040
160204400482990041025160100100160000100160000500239899904002040049400391997331999716010020016000020048000040039400491116020110099100100160000100031011011611400451600001004004940040400404004040049
160204400393000041025160100100160017100160000500239902704003040039400711998032000716010020016000020048000040049400391116020110099100100160000100001011011611400361600001004004040243400414004040050
1602044003930000622525160100100160001100160000500538718804002040039400481997331999716010020016000020048000040039400391116020110099100100160000100101011011611400361600001004004040049400404004040049
160204400523000041025160118100160018100160000500128000004002040049400391997331999716010020016000020048000040039400401116020110099100100160000100101011011611400461600001004004040040400494004040049
16020440039300007152525160100100160000100160000500239902704002040049400391997331999716010020016000020048000040039400391116020110099100100160000100001011011611400451600001004004040049400404004040040
16020440048300017502525160100100160000100160000500128000004003040039400711997331999716010020016000020048000040049400391116020110099100100160000100001011011611400361600001004004040049400404004940040
160204400392990041025160101100160000100160000500128000004002040039400491997331999716010020016000020048000040049400391116020110099100100160000100001011011611400361600001004004040049402224005040072
1602044003930001741025160100100160017100160000500128000004002040040400391997332000716010020016000020048000040049400391116020110099100100160000100001011011611400461600001004004040040400404004040040

1000 unrolls and 10 iterations

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

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)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)9fa0a8a9accdcfd0d2icache miss (d3)d5d6d9dadbddinst fetch restart (de)e0? int output thing (e9)eaeb? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
16002440050299000000005602516001010160000101600005024388651004003040039400491998932002116001020160000204800004004940039111600211091010160000100000010022163141641133400360207160000104005040050400504005040050
1600244004830000000018046025160028101600181016000050243886511104003040049400491998932001216001020160000204800004004940039111600211091010160000100000010022136141621133400460207160000104004040040400404005040050
1600244004830000000018056025160010101600001016000050243886511104003040039400391998932001216001020160000204800004004940049111600211091010160000100000010022136141621145400460207160000104005040050400504004040040
1600244003930000000018061025160028101600001016000050243886511104002040049400491998932002216001020160000204800004004940049111600211091010160000100000010022136131621134400360379160000104004040050400404005040050
1600244004930000000018056025160028101600001016000050243886511104003040049400491998932002216001020160000204800004004840039111600211091010160000100000010022135141621144400360209160000104004040040400504005040040
160024400392990000000056025160010101600181016000050243886511104003040049400391998932001216001020160000204800004004940039111600211091010160000100000010022136151621155400460209160000104005040041400504004040050
1600244003930000000000620251600101016001810160000502399027011040030400494004919989320022160010201600002048000040039400491116002110910101600001000000100241682416422344003604015160000104005040050400504005040040
1600244004930000000018056025160010101600181016000050243886521104003040049400401998932001216001020160000204800004003940049111600211091010160000100000010024682416422444004604015160000104005040041400404004040050
1600244004830000000010711025160010101600181016000050243886511104003040049400491998932002216001020160000204800004003940039111600211091010160000100000010047136151621145400360207160000104004040050400504004940050
1600244003930000000018056025160028101600181016000050243886511104003040039400391998932002116001020160000204800004005140039111600211091010160000100000010022137141621133400360207160000104004040040400404005040050