]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/asm/internal/asm: update the test cases in arm64enc.s file
authorfanzha02 <fannie.zhang@arm.com>
Thu, 19 Apr 2018 06:38:13 +0000 (06:38 +0000)
committerCherry Zhang <cherryyz@google.com>
Wed, 2 May 2018 17:24:56 +0000 (17:24 +0000)
Uncomment the test cases in arm64enc.s because they can be handled
by current assembler. In addition, CL supplements more test cases.

Change-Id: I583d45793b8227c6ec370868652dd8bcbfaa1ecf
Reviewed-on: https://go-review.googlesource.com/109275
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/asm/internal/asm/testdata/arm64enc.s

index 5fa9af99fa8da1bf9c4eeb54264201ebbc7bad53..ee4673c1ae1e45dbd42586b25b4f04ec189f23a6 100644 (file)
@@ -2,8 +2,10 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// TODO means they cannot be handled now.
-// Comment cases means they are handled incorrectly.
+// The cases are auto-generated by disassembler.
+// The uncommented cases means they can be handled by assembler
+// and they are consistent with disassembler decoding.
+// TODO means they cannot be handled by current assembler.
 
 #include "../../../../../runtime/textflag.h"
 
@@ -14,16 +16,16 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    ADC R0, R2, R12                            // 4c00009a
    ADCSW R9, R21, R6                          // a602093a
    ADCS R23, R22, R22                         // d60217ba
-   //TODO ADDW R5.UXTH, R8, R9                // 0921250b
-   //TODO ADD R8.SXTB<<7, R23, R14            // ee9e288b
+   ADDW R5.UXTH, R8, R9                       // 0921250b
+   ADD R8.SXTB<<3, R23, R14                   // ee8e288b
    ADDW $3076, R17, R3                        // 23123011
    ADDW $(3076<<12), R17, R3                  // ADDW $12599296, R17, R3           // 23127011
    ADD $2280, R25, R11                        // 2ba32391
    ADD $(2280<<12), R25, R11                  // ADD $9338880, R25, R11            // 2ba36391
    ADDW R13->5, R11, R7                       // 67158d0b
    ADD R25<<54, R17, R16                      // 30da198b
-   //TODO ADDSW R12.SXTX<<1, R29, R7          // a7e72c2b
-   //TODO ADDS R24.UXTX<<4, R25, R21          // 357338ab
+   ADDSW R12.SXTX<<1, R29, R7                 // a7e72c2b
+   ADDS R24.UXTX<<4, R25, R21                 // 357338ab
    ADDSW $(3525<<12), R3, R11                 // ADDSW $14438400, R3, R11          // 6b147731
    ADDS $(3525<<12), R3, R11                  // ADDS $14438400, R3, R11           // 6b1477b1
    ADDSW R7->22, R14, R13                     // cd59872b
@@ -92,8 +94,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    CLS R15, ZR                                // ff15c0da
    CLZW R1, R14                               // 2e10c05a
    CLZ R21, R9                                // a912c0da
-   //TODO CMNW R21.UXTB<<4, R15               // ff11352b
-   //TODO CMN R0.UXTW<<4, R16                 // 1f5220ab
+   CMNW R21.UXTB<<4, R15                      // ff11352b
+   CMN R0.UXTW<<4, R16                        // 1f5220ab
    CMNW R13>>8, R9                            // 3f214d2b
    CMN R6->17, R3                             // 7f4486ab
    CMNW $(2<<12), R5                          // CMNW $8192, R5                // bf084031
@@ -104,8 +106,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    CMNW $2, R5                                // bf080031
    CMN ZR, R3                                 // 7f001fab
    CMN R0, R3                                 // 7f0000ab
-   //TODO CMPW R6.UXTB, R23                   // ff02266b
-   //TODO CMP R25.SXTH<<5, R26                // 5fb739eb
+   CMPW R6.UXTB, R23                          // ff02266b
+   CMP R25.SXTH<<2, R26                       // 5fab39eb
    CMP $3817, R29                             // bfa73bf1
    CMP R7>>23, R3                             // 7f5c47eb
    CNEGW PL, R9, R14                          // 2e45895a
@@ -160,8 +162,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    LDAR (R27), R22                            // 76ffdfc8
    LDARB (R25), R2                            // 22ffdf08
    LDARH (R5), R7                             // a7fcdf48
-   //TODO LDAXPW (R10), (R20, R16)            // 54c17f88
-   //TODO LDAXP (R25), (R30, R11)             // 3eaf7fc8
+   LDAXPW (R10), (R20, R16)                   // 54c17f88
+   LDAXP (R25), (R30, R11)                    // 3eaf7fc8
    LDAXRW (R15), R2                           // e2fd5f88
    LDAXR (R15), R21                           // f5fd5fc8
    LDAXRB (R19), R16                          // 70fe5f08
@@ -178,31 +180,41 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    MOVD.W -134(R0), R29                       // 1dac57f8
    MOVWU 4156(R1), R25                        // 393c50b9
    MOVD 14616(R10), R9                        // 498d5cf9
+   MOVWU (R4)(R12.SXTW<<2), R7                // 87d86cb8
+   MOVD (R7)(R11.UXTW<<3), R25                // f9586bf8
    MOVBU.P 42(R2), R12                        // 4ca44238
    MOVBU.W -27(R2), R14                       // 4e5c5e38
    MOVBU 2916(R24), R3                        // 03936d39
-   //TODO MOVBU R14<<1(R18), R23              // 577a6e38
+   MOVBU (R18)(R14<<0), R23                   // 577a6e38
+   MOVBU (R2)(R8.SXTX), R19                   // 53e86838
+   MOVBU (R27)(R23), R14                      // MOVBU (R27)(R23*1), R14     // 6e6b7738
    MOVHU.P 107(R13), R13                      // adb54678
    MOVHU.W 192(R2), R2                        // 420c4c78
    MOVHU 6844(R4), R18                        // 92787579
+   MOVHU (R5)(R25.SXTW), R15                  // afc87978
    //TODO MOVBW.P 77(R18), R11                // 4bd6c438
    MOVB.P 36(RSP), R27                        // fb478238
    //TODO MOVBW.W -57(R18), R13               // 4d7edc38
    MOVB.W -178(R16), R24                      // 18ee9438
    //TODO MOVBW 430(R8), R22                  // 16b9c639
    MOVB 997(R9), R23                          // 37958f39
-   //TODO MOVBW R2<<1(R21), R15               // af7ae238
-   //TODO MOVBW R26(R0), R21                  // 1568fa38
-   //TODO MOVB R5(R15), R16                   // f069a538
+   //TODO MOVBW (R2<<1)(R21), R15             // af7ae238
+   //TODO MOVBW (R26)(R0), R21                // 1568fa38
+   MOVB (R5)(R15), R16                        // MOVB (R5)(R15*1), R16         // b068af38
+   MOVB (R18)(R26.SXTW), R19                  // 53caba38
+   MOVB (R29)(R30), R14                       // MOVB (R29)(R30*1), R14        // ae6bbe38
    //TODO MOVHW.P 218(R22), R25               // d9a6cd78
    MOVH.P 179(R23), R5                        // e5368b78
    //TODO MOVHW.W 136(R2), R27                // 5b8cc878
    MOVH.W -63(R25), R22                       // 361f9c78
    //TODO MOVHW 5708(R25), R21                // 359bec79
    MOVH 54(R2), R13                           // 4d6c8079
+   //TODO MOVHW (R22)(R24.SXTX), R4           // c4eaf878
+   MOVH (R26)(R30.UXTW<<1), ZR                // 5f5bbe78
    MOVW.P -58(R16), R2                        // 02669cb8
    MOVW.W -216(R18), R8                       // 488e92b8
    MOVW 4764(R23), R10                        // ea9e92b9
+   MOVW (R8)(R3.UXTW), R17                    // 1149a3b8
    //TODO LDTR -0x1e(R3), R4                  // 64285eb8
    //TODO LDTR -0xe5(R3), R10                 // 6ab851f8
    //TODO LDTRB 0xf0(R13), R10                // aa094f38
@@ -221,8 +233,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    //TODO LDURSH -0x49(R11), R28              // 7c71db78
    //TODO LDURSH -0x1f(R0), R29               // 1d109e78
    //TODO LDURSW 0x48(R6), R20                // d48084b8
-   //TODO LDXPW (R24), (R23, R11)             // 172f7f88
-   //TODO LDXP (R0), (R16, R13)               // 10347fc8
+   LDXPW (R24), (R23, R11)                    // 172f7f88
+   LDXP (R0), (R16, R13)                      // 10347fc8
    LDXRW (RSP), R30                           // fe7f5f88
    LDXR (R27), R12                            // 6c7f5fc8
    LDXRB (R0), R4                             // 047c5f08
@@ -276,9 +288,10 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    ORR $-3458764513820540929, R12, R22        // 96f542b2
    ORRW R13<<4, R8, R26                       // 1a110d2a
    ORR R3<<22, R5, R6                         // a65803aa
-   //TODO PRFM 0x6400(R7), PSTL2STRM          // f300b2f9
-   //TODO PRFM -215799(PC), PLIL2KEEP         // 2aa196d8
-   //TODO PRFUM 0x42(R14), #0X06              // c62184f8
+   PRFM (R8), $25                             // 190180f9
+   PRFM (R2), PLDL1KEEP                       // 400080f9
+   //TODO PRFM (R27)(R30.SXTW<<3), PLDL2STRM  // 63dbbff8
+   //TODO PRFUM 22(R16), PSTL1KEEP            // 106281f8
    RBITW R9, R22                              // 3601c05a
    RBIT R11, R4                               // 6401c0da
    RET                                        // c0035fd6
@@ -313,14 +326,14 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    SMC $37977                                 // 238b12d4
    STLRW R16, (R22)                           // d0fe9f88
    STLR R3, (R24)                             // 03ff9fc8
-   //TODO STLRB R11, (R22)                    // cbfe9f08
-   //TODO STLRH R16, (R23)                    // f0fe9f48
+   STLRB R11, (R22)                           // cbfe9f08
+   STLRH R16, (R23)                           // f0fe9f48
    STLXR R7, (R27), R8                        // 67ff08c8
    STLXRW R13, (R15), R14                     // edfd0e88
    STLXRB R24, (R23), R8                      // f8fe0808
    STLXRH R19, (R27), R11                     // 73ff0b48
-   //TODO STLXP (R6, R3), (R10), R2           // 468d22c8
-   //TODO STLXPW (R6, R11), (R22), R21        // c6ae3588
+   STLXP (R6, R3), (R10), R2                  // 468d22c8
+   STLXPW (R6, R11), (R22), R21               // c6ae3588
    //TODO STNPW 44(R1), R3, R10               // 2a8c0528
    //TODO STNP 0x108(R3), ZR, R7              // 67fc10a8
    LDP.P -384(R3), (R22, R26)                 // 7668e8a8
@@ -341,30 +354,35 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    MOVH R19, 3686(R26)                        // 53cf1c79
    MOVW R21, 34(R0)                           // 152002b8
    MOVD R25, -137(R17)                        // 397217f8
+   MOVW R4, (R12)(R22.UXTW<<2)                // 845936b8
+   MOVD R27, (R5)(R15.UXTW<<3)                // bb582ff8
+   MOVB R2, (R10)(R16)                        // MOVB R2, (R10)(R16*1)         // 42693038
+   MOVB R2, (R29)(R26)                        // MOVB R2, (R29)(R26*1)         // a26b3a38
    MOVH R11, -80(R23)                         // eb021b78
-   //TODO MOVB R18, R0(R4)                    // 92682038
-   //TODO MOVB R1, R6(R4)                     // 81682638
-   //TODO MOVH R3, R13<<1(R11)                // 63792d78
+   MOVH R11, (R27)(R14.SXTW<<1)               // 6bdb2e78
+   MOVB R18, (R0)(R4)                         // MOVB R18, (R0)(R4*1)          // 12682438
+   MOVB R1, (R6)(R4)                          // MOVB R1, (R6)(R4*1)           // c1682438
+   MOVH R3, (R11)(R13<<1)                     // 63792d78
    //TODO STTR 55(R4), R29                    // 9d7803b8
    //TODO STTR 124(R5), R25                   // b9c807f8
    //TODO STTRB -28(R23), R16                 // f04a1e38
    //TODO STTRH 9(R10), R18                   // 52990078
-   //TODO STXP (R1, R2), (R3), R10            // 61082ac8
-   //TODO STXP (R1, R2), (RSP), R10           // e10b2ac8
-   //TODO STXPW (R1, R2), (R3), R10           // 61082a88
-   //TODO STXPW (R1, R2), (RSP), R10          // e10b2a88
+   STXP (R1, R2), (R3), R10                   // 61082ac8
+   STXP (R1, R2), (RSP), R10                  // e10b2ac8
+   STXPW (R1, R2), (R3), R10                  // 61082a88
+   STXPW (R1, R2), (RSP), R10                 // e10b2a88
    STXRW R2, (R19), R18                       // 627e1288
    STXR R15, (R21), R13                       // af7e0dc8
    STXRB R7, (R9), R24                        // 277d1808
    STXRH R12, (R3), R8                        // 6c7c0848
-   //TODO SUBW R20.UXTW<<7, R23, R18          // f25e344b
-   //TODO SUB R5.SXTW<<2, R1, R26             // 3ac825cb
+   SUBW R20.UXTW<<2, R23, R18                 // f24a344b
+   SUB R5.SXTW<<2, R1, R26                    // 3ac825cb
    SUB $(1923<<12), R4, R27                   // SUB $7876608, R4, R27         // 9b0c5ed1
    SUBW $(1923<<12), R4, R27                  // SUBW $7876608, R4, R27        // 9b0c5e51
    SUBW R12<<29, R7, R8                       // e8740c4b
    SUB R12<<61, R7, R8                        // e8f40ccb
-   //TODO SUBSW R2.SXTH<<3, R13, R6           // a6ad226b
-   //TODO SUBS R21.UXTX<<5, R27, R4           // 647735eb
+   SUBSW R2.SXTH<<3, R13, R6                  // a6ad226b
+   SUBS R21.UXTX<<2, R27, R4                  // 646b35eb
    SUBSW $(44<<12), R6, R9                    // SUBSW $180224, R6, R9         // c9b04071
    SUBS $(1804<<12), R13, R9                  // SUBS $7389184, R13, R9        // a9315cf1
    SUBSW R22->28, R6, R7                      // c770966b
@@ -404,13 +422,40 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    WFE                                        // 5f2003d5
    WFI                                        // 7f2003d5
    YIELD                                      // 3f2003d5
-   //TODO FADD V21.D2, V10.D2, V21.D2         // 55d5754e
+   //TODO FABD F0, F5, F11                    // abd4a07e
+   //TODO VFABD V30.S2, V8.S2, V24.S2         // 18d5be2e
+   //TODO VFABS V5.S4, V24.S4                 // b8f8a04e
+   FABSS F2, F28                              // 5cc0201e
+   FABSD F0, F14                              // 0ec0601e
+   //TODO FACGE F25, F16, F0                  // 00ee797e
+   //TODO VFACGE V11.S2, V15.S2, V9.S2        // e9ed2b2e
+   //TODO FACGT F20, F16, F27                 // 1beef47e
+   //TODO VFACGT V15.S4, V25.S4, V22.S4       // 36efaf6e
+   //TODO VFADD V21.D2, V10.D2, V21.D2        // 55d5754e
    FADDS F12, F2, F10                         // 4a282c1e
    FADDD F24, F14, F12                        // cc29781e
+   //TODO VFADDP V4.D2, F13                   // 8dd8707e
+   //TODO VFADDP V30.S4, V3.S4, V11.S4        // 6bd43e6e
    FCCMPS LE, F17, F12, $14                   // 8ed5311e
    FCCMPD HI, F11, F15, $15                   // ef856b1e
    FCCMPES HS, F28, F13, $13                  // bd253c1e
    FCCMPED LT, F20, F4, $9                    // 99b4741e
+   //TODO FCMEQ F7, F11, F26                  // 7ae5675e
+   //TODO VFCMEQ V29.S4, V26.S4, V30.S4       // 5ee73d4e
+   //TODO FCMEQ $0, F17, F22                  // 36daa05e
+   //TODO VFCMEQ $0, V17.D2, V22.D2           // 36dae04e
+   //TODO FCMGE F29, F31, F13                 // ede77d7e
+   //TODO VFCMGE V8.S2, V31.S2, V2.S2         // e2e7282e
+   //TODO FCMGE $0, F18, F27                  // e2e7282e
+   //TODO VFCMGE $0, V14.S2, V8.S2            // c8c9a02e
+   //TODO FCMGT F20, F2, F8                   // 48e4b47e
+   //TODO VFCMGT V26.D2, V15.D2, V23.D2       // f7e5fa6e
+   //TODO FCMGT $0, F14, F3                   // c3c9e05e
+   //TODO VFCMGT $0, V6.S2, V28.S2            // dcc8a00e
+   //TODO FCMLE $0, F26, F25                  // 59dba07e
+   //TODO VFCMLE $0, V28.S2, V20.S2           // 94dba02e
+   //TODO FCMLT $0, F17, F3                   // 23eae05e
+   //TODO VFCMLT $0, V8.S4, V7.S4             // 07e9a04e
    FCMPS F3, F17                              // 2022231e
    FCMPS $(0.0), F8                           // 0821201e
    FCMPD F11, F27                             // 60236b1e
@@ -421,89 +466,187 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    FCMPED $(0.0), F25                         // 3823601e
    FCSELS EQ, F26, F27, F25                   // 590f3b1e
    FCSELD PL, F8, F22, F7                     // 075d761e
-   //TODO FCVTASW F21, R15                    // af02241e
-   //TODO FCVTAS F20, ZR                      // 9f02249e
-   //TODO FCVTASW F6, R11                     // cb00641e
-   //TODO FCVTAS F6, R1                       // c100649e
-   //TODO FCVTAUW F19, R26                    // 7a02251e
-   //TODO FCVTAU F6, R5                       // c500259e
-   //TODO FCVTAUW F6, R23                     // d700651e
-   //TODO FCVTAU F27, R5                      // 6503659e
-   //TODO FCVTMSW F15, R6                     // e601301e
-   //TODO FCVTMS F15, ZR                      // ff01309e
-   //TODO FCVTMSW F1, R14                     // 2e00701e
-   //TODO FCVTMS F21, R9                      // a902709e
-   //TODO FCVTMUW F20, R28                    // 9c02311e
-   //TODO FCVTMU F23, R14                     // ee02319e
-   //TODO FCVTMUW F18, R28                    // 5c02711e
-   //TODO FCVTMU F24, R6                      // 0603719e
-   //TODO FCVTNSW F12, R13                    // 8d01201e
-   //TODO FCVTNS F9, R26                      // 3a01209e
-   //TODO FCVTNSW F14, R8                     // c801601e
-   //TODO FCVTNS F28, R10                     // 8a03609e
-   //TODO FCVTNUW F22, R30                    // de02211e
-   //TODO FCVTNU F20, R4                      // 8402219e
-   //TODO FCVTNUW F18, R27                    // 5b02611e
-   //TODO FCVTNU F21, R0                      // a002619e
-   //TODO FCVTPSW F20, R6                     // 8602281e
-   //TODO FCVTPS F12, R20                     // 9401289e
-   //TODO FCVTPSW F22, R6                     // c602681e
-   //TODO FCVTPS F21, R28                     // bc02689e
-   //TODO FCVTPUW F24, R26                    // 1a03291e
-   //TODO FCVTPU F16, R13                     // 0d02299e
-   //TODO FCVTPUW F21, R29                    // bd02691e
-   //TODO FCVTPU F11, R7                      // 6701699e
+   //TODO FCVTAS F4, F28                      // 9cc8215e
+   //TODO VFCVTAS V21.D2, V27.D2              // bbca614e
+   //TODO FCVTAS F27, R7                      // 6703241e
+   //TODO FCVTAS F19, R26                     // 7a02249e
+   //TODO FCVTAS F4, R0                       // 8000641e
+   //TODO FCVTAS F3, R18                      // 7200649e
+   //TODO FCVTAU F18, F28                     // 5cca217e
+   //TODO VFCVTAU V30.S4, V27.S4              // dbcb216e
+   //TODO FCVTAU F0, R2                       // 0200251e
+   //TODO FCVTAU F0, R24                      // 1800259e
+   //TODO FCVTAU F31, R10                     // ea03651e
+   //TODO FCVTAU F3, R8                       // 6800659e
+   //TODO VFCVTL V11.S2, V21.D2               // 7579610e
+   //TODO VFCVTL2 V15.H8, V25.S4              // f979214e
+   //TODO FCVTMS F21, F28                     // bcba215e
+   //TODO VFCVTMS V5.D2, V2.D2                // a2b8614e
+   //TODO FCVTMS F31, R18                     // f203301e
+   //TODO FCVTMS F23, R16                     // f002309e
+   //TODO FCVTMS F16, R22                     // 1602701e
+   //TODO FCVTMS F14, R19                     // d301709e
+   //TODO FCVTMU F14, F8                      // c8b9217e
+   //TODO VFCVTMU V7.D2, V1.D2                // e1b8616e
+   //TODO FCVTMU F2, R0                       // 4000311e
+   //TODO FCVTMU F23, R18                     // f202319e
+   //TODO FCVTMU F16, R17                     // 1102711e
+   //TODO FCVTMU F12, R18                     // 9201719e
+   //TODO VFCVTN V23.D2, V26.S2               // fa6a610e
+   //TODO VFCVTN2 V2.D2, V31.S4               // 5f68614e
+   //TODO FCVTNS F3, F27                      // 7ba8215e
+   //TODO VFCVTNS V11.S2, V12.S2              // 6ca9210e
+   //TODO FCVTNS F14, R9                      // c901201e
+   //TODO FCVTNS F0, R27                      // 1b00209e
+   //TODO FCVTNS F23, R0                      // e002601e
+   //TODO FCVTNS F6, R30                      // de00609e
+   //TODO FCVTNU F12, F9                      // 89a9217e
+   //TODO VFCVTNU V3.D2, V20.D2               // 74a8616e
+   //TODO FCVTNU F20, R11                     // 8b02211e
+   //TODO FCVTNU F23, R19                     // f302219e
+   //TODO FCVTNU F4, R5                       // 8500611e
+   //TODO FCVTNU F11, R19                     // 7301619e
+   //TODO FCVTPS F20, F26                     // 9aaae15e
+   //TODO VFCVTPS V29.S4, V13.S4              // adaba14e
+   //TODO FCVTPS F5, R29                      // bd00281e
+   //TODO FCVTPS F3, R3                       // 6300289e
+   //TODO FCVTPS F4, R25                      // 9900681e
+   //TODO FCVTPS F29, R15                     // af03689e
+   //TODO FCVTPU F13, F3                      // a3a9e17e
+   //TODO VFCVTPU V6.S4, V24.S4               // d8a8a16e
+   //TODO FCVTPU F17, R17                     // 3102291e
+   //TODO FCVTPU F7, R23                      // f700299e
+   //TODO FCVTPU F10, R3                      // 4301691e
+   //TODO FCVTPU F24, R27                     // 1b03699e
+   //TODO FCVTXN F14, F0                      // c069617e
+   //TODO VFCVTXN V1.D2, V17.S2               // 3168612e
+   //TODO VFCVTXN2 V0.D2, V21.S4              // 1568616e
+   //TODO FCVTZS $26, F29, F19                // b3ff665f
+   //TODO VFCVTZS $45, V14.D2, V18.D2         // d2fd534f
+   //TODO FCVTZS F8, F7                       // 07b9a15e
+   //TODO VFCVTZS V2.S2, V4.S2                // 44b8a10e
+   //TODO FCVTZS $26, F7, R11                 // eb98181e
+   //TODO FCVTZS $7, F4, ZR                   // 9fe4189e
+   //TODO FCVTZS $28, F13, R14                // ae91581e
+   //TODO FCVTZS $8, F27, R3                  // 63e3589e
    FCVTZSSW F7, R15                           // ef00381e
    FCVTZSS F16, ZR                            // 1f02389e
    FCVTZSDW F19, R3                           // 6302781e
    FCVTZSD F7, R7                             // e700789e
+   //TODO FCVTZU $17, F18, F28                // 5cfe2f7f
+   //TODO VFCVTZU $19, V20.D2, V11.D2         // 8bfe6d6f
+   //TODO FCVTZU F22, F8                      // c8bae17e
+   //TODO VFCVTZU V0.S4, V1.S4                // 01b8a16e
+   //TODO FCVTZU $14, F24, R20                // 14cb191e
+   //TODO FCVTZU $6, F25, R17                 // 31eb199e
+   //TODO FCVTZU $5, F17, R10                 // 2aee591e
+   //TODO FCVTZU $6, F7, R18                  // f2e8599e
    FCVTZUSW F2, R9                            // 4900391e
    FCVTZUS F12, R29                           // 9d01399e
    FCVTZUDW F27, R22                          // 7603791e
    FCVTZUD F25, R22                           // 3603799e
-   //TODO FCVTZS $63, R18, R28                // 5c06189e
-   //TODO FCVTZS $41, R11, R17                // 715d589e
-   //TODO FCVTZU $1, ZR, R5                   // e5ff199e
-   //TODO FCVTZUW $5, ZR, R20                 // f4ef591e
-   //TODO FCVTZU $31, R3, R7                  // 6784599e
+   //TODO VFDIV V6.D2, V1.D2, V27.D2          // 3bfc666e
    FDIVS F16, F10, F20                        // 5419301e
    FDIVD F11, F25, F30                        // 3e1b6b1e
-   //TODO FMADD R2, R15, R8, R1               // 01090f1f
-   //TODO FMADD R21, R15, R25, R9             // 29574f1f
+   FMADDS F15, F2, F8, F1                     // 01090f1f
+   FMADDD F15, F21, F25, F9                   // 29574f1f
+   //TODO VFMAX V23.D2, V27.D2, V14.D2        // 6ef7774e
    FMAXS F5, F28, F27                         // 9b4b251e
    FMAXD F12, F31, F31                        // ff4b6c1e
+   //TODO VFMAXNM V3.D2, V12.D2, V27.D2       // 9bc5634e
    FMAXNMS F11, F24, F12                      // 0c6b2b1e
    FMAXNMD F20, F6, F16                       // d068741e
+   //TODO VFMAXNMP V3.S2, F2                  // 62c8307e
+   //TODO VFMAXNMP V25.S2, V4.S2, V2.S2       // 82c4392e
+   //TODO VFMAXNMV V14.S4, F15                // cfc9306e
+   //TODO VFMAXP V3.S2, F27                   // 7bf8307e
+   //TODO VFMAXP V29.S2, V30.S2, V9.S2        // c9f73d2e
+   //TODO VFMAXV V13.S4, F14                  // aef9306e
+   //TODO VFMIN V19.D2, V30.D2, V7.D2         // c7f7f34e
    FMINS F26, F18, F30                        // 5e5a3a1e
    FMIND F29, F4, F21                         // 95587d1e
+   //TODO VFMINNM V21.S4, V5.S4, V1.S4        // a1c4b54e
    FMINNMS F23, F20, F1                       // 817a371e
    FMINNMD F8, F3, F24                        // 7878681e
-   // FMOVS $(-1.625), F13                    // 0d503f1e
-   // FMOVD $12.5, F30                        // 1e30651e
-   //TODO FMOV R7, V25.D[1]                   // f900af9e
+   //TODO VFMINNMP V16.D2, F12                // 0ccaf07e
+   //TODO VFMINNMP V10.S4, V25.S4, V27.S4     // 3bc7aa6e
+   //TODO VFMINNMV V8.S4, F3                  // 03c9b06e
+   //TODO VFMINP V10.S2, F20                  // 54f9b07e
+   //TODO VFMINP V1.D2, V10.D2, V3.D2         // 43f5e16e
+   //TODO VFMINV V11.S4, F9                   // 69f9b06e
+   //TODO VFMLA V6.S[0], F2, F14              // 4e10865f
+   //TODO VFMLA V28.S[2], V2.S2, V30.S2       // 5e189c0f
+   VFMLA V29.S2, V20.S2, V14.S2               // 8ece3d0e
+   //TODO VFMLS V24.D[1], F3, F17             // 7158d85f
+   //TODO VFMLS V10.S[0], V11.S2, V10.S2      // 6a518a0f
+   VFMLS V29.S2, V27.S2, V17.S2               // 71cfbd0e
+   //TODO FMOVS $(-1.625), F13                // 0d503f1e
+   //TODO FMOVD $12.5, F30                    // 1e30651e
+   //TODO VFMOV R7, V25.D[1]                  // f900af9e
    FMOVD F2, R15                              // 4f00669e
    FMOVD R3, F11                              // 6b00679e
    FMOVS F20, R29                             // 9d02261e
    FMOVS R8, F15                              // 0f01271e
    FMOVD F2, F9                               // 4940601e
    FMOVS F4, F27                              // 9b40201e
-   //TODO FMOV $3.125, V8.2D                  // 28f5006f
-   //TODO FMSUB R21, R13, R13, R19            // b3d50d1f
-   //TODO FMSUB R7, R11, R15, ZR              // ff9d4b1f
+   //TODO VFMOV $3.125, V8.2D                 // 28f5006f
+   FMSUBS F13, F21, F13, F19                  // b3d50d1f
+   FMSUBD F11, F7, F15, F31                   // ff9d4b1f
+   //TODO VFMUL V9.S[2], F21, F19             // b39a895f
+   //TODO VFMUL V26.S[2], V26.S2, V2.S2       // 429b9a0f
+   //TODO VFMUL V21.D2, V17.D2, V25.D2        // 39de756e
    FMULS F0, F6, F24                          // d808201e
    FMULD F5, F29, F9                          // a90b651e
-   //TODO FNMADD R22, R17, R6, R20            // d458311f
-   //TODO FNMADD R0, R15, R26, R20            // 54036f1f
-   //TODO FNMSUB R16, R14, R27, R14           // 6ec32e1f
-   //TODO FNMSUB R25, R29, R8, R10            // 0ae57d1f
+   //TODO VFMULX V26.S[2], F20, F8            // 889a9a7f
+   //TODO VFMULX V12.D[1], V21.D2, V31.D2     // bf9acc6f
+   //TODO FMULX F16, F1, F31                  // 3fdc705e
+   //TODO VFMULX V29.S2, V13.S2, V31.S2       // bfdd3d0e
+   //TODO VFNEG V18.S2, V12.S2                // 4cfaa02e
+   FNEGS F16, F5                              // 0542211e
+   FNEGD F31, F31                             // ff43611e
+   FNMADDS F17, F22, F6, F20                  // d458311f
+   FNMADDD F15, F0, F26, F20                  // 54036f1f
+   FNMSUBS F14, F16, F27, F14                 // 6ec32e1f
+   FNMSUBD F29, F25, F8, F10                  // 0ae57d1f
    FNMULS F24, F22, F18                       // d28a381e
    FNMULD F14, F30, F7                        // c78b6e1e
+   //TODO FRECPE F9, F2                       // 22d9e15e
+   //TODO VFRECPE V0.S2, V28.S2               // 1cd8a10e
+   //TODO FRECPS F28, F10, F9                 // 49fd3c5e
+   //TODO VFRECPS V27.D2, V12.D2, V24.D2      // 98fd7b4e
+   //TODO FRECPX F28, F3                      // 83fbe15e
+   //TODO VFRINTA V14.S2, V25.S2              // d989212e
+   FRINTAS F0, F21                            // 1540261e
+   FRINTAD F8, F22                            // 1641661e
+   //TODO VFRINTI V21.D2, V31.D2              // bf9ae16e
+   FRINTIS F17, F17                           // 31c2271e
+   FRINTID F9, F15                            // 2fc1671e
+   //TODO VFRINTM V9.D2, V27.D2               // 3b99614e
+   FRINTMS F24, F16                           // 1043251e
+   FRINTMD F5, F2                             // a240651e
+   //TODO VFRINTN V30.S4, V2.S4               // c28b214e
+   FRINTNS F26, F14                           // 4e43241e
+   FRINTND F28, F12                           // 8c43641e
+   //TODO VFRINTP V27.D2, V31.D2              // 7f8be14e
+   FRINTPS F27, F4                            // 64c3241e
+   FRINTPD F6, F22                            // d6c0641e
+   //TODO VFRINTX V25.D2, V0.D2               // 209b616e
+   FRINTXS F26, F10                           // 4a43271e
+   FRINTXD F16, F12                           // 0c42671e
+   //TODO VFRINTZ V25.S4, V27.S4              // 3b9ba14e
+   FRINTZS F3, F28                            // 7cc0251e
+   FRINTZD F24, F6                            // 06c3651e
+   //TODO FRSQRTE F29, F5                     // a5dbe17e
+   //TODO VFRSQRTE V18.S2, V1.S2              // 41daa12e
+   //TODO FRSQRTS F17, F7, F24                // f8fcf15e
+   //TODO VFRSQRTS V14.S2, V10.S2, V24.S2     // 58fdae0e
+   //TODO VFSQRT V2.D2, V21.D2                // 55f8e16e
    FSQRTS F0, F9                              // 09c0211e
    FSQRTD F14, F27                            // dbc1611e
    FSUBS F25, F23, F0                         // e03a391e
    FSUBD F11, F13, F24                        // b8396b1e
    //TODO SCVTFSS F30, F20                    // d4db215e
-   //TODO SCVTF V7.2S, V17.2S                 // f1d8210e
+   //TODO VSCVTF V7.2S, V17.2S                // f1d8210e
    SCVTFWS R3, F16                            // 7000221e
    SCVTFWD R20, F4                            // 8402621e
    SCVTFS R16, F12                            // 0c02229e
@@ -512,5 +655,106 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8
    UCVTFWD R10, F23                           // 5701631e
    UCVTFS R24, F29                            // 1d03239e
    UCVTFD R20, F11                            // 8b02639e
+   VADD V16, V19, V14                                          // 6e86f05e
+   VADD V5.H8, V18.H8, V9.H8                                   // 4986654e
+   VADDP V7.H8, V25.H8, V17.H8                                 // 31bf674e
+   VADDV V3.H8, V0                                             // 60b8714e
+   AESD V22.B16, V19.B16                                       // d35a284e
+   AESE V31.B16, V29.B16                                       // fd4b284e
+   AESIMC V12.B16, V27.B16                                     // 9b79284e
+   AESMC V14.B16, V28.B16                                      // dc69284e
+   VAND V4.B16, V4.B16, V9.B16                                 // 891c244e
+   VCMEQ V24.S4, V13.S4, V12.S4                                // ac8db86e
+   VCNT V13.B8, V11.B8                                         // ab59200e
+   VMOV V31.B[15], V18                                         // f2071f5e
+   VDUP V31.B[13], V20.B16                                     // f4071b4e
+   VEOR V4.B8, V18.B8, V7.B8                                   // 471e242e
+   VEXT $4, V2.B8, V1.B8, V3.B8                                // 2320022e
+   VEXT $8, V2.B16, V1.B16, V3.B16                             // 2340026e
+   VMOV V11.B[11], V16.B[12]                                   // 705d196e
+   VMOV R20, V21.B[2]                                          // 951e054e
+   VLD1 (R2), [V21.B16]                                        // 5570404c
+   VLD1 (R24), [V18.D1, V19.D1, V20.D1]                        // 126f400c
+   VLD1 (R29), [V14.D1, V15.D1, V16.D1, V17.D1]                // ae2f400c
+   VLD1.P 16(R23), [V1.B16]                                    // e172df4c
+   VLD1.P (R6)(R11), [V31.D1]                                  // VLD1.P (R6)(R11*1), [V31.D1]                 // df7ccb0c
+   VLD1.P 16(R7), [V31.D1, V0.D1]                              // ffacdf0c
+   VLD1.P (R19)(R4), [V24.B8, V25.B8]                          // VLD1.P (R19)(R4*1), [V24.B8, V25.B8]         // 78a2c40c
+   VLD1.P (R20)(R8), [V7.H8, V8.H8, V9.H8]                     // VLD1.P (R20)(R8*1), [V7.H8, V8.H8, V9.H8]    // 8766c84c
+   VLD1.P 32(R30), [V5.B8, V6.B8, V7.B8, V8.B8]                // c523df0c
+   VLD1 (R18), V14.B[15]                                       // 4e1e404d
+   VLD1 (R29), V0.H[1]                                         // a04b400d
+   VLD1 (R27), V2.S[0]                                         // 6283400d
+   VLD1 (R21), V5.D[1]                                         // a586404d
+   VLD1.P 1(R18), V10.B[14]                                    // 4a1adf4d
+   VLD1.P (R3)(R14), V16.B[11]                                 // VLD1.P (R3)(R14*1), V16.B[11]                // 700cce4d
+   VLD1.P 2(R1), V28.H[2]                                      // 3c50df0d
+   VLD1.P (R13)(R20), V9.H[2]                                  // VLD1.P (R13)(R20*1), V9.H[2]                 // a951d40d
+   VLD1.P 4(R17), V1.S[3]                                      // 2192df4d
+   VLD1.P (R14)(R2), V17.S[2]                                  // VLD1.P (R14)(R2*1), V17.S[2]                 // d181c24d
+   VLD1.P 8(R5), V30.D[1]                                      // be84df4d
+   VLD1.P (R27)(R13), V27.D[0]                                 // VLD1.P (R27)(R13*1), V27.D[0]                // 7b87cd0d
+   //TODO FMOVS.P -29(RSP), F8                                 // e8375ebc
+   //TODO FMOVS.W 71(R29), F28                                 // bc7f44bc
+   FMOVS 6160(R4), F23                                         // 971058bd
+   VMOV V18.B[10], V27                                         // 5b06155e
+   VMOV V12.B[2], V28.B[12]                                    // 9c15196e
+   VMOV R30, V4.B[13]                                          // c41f1b4e
+   VMOV V2.B16, V4.B16                                         // 441ca24e
+   VMOV V13.S[0], R20                                          // b43d040e
+   VMOV V13.D[0], R20                                          // b43d084e
+   VMOVI $146, V22.B16                                         // 56e6044f
+   VORR V25.B16, V22.B16, V15.B16                              // cf1eb94e
+   VPMULL V2.D1, V1.D1, V3.Q1                                  // 23e0e20e
+   VPMULL2 V2.D2, V1.D2, V4.Q1                                 // 24e0e24e
+   VPMULL V2.B8, V1.B8, V3.H8                                  // 23e0220e
+   VPMULL2 V2.B16, V1.B16, V4.H8                               // 24e0224e
+   VRBIT V10.B16, V21.B16                                      // 5559606e
+   VREV32 V2.H8, V1.H8                                         // 4108606e
+   SCVTFWS R6, F17                                             // d100221e
+   SCVTFWD R3, F15                                             // 6f00621e
+   SCVTFS R20, F25                                             // 9902229e
+   SCVTFD R13, F9                                              // a901629e
+   SHA1C V8.S4, V8, V2                                         // 0201085e
+   SHA1H V17, V25                                              // 390a285e
+   SHA1M V0.S4, V27, V27                                       // 7b23005e
+   SHA1P V3.S4, V20, V27                                       // 9b12035e
+   SHA1SU0 V17.S4, V13.S4, V16.S4                              // b031115e
+   SHA1SU1 V24.S4, V23.S4                                      // 171b285e
+   SHA256H2 V6.S4, V16, V11                                    // 0b52065e
+   SHA256H V4.S4, V2, V11                                      // 4b40045e
+   SHA256SU0 V0.S4, V16.S4                                     // 1028285e
+   SHA256SU1 V31.S4, V3.S4, V15.S4                             // 6f601f5e
+   VSHL $7, V22.D2, V25.D2                                     // d956474f
+   VST1 [V14.H4, V15.H4, V16.H4], (R27)                        // 6e67000c
+   VST1 [V2.S4, V3.S4, V4.S4, V5.S4], (R14)                    // c229004c
+   VST1.P [V25.S4], (R7)(R29)                                  // VST1.P [V25.S4], (R7)(R29*1)                          // f9789d4c
+   VST1.P [V25.D2, V26.D2], 32(R7)                             // f9ac9f4c
+   VST1.P [V14.D1, V15.D1], (R7)(R23)                          // VST1.P [V14.D1, V15.D1], (R7)(R23*1)                  // eeac970c
+   VST1.P [V25.D2, V26.D2, V27.D2], 48(R27)                    // 796f9f4c
+   VST1.P [V13.H8, V14.H8, V15.H8], (R3)(R14)                  // VST1.P [V13.H8, V14.H8, V15.H8], (R3)(R14*1)          // 6d648e4c
+   VST1.P [V16.S4, V17.S4, V18.S4, V19.S4], 64(R6)             // d0289f4c
+   VST1.P [V19.H4, V20.H4, V21.H4, V22.H4], (R4)(R16)          // VST1.P [V19.H4, V20.H4, V21.H4, V22.H4], (R4)(R16*1)  // 9324900c
+   VST1 V12.B[3], (R1)                                         // 2c0c000d
+   VST1 V12.B[3], (R1)                                         // 2c0c000d
+   VST1 V25.S[2], (R20)                                        // 9982004d
+   VST1 V9.D[1], (RSP)                                         // e987004d
+   VST1.P V30.B[6], 1(R3)                                      // 7e189f0d
+   VST1.P V8.B[0], (R3)(R21)                                   // VST1.P V8.B[0], (R3)(R21*1)                          // 6800950d
+   VST1.P V15.H[5], 2(R10)                                     // 4f499f4d
+   VST1.P V1.H[7], (R23)(R11)                                  // VST1.P V1.H[7], (R23)(R11*1)                         // e15a8b4d
+   VST1.P V26.S[0], 4(R11)                                     // 7a819f0d
+   VST1.P V9.S[1], (R16)(R21)                                  // VST1.P V9.S[1], (R16)(R21*1)                         // 0992950d
+   VST1.P V16.D[0], 8(R9)                                      // 30859f0d
+   VST1.P V23.D[1], (R21)(R16)                                 // VST1.P V23.D[1], (R21)(R16*1)                        // b786904d
+   VSUB V1, V12, V23                                           // 9785e17e
+   VUADDLV V31.S4, V11                                         // eb3bb06e
+   UCVTFWS R11, F19                                            // 7301231e
+   UCVTFWD R26, F13                                            // 4d03631e
+   UCVTFS R23, F11                                             // eb02239e
+   UCVTFD R5, F29                                              // bd00639e
+   VMOV V0.B[1], R11                                           // 0b3c030e
+   VMOV V1.H[3], R12                                           // 2c3c0e0e
+   VUSHR $6, V22.H8, V23.H8                                    // d7061a6f
 
    RET