Skip to content

Instantly share code, notes, and snippets.

@jonahwilliams
Last active May 7, 2020 05:55
Show Gist options
  • Save jonahwilliams/492a6b7b189773081cd8f89698c29641 to your computer and use it in GitHub Desktop.
Save jonahwilliams/492a6b7b189773081cd8f89698c29641 to your computer and use it in GitHub Desktop.
Diagnosing SIMD performance difference
0x2f982516dd0 a9bf79fd stp fp, lr, [r15, #-16 ]!
0x2f982516dd4 aa0f03fd mov fp, r15
0x2f982516dd8 d10101ef subi r15, r15, 0x40
0x2f982516ddc f9400ba0 ldrx r0, [fp, #16]
0x2f982516de0 3cc07000 fldrq v0, [r0, #7]
0x2f982516de4 3cc17001 fldrq v1, [r0, #23]
0x2f982516de8 3cc27002 fldrq v2, [r0, #39]
0x2f982516dec 3cc37003 fldrq v3, [r0, #55]
0x2f982516df0 6e040404 vinss v4[0], v0[0]
0x2f982516df4 6e0c2404 vinss v4[1], v0[1]
0x2f982516df8 6e140424 vinss v4[2], v1[0]
0x2f982516dfc 6e1c2424 vinss v4[3], v1[1]
0x2f982516e00 6e040445 vinss v5[0], v2[0]
0x2f982516e04 6e0c2445 vinss v5[1], v2[1]
0x2f982516e08 6e140465 vinss v5[2], v3[0]
0x2f982516e0c 6e1c2465 vinss v5[3], v3[1]
0x2f982516e10 6e040486 vinss v6[0], v4[0]
0x2f982516e14 6e0c4486 vinss v6[1], v4[2]
0x2f982516e18 6e1404a6 vinss v6[2], v5[0]
0x2f982516e1c 6e1c44a6 vinss v6[3], v5[2]
0x2f982516e20 6e0424a7 vinss v7[0], v5[1]
0x2f982516e24 6e0c64a7 vinss v7[1], v5[3]
0x2f982516e28 6e142487 vinss v7[2], v4[1]
0x2f982516e2c 6e1c6487 vinss v7[3], v4[3]
0x2f982516e30 6e044404 vinss v4[0], v0[2]
0x2f982516e34 6e0c6404 vinss v4[1], v0[3]
0x2f982516e38 6e144424 vinss v4[2], v1[2]
0x2f982516e3c 6e1c6424 vinss v4[3], v1[3]
0x2f982516e40 6e044440 vinss v0[0], v2[2]
0x2f982516e44 6e0c6440 vinss v0[1], v2[3]
0x2f982516e48 6e144460 vinss v0[2], v3[2]
0x2f982516e4c 6e1c6460 vinss v0[3], v3[3]
0x2f982516e50 6e040481 vinss v1[0], v4[0]
0x2f982516e54 6e0c4481 vinss v1[1], v4[2]
0x2f982516e58 6e140401 vinss v1[2], v0[0]
0x2f982516e5c 6e1c4401 vinss v1[3], v0[2]
0x2f982516e60 6e042402 vinss v2[0], v0[1]
0x2f982516e64 6e0c6402 vinss v2[1], v0[3]
0x2f982516e68 6e142482 vinss v2[2], v4[1]
0x2f982516e6c 6e1c6482 vinss v2[3], v4[3]
0x2f982516e70 6e22dc20 vmuls v0, v1, v2
0x2f982516e74 6e042403 vinss v3[0], v0[1]
0x2f982516e78 6e0c0403 vinss v3[1], v0[0]
0x2f982516e7c 6e146403 vinss v3[2], v0[3]
0x2f982516e80 6e1c4403 vinss v3[3], v0[2]
0x2f982516e84 6e23dce0 vmuls v0, v7, v3
0x2f982516e88 6e23dcc4 vmuls v4, v6, v3
0x2f982516e8c 6e044465 vinss v5[0], v3[2]
0x2f982516e90 6e0c6465 vinss v5[1], v3[3]
0x2f982516e94 6e140465 vinss v5[2], v3[0]
0x2f982516e98 6e1c2465 vinss v5[3], v3[1]
0x2f982516e9c 6e25dce3 vmuls v3, v7, v5
0x2f982516ea0 4ea0d468 vsubs v8, v3, v0
0x2f982516ea4 6e25dcc0 vmuls v0, v6, v5
0x2f982516ea8 4ea4d403 vsubs v3, v0, v4
0x2f982516eac 6e044460 vinss v0[0], v3[2]
0x2f982516eb0 6e0c6460 vinss v0[1], v3[3]
0x2f982516eb4 6e140460 vinss v0[2], v3[0]
0x2f982516eb8 6e1c2460 vinss v0[3], v3[1]
0x2f982516ebc 6e21dce3 vmuls v3, v7, v1
0x2f982516ec0 6e042464 vinss v4[0], v3[1]
0x2f982516ec4 6e0c0464 vinss v4[1], v3[0]
0x2f982516ec8 6e146464 vinss v4[2], v3[3]
0x2f982516ecc 6e1c4464 vinss v4[3], v3[2]
0x2f982516ed0 6e24dc43 vmuls v3, v2, v4
0x2f982516ed4 4e28d465 vadds v5, v3, v8
0x2f982516ed8 6e24dcc3 vmuls v3, v6, v4
0x2f982516edc 6e044488 vinss v8[0], v4[2]
0x2f982516ee0 6e0c6488 vinss v8[1], v4[3]
0x2f982516ee4 6e140488 vinss v8[2], v4[0]
0x2f982516ee8 6e1c2488 vinss v8[3], v4[1]
0x2f982516eec 6e28dc44 vmuls v4, v2, v8
0x2f982516ef0 4ea4d4a9 vsubs v9, v5, v4
0x2f982516ef4 6e28dcc4 vmuls v4, v6, v8
0x2f982516ef8 4ea3d485 vsubs v5, v4, v3
0x2f982516efc 6e0444a3 vinss v3[0], v5[2]
0x2f982516f00 6e0c64a3 vinss v3[1], v5[3]
0x2f982516f04 6e1404a3 vinss v3[2], v5[0]
0x2f982516f08 6e1c24a3 vinss v3[3], v5[1]
0x2f982516f0c 6e0444e4 vinss v4[0], v7[2]
0x2f982516f10 6e0c64e4 vinss v4[1], v7[3]
0x2f982516f14 6e1404e4 vinss v4[2], v7[0]
0x2f982516f18 6e1c24e4 vinss v4[3], v7[1]
0x2f982516f1c 6e22dc85 vmuls v5, v4, v2
0x2f982516f20 6e0424a4 vinss v4[0], v5[1]
0x2f982516f24 6e0c04a4 vinss v4[1], v5[0]
0x2f982516f28 6e1464a4 vinss v4[2], v5[3]
0x2f982516f2c 6e1c44a4 vinss v4[3], v5[2]
0x2f982516f30 6e044425 vinss v5[0], v1[2]
0x2f982516f34 6e0c6425 vinss v5[1], v1[3]
0x2f982516f38 6e140425 vinss v5[2], v1[0]
0x2f982516f3c 6e1c2425 vinss v5[3], v1[1]
0x2f982516f40 6e24dca1 vmuls v1, v5, v4
0x2f982516f44 4e29d428 vadds v8, v1, v9
0x2f982516f48 6e24dcc1 vmuls v1, v6, v4
0x2f982516f4c 6e044489 vinss v9[0], v4[2]
0x2f982516f50 6e0c6489 vinss v9[1], v4[3]
0x2f982516f54 6e140489 vinss v9[2], v4[0]
0x2f982516f58 6e1c2489 vinss v9[3], v4[1]
0x2f982516f5c 6e29dca4 vmuls v4, v5, v9
0x2f982516f60 4ea4d50a vsubs v10, v8, v4
0x2f982516f64 6e29dcc4 vmuls v4, v6, v9
0x2f982516f68 4ea1d488 vsubs v8, v4, v1
0x2f982516f6c 6e044501 vinss v1[0], v8[2]
0x2f982516f70 6e0c6501 vinss v1[1], v8[3]
0x2f982516f74 6e140501 vinss v1[2], v8[0]
0x2f982516f78 6e1c2501 vinss v1[3], v8[1]
0x2f982516f7c 6e27dcc4 vmuls v4, v6, v7
0x2f982516f80 6e042488 vinss v8[0], v4[1]
0x2f982516f84 6e0c0488 vinss v8[1], v4[0]
0x2f982516f88 6e146488 vinss v8[2], v4[3]
0x2f982516f8c 6e1c4488 vinss v8[3], v4[2]
0x2f982516f90 6e28dc44 vmuls v4, v2, v8
0x2f982516f94 4e21d489 vadds v9, v4, v1
0x2f982516f98 6e28dca1 vmuls v1, v5, v8
0x2f982516f9c 4ea3d424 vsubs v4, v1, v3
0x2f982516fa0 6e044501 vinss v1[0], v8[2]
0x2f982516fa4 6e0c6501 vinss v1[1], v8[3]
0x2f982516fa8 6e140501 vinss v1[2], v8[0]
0x2f982516fac 6e1c2501 vinss v1[3], v8[1]
0x2f982516fb0 6e21dc43 vmuls v3, v2, v1
0x2f982516fb4 4ea9d468 vsubs v8, v3, v9
0x2f982516fb8 6e21dca3 vmuls v3, v5, v1
0x2f982516fbc 4ea3d481 vsubs v1, v4, v3
0x2f982516fc0 6e22dcc3 vmuls v3, v6, v2
0x2f982516fc4 6e042464 vinss v4[0], v3[1]
0x2f982516fc8 6e0c0464 vinss v4[1], v3[0]
0x2f982516fcc 6e146464 vinss v4[2], v3[3]
0x2f982516fd0 6e1c4464 vinss v4[3], v3[2]
0x2f982516fd4 6e24dca3 vmuls v3, v5, v4
0x2f982516fd8 4ea3d409 vsubs v9, v0, v3
0x2f982516fdc 6e24dce0 vmuls v0, v7, v4
0x2f982516fe0 4e28d403 vadds v3, v0, v8
0x2f982516fe4 6e044480 vinss v0[0], v4[2]
0x2f982516fe8 6e0c6480 vinss v0[1], v4[3]
0x2f982516fec 6e140480 vinss v0[2], v4[0]
0x2f982516ff0 6e1c2480 vinss v0[3], v4[1]
0x2f982516ff4 6e20dca4 vmuls v4, v5, v0
0x2f982516ff8 4e29d488 vadds v8, v4, v9
0x2f982516ffc 6e20dce4 vmuls v4, v7, v0
0x2f982517000 4ea4d460 vsubs v0, v3, v4
0x2f982517004 6e25dcc3 vmuls v3, v6, v5
0x2f982517008 6e042464 vinss v4[0], v3[1]
0x2f98251700c 6e0c0464 vinss v4[1], v3[0]
0x2f982517010 6e146464 vinss v4[2], v3[3]
0x2f982517014 6e1c4464 vinss v4[3], v3[2]
0x2f982517018 6e24dc43 vmuls v3, v2, v4
0x2f98251701c 4e28d465 vadds v5, v3, v8
0x2f982517020 6e24dce3 vmuls v3, v7, v4
0x2f982517024 4ea3d428 vsubs v8, v1, v3
0x2f982517028 6e044481 vinss v1[0], v4[2]
0x2f98251702c 6e0c6481 vinss v1[1], v4[3]
0x2f982517030 6e140481 vinss v1[2], v4[0]
0x2f982517034 6e1c2481 vinss v1[3], v4[1]
0x2f982517038 6e21dc43 vmuls v3, v2, v1
0x2f98251703c 4ea3d4a2 vsubs v2, v5, v3
0x2f982517040 6e21dce3 vmuls v3, v7, v1
0x2f982517044 4e28d461 vadds v1, v3, v8
0x2f982517048 6e2adcc3 vmuls v3, v6, v10
0x2f98251704c 6e044464 vinss v4[0], v3[2]
0x2f982517050 6e0c6464 vinss v4[1], v3[3]
0x2f982517054 6e140464 vinss v4[2], v3[0]
0x2f982517058 6e1c2464 vinss v4[3], v3[1]
0x2f98251705c 4e23d485 vadds v5, v4, v3
0x2f982517060 6e0424a3 vinss v3[0], v5[1]
0x2f982517064 6e0c04a3 vinss v3[1], v5[0]
0x2f982517068 6e1464a3 vinss v3[2], v5[3]
0x2f98251706c 6e1c44a3 vinss v3[3], v5[2]
0x2f982517070 4e25d464 vadds v4, v3, v5
0x2f982517074 4ea1d883 vrecpes v3, v4
0x2f982517078 4e23fc9f vrecpss v31, v4, v3
0x2f98251707c 6e3fdc63 vmuls v3, v3, v31
0x2f982517080 4e23fc9f vrecpss v31, v4, v3
0x2f982517084 6e3fdc63 vmuls v3, v3, v31
0x2f982517088 4e23d465 vadds v5, v3, v3
0x2f98251708c 6e23dc66 vmuls v6, v3, v3
0x2f982517090 6e26dc83 vmuls v3, v4, v6
0x2f982517094 4ea3d4a4 vsubs v4, v5, v3
0x2f982517098 4e040483 vdups v3, v4[0]
0x2f98251709c 6e2adc64 vmuls v4, v3, v10
0x2f9825170a0 3c9c03a4 fstrq v4, [fp, #-64]
0x2f9825170a4 6e22dc65 vmuls v5, v3, v2
0x2f9825170a8 3c9d03a5 fstrq v5, [fp, #-48]
0x2f9825170ac 6e20dc62 vmuls v2, v3, v0
0x2f9825170b0 3c9e03a2 fstrq v2, [fp, #-32]
0x2f9825170b4 6e21dc60 vmuls v0, v3, v1
0x2f9825170b8 3c9f03a0 fstrq v0, [fp, #-16]
0x2f9825170bc 3c9c03a4 fstrq v4, [fp, #-64]
0x2f9825170c0 3c9d03a5 fstrq v5, [fp, #-48]
0x2f9825170c4 3c9e03a2 fstrq v2, [fp, #-32]
0x2f9825170c8 3c9f03a0 fstrq v0, [fp, #-16]
0x2f9825170cc 94000000 bl 0x2f9825170cc
0x2f9825170d0 3cdc03a0 fldrq v0, [fp, #-64]
0x2f9825170d4 3c807000 fstrq v0, [r0, #7]
0x2f9825170d8 3cdd03a0 fldrq v0, [fp, #-48]
0x2f9825170dc 3c817000 fstrq v0, [r0, #23]
0x2f9825170e0 3cde03a0 fldrq v0, [fp, #-32]
0x2f9825170e4 3c827000 fstrq v0, [r0, #39]
0x2f9825170e8 3cdf03a0 fldrq v0, [fp, #-16]
0x2f9825170ec 3c837000 fstrq v0, [r0, #55]
0x2f9825170f0 aa1d03ef mov r15, fp
0x2f9825170f4 a8c179fd ldp fp, lr, [r15], #16 !
0x2f9825170f8 d65f03c0 ret lr
0x7727f1e4b0 ldrx ip0, [thr, #584]
0x7727f1e4b4 br ip0
0x7727f1e4b8 ldrx r1, [r5, #23]
0x7727f1e4bc ldrx r2, [r5, #31]
0x7727f1e4c0 movz ip0, 0x33
0x7727f1e4c4 tbzw r0, #0, 0x7727f1e4cc
0x7727f1e4c8 ldrh ip0, [r0, #1]
0x7727f1e4cc addi r2, r2, 0x2
0x7727f1e4d0 cmp r1, ip0 lsl #1
0x7727f1e4d4 bne 0x7727f1e4b0
0x7727f1e4d8 strx r2, [r5, #31]
0x7727f1e4dc movz r4, 0x0
0x7727f1e4e0 stp fp, lr, [r15, #-16 ]!
0x7727f1e4e4 mov fp, r15
0x7727f1e4e8 addi ip1, pp, 0x1
0x7727f1e4ec stp ip1, r24, [r15, #-16 ]!
0x7727f1e4f0 ldrx pp, [r24, #39]
0x7727f1e4f4 subi pp, pp, 0x1
0x7727f1e4f8 subi r15, r15, 0x40
0x7727f1e4fc ldrx r0, [fp, #16]
0x7727f1e500 ldrx r1, [r0, #7]
0x7727f1e504 ldrx r2, [r0, #15]
0x7727f1e508 ldrx r3, [r0, #23]
0x7727f1e50c ldrx r4, [r0, #31]
0x7727f1e510 fldrq v0, [r1, #7]
0x7727f1e514 fldrq v1, [r2, #7]
0x7727f1e518 vinss v2[0], v0[0]
0x7727f1e51c vinss v2[1], v0[1]
0x7727f1e520 vinss v2[2], v1[0]
0x7727f1e524 vinss v2[3], v1[1]
0x7727f1e528 fldrq v3, [r3, #7]
0x7727f1e52c fldrq v4, [r4, #7]
0x7727f1e530 vinss v5[0], v3[0]
0x7727f1e534 vinss v5[1], v3[1]
0x7727f1e538 vinss v5[2], v4[0]
0x7727f1e53c vinss v5[3], v4[1]
0x7727f1e540 vinss v6[0], v2[0]
0x7727f1e544 vinss v6[1], v2[2]
0x7727f1e548 vinss v6[2], v5[0]
0x7727f1e54c vinss v6[3], v5[2]
0x7727f1e550 vinss v7[0], v5[1]
0x7727f1e554 vinss v7[1], v5[3]
0x7727f1e558 vinss v7[2], v2[1]
0x7727f1e55c vinss v7[3], v2[3]
0x7727f1e560 vinss v2[0], v0[2]
0x7727f1e564 vinss v2[1], v0[3]
0x7727f1e568 vinss v2[2], v1[2]
0x7727f1e56c vinss v2[3], v1[3]
0x7727f1e570 vinss v0[0], v3[2]
0x7727f1e574 vinss v0[1], v3[3]
0x7727f1e578 vinss v0[2], v4[2]
0x7727f1e57c vinss v0[3], v4[3]
0x7727f1e580 vinss v1[0], v2[0]
0x7727f1e584 vinss v1[1], v2[2]
0x7727f1e588 vinss v1[2], v0[0]
0x7727f1e58c vinss v1[3], v0[2]
0x7727f1e590 vinss v3[0], v0[1]
0x7727f1e594 vinss v3[1], v0[3]
0x7727f1e598 vinss v3[2], v2[1]
0x7727f1e59c vinss v3[3], v2[3]
0x7727f1e5a0 vmuls v0, v1, v3
0x7727f1e5a4 vinss v2[0], v0[1]
0x7727f1e5a8 vinss v2[1], v0[0]
0x7727f1e5ac vinss v2[2], v0[3]
0x7727f1e5b0 vinss v2[3], v0[2]
0x7727f1e5b4 vmuls v0, v7, v2
0x7727f1e5b8 vmuls v4, v6, v2
0x7727f1e5bc vinss v5[0], v2[2]
0x7727f1e5c0 vinss v5[1], v2[3]
0x7727f1e5c4 vinss v5[2], v2[0]
0x7727f1e5c8 vinss v5[3], v2[1]
0x7727f1e5cc vmuls v2, v7, v5
0x7727f1e5d0 vsubs v8, v2, v0
0x7727f1e5d4 vmuls v0, v6, v5
0x7727f1e5d8 vsubs v2, v0, v4
0x7727f1e5dc vinss v0[0], v2[2]
0x7727f1e5e0 vinss v0[1], v2[3]
0x7727f1e5e4 vinss v0[2], v2[0]
0x7727f1e5e8 vinss v0[3], v2[1]
0x7727f1e5ec vmuls v2, v7, v1
0x7727f1e5f0 vinss v4[0], v2[1]
0x7727f1e5f4 vinss v4[1], v2[0]
0x7727f1e5f8 vinss v4[2], v2[3]
0x7727f1e5fc vinss v4[3], v2[2]
0x7727f1e600 vmuls v2, v3, v4
0x7727f1e604 vadds v5, v2, v8
0x7727f1e608 vmuls v2, v6, v4
0x7727f1e60c vinss v8[0], v4[2]
0x7727f1e610 vinss v8[1], v4[3]
0x7727f1e614 vinss v8[2], v4[0]
0x7727f1e618 vinss v8[3], v4[1]
0x7727f1e61c vmuls v4, v3, v8
0x7727f1e620 vsubs v9, v5, v4
0x7727f1e624 vmuls v4, v6, v8
0x7727f1e628 vsubs v5, v4, v2
0x7727f1e62c vinss v2[0], v5[2]
0x7727f1e630 vinss v2[1], v5[3]
0x7727f1e634 vinss v2[2], v5[0]
0x7727f1e638 vinss v2[3], v5[1]
0x7727f1e63c vinss v4[0], v7[2]
0x7727f1e640 vinss v4[1], v7[3]
0x7727f1e644 vinss v4[2], v7[0]
0x7727f1e648 vinss v4[3], v7[1]
0x7727f1e64c vmuls v5, v4, v3
0x7727f1e650 vinss v4[0], v5[1]
0x7727f1e654 vinss v4[1], v5[0]
0x7727f1e658 vinss v4[2], v5[3]
0x7727f1e65c vinss v4[3], v5[2]
0x7727f1e660 vinss v5[0], v1[2]
0x7727f1e664 vinss v5[1], v1[3]
0x7727f1e668 vinss v5[2], v1[0]
0x7727f1e66c vinss v5[3], v1[1]
0x7727f1e670 vmuls v1, v5, v4
0x7727f1e674 vadds v8, v1, v9
0x7727f1e678 vmuls v1, v6, v4
0x7727f1e67c vinss v9[0], v4[2]
0x7727f1e680 vinss v9[1], v4[3]
0x7727f1e684 vinss v9[2], v4[0]
0x7727f1e688 vinss v9[3], v4[1]
0x7727f1e68c vmuls v4, v5, v9
0x7727f1e690 vsubs v10, v8, v4
0x7727f1e694 vmuls v4, v6, v9
0x7727f1e698 vsubs v8, v4, v1
0x7727f1e69c vinss v1[0], v8[2]
0x7727f1e6a0 vinss v1[1], v8[3]
0x7727f1e6a4 vinss v1[2], v8[0]
0x7727f1e6a8 vinss v1[3], v8[1]
0x7727f1e6ac vmuls v4, v6, v7
0x7727f1e6b0 vinss v8[0], v4[1]
0x7727f1e6b4 vinss v8[1], v4[0]
0x7727f1e6b8 vinss v8[2], v4[3]
0x7727f1e6bc vinss v8[3], v4[2]
0x7727f1e6c0 vmuls v4, v3, v8
0x7727f1e6c4 vadds v9, v4, v1
0x7727f1e6c8 vmuls v1, v5, v8
0x7727f1e6cc vsubs v4, v1, v2
0x7727f1e6d0 vinss v1[0], v8[2]
0x7727f1e6d4 vinss v1[1], v8[3]
0x7727f1e6d8 vinss v1[2], v8[0]
0x7727f1e6dc vinss v1[3], v8[1]
0x7727f1e6e0 vmuls v2, v3, v1
0x7727f1e6e4 vsubs v8, v2, v9
0x7727f1e6e8 vmuls v2, v5, v1
0x7727f1e6ec vsubs v1, v4, v2
0x7727f1e6f0 vmuls v2, v6, v3
0x7727f1e6f4 vinss v4[0], v2[1]
0x7727f1e6f8 vinss v4[1], v2[0]
0x7727f1e6fc vinss v4[2], v2[3]
0x7727f1e700 vinss v4[3], v2[2]
0x7727f1e704 vmuls v2, v5, v4
0x7727f1e708 vsubs v9, v0, v2
0x7727f1e70c vmuls v0, v7, v4
0x7727f1e710 vadds v2, v0, v8
0x7727f1e714 vinss v0[0], v4[2]
0x7727f1e718 vinss v0[1], v4[3]
0x7727f1e71c vinss v0[2], v4[0]
0x7727f1e720 vinss v0[3], v4[1]
0x7727f1e724 vmuls v4, v5, v0
0x7727f1e728 vadds v8, v4, v9
0x7727f1e72c vmuls v4, v7, v0
0x7727f1e730 vsubs v0, v2, v4
0x7727f1e734 vmuls v2, v6, v5
0x7727f1e738 vinss v4[0], v2[1]
0x7727f1e73c vinss v4[1], v2[0]
0x7727f1e740 vinss v4[2], v2[3]
0x7727f1e744 vinss v4[3], v2[2]
0x7727f1e748 vmuls v2, v3, v4
0x7727f1e74c vadds v5, v2, v8
0x7727f1e750 vmuls v2, v7, v4
0x7727f1e754 vsubs v8, v1, v2
0x7727f1e758 vinss v1[0], v4[2]
0x7727f1e75c vinss v1[1], v4[3]
0x7727f1e760 vinss v1[2], v4[0]
0x7727f1e764 vinss v1[3], v4[1]
0x7727f1e768 vmuls v2, v3, v1
0x7727f1e76c vsubs v3, v5, v2
0x7727f1e770 vmuls v2, v7, v1
0x7727f1e774 vadds v1, v2, v8
0x7727f1e778 vmuls v2, v6, v10
0x7727f1e77c vinss v4[0], v2[2]
0x7727f1e780 vinss v4[1], v2[3]
0x7727f1e784 vinss v4[2], v2[0]
0x7727f1e788 vinss v4[3], v2[1]
0x7727f1e78c vadds v5, v4, v2
0x7727f1e790 vinss v2[0], v5[1]
0x7727f1e794 vinss v2[1], v5[0]
0x7727f1e798 vinss v2[2], v5[3]
0x7727f1e79c vinss v2[3], v5[2]
0x7727f1e7a0 vadds v4, v2, v5
0x7727f1e7a4 vrecpes v2, v4
0x7727f1e7a8 vrecpss v31, v4, v2
0x7727f1e7ac vmuls v2, v2, v31
0x7727f1e7b0 vrecpss v31, v4, v2
0x7727f1e7b4 vmuls v2, v2, v31
0x7727f1e7b8 vadds v5, v2, v2
0x7727f1e7bc vmuls v6, v2, v2
0x7727f1e7c0 vmuls v2, v4, v6
0x7727f1e7c4 vsubs v4, v5, v2
0x7727f1e7c8 vdups v2, v4[0]
0x7727f1e7cc vmuls v4, v2, v10
0x7727f1e7d0 fstrq v4, [fp, #-80]
0x7727f1e7d4 vmuls v5, v2, v3
0x7727f1e7d8 fstrq v5, [fp, #-64]
0x7727f1e7dc vmuls v3, v2, v0
0x7727f1e7e0 fstrq v3, [fp, #-48]
0x7727f1e7e4 vmuls v0, v2, v1
0x7727f1e7e8 fstrq v0, [fp, #-32]
0x7727f1e7ec fstrq v4, [fp, #-80]
0x7727f1e7f0 fstrq v5, [fp, #-64]
0x7727f1e7f4 fstrq v3, [fp, #-48]
0x7727f1e7f8 fstrq v0, [fp, #-32]
0x7727f1e7fc ldrx r24, [pp, #16]
0x7727f1e800 ldrx ip0, [r24, #7]
0x7727f1e804 blr ip0
0x7727f1e808 fldrq v0, [fp, #-80]
0x7727f1e80c ldrx r2, [thr, #88]
0x7727f1e810 ldrx r2, [r2, #72]
0x7727f1e814 ldrx r2, [r2]
0x7727f1e818 addi r2, r2, 0x38
0x7727f1e81c ldrb r2, [r2]
0x7727f1e820 cbnz r2, 0x7727f1e93c
0x7727f1e824 ldp r1, ip0, [thr, #104 ]
0x7727f1e828 addi r2, r1, 0x20
0x7727f1e82c cmp ip0, r2
0x7727f1e830 bls 0x7727f1e93c
0x7727f1e834 strx r2, [thr, #104]
0x7727f1e838 movz ip0, 0x204
0x7727f1e83c movk ip0, 0x38 lsl 16
0x7727f1e840 strx ip0, [r1]
0x7727f1e844 addi r1, r1, 0x1
0x7727f1e848 fstrq v0, [r1, #7]
0x7727f1e84c strx r1, [r0, #7]
0x7727f1e850 fldrq v0, [fp, #-64]
0x7727f1e854 ldrx r2, [thr, #88]
0x7727f1e858 ldrx r2, [r2, #72]
0x7727f1e85c ldrx r2, [r2]
0x7727f1e860 addi r2, r2, 0x38
0x7727f1e864 ldrb r2, [r2]
0x7727f1e868 cbnz r2, 0x7727f1e960
0x7727f1e86c ldp r1, ip0, [thr, #104 ]
0x7727f1e870 addi r2, r1, 0x20
0x7727f1e874 cmp ip0, r2
0x7727f1e878 bls 0x7727f1e960
0x7727f1e87c strx r2, [thr, #104]
0x7727f1e880 movz ip0, 0x204
0x7727f1e884 movk ip0, 0x38 lsl 16
0x7727f1e888 strx ip0, [r1]
0x7727f1e88c addi r1, r1, 0x1
0x7727f1e890 fstrq v0, [r1, #7]
0x7727f1e894 strx r1, [r0, #15]
0x7727f1e898 fldrq v0, [fp, #-48]
0x7727f1e89c ldrx r2, [thr, #88]
0x7727f1e8a0 ldrx r2, [r2, #72]
0x7727f1e8a4 ldrx r2, [r2]
0x7727f1e8a8 addi r2, r2, 0x38
0x7727f1e8ac ldrb r2, [r2]
0x7727f1e8b0 cbnz r2, 0x7727f1e984
0x7727f1e8b4 ldp r1, ip0, [thr, #104 ]
0x7727f1e8b8 addi r2, r1, 0x20
0x7727f1e8bc cmp ip0, r2
0x7727f1e8c0 bls 0x7727f1e984
0x7727f1e8c4 strx r2, [thr, #104]
0x7727f1e8c8 movz ip0, 0x204
0x7727f1e8cc movk ip0, 0x38 lsl 16
0x7727f1e8d0 strx ip0, [r1]
0x7727f1e8d4 addi r1, r1, 0x1
0x7727f1e8d8 fstrq v0, [r1, #7]
0x7727f1e8dc strx r1, [r0, #23]
0x7727f1e8e0 fldrq v0, [fp, #-32]
0x7727f1e8e4 ldrx r2, [thr, #88]
0x7727f1e8e8 ldrx r2, [r2, #72]
0x7727f1e8ec ldrx r2, [r2]
0x7727f1e8f0 addi r2, r2, 0x38
0x7727f1e8f4 ldrb r2, [r2]
0x7727f1e8f8 cbnz r2, 0x7727f1e9a8
0x7727f1e8fc ldp r1, ip0, [thr, #104 ]
0x7727f1e900 addi r2, r1, 0x20
0x7727f1e904 cmp ip0, r2
0x7727f1e908 bls 0x7727f1e9a8
0x7727f1e90c strx r2, [thr, #104]
0x7727f1e910 movz ip0, 0x204
0x7727f1e914 movk ip0, 0x38 lsl 16
0x7727f1e918 strx ip0, [r1]
0x7727f1e91c addi r1, r1, 0x1
0x7727f1e920 fstrq v0, [r1, #7]
0x7727f1e924 strx r1, [r0, #31]
0x7727f1e928 ldrx pp, [fp, #-16]
0x7727f1e92c subi pp, pp, 0x1
0x7727f1e930 mov r15, fp
0x7727f1e934 ldp fp, lr, [r15], #16 !
0x7727f1e938 ret lr
0x7727f1e93c fstrq v0, [r15, #-16] !
0x7727f1e940 strx r0, [r15, #-8] !
0x7727f1e944 ldrx r24, [pp, #24]
0x7727f1e948 ldrx ip0, [r24, #7]
0x7727f1e94c blr ip0
0x7727f1e950 mov r1, r0
0x7727f1e954 ldrx r0, [r15], #8 !
0x7727f1e958 fldrq v0, [r15], #16 !
0x7727f1e95c b 0x7727f1e848
0x7727f1e960 fstrq v0, [r15, #-16] !
0x7727f1e964 strx r0, [r15, #-8] !
0x7727f1e968 ldrx r24, [pp, #24]
0x7727f1e96c ldrx ip0, [r24, #7]
0x7727f1e970 blr ip0
0x7727f1e974 mov r1, r0
0x7727f1e978 ldrx r0, [r15], #8 !
0x7727f1e97c fldrq v0, [r15], #16 !
0x7727f1e980 b 0x7727f1e890
0x7727f1e984 fstrq v0, [r15, #-16] !
0x7727f1e988 strx r0, [r15, #-8] !
0x7727f1e98c ldrx r24, [pp, #24]
0x7727f1e990 ldrx ip0, [r24, #7]
0x7727f1e994 blr ip0
0x7727f1e998 mov r1, r0
0x7727f1e99c ldrx r0, [r15], #8 !
0x7727f1e9a0 fldrq v0, [r15], #16 !
0x7727f1e9a4 b 0x7727f1e8d8
0x7727f1e9a8 fstrq v0, [r15, #-16] !
0x7727f1e9ac strx r0, [r15, #-8] !
0x7727f1e9b0 ldrx r24, [pp, #24]
0x7727f1e9b4 ldrx ip0, [r24, #7]
0x7727f1e9b8 blr ip0
0x7727f1e9bc mov r1, r0
0x7727f1e9c0 ldrx r0, [r15], #8 !
0x7727f1e9c4 fldrq v0, [r15], #16 !
0x7727f1e9c8 b 0x7727f1e920
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment