Text file src/cmd/asm/internal/asm/testdata/ppc64_p10.s

     1  // Copyright 2022 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // This contains the valid opcode combinations available
     6  // in cmd/internal/obj/ppc64/asm9.go which exist for
     7  // POWER10/ISA 3.1.
     8  
     9  #include "../../../../../runtime/textflag.h"
    10  
    11  TEXT asmtest(SB), DUPOK|NOSPLIT, $0
    12  	BRD R1, R2                              // 7c220176
    13  	BRH R1, R2                              // 7c2201b6
    14  	BRW R1, R2                              // 7c220136
    15  	CFUGED R1, R2, R3                       // 7c2311b8
    16  	CNTLZDM R2, R3, R1                      // 7c411876
    17  	CNTTZDM R2, R3, R1                      // 7c411c76
    18  	DCFFIXQQ V1, F2                         // fc400fc4
    19  	DCTFIXQQ F2, V3                         // fc6117c4
    20  	LXVKQ $0, VS33                          // f03f02d1
    21  	LXVP 12352(R5), VS6                     // 18c53040
    22  	LXVPX (R1)(R2), VS4                     // 7c820a9a
    23  	LXVRBX (R1)(R2), VS4                    // 7c82081a
    24  	LXVRDX (R1)(R2), VS4                    // 7c8208da
    25  	LXVRHX (R1)(R2), VS4                    // 7c82085a
    26  	LXVRWX (R1)(R2), VS4                    // 7c82089a
    27  	MTVSRBM R1, V1                          // 10300e42
    28  	MTVSRBMI $5, V1                         // 10220015
    29  	MTVSRDM R1, V1                          // 10330e42
    30  	MTVSRHM R1, V1                          // 10310e42
    31  	MTVSRQM R1, V1                          // 10340e42
    32  	MTVSRWM R1, V1                          // 10320e42
    33  	PADDI R3, $1234567890, $1, R4           // 06104996388302d2
    34  	PADDI R0, $1234567890, $0, R4           // 06004996388002d2
    35  	PADDI R0, $1234567890, $1, R4           // 06104996388002d2
    36  	PDEPD R1, R2, R3                        // 7c231138
    37  	PEXTD R1, R2, R3                        // 7c231178
    38  	PLBZ 1234(R1), $0, R3                   // 06000000886104d260000000
    39  	// Note, PLD crosses a 64B boundary, and a nop is inserted between PLBZ and PLD
    40  	PLD 1234(R1), $0, R3                    // 04000000e46104d2
    41  	PLFD 1234(R1), $0, F3                   // 06000000c86104d2
    42  	PLFS 1234567890(R4), $0, F3             // 06004996c06402d2
    43  	PLFS 1234567890(R0), $1, F3             // 06104996c06002d2
    44  	PLHA 1234(R1), $0, R3                   // 06000000a86104d2
    45  	PLHZ 1234(R1), $0, R3                   // 06000000a06104d2
    46  	PLQ 1234(R1), $0, R4                    // 04000000e08104d2
    47  	PLWA 1234(R1), $0, R3                   // 04000000a46104d2
    48  	PLWZ 1234567890(R4), $0, R3             // 06004996806402d2
    49  	PLWZ 1234567890(R0), $1, R3             // 06104996806002d2
    50  	PLXSD 1234(R1), $0, V1                  // 04000000a82104d2
    51  	PLXSSP 5(R1), $0, V2                    // 04000000ac410005
    52  	PLXSSP 5(R0), $1, V2                    // 04100000ac400005
    53  	PLXV 12346891(R6), $1, VS44             // 041000bccd86660b
    54  	PLXVP 12345678(R4), $1, VS4             // 041000bce884614e
    55  	PMXVBF16GER2 VS1, VS2, $1, $2, $3, A1   // 0790c012ec811198
    56  	PMXVBF16GER2NN VS1, VS2, $1, $2, $3, A1 // 0790c012ec811790
    57  	PMXVBF16GER2NP VS1, VS2, $1, $2, $3, A1 // 0790c012ec811390
    58  	PMXVBF16GER2PN VS1, VS2, $1, $2, $3, A1 // 0790c012ec811590
    59  	PMXVBF16GER2PP VS1, VS2, $1, $2, $3, A1 // 0790c012ec811190
    60  	PMXVF16GER2 VS1, VS2, $1, $2, $3, A1    // 0790c012ec811098
    61  	PMXVF16GER2NN VS1, VS2, $1, $2, $3, A1  // 0790c012ec811690
    62  	PMXVF16GER2NP VS1, VS2, $1, $2, $3, A1  // 0790c012ec811290
    63  	PMXVF16GER2PN VS1, VS2, $1, $2, $3, A1  // 0790c012ec811490
    64  	PMXVF16GER2PP VS1, VS2, $1, $2, $3, A1  // 0790c012ec811090
    65  	PMXVF32GER VS1, VS2, $1, $2, A1         // 07900012ec8110d8
    66  	PMXVF32GERNN VS1, VS2, $1, $2, A1       // 07900012ec8116d0
    67  	PMXVF32GERNP VS1, VS2, $1, $2, A1       // 07900012ec8112d0
    68  	PMXVF32GERPN VS1, VS2, $1, $2, A1       // 07900012ec8114d0
    69  	PMXVF32GERPP VS1, VS2, $1, $2, A1       // 07900012ec8110d0
    70  	PMXVF64GER VS4, VS2, $1, $2, A1         // 07900018ec8411d8
    71  	PMXVF64GERNN VS4, VS2, $1, $2, A1       // 07900018ec8417d0
    72  	PMXVF64GERNP VS4, VS2, $1, $2, A1       // 07900018ec8413d0
    73  	PMXVF64GERPN VS4, VS2, $1, $2, A1       // 07900018ec8415d0
    74  	PMXVF64GERPP VS4, VS2, $1, $2, A1       // 07900018ec8411d0
    75  	PMXVI16GER2 VS1, VS2, $1, $2, $3, A1    // 0790c012ec811258
    76  	PMXVI16GER2PP VS1, VS2, $1, $2, $3, A1  // 0790c012ec811358
    77  	PMXVI16GER2S VS1, VS2, $1, $2, $3, A1   // 0790c012ec811158
    78  	PMXVI16GER2SPP VS1, VS2, $1, $2, $3, A1 // 0790c012ec811150
    79  	PMXVI4GER8 VS1, VS2, $1, $2, $3, A1     // 07900312ec811118
    80  	PMXVI4GER8PP VS1, VS2, $1, $2, $3, A1   // 07900312ec811110
    81  	PMXVI8GER4 VS1, VS2, $1, $2, $3, A1     // 07903012ec811018
    82  	PMXVI8GER4PP VS1, VS2, $1, $2, $3, A1   // 07903012ec811010
    83  	PMXVI8GER4SPP VS1, VS2, $1, $2, $3, A1  // 07903012ec811318
    84  	PNOP                                    // 0700000000000000
    85  	PSTB R1, $1, 12345678(R2)               // 061000bc9822614e
    86  	PSTD R1, $1, 12345678(R2)               // 041000bcf422614e
    87  	PSTFD F1, $1, 12345678(R2)              // 061000bcd822614e
    88  	PSTFS F1, $1, 123456789(R7)             // 0610075bd027cd15
    89  	PSTH R1, $1, 12345678(R2)               // 061000bcb022614e
    90  	PSTQ R2, $1, 12345678(R2)               // 041000bcf042614e
    91  	PSTW R1, $1, 12345678(R2)               // 061000bc9022614e
    92  	PSTW R24, $0, 45(R13)                   // 06000000930d002d
    93  	PSTXSD V1, $1, 12345678(R2)             // 041000bcb822614e
    94  	PSTXSSP V1, $1, 1234567890(R0)          // 04104996bc2002d2
    95  	PSTXSSP V1, $1, 1234567890(R1)          // 04104996bc2102d2
    96  	PSTXSSP V1, $0, 1234567890(R3)          // 04004996bc2302d2
    97  	PSTXV VS6, $1, 1234567890(R5)           // 04104996d8c502d2
    98  	PSTXVP VS2, $1, 12345678(R2)            // 041000bcf842614e
    99  	PSTXVP VS62, $0, 5555555(R3)            // 04000054fbe3c563
   100  	SETBC CR2EQ, R2                         // 7c4a0300
   101  	SETBCR CR2LT, R2                        // 7c480340
   102  	SETNBC CR2GT, R2                        // 7c490380
   103  	SETNBCR CR6SO, R2                       // 7c5b03c0
   104  	STXVP VS6, 12352(R5)                    // 18c53041
   105  	STXVPX VS22, (R1)(R2)                   // 7ec20b9a
   106  	STXVRBX VS2, (R1)(R2)                   // 7c42091a
   107  	STXVRDX VS2, (R1)(R2)                   // 7c4209da
   108  	STXVRHX VS2, (R1)(R2)                   // 7c42095a
   109  	STXVRWX VS2, (R1)(R2)                   // 7c42099a
   110  	VCFUGED V1, V2, V3                      // 1061154d
   111  	VCLRLB V1, R2, V3                       // 1061118d
   112  	VCLRRB V1, R2, V3                       // 106111cd
   113  	VCLZDM V1, V2, V3                       // 10611784
   114  	VCMPEQUQ V1, V2, V3                     // 106111c7
   115  	VCMPEQUQCC V1, V2, V3                   // 106115c7
   116  	VCMPGTSQ V1, V2, V3                     // 10611387
   117  	VCMPGTSQCC V1, V2, V3                   // 10611787
   118  	VCMPGTUQ V1, V2, V3                     // 10611287
   119  	VCMPGTUQCC V1, V2, V3                   // 10611687
   120  	VCMPSQ V1, V2, CR2                      // 11011141
   121  	VCMPUQ V1, V2, CR3                      // 11811101
   122  	VCNTMBB V1, $1, R3                      // 10790e42
   123  	VCNTMBD V1, $1, R3                      // 107f0e42
   124  	VCNTMBH V1, $1, R3                      // 107b0e42
   125  	VCNTMBW V1, $1, R3                      // 107d0e42
   126  	VCTZDM V1, V2, V3                       // 106117c4
   127  	VDIVESD V1, V2, V3                      // 106113cb
   128  	VDIVESQ V1, V2, V3                      // 1061130b
   129  	VDIVESW V1, V2, V3                      // 1061138b
   130  	VDIVEUD V1, V2, V3                      // 106112cb
   131  	VDIVEUQ V1, V2, V3                      // 1061120b
   132  	VDIVEUW V1, V2, V3                      // 1061128b
   133  	VDIVSD V1, V2, V3                       // 106111cb
   134  	VDIVSQ V1, V2, V3                       // 1061110b
   135  	VDIVSW V1, V2, V3                       // 1061118b
   136  	VDIVUD V1, V2, V3                       // 106110cb
   137  	VDIVUQ V1, V2, V3                       // 1061100b
   138  	VDIVUW V1, V2, V3                       // 1061108b
   139  	VEXPANDBM V1, V2                        // 10400e42
   140  	VEXPANDDM V1, V2                        // 10430e42
   141  	VEXPANDHM V1, V2                        // 10410e42
   142  	VEXPANDQM V1, V2                        // 10440e42
   143  	VEXPANDWM V1, V2                        // 10420e42
   144  	VEXTDDVLX V1, V2, R3, V4                // 108110de
   145  	VEXTDDVRX V1, V2, R3, V4                // 108110df
   146  	VEXTDUBVLX V1, V2, R3, V4               // 108110d8
   147  	VEXTDUBVRX V1, V2, R3, V4               // 108110d9
   148  	VEXTDUHVLX V1, V2, R3, V4               // 108110da
   149  	VEXTDUHVRX V1, V2, R3, V4               // 108110db
   150  	VEXTDUWVLX V1, V2, R3, V4               // 108110dc
   151  	VEXTDUWVRX V1, V2, R5, V3               // 1061115d
   152  	VEXTRACTBM V1, R2                       // 10480e42
   153  	VEXTRACTDM V1, R2                       // 104b0e42
   154  	VEXTRACTHM V1, R2                       // 10490e42
   155  	VEXTRACTQM V1, R2                       // 104c0e42
   156  	VEXTRACTWM V1, R6                       // 10ca0e42
   157  	VEXTSD2Q V1, V2                         // 105b0e02
   158  	VGNB V1, $1, R31                        // 13e10ccc
   159  	VINSBLX R1, R2, V3                      // 1061120f
   160  	VINSBRX R1, R2, V3                      // 1061130f
   161  	VINSBVLX R1, V1, V2                     // 1041080f
   162  	VINSBVRX R1, V1, V2                     // 1041090f
   163  	VINSD R1, $2, V2                        // 104209cf
   164  	VINSDLX R1, R2, V3                      // 106112cf
   165  	VINSDRX R1, R2, V3                      // 106113cf
   166  	VINSHLX R1, R2, V3                      // 1061124f
   167  	VINSHRX R1, R2, V3                      // 1061134f
   168  	VINSHVLX R1, V2, V3                     // 1061104f
   169  	VINSHVRX R1, V2, V3                     // 1061114f
   170  	VINSW R1, $4, V3                        // 106408cf
   171  	VINSWLX R1, R2, V3                      // 1061128f
   172  	VINSWRX R1, R2, V3                      // 1061138f
   173  	VINSWVLX R1, V2, V3                     // 1061108f
   174  	VINSWVRX R1, V2, V3                     // 1061118f
   175  	VMODSD V1, V2, V3                       // 106117cb
   176  	VMODSQ V1, V2, V3                       // 1061170b
   177  	VMODSW V1, V2, V3                       // 1061178b
   178  	VMODUD V1, V2, V3                       // 106116cb
   179  	VMODUQ V1, V2, V3                       // 1061160b
   180  	VMODUW V1, V2, V3                       // 1061168b
   181  	VMSUMCUD V1, V2, V3, V4                 // 108110d7
   182  	VMULESD V1, V2, V3                      // 106113c8
   183  	VMULEUD V1, V2, V3                      // 106112c8
   184  	VMULHSD V1, V2, V3                      // 106113c9
   185  	VMULHSW V1, V2, V3                      // 10611389
   186  	VMULHUD V1, V2, V3                      // 106112c9
   187  	VMULHUW V1, V2, V3                      // 10611289
   188  	VMULLD V1, V2, V3                       // 106111c9
   189  	VMULOSD V1, V2, V3                      // 106111c8
   190  	VMULOUD V1, V2, V3                      // 106110c8
   191  	VPDEPD V1, V2, V3                       // 106115cd
   192  	VPEXTD V1, V2, V3                       // 1061158d
   193  	VRLQ V1, V2, V3                         // 10611005
   194  	VRLQMI V1, V2, V3                       // 10611045
   195  	VRLQNM V1, V2, V3                       // 10611145
   196  	VSLDBI V1, V2, $3, V3                   // 106110d6
   197  	VSLQ V1, V2, V3                         // 10611105
   198  	VSRAQ V1, V2, V3                        // 10611305
   199  	VSRDBI V1, V2, $3, V4                   // 108112d6
   200  	VSRQ V1, V2, V3                         // 10611205
   201  	VSTRIBL V1, V2                          // 1040080d
   202  	VSTRIBLCC V1, V2                        // 10400c0d
   203  	VSTRIBR V1, V2                          // 1041080d
   204  	VSTRIBRCC V1, V2                        // 10410c0d
   205  	VSTRIHL V1, V2                          // 1042080d
   206  	VSTRIHLCC V1, V2                        // 10420c0d
   207  	VSTRIHR V1, V2                          // 1043080d
   208  	VSTRIHRCC V1, V2                        // 10430c0d
   209  	XSCMPEQQP V1, V2, V3                    // fc611088
   210  	XSCMPGEQP V1, V2, V3                    // fc611188
   211  	XSCMPGTQP V1, V2, V3                    // fc6111c8
   212  	XSCVQPSQZ V1, V2                        // fc480e88
   213  	XSCVQPUQZ V1, V2                        // fc400e88
   214  	XSCVSQQP V1, V2                         // fc4b0e88
   215  	XSCVUQQP V2, V3                         // fc631688
   216  	XSMAXCQP V1, V2, V3                     // fc611548
   217  	XSMINCQP V1, V2, V4                     // fc8115c8
   218  	XVBF16GER2 VS1, VS2, A1                 // ec811198
   219  	XVBF16GER2NN VS1, VS2, A1               // ec811790
   220  	XVBF16GER2NP VS1, VS2, A1               // ec811390
   221  	XVBF16GER2PN VS1, VS2, A1               // ec811590
   222  	XVBF16GER2PP VS1, VS2, A1               // ec811190
   223  	XVCVBF16SPN VS2, VS3                    // f070176c
   224  	XVCVSPBF16 VS1, VS4                     // f0910f6c
   225  	XVF16GER2 VS1, VS2, A1                  // ec811098
   226  	XVF16GER2NN VS1, VS2, A1                // ec811690
   227  	XVF16GER2NP VS1, VS2, A1                // ec811290
   228  	XVF16GER2PN VS1, VS2, A1                // ec811490
   229  	XVF16GER2PP VS1, VS2, A1                // ec811090
   230  	XVF32GER VS1, VS2, A1                   // ec8110d8
   231  	XVF32GERNN VS1, VS2, A1                 // ec8116d0
   232  	XVF32GERNP VS1, VS2, A1                 // ec8112d0
   233  	XVF32GERPN VS1, VS2, A1                 // ec8114d0
   234  	XVF32GERPP VS1, VS2, A1                 // ec8110d0
   235  	XVF64GER VS2, VS1, A1                   // ec8209d8
   236  	XVF64GERNN VS2, VS1, A1                 // ec820fd0
   237  	XVF64GERNP VS2, VS1, A1                 // ec820bd0
   238  	XVF64GERPN VS2, VS1, A1                 // ec820dd0
   239  	XVF64GERPP VS2, VS1, A1                 // ec8209d0
   240  	XVI16GER2 VS1, VS2, A1                  // ec811258
   241  	XVI16GER2PP VS1, VS2, A1                // ec811358
   242  	XVI16GER2S VS1, VS2, A1                 // ec811158
   243  	XVI16GER2SPP VS1, VS2, A1               // ec811150
   244  	XVI4GER8 VS1, VS2, A1                   // ec811118
   245  	XVI4GER8PP VS1, VS2, A1                 // ec811110
   246  	XVI8GER4 VS1, VS2, A1                   // ec811018
   247  	XVI8GER4PP VS1, VS2, A1                 // ec811010
   248  	XVI8GER4SPP VS4, VS6, A1                // ec843318
   249  	XVTLSBB VS1, CR2                        // f1020f6c
   250  	XXBLENDVB VS1, VS3, VS7, VS11           // 05000000856119c0
   251  	XXBLENDVD VS1, VS3, VS7, VS11           // 05000000856119f0
   252  	XXBLENDVH VS1, VS3, VS7, VS11           // 05000000856119d0
   253  	XXBLENDVW VS1, VS3, VS7, VS11           // 05000000856119e0
   254  	XXEVAL VS1, VS2, VS3, $2, VS4           // 05000002888110d0
   255  	XXGENPCVBM V2, $2, VS3                  // f0621728
   256  	XXGENPCVDM V2, $2, VS3                  // f062176a
   257  	XXGENPCVHM V2, $2, VS3                  // f062172a
   258  	XXGENPCVWM V2, $2, VS3                  // f0621768
   259  	XXMFACC A1                              // 7c800162
   260  	XXMTACC A1                              // 7c810162
   261  	XXPERMX VS1, VS34, VS2, $2, VS3         // 0500000288611082
   262  	XXSETACCZ A1                            // 7c830162
   263  	XXSPLTI32DX $1, $1234, VS3              // 05000000806204d2
   264  	XXSPLTIDP $12345678, VS4                // 050000bc8084614e
   265  	XXSPLTIW $123456, VS3                   // 050000018066e240
   266  
   267  	// ISA 3.1B
   268  	HASHST R2, -8(R1)                       // 7fe115a5
   269  	HASHSTP R2, -8(R1)                      // 7fe11525
   270  	HASHCHK -8(R1), R2                      // 7fe115e5
   271  	HASHCHKP -8(R1), R2                     // 7fe11565
   272  
   273  	RET
   274  

View as plain text