Apple M1 Microarchitecture Research by Dougall Johnson

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

SABAL (vector, 2D)

Test 1: uops

Code:

  sabal v0.2d, 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)a8a9accfd5d6ddinst fetch restart (de)e0? fp/simd (ee)f5f6f7f8fd
1004303723061254825100010001000398313030183037303724153289510001000300030373037111001100000073216222630100030383038303830383038
1004303722061254825100010001000398313130183037303724153289510001000300030373037111001100000073216222630100030383038303830383038
1004303723061254825100010001000398313130183037303724153289510001000300030373037111001100000073216222630100030383038303830383038
1004303723061254825100010001000398313130183085303724153289510001000300030373037111001100000673216222630100030383038303830383038
1004303723061254825100010001000398313130183037303724153289510001000300030373037111001100000073216222630100030383038303830383038
1004303722061254825100010001000398313130183037303724153289510001000300030373037111001100000073216222630100030383038303830383038
1004303722061254825100010001000398313130183037303724153289510001000300030373037111001100000073216222630100030383038303830383038
10043037230612548251000100010003983131301830373037241532895100010003000303730371110011000190073216222630100030383038303830383038
100430372375612548441000100010003983131301830373037241532895100010003000303730371110011000002473216222630100030383038303830383038
10043037230612548251000100010003983131301830373037241532895100010003000303730371110011000101273216222630100030383038303830383038

Test 2: Latency 1->1

Code:

  sabal v0.2d, 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)031e1f3a3f4e51inst 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)9fa8a9accfd0d5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1020430037225000124295482510100100100001001000050042773130300183003730037282650328745101002001000020030000300373003711102011009910010010000100000712021622296340100001003003830038300383003830038
102043003722500084295482510100100100001001000050042773131300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710021623296340100001003003830038300383003830038
102043003722500084295482510100100100001001000050042773130300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710021622296340100001003003830038300383003830038
102043003722400084295482510100100100001001000050042773130300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710031622296340100001003003830038300383003830038
1020430037225000523295482510100100100001001000050042773130300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121622296340100001003003830038300383003830038
1020430037225000214295482510100100100001001000050042773130300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121622296340100001003003830038300383003830038
1020430037225000124295482510100100100001001000050042773130300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121622296340100001003003830038300383003830038
1020430037224000177295482510100100100001001000050042773130300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121622296340100001003003830038300383003830038
1020430037225001105295482510100100100001001000050042773130300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121622296340100001003003830038300383003830038
102043003722500184295482510100100100001001000050042773130300183003730037282650328745101002001000020030000300373003711102011009910010010000100000710121622296340100001003003830038300383003830038

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)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)9fa9acc2cfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1002430037224612954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000640316222963010000103003830038300383003830038
10024300372251072954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038
100243003722532722954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038
100243003722513892954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010002640216222963010000103003830038300383003830038
10024300372251262954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038
10024300372253502954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038
1002530037225612954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038
1002430037225591529548251001010100001010000504277313030018300373003728287262876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038
1002430037225612954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010200640216222963010000103003830038300383003830038
10024300372245202954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038

Test 3: Latency 1->2

Code:

  sabal v0.2d, 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)03080b18191e1f3f4e51inst 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)9fa0a1a6a7a8a9acc2c5cfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1020430037225000000612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000001000071011611296340100001003003830038300383003830038
1020430037225000000612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000000000071011611296340100001003003830038300383003830038
1020430037225000000612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000000071011611296340100001003003830038300383003830038
1020430037225000000612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000000071011611296340100001003003830038300383003830038
1020430037225000000612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000000071011611296340100001003003830038300383003830038
1020430037225000000612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000000071011611296340100001003003830038300383003830038
1020430037225000000612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000000071011611296340100001003003830038300383003830038
1020430037225000000612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000000071011611296340100001003003830038300383003830038
1020430037225000060612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000000071011611296340100001003003830038300383003830038
1020430037225000000612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010000000000071011611296340100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)03181e3f4e51inst 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? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1002430037225006129548251001010100001010000504277313030018300373003728287328786101592010000203000030037300371110021109101010000100006406162229630010000103003830038300383003830038
1002430037225006129548251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000100006402162229630010000103003830038300383003830038
1002430037225006129548251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000100006402162229630010000103003830038300383003830038
1002430037226006129548251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000100006402162229630010000103003830038300383003830038
1002430037225006129548251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000100016402162229630010000103003830038300383003830038
1002430037225006129548251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000100006402162229630010000103003830038300383003830038
1002430037225006129539251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000100006402162229630010000103003830038300383003830038
1002430037225006129548251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000100006402162229630010000103003830038300383003830038
1002430037225006129548251001010100001010000504277313130018300373003728287328767100102010000203000030037300371110021109101010000100006402162229630010000103003830038300383003830038
1002430037224006129548251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000100006402162229630010000103003830038300383003830038

Test 4: Latency 1->3

Code:

  sabal v0.2d, 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)03191e3f4e51inst 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
10204300372250061295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000071011611296340100001003003830038300383003830038
10204300372250082295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000071011611296340100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000071011611296340100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000071011611296340100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000071011611296340100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000071011611296340100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773131300183003730086282653287451010020010000200300003003730037111020110099100100100001000071011611296340100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000071011611296340100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000071011611296340100001003003830038300383003830038
10204300372250061295482510100100100001001000050042773131300183003730037282653287451010020010000200300003003730037111020110099100100100001000071011611296340100001003003830038300383003830038

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)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)9fa8a9cfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1002430037224061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
1002430037225061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
1002430037225061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
1002430037225061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
1002430037225061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
1002430037225061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
1002430037225061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
1002430037225061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
1002430037225061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038
1002430037225061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000640216222963010000103003830038300383003830038

Test 5: throughput

Count: 8

Code:

  movi v0.16b, 0
  sabal v0.2d, v8.2s, v9.2s
  movi v1.16b, 0
  sabal v1.2d, v8.2s, v9.2s
  movi v2.16b, 0
  sabal v2.2d, v8.2s, v9.2s
  movi v3.16b, 0
  sabal v3.2d, v8.2s, v9.2s
  movi v4.16b, 0
  sabal v4.2d, v8.2s, v9.2s
  movi v5.16b, 0
  sabal v5.2d, v8.2s, v9.2s
  movi v6.16b, 0
  sabal v6.2d, v8.2s, v9.2s
  movi v7.16b, 0
  sabal v7.2d, 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)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)9fa8acc2cfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1602042010315103925801001008000010080000500640000120045200642006432280100200800002002400002006420064111602011009910010016000010000010114516442006101600001002006520065200652006520065
1602042006415003925801001008000010080000500640000020045200643263632280100200800002002400002006420064111602011009910010016000010010010114316352006101600001002006520065200652006520065
1602042006415003925801001008000010080000500640000120045200642006432280100200800002002400002006420064111602011009910010016000010000010115516552006101600001002006520065200652006520065
1602042006415106025801001008000010080000500640000020045200642006432280100200800002002400002006420064111602011009910010016000010000010114516552006101600001002006520065200652006520065
16020420064150012325801001008000010080000500640000120045200642006432280100200800002002400002006420064111602011009910010016000010000010113316452006101600001002006520065200652006520065
1602042006415003925801001008000010080000500640000120045200642006432280100200800002002400002006420064111602011009910010016000010000010115416542006101600001002006520065200652006520065
1602042006415003925801001008000010080000500640000120045200642006432280100200800002002400002006420064111602011009910010016000010000010114416552006101600001002006520065200652006520065
1602042006415003925801001008000010080000500640000120045200642006432280100200800002002400002006420064111602011009910010016000010000010114516442006101600001002006520065200652006520065
1602042006415008125801001008000010080000500640000120045200642006432280100200800002002400002006420064111602011009910010016000010000010114416442006101600001002006520065200652006520065
1602042006415003925801001008000010080000500640000120045200642006432280100200800002002400002006420064111602011009910010016000010000010113416442006101600001002006520065200652006520065

1000 unrolls and 10 iterations

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

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)5f6061696d6e74scheduler 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)9fa0a8a9accfd0d2icache miss (d3)d5d6d9dadbddinst fetch restart (de)e0? int output thing (e9)eaebec? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
16002420059150045278001212800001280000626400001110200322005120051032280012208000020240000200512005111160021109101016000010000910029133114252111062004822001160000102005220052200522005220052
1600242005115005127800121280000128000062640000111020041200512006003228001220800002024000020051200511116002110910101600001000001002916616344116102005724002160000102006120061200522006120052
1600242006015028551298001212800001280000626400001110200322006020060038480012208021020240000200602005511160021109101016000010010310033136110252116102004822001160000102005220052200522005220052
16002420051150045278001212800001280000626400001110200322005120051032280012208000020240000200512005111160021109101016000010000010033136110252111062004822001160000102005220052200522005220052
16002420051150045278001212800001280000626400001110200322005120051032280012208000020240000200512005121160021109101016000010000010033136110252111162004822001160000102005220052200522005220052
1600242005115004527800121280000128000062640000111020032200512005103228001220800002024000020051200511116002110910101600001000001002913616252111062004822001160000102005220052200522005220052
1600242005115031545278001212800001280000626400001110200322005120051032280012208000020240000200512005111160021109101016000010000010029136110252116102004822001160000102005220052200522005220052
1600242005115036645278001212800001280000626400001110200322005120051532280012208000020240000200512005111160021109101016000010000010033136110252116102004822001160000102005220052200522005220052
1600242005115004527800121280000128000062640000111020032200512005103228001220800002024000020051200511116002110910101600001020001003313617252116102004822001160000102005220052200522005220052
16002420051150045278001212800001280000626400001110200322005120051034280012208000020240000200512005111160021109101016000010000010033137110252111062004822001160000102005220052200522005220052

Test 6: throughput

Count: 16

Code:

  sabal v0.2d, v16.2s, v17.2s
  sabal v1.2d, v16.2s, v17.2s
  sabal v2.2d, v16.2s, v17.2s
  sabal v3.2d, v16.2s, v17.2s
  sabal v4.2d, v16.2s, v17.2s
  sabal v5.2d, v16.2s, v17.2s
  sabal v6.2d, v16.2s, v17.2s
  sabal v7.2d, v16.2s, v17.2s
  sabal v8.2d, v16.2s, v17.2s
  sabal v9.2d, v16.2s, v17.2s
  sabal v10.2d, v16.2s, v17.2s
  sabal v11.2d, v16.2s, v17.2s
  sabal v12.2d, v16.2s, v17.2s
  sabal v13.2d, v16.2s, v17.2s
  sabal v14.2d, v16.2s, v17.2s
  sabal v15.2d, 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)03191e1f373f51inst 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)9fa6a8a9acc2c5cfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1602044006030001620041251601181001600001001600005002438865140121400394003919973320007160100200160000200480000400394003911160201100991001001600001000000001011011611400461600001004004940040400404004040040
16020440039299024601841251601181001600001001600005002438865140020400394004819973319997160100200160000200480000400494004911160201100991001001600001000000001011011611400361600001004004040040400504004040050
16020440039300012901841251601001001600001001600005001280000140020400494003919973319997160100200160000200480000400484004911160201100991001001600001000000001011011611400461600001004004040040400414005240050
1602044003930002701741251601001001600001001600005002398999140030400394003919973320007160100200160000200480000400394004911160201100991001001600001000000001011011611400461600001004004040050400404004040040
1602044003930001230041251601001001600001001600005001280000140020400394003919980319997160100200160000200480000400394003911160201100991001001600001000000001011011611400361600001004004040040400404004040040
160204400392990780041251601001001600001001600005002438865140020400484003919973320007160100200160000200480000400394003911160201100991001001600001000000001011011611400361600001004004040050400404004040040
1602044004929909000412516010010016000010016000050023989991400304003940039199732620007160100200160000200480000400494003911160201100991001001600001000000001011011611400361600001004004040050400404004040040
160204400492990810041251601001001600001001600005001280000140020400494004919973319997160100200160000200480000400394003911160201100991001001600001000000001011011611400461600001004004040040400404004040040
16020440039300011701841251601001001600001001600005002438865140021400394003919973319997160100200160000200480000400394004911160201100991001001600001000000001011011611400361600001004005040040400404004040040
16020440049300012301851251601001001600001001600005002438865140020400494003919973319997160100200160000200480000400394003911160201100991001001600001000000001011011611400461600001004004040040400404005040050

1000 unrolls and 10 iterations

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

retire (01)cycle (02)03080a0b18191e1f373f4e51inst 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)9fa0a1a6a7a8a9accfd0d2icache miss (d3)d5d6d9dadbddinst fetch restart (de)e0? int output thing (e9)eaebec? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1600244004930000000720047025160010101600001016000050128000011540020400404004919996320019160010201600002048000040040400491116002110910101600001000000001002213624162124540036040180160000104004140049400494004940049
160024400483000000018017718025160010101600001016000050128000001104002940048400482001332002016001020160000204800004003940040111600211091010160000100000300100241652416421344004504090160000104004940050400404004940041
160024400392990000024600610251600101016000010160000501280000011040029400394003919996320019160010201600002048000040049400481116002110910101600001000000001002216524164224440046040180160000104004040049400404004040040
160024400393000000033001746025160027101600001016000050128000001104002040049400481999632001916001020160000204800004003940040111600211091010160000100000000100241662316422444003604060160000104004140049400494004040040
16002440039300000002790179340251600101016001710160000501280000011040020400394004919996320029160010201600002048000040048400491116002110910101600001000000001002416524164224440046020180160000104004040040400404004940040
16002440039300000001110052025160027101600171016000050239899911104002940039400391999632001916001020160000204829854054640600101160021109101016000010020000476510219168251324214440472240130160000104067140560406784069440358
1600244063230400081011917921571945262021613331216125311161451602284964011040582406074064020125462034616129320161471204840894062940746111160021109101016000010033112581010211167231404215840554240180160000104069740750406624058340704
1600244070830510110101323968055025160027101600171016000050243886501104002940048400391999632002816001020160000204800004004840048111600211091010160000100000000100241672416421444003602060160000104004040049400404004040041
160024400393000000048007170251600101016000010160000502398999011040029400394004819996320019160010201600002048000040039400391116002110910101600001000000001002416623162123440045040120160000104004040049400404004940040
16002440039300000009900610251600101016000010160000501280000011040020400394003919996320028160010201600002048000040048400392116002110910101600001000000001002416724164223440045040180160000104004940049400494004940049