Apple M1 Microarchitecture Research by Dougall Johnson

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

UMLAL2 (vector, 8H)

Test 1: uops

Code:

  umlal2 v0.8h, 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)0318191e3f4e51inst 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)a1a6a8a9accfd5d6ddinst fetch restart (de)e0? fp/simd (ee)f5f6f7f8fd
100430372300017025482510001000100039831313018303730372415328951000100030003037303711100110000000073116112630100030383038303830383038
10043037230006125482510001000100039831313018303730372415328951000100030003037303711100110000000073116112630100030383038303830383038
10043037220006125482510001000100039831313018303730372415328951000100030003037303711100110000000073116112630100030383038303830383038
10043037220006125482510001000100039831313018303730372415328951000100030003037303711100110000000073116112630100030383038303830383038
10043037220096125482510001000100039831313018303730372415328951000100030003037303711100110000000073116112630100030383038303830383038
10043037220006125482510001000100039831313018303730372415328951000100030003037303711100110000000373116112630100030383038303830383038
10043037220096125482510001000100039831313018303730372415328951000100030003037303721100110000000073116112630100030383038303830383038
100430372200186125482510001000100039831313018303730372415328951000100030003037303711100110000200373116112630100030383038303830383038
10043037230006125482510001000100039831313018303730372415328951000100030003037303711100110000000073116112630100030383038303830383038
10043037220068225482510001000100039831313018303730372415328951000100030003037303711100110000000073116112630100030383038303830383038

Test 2: Latency 1->1

Code:

  umlal2 v0.8h, 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)03081e3a3f4e51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)60696d6edispatch stall (70)scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa8acc5branch mispredict (cb)cfd0d5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
10204300372250006129548251010010010000100100005004277313030018300373003728265328745101002001000020030000300373003711102011009910010010000100000071013163229634100001003003830038300383003830038
10204300372250006129548251010010010000100100005004277313030018300373003728265328745101002001000020030000300373003711102011009910010010000100000071012162229634100001003003830038300383003830038
10204300372240006129548251010010010000100100005004277313030018300853003728265328745101002001000020030000300373003711102011009910010010000100000071012162229634100001003003830038300383003830038
1020430037225000612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010001740071012162229634100001003003830038300383003830038
10204300372240006129548251010010010000100100005004277313030018300373003728265328745101002001000020030000300373003711102011009910010010000100000071012162229634100001003003830038300383003830038
10204300372250006129548251010010010000100100005004277313030018300373003728265328745101002001000020030000300373003711102011009910010010000100000071012162229634100001003003830038300383003830038
1020430037225000612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010002340071012162229634100001003003830038300383003830038
10204300372240016129548251010010010000100100005004277313030018300373003728265328745101002001000020030000300373003711102011009910010010000100000071012162229634100001003003830038300383003830038
10204300372250006129548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100000071012162229634100001003003830038300383003830038
10204300372240906129548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100000071012162229634100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)030708090a0b18191e1f3f4e51inst 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)9fa0a1a6a7a8a9acc2cdcfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1002430037225000000000612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100000000006404162229630010000103003830038300383003830038
1002430037225000000090612954825100101010000101000050427731330018300373003728287728786100102010000203000030037300371110021109101010000100000000006402162229630010000103003830038300383003830038
1002430037232000000000612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100000000006672162229630010000103003830038300383003830038
1002430037225000000000612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100000000006402162229630010000103003830038300383003830038
1002430037225000000000612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100000000006402162229630010000103003830038300383003830038
10024300372250000000002512954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100000000006402162229630010000103003830038300383003830038
1002430037225000000000612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100000003006402162229630010000103003830038300383003830038
1002430037225000000000612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100000000006402162229630010000103003830038300383003830038
1002430037225000000000612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100000000006402162229630010000103003830038300383003830038
1002430037225000000000612954825100101010000101000050427731330018300373003728287328767100102010000203000030037300371110021109101010000100000000006402162229630010000103003830038300383003830038

Test 3: Latency 1->2

Code:

  umlal2 v0.8h, 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)030818191e1f3f4e51inst issue (52)~issue int (53)~issue fp/simd (54)~dispatch int (56)~dispatch fp/simd (57)huge thing int (59)huge thing fp/simd (5b)60696d6edispatch stall (70)scheduler rewind (75)scheduler stall (76)~dispatch op (78)~map op int (7c)~map op fp/simd (7e)~map lookup int (7f)~map lookup fp/simd (81)8283pipeline redirect (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst b.cc (94)inst integer (97)inst neon or fp (9a)9fa6a8a9accfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1020430037225000006129548251010010010000100100005004277313030018300373003728265328745101002001000020030000300373003711102011009910010010000100000071011611296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100000071011611296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100000071011611296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100000071011611296340100001003003830038300383003830038
102043003722400000612954825101001001000010010000500427731303001830037300862826532874510100200100002003000030037300371110201100991001001000010000016871011611296340100001003003830038300383003830038
1020430037224000006129548251010010010000100100005004277313030018300373003728265328745101002001000020030000300373003711102011009910010010000100000071011611296340100001003003830079300383003830038
102043003722500000612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010001015371011611296340100001003003830038300383003830038
1020430037225000006129548251010010010000100100005004277313030018300373003728265328745101002001000020030000300373003711102011009910010010000100000071011611296342100001003003830038300383003830038
10204300372250000061295482510100100100001091000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007571011611296340100001003003830038300383003830038
102043003722400000612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010000011771011611296340100001003003830038300383003830038

1000 unrolls and 10 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)9fa0a1a6a8a9acc2cfd5d6ddinst fetch restart (de)e0? int output thing (e9)ea? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1002430037225000000612954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010000000064021622296300010000103003830038300383003830038
100243003722400000061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000010102064021622296300010000103003830038300383003830038
1002430037225000000612954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010000000064021622296300010000103003830038300383003830038
1002430037224000000612954825100101010000101000050427731303001830037300372829132876710010201000020300003003730037111002110910101000010000000064021622296300010000103003830038300383003830038
1002430037224000000612954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000000064021622296300010000103003830038300383003830038
1002430037224000000612954825100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000000064021622296300010000103003830038300383003830038
1002430037225000000822954825100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010000000064021622296300010000103003830038300383003830038
100243003722500000061295482510010101000010100005042773130300183003730037282873287671001020100002030000300373003711100211091010100001000000231064021622296300010000103003830038300383003830038
10024300372250000006129548251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000100000084064021622296300010000103003830038300383003830038
10024300372250000007262954825100101010000101000050427731303005430037300372828732876710010201000020300003003730037111002110910101000010000003064021622296300010000103003830038300383003830038

Test 4: Latency 1->3

Code:

  umlal2 v0.8h, 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)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)9fa8acc2cfd5d6ddinst fetch restart (de)e0? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
1020430037225084295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
102043003722642612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010012307101161129634100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010062007101161129634100001003003830038300383003830038
102043003722506129548251010010010000100100005004277313130018300373003728265328745101002001000020030000300373003711102011009910010010000100436907101161129634100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010048307101161129634100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010060007101161129634100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010060607101161129634100001003003830038300383003830038
1020430037225061295482510100100100001001000050042773130300183003730037282653287451010020010000200300003003730037111020110099100100100001000007101161129634100001003003830038300383003830038
10204300372250612954825101001001000010010000500427731313001830037300372826532874510100200100002003000030037300371110201100991001001000010032007101161129634100001003003830038300383003830038
10204300372240612954825101001001000010010000500427731303001830037300372826532874510100200100002003000030037300371110201100991001001000010048007101161129634100001003003830038300383003830038

1000 unrolls and 10 iterations

Result (median cycles for code): 3.0037

retire (01)cycle (02)031e3f4e5051inst 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
100243003722506129548025100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010131640216222963010000103003830038300383003830038
1002430037225015629548025100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010100640216222963010000103003830038300383003830038
100243003722506129548025100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038
100243003722506129548025100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038
100243003722506129548025100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038
1002430037225072629548025100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010100640216222963010000103003830038300383003830038
100243003722506129548025100101010000101000050427731313001830037300372828732876710010201000020300003003730037111002110910101000010000640216222963010000103003830038300383003830038
1002430037225061295480251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000100120640216222963010000103003830038300383003830038
10024300372240147295480251001010100001010000504277313030018300373003728287328767100102010000203000030037300371110021109101010000104100640216222963010000103003830038300383003830038
100243003722506129548025100101010000101000050427731303001830037300372828732876710010201000020300003003730037111002110910101000010100640216222963010000103003830038300383003830038

Test 5: throughput

Count: 8

Code:

  movi v0.16b, 0
  umlal2 v0.8h, v8.16b, v9.16b
  movi v1.16b, 0
  umlal2 v1.8h, v8.16b, v9.16b
  movi v2.16b, 0
  umlal2 v2.8h, v8.16b, v9.16b
  movi v3.16b, 0
  umlal2 v3.8h, v8.16b, v9.16b
  movi v4.16b, 0
  umlal2 v4.8h, v8.16b, v9.16b
  movi v5.16b, 0
  umlal2 v5.8h, v8.16b, v9.16b
  movi v6.16b, 0
  umlal2 v6.8h, v8.16b, v9.16b
  movi v7.16b, 0
  umlal2 v7.8h, 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)03183f51inst 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)60696d6e74scheduler 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)9fa8acc5cfd0d5d6d9daddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
16020420086151039258010010080000100800005006400000200452006420064032280100200800002002400002006420064111602011009910010016000010030010111021600112006101600001002006520065200652006520065
16020420064150039258010010080000100800005006400001200452006420064032280100200800002002400002006420064111602011009910010016000010013010111011600112006101600001002006520065200752007520065
16020420064150039258010010080000100800005006400000200452006420064032280100200800002002400002006420064111602011009910010016000010000010111011600112006101600001002006520065200652006520065
16020420064150039258010010080000100800005006400000200452006420064032280100200800002002400002006420064111602011009910010016000010010010111011600112006101600001002006520065200652006520065
16020420064150039258010010080000100800005006400001200452006420064032280100200800002002400002006420064111602011009910010016000010020010111011600112006101600001002006520065200652006520065
16020420064150039258010010080000100800005006400001200452006420064032280100200800002002400002006420064111602011009910010016000010000010111311600112006101600001002006520065200652006520065
16020420064150039258010010080000100800005006400001200452006420064032280100200800002002400002006420064111602011009910010016000010010010111011600112006101600001002006520065200652006520065
16020420064150039258010010080000100800005006400001200452006420064032280100200800002002400002006420064111602011009910010016000010030010114011600112006101600001002006520065200652006520065
16020420064151239258010010080000100800005006400001200452006420064032280100200800002002400002006420064111602011009910010016000010010010111011600112006101600001002006520065200652006520065
16020420064150039258010010080000100800005006400001200452007420074032280100200800002002400002007420064111602011009910010016000010000010111011600112006101600001002006520065200652006520065

1000 unrolls and 10 iterations

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

retire (01)cycle (02)03080b1e3f51inst 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)9fa8accfd0d2icache miss (d3)d5d6d9dadbddinst fetch restart (de)e0? int output thing (e9)ea? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
16002420072150000452580012128000012800006264000011020027200462004603228001220800002024000020046200461116002110910101600001003100313215202215420047230160000102023220067200472005120051
16002420050150000452580012128000012800006264000011020031200502005003228001220800002024000020046200501116002110910101600001003100283114202115520043215160000102018320055200472004720047
16002420046150000512580012128000012800006264000011020027200462004603228001220800002024000020046200461116002110910101600001010100273115202114520043215160000102021020067200472005120047
16002420050150000452580012128000012800006264000011020027200462004603228001220800002024000020046200501116002110910101600001010100286115202115520043215160000102019020059200472004720047
16002420046150000452580012128000012800006264000011020027200462004603228001220800002024000020046200461116002110910101600001010100273115202115520043215160000102018620059200472004720047
16002420046150000512580012128000012800006264000011020027200462004603228001220800002024000020046200461116002110910101600001013100283115202125420043215160000102017320059200472004720047
16002420046150000452580012128000012800006264000011020027200462004603228001220800002024000020046200461116002110910101600001043174100283115202115420047215160000102050120067200472004720047
16002420046150000512580012128000012800006264000011020027200462005003228001220800002024000020046200461116002110910101600001010100273115202115520043215160000102019520056200472004720047
16002420046150000512580012128000012800006264000011020027200462004603228001220800002024000020046200461116002110910101600001000100283114202115420043215160000102016220056200512005120047
160024200461500007102580012128000012800006264000011020031200462004603228001220800002024000020046200461116002110910101600001000100273115202115520047215160000102017520067200472004720047

Test 6: throughput

Count: 16

Code:

  umlal2 v0.8h, v16.16b, v17.16b
  umlal2 v1.8h, v16.16b, v17.16b
  umlal2 v2.8h, v16.16b, v17.16b
  umlal2 v3.8h, v16.16b, v17.16b
  umlal2 v4.8h, v16.16b, v17.16b
  umlal2 v5.8h, v16.16b, v17.16b
  umlal2 v6.8h, v16.16b, v17.16b
  umlal2 v7.8h, v16.16b, v17.16b
  umlal2 v8.8h, v16.16b, v17.16b
  umlal2 v9.8h, v16.16b, v17.16b
  umlal2 v10.8h, v16.16b, v17.16b
  umlal2 v11.8h, v16.16b, v17.16b
  umlal2 v12.8h, v16.16b, v17.16b
  umlal2 v13.8h, v16.16b, v17.16b
  umlal2 v14.8h, v16.16b, v17.16b
  umlal2 v15.8h, 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)0318191e373f4e51inst 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)9fa8acc5branch mispredict (cb)cdcfd5d6ddinst fetch restart (de)e0? int output thing (e9)? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
16020440075300000062802516011710016000810016002050023991310040020400394003919977620000160120200160032200480096400394003911160201100991001001600001000011110118116004003601600001004004040040400404004040040
16020440039300000018002516010010016000010016000050012800000140020400394003919973319997160100200160000200480000400394003911160201100991001001600001000300010110116114003601600001004004040040400414004040049
160204400483000001719702516010010016001710016000050012800001140029400394003919973319997160100200160000200480000400484003911160201100991001001600001000000010110116114004501600001004004040049400404004040040
160204400483000001718802516010010016001710016000050012800000140029400394003919973320006160100200160000200480000400394004811160201100991001001600001000000010110116114004501600001004004040040400494004040040
160204400483000001711302516011710016000010016000050023989990040020400484003919973320006160100200160000200480000400484003911160201100991001001600001000000010110116114004501600001004004040049400404004040040
160204400392990001714802516010010016000010016000050012800000140029400484003919973319997160100200160000200480000400394003911160201100991001001600001000000010110116114003601600001004010840052400504004940040
160204400393000001791502516010010016000010016000050012800000140020400484003919973319997160100200160000200480000400394003911160201100991001001600001000000010110116114003601600001004004940040400404004940040
160204400393000001714602516011710016000010016000050012800000140029400394004819973319997160100200160000200480000400484003911160201100991001001600001000000010110116114004501600001004004040040400494004040049
16020440039300000174102516010010016001710016000050023990820040020400484003919973320006160100200160000200480000400484004811160201100991001001600001000000010110116114003601600001004004040040400494004040040
16020440039300000050025160100100160000100160000500239899901400204003940048199733199971601002001600002004800004003940048111602011009910010016000010000000101101161140036231600001004004040049400404004040049

1000 unrolls and 10 iterations

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

retire (01)cycle (02)030b181e373a3f4e51inst 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)9fa8accdcfd0d2icache miss (d3)d5d6d9dadbddinst fetch restart (de)dfe0eaeb? fp/simd (ee)gpr retires (ef)f5f6f7f8fd
16002440048300000001423025160027101600171016000050128000011104002040071400391999632001916001020160000204800004003940039111600211091010160000100001002213211416211108040045156160000104004040040400404004040040
1600244003930000000117602516002710160000101600005023989991110400204003940039199963200191600102016000020480000400484003911160021109101016000010000100221341816211119040036155160000104007240040400404004040040
160024400483000006101104025160010101600001016000050128000011104002040039400391999632001916001020160000204800004003940039111600211091010160000100001002213421116211118040036155160000104004040089400494004940049
160024400483000000017670251600101016000010160000501280000011040020400394004819996320019160010201600002048000040049400391116002110910101600001000010022134111164218100400363010160000104004040040400404007240040
1600244003930010000151252516001010160000101600005012800000110400204003940039199963200191600102016000020480000400394003911160021109101016000010000100221341121621112120400361510160000104007240040400404004140040
16002440039300000004602516002710160001101600005012800000110400204003940071199963200191600102016000020480000400394003911160021109101016000010000100241652716421118040036155160000104004040040400494004940040
160024400393000000013370251600101016006110160000501280000011040020400394007119996320019160010201600002048000040039400391116002110910101600001000010024164112164228100400363010160000104004040040400404004040040
16002440039300000001942025160010101600001016000050128000001104002040039400401999632001916001020160000204800004003940071111600211091010160000100001002416411116211128040036155160000104004040040400404004040040
160024400393000000016970251600101016000010160000501280000111040020400714003919996320019160010201600002048000040039400391116002110910101600001000010024134113162111112040036155160000104007240040400404004040040
1600244003930000017111150251600271016001710160000501280000111040020400394003919996320019160010201600002048000040049400391116002110910101600001000010022134210164118100400361512160000104004040050400404004040040