Apple M1 Microarchitecture Research by Dougall Johnson

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

UMLAL (by element, 2D)

Test 1: uops

Code:

  umlal v0.2d, v1.2s, v2.s[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)03070a1e3a3f4e51inst issue (52)~issue fp/simd (54)~dispatch fp/simd (57)huge thing fp/simd (5b)696d6edispatch 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
10043037231101642548251000100010003983133018303730372415328951000100030003037303711100110000075816552630100030383038303830383038
10043037231101642548251000100010003983133018303730372415328951000100030003037303711100110000075516552630100030383038303830383038
10043037221101642548251000100010003983133018303730372415328951000100030003037303711100110000075516662630100030383038303830383038
10043037231101642548251000100010003983133018303730372415328951000100030003037303711100110000075516552630100030383038303830383038
10043037231101642548251000100010003983133018303730372415328951000100030003037303711100110000075516662630100030383038303830383038
10043037231101642548251000100010003983133018303730372415328951000100030003037303711100110000075516762630100030383038303830383038
10043037221101642548251000100010003983133018303730372415328951000100030003037303711100110000675516552630100030383038303830383038
10043037221101642548251000100010003983133018303730372415328951000100030003037303711100110000075516662630100030383038303830383038
100430372311122642548251000100010003983133018303730372415328951000100030003037303711100110000075516662630100030383038303830383038
10043037221101642548251000100010003983133018303730372415328951000100030003037303711100110000075516552630100030383038303830383038

Test 2: Latency 1->1

Code:

  umlal v0.2d, v1.2s, v2.s[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): 3.0037

retire (01)cycle (02)031e3a3f4e51inst 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)9fa1a8acc5branch mispredict (cb)cdcfd0d5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
102043003722500612954825101001001000010010000500427731313001830037300372827262874110100200100082003002430037300371110201100991001001000010000011171801160029646100001003003830038300383003830038
102043003722500612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071002162229634100001003003830038300383003830038
102043003722500612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000300071002162229634100001003003830038300383003830038
10204300372251208302954825101001001000010010000500427867003001830037300372826932876310100204100002063000030037300371110201100991001001000010000000071002162229634100001003003830038300383003830038
1020430037225120612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071002162229634100001003003830038300383003830038
102043003722500612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071002162229634100001003003830038300383003830038
10204300372250061295482510100100100001001000050042781571300183003730037282653287451010020010000200300003003730037111020110099100100100001000015000071002162229634100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000016800071002162229634100001003003830038300383003830038
102043003722500612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071012162229634100001003003830038300383003830038
102043003722500612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000071012162229634100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)033f4e51inst 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)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)9fa0a1a8acc2cfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
100243003722561295482510010101000010100005042773133001830037300372828732876710010201000020300003003730037111002110910101000010000182640216232963010000103003830038300383003830038
10024300372256129548251001010100001010000504277313300183003730037282873287671001020100002030000300373003711100211091010100001000000640216222963010000103003830038300383003830038
1002430037224612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100001470640216222963010000103003830038300383003830038
1002430037225612954825100201010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100001200640216232963010000103003830038300383003830038
1002430037224612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100001440640216222963010000103003830038300383003830038
100243003722582295482510010101000010100005042773133001830037300372828732876710010201000020300003003730037111002110910101000010000870640216222963010000103003830038300383003830038
100243003722561295482510010101000010100005042773133001830037300372828732876710010201000020300003003730037111002110910101000010006180640216222963010000103003830038300383003830038
1002430037225612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100001380640216222963010000103003830038300383003830038
1002430037225612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100001380640216222963010000103003830038300383003830038
1002430037225612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100001500640216232963010000103003830038300383003830038

Test 3: Latency 1->2

Code:

  umlal v0.2d, v0.2s, v1.s[1]
  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)03080b18191e1f3a3f4e51inst 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)9fa0a8accfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1020430037225000000061295482510100100100001001000050042773130300180300373003728265328745101002001000020030000300373003711102011009910010010000100032171021622296340100001003003830038300383003830038
1020430037225000090061295482510100100100001001000050042773130300180300373003728265328745101002001000020030000300373003711102011009910010010000100048371021622296340100001003003830038300383003830038
1020430037225000000061295482510100100100001001000050042773130300180300373003728265328745101002001000020030000300373003711102011009910010010000100054373921622296340100001003003830038300383003830038
1020430037225000000061295482510100100100001001059650042773131300180300373003728265328745101002001000020030000300373003711102011009910010010000100053371021622296340100001003003830038300383003830038
1020430037225000000061295482510100100100001001000050042773130300180300373003728265328745101002001000020030000300373003711102011009910010010000100042071021622296340100001003003830038300383003830038
1020430037225000000061295482510100100100001001000050042773130300180300373003728265328745101002001000020030000300373003711102011009910010010000100068071021622296340100001003003830038300383003830038
1020430037225000000061295482510100100100001001000050042773130300180300373003728265328745101002001000020030000300373003711102011009910010010000100038071021622296340100001003003830038300383003830038
102043003722500000006129548251010010010000100100005004277313030018030037300372826532874510100200100002003000030037300371110201100991001001000010005671021622296340100001003003830038300383003830038
1020430037225000000061295482510100100100001001000050042773131300180300373003728265328745101002001000020030000300373003711102011009910010010000100042371021622296340100001003003830038300383003830038
1020430037225000000061295482510100100100001001000050042773130300180300373003728265328745101002001000020030000300373003711102011009910010010000100043071021622296340100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)03070a18191e1f3a3f4e51inst 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
10024300372251100002712954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010461864410165112963010000103003830038300383003830038
1002430037224110000271295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001047064451612122963010000103003830038300383003830038
10024300372251100002712954825100101010000141000050428002703001830037300372828732876710161201000020300003003730037111002110910101000010481264410165102963010000103003830038300383003830038
1002430037225110000271295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001047246441016882963010000103003830038300383003830038
1002430037225110000271295484410010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001048964410161052963010000103003830038300383003830038
10024300372251100002712954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010500644111610102963010000103003830038300383003830038
10024300372251100002712954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010500644101610102963010000103003830038300383003830038
10024300372251100002712954825100101010000101014950427731303001830037300372828732876710010201000020300003003730037211002110910101000010530644101610102963010000103003830038300383003830038
1002430037225110000271295482510010101000010100005042773131300183003730037282873287671001020100002030000300373003711100211091010100001063644101612102963010000103003830038300383003830038
10024300372251100002712954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010430644101610102963010000103003830038300383003830038

Test 4: Latency 1->3

Code:

  umlal v0.2d, v1.2s, v0.s[1]
  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)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)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)9fa0a8a9acc2cfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
10204300372250001641242954825101001001000810010000500427731303001830037300372826503287451010020010000200300003003730037111020110099100100100001000000071022022296340100001003003830038300383003830038
102043003722500002142954825101001001000010010000500427731303001830037300372826503287451010020010000200300003003730037111020110099100100100001000000071021622296340100001003003830038300383003830038
1020430037224000010002954825101001001000010010000500427731303001830037300372826503287451010020010000200300003003730037111020110099100100100001000000071021622296340100001003003830038300383003830038
10204300372250000612954825101001001000010010000500427731303001830037300372826503287451010020010000200300003003730037111020110099100100100001000000071021622296340100001003003830038300383003830038
102043003722500009952954825101001001000010010000500427731303001830037300372826503287451010020010000200300003003730037111020110099100100100001000000071021622296340100001003003830038300383003830038
10204300372250001323632954825101001001000010010000500427731313006630037300372826503287451010020010000200300003003730037111020110099100100100001000000071021622296340100001003003830038300383003830038
102043003722500004092954825101001001000010010000500427731313001830037300372826503287451010020010000200300003003730037111020110099100100100001000000071021622296340100001003003830038300383003830038
102043003722500007852954825101001001000010010000500427731303001830037300372826503287451010020010000200300003003730037111020110099100100100001000000071021622296340100001003003830038300383003830038
102043003722500008952954825101151001000010010000500427731303001830037300372826503287451010020010000200300003003730037111020110099100100100001000000071021622296340100001003003830038300383003830038
10204300372250000612954825101001001000010010000500427731313001830037300372826503287451010020010000200300003003730037111020110099100100100001000000071021622296340100001003003830038300383003830038

1000 unrolls and 10 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)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)e0eb? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
100243003722506129548251001010100001010000504277313030018030037300372828732876710010201000020300003003730037111002110910101000010006402162229630010000103003830038300383003830038
1002430037225011729548251001010100001010000504277313030018330037300372828732876710010201000020300003003730037111002110910101000010006402162229630010000103003830038300383003830038
100243003722515072629548251001010100001010000504277313030018030037300372828732876710010201000020300003003730037111002110910101000010006402162229630010000103003830038300383003830038
1002430037224063129548251001010100001010000504277313130018030037300372828732876710010201000020300003003730037111002110910101000010006402162229630010000103003830038300383003830038
1002430037225072629548251001010100001010000504277313030018030037300372828732876710010201000020300003003730037111002110910101000010006402162229630010000103003830038300383003830038
100243003722506129548251001010100001010000504277313030018030037300372828732876710010201000020300003003730037111002110910101000010006402162229630010000103003830038300383003830038
100243003722506129548251001010100001010000504277313030018030037300372828732876710010201000020300003003730037111002110910101000010006402162229630010000103003830038300383003830038
100243003722506129548251001710100001010000504277313130018030037300372828732876710010201000020300003003730037111002110910101000010006402162229630010000103003830038300383003830038
100243003722506129548251001010100001010000504277313130018030037300372828732876710010201000020300003003730037111002110910101000010006402162229630010000103003830038300383003830038
100253003722506129548251001012100001010000504277313130018030037300372828732876710010201000020300003003730037111002110910101000010006402162229630010000103003830038300383003830038

Test 5: throughput

Count: 8

Code:

  movi v0.16b, 0
  umlal v0.2d, v8.2s, v9.s[1]
  movi v1.16b, 0
  umlal v1.2d, v8.2s, v9.s[1]
  movi v2.16b, 0
  umlal v2.2d, v8.2s, v9.s[1]
  movi v3.16b, 0
  umlal v3.2d, v8.2s, v9.s[1]
  movi v4.16b, 0
  umlal v4.2d, v8.2s, v9.s[1]
  movi v5.16b, 0
  umlal v5.2d, v8.2s, v9.s[1]
  movi v6.16b, 0
  umlal v6.2d, v8.2s, v9.s[1]
  movi v7.16b, 0
  umlal v7.2d, v8.2s, v9.s[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)030b1e3f51inst 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)9fa6a8acc2c5branch mispredict (cb)cdcfd0d2itlb miss (d4)d5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1602042006515000602580100100800001008000050064000000020045200642006432280100200800002002400002006420064111602011009910010016000010000000001011200011611200611600001002006520065200652006520065
1602042006415000392580100100800001008000050064000000020045200642006432280100200800002002400002006420064111602011009910010016000010000000001011151041623200611600001002006520065200652006520065
1602042006415000392580100100800001008000050064000000020122200642006432280100200800002002400002006420064111602011009910010016000010000000001011150031611200611600001002006520065200652006520065
1602042006415000392580100100800001008000050064000000020045200642006432280100200800002002400002006420064111602011009910010016000010000040001011151031611200611600001002006520065200652006520065
1602042006415000392580100100800001008000050064000001520045200642006432280100200800002002400002006420064111602011009910010016000010000000001011100041611200611600001002006520065200652006520065
16020420064151001232580100100800001008000050064000000020045200642006432280100200800002002400002006420064111602011009910010016000010020000001011100031611200611600001002006520065200652006520065
1602042006415100392580100100800001008000050064000011520045200642006432280100200800002002400002006420064111602011009910010016000010000000001011151051611200611600001002006520065200652006520065
1602042006415000392580100100800001008000050064000000020045200642006432280100200800002002400002006420064111602011009910010016000010000000001011100041611200611600001002006520065200652006520065
1602042006415100392580100100800001008000050064000001520045200642006432280100200800002002400002006420064111602011009910010016000010000000001011100041611200611600001002006520065200652006520065
1602042006415000392580100100800001008000050064000001020045200642006432280100200800002002400002006420064111602011009910010016000010000000001011150031611200611600001002006520065200652006520065

1000 unrolls and 10 iterations

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

retire (01)cycle (02)03040a0b1e3a3f51inst 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)5f60696d6e74scheduler 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)9fa0a6a7a8a9accfd0d2icache miss (d3)itlb miss (d4)d5d6d9dadbddinst fetch restart (de)e0? int output thing (e9)eaec? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
16002420064150000003372580012128000012800006264000011200312004620050032280012208000020240000200482004611160021109101016000010000000100456220192223421721200492300160000102004720051200472005320049
1600242004615000000872580012128000012800006264000011200292014820046032280012208000020240000200532005011160021109101016000010000000100476220202443722021200432160160000102004720047200472004720047
16002420050150000007225800121280000128000062640000012003120052200520342280012208000020240000200462005011160021109101016000010000000100443110222223141817200452160160000102021220053200472004920049
1600242005215000000452580012128000012800006264000000200272004620050032280012208000020240000200482004611160021109101016000010000026100406120162013342019200432310160000102005120049200492004720049
1600242005015100000512580012128000012800006264000010200312004820048032280012208000020240000200462004611160021109101016000010020200100413110182023221619200432150160000102004920049200492004720047
16002420050156000001942580012128000012800006264000011200272004620046032280012208000020240000200462004811160021109101016000010000000100373110192413221822200432300160000102004720047200492004920047
1600242004815000000452580012128000012800006264000010200292020820046032280012208000020240000200462004611160021109101016000010200000100443110182023221118200432150160000102004720372200492004920047
1600242004615000000662580012128000012800006264000010200272004820048032280012208000020240000200482004611160021109101016000010000000100413110192223021716200452150160000102004920049200472004720049
1600242004615000000452580012128000012800006264000011200272004620048032280012208000020240000200462004611160021109101016000010000000100373110172013221818200432160160000102004920049200472004720047
1600242004615000000452580012128000012800006264000010200292004620046032280012208000020240000200462004811160021109101016000010000000100403110182223221618200432150160000102004720047200472004720047

Test 6: throughput

Count: 12

Code:

  umlal v0.2d, v12.2s, v13.s[1]
  umlal v1.2d, v12.2s, v13.s[1]
  umlal v2.2d, v12.2s, v13.s[1]
  umlal v3.2d, v12.2s, v13.s[1]
  umlal v4.2d, v12.2s, v13.s[1]
  umlal v5.2d, v12.2s, v13.s[1]
  umlal v6.2d, v12.2s, v13.s[1]
  umlal v7.2d, v12.2s, v13.s[1]
  umlal v8.2d, v12.2s, v13.s[1]
  umlal v9.2d, v12.2s, v13.s[1]
  umlal v10.2d, v12.2s, v13.s[1]
  umlal v11.2d, v12.2s, v13.s[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.2646

retire (01)cycle (02)03081e373f4e51inst 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)9fa0a6a8accfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
12020430922225000410251201001001200001001200005009900001317293174830039149733149971201002001200002003600003003931748111202011009910010012000010000007610116113003601200001003174930040317493004031749
120204300392370018440251201001001200001001200005009900000300213003931748166533167061201002001200002003600003003931748111202011009910010012000010000007610116113003601200001003174930040317493004031749
12020431748225000610251201181001200181001200005009600000300203174830039149733149971201002001200002003600003003930040111202011009910010012000010000007610116113003601200001003174930040317493174930040
1202043003922500186102512010010012000010012000050043995240300203003931748166533167061201002001200002003600003003930040111202011009910010012000010000037610164113003601200001003004130040317493004031749
12020431748225001416713251201001001200001001200005009600000300203003930039149733149971201002001200002003600003003930040111202011009910010012000010000807610116113174501200001003004031749300403174930040
12020430039238000416713251201011001200181001200005009600000300203003931748149733149981201002001200002003600003174830039111202011009910010012000010000007610116113003601200001003174930040317493004031749
12020431748225000420251201001001200001001200005009600000317293174830039149733149971201002001200002003600003003931748111202011009910010012000010000007610116113174501200001003174930040317493004031749
120204317482250018410251201181001200181001200005009600001300203003931748166533167061201002001200002003600003174830039111202011009910010012000010000007610116113003601200001003174930040317493004031749
1202043174822400061671325120117100120000100120000500439952413002131748300391497331499712010020012000020036000031748300391112020110099100100120000100002076101161130037231200001003004030040300403004030040
12020431748225100410251201001001200001001200005009900000300203003930039149733167061201002001200002003600003174830039111202011009910010012000010000007610116213003601200001003004030040300403004030040

1000 unrolls and 10 iterations

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

retire (01)cycle (02)0304070a0b1e373a3f4e51inst 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)5f60696d6edispatch 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)cfd0d2icache miss (d3)itlb miss (d4)d5d6d9dadbddinst fetch restart (de)e0eaeb? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
12002431750225001000079025120010101200011012000050990000113172930039300391587931501912001020120000203600003092230039111200211091010120000100007522318202816111192730919217120000103175130041300403004030040
12002430039225011000158025120027101200171012000050960000113002130039300391499631501912001020120000203600003003930039111200211091010120000100007522315402416111192630036217120000103004030040300403092330040
12002430039225011000046025120010101200001012000050990000113172930039300391585031501912001020120000203600003003931748111200211091010120000100007524313302616111252830036217120000103175130041317513175130041
12002430039232011100058025120010101200001012000050960000113002030922300391499631501912001020120000203600003004030039111200211091010120000100007524314402516111242630037217120000103092330040300403004030040
1200243092222501100171650251200101012000010120000609600001130020300393003914996315019120010201200002036000030039309221112002110910101200001000075243133024161112626300362113120000103004030040300403092330040
120024300402250110017059025120011101200011012000050990000113002130039309221499631502012001020120000203600003003930039111200211091010120000100007524313201516111282530036219120000103004030040300403004030040
120024300392250110001712340525120010101200001012000050960000113090330039300391499631501912001020120000203600003004030040111200211091010120000100007522313302216111271731745217120000103004130041300403004030041
120024300402250110001470251200271012000010120000509900001130021300393003914996315019120010201200002036000030922317501112002110910101200001002107522318202657111272030037217120000103004030040300403004030040
12002430039225001001147025120011101200001012000050990000113002030922300401499631502012001020120000203600003003930951111200211091010120000100007524313402616111281630036217120000103004130041300413004130041
12002430040225011000146025120010101200001012000050990000113090330039309221499631501912001020120000203600003092230040111200211091010120000100007522313202616111262330036217120000103004030040300413004030040