Your IP : 172.28.240.42


Current Path : /usr/local/go/src/cmd/asm/internal/asm/testdata/
Upload File :
Current File : //usr/local/go/src/cmd/asm/internal/asm/testdata/ppc64_p10.s

// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This contains the valid opcode combinations available
// in cmd/internal/obj/ppc64/asm9.go which exist for
// POWER10/ISA 3.1.

#include "../../../../../runtime/textflag.h"

TEXT asmtest(SB), DUPOK|NOSPLIT, $0
	BRD R1, R2                              // 7c220176
	BRH R1, R2                              // 7c2201b6
	BRW R1, R2                              // 7c220136
	CFUGED R1, R2, R3                       // 7c2311b8
	CNTLZDM R2, R3, R1                      // 7c411876
	CNTTZDM R2, R3, R1                      // 7c411c76
	DCFFIXQQ V1, F2                         // fc400fc4
	DCTFIXQQ F2, V3                         // fc6117c4
	LXVKQ $0, VS33                          // f03f02d1
	LXVP 12352(R5), VS6                     // 18c53040
	LXVPX (R1)(R2), VS4                     // 7c820a9a
	LXVRBX (R1)(R2), VS4                    // 7c82081a
	LXVRDX (R1)(R2), VS4                    // 7c8208da
	LXVRHX (R1)(R2), VS4                    // 7c82085a
	LXVRWX (R1)(R2), VS4                    // 7c82089a
	MTVSRBM R1, V1                          // 10300e42
	MTVSRBMI $5, V1                         // 10220015
	MTVSRDM R1, V1                          // 10330e42
	MTVSRHM R1, V1                          // 10310e42
	MTVSRQM R1, V1                          // 10340e42
	MTVSRWM R1, V1                          // 10320e42
	PADDI R3, $1234567890, $1, R4           // 06104996388302d2
	PADDI R0, $1234567890, $0, R4           // 06004996388002d2
	PADDI R0, $1234567890, $1, R4           // 06104996388002d2
	PDEPD R1, R2, R3                        // 7c231138
	PEXTD R1, R2, R3                        // 7c231178
	PLBZ 1234(R1), $0, R3                   // 06000000886104d260000000
	// Note, PLD crosses a 64B boundary, and a nop is inserted between PLBZ and PLD
	PLD 1234(R1), $0, R3                    // 04000000e46104d2
	PLFD 1234(R1), $0, F3                   // 06000000c86104d2
	PLFS 1234567890(R4), $0, F3             // 06004996c06402d2
	PLFS 1234567890(R0), $1, F3             // 06104996c06002d2
	PLHA 1234(R1), $0, R3                   // 06000000a86104d2
	PLHZ 1234(R1), $0, R3                   // 06000000a06104d2
	PLQ 1234(R1), $0, R4                    // 04000000e08104d2
	PLWA 1234(R1), $0, R3                   // 04000000a46104d2
	PLWZ 1234567890(R4), $0, R3             // 06004996806402d2
	PLWZ 1234567890(R0), $1, R3             // 06104996806002d2
	PLXSD 1234(R1), $0, V1                  // 04000000a82104d2
	PLXSSP 5(R1), $0, V2                    // 04000000ac410005
	PLXSSP 5(R0), $1, V2                    // 04100000ac400005
	PLXV 12346891(R6), $1, VS44             // 041000bccd86660b
	PLXVP 12345678(R4), $1, VS4             // 041000bce884614e
	PMXVBF16GER2 VS1, VS2, $1, $2, $3, A1   // 0790c012ec811198
	PMXVBF16GER2NN VS1, VS2, $1, $2, $3, A1 // 0790c012ec811790
	PMXVBF16GER2NP VS1, VS2, $1, $2, $3, A1 // 0790c012ec811390
	PMXVBF16GER2PN VS1, VS2, $1, $2, $3, A1 // 0790c012ec811590
	PMXVBF16GER2PP VS1, VS2, $1, $2, $3, A1 // 0790c012ec811190
	PMXVF16GER2 VS1, VS2, $1, $2, $3, A1    // 0790c012ec811098
	PMXVF16GER2NN VS1, VS2, $1, $2, $3, A1  // 0790c012ec811690
	PMXVF16GER2NP VS1, VS2, $1, $2, $3, A1  // 0790c012ec811290
	PMXVF16GER2PN VS1, VS2, $1, $2, $3, A1  // 0790c012ec811490
	PMXVF16GER2PP VS1, VS2, $1, $2, $3, A1  // 0790c012ec811090
	PMXVF32GER VS1, VS2, $1, $2, A1         // 07900012ec8110d8
	PMXVF32GERNN VS1, VS2, $1, $2, A1       // 07900012ec8116d0
	PMXVF32GERNP VS1, VS2, $1, $2, A1       // 07900012ec8112d0
	PMXVF32GERPN VS1, VS2, $1, $2, A1       // 07900012ec8114d0
	PMXVF32GERPP VS1, VS2, $1, $2, A1       // 07900012ec8110d0
	PMXVF64GER VS4, VS2, $1, $2, A1         // 07900018ec8411d8
	PMXVF64GERNN VS4, VS2, $1, $2, A1       // 07900018ec8417d0
	PMXVF64GERNP VS4, VS2, $1, $2, A1       // 07900018ec8413d0
	PMXVF64GERPN VS4, VS2, $1, $2, A1       // 07900018ec8415d0
	PMXVF64GERPP VS4, VS2, $1, $2, A1       // 07900018ec8411d0
	PMXVI16GER2 VS1, VS2, $1, $2, $3, A1    // 0790c012ec811258
	PMXVI16GER2PP VS1, VS2, $1, $2, $3, A1  // 0790c012ec811358
	PMXVI16GER2S VS1, VS2, $1, $2, $3, A1   // 0790c012ec811158
	PMXVI16GER2SPP VS1, VS2, $1, $2, $3, A1 // 0790c012ec811150
	PMXVI4GER8 VS1, VS2, $1, $2, $3, A1     // 07900312ec811118
	PMXVI4GER8PP VS1, VS2, $1, $2, $3, A1   // 07900312ec811110
	PMXVI8GER4 VS1, VS2, $1, $2, $3, A1     // 07903012ec811018
	PMXVI8GER4PP VS1, VS2, $1, $2, $3, A1   // 07903012ec811010
	PMXVI8GER4SPP VS1, VS2, $1, $2, $3, A1  // 07903012ec811318
	PNOP                                    // 0700000000000000
	PSTB R1, $1, 12345678(R2)               // 061000bc9822614e
	PSTD R1, $1, 12345678(R2)               // 041000bcf422614e
	PSTFD F1, $1, 12345678(R2)              // 061000bcd822614e
	PSTFS F1, $1, 123456789(R7)             // 0610075bd027cd15
	PSTH R1, $1, 12345678(R2)               // 061000bcb022614e
	PSTQ R2, $1, 12345678(R2)               // 041000bcf042614e
	PSTW R1, $1, 12345678(R2)               // 061000bc9022614e
	PSTW R24, $0, 45(R13)                   // 06000000930d002d
	PSTXSD V1, $1, 12345678(R2)             // 041000bcb822614e
	PSTXSSP V1, $1, 1234567890(R0)          // 04104996bc2002d2
	PSTXSSP V1, $1, 1234567890(R1)          // 04104996bc2102d2
	PSTXSSP V1, $0, 1234567890(R3)          // 04004996bc2302d2
	PSTXV VS6, $1, 1234567890(R5)           // 04104996d8c502d2
	PSTXVP VS2, $1, 12345678(R2)            // 041000bcf842614e
	PSTXVP VS62, $0, 5555555(R3)            // 04000054fbe3c563
	SETBC CR2EQ, R2                         // 7c4a0300
	SETBCR CR2LT, R2                        // 7c480340
	SETNBC CR2GT, R2                        // 7c490380
	SETNBCR CR6SO, R2                       // 7c5b03c0
	STXVP VS6, 12352(R5)                    // 18c53041
	STXVPX VS22, (R1)(R2)                   // 7ec20b9a
	STXVRBX VS2, (R1)(R2)                   // 7c42091a
	STXVRDX VS2, (R1)(R2)                   // 7c4209da
	STXVRHX VS2, (R1)(R2)                   // 7c42095a
	STXVRWX VS2, (R1)(R2)                   // 7c42099a
	VCFUGED V1, V2, V3                      // 1061154d
	VCLRLB V1, R2, V3                       // 1061118d
	VCLRRB V1, R2, V3                       // 106111cd
	VCLZDM V1, V2, V3                       // 10611784
	VCMPEQUQ V1, V2, V3                     // 106111c7
	VCMPEQUQCC V1, V2, V3                   // 106115c7
	VCMPGTSQ V1, V2, V3                     // 10611387
	VCMPGTSQCC V1, V2, V3                   // 10611787
	VCMPGTUQ V1, V2, V3                     // 10611287
	VCMPGTUQCC V1, V2, V3                   // 10611687
	VCMPSQ V1, V2, CR2                      // 11011141
	VCMPUQ V1, V2, CR3                      // 11811101
	VCNTMBB V1, $1, R3                      // 10790e42
	VCNTMBD V1, $1, R3                      // 107f0e42
	VCNTMBH V1, $1, R3                      // 107b0e42
	VCNTMBW V1, $1, R3                      // 107d0e42
	VCTZDM V1, V2, V3                       // 106117c4
	VDIVESD V1, V2, V3                      // 106113cb
	VDIVESQ V1, V2, V3                      // 1061130b
	VDIVESW V1, V2, V3                      // 1061138b
	VDIVEUD V1, V2, V3                      // 106112cb
	VDIVEUQ V1, V2, V3                      // 1061120b
	VDIVEUW V1, V2, V3                      // 1061128b
	VDIVSD V1, V2, V3                       // 106111cb
	VDIVSQ V1, V2, V3                       // 1061110b
	VDIVSW V1, V2, V3                       // 1061118b
	VDIVUD V1, V2, V3                       // 106110cb
	VDIVUQ V1, V2, V3                       // 1061100b
	VDIVUW V1, V2, V3                       // 1061108b
	VEXPANDBM V1, V2                        // 10400e42
	VEXPANDDM V1, V2                        // 10430e42
	VEXPANDHM V1, V2                        // 10410e42
	VEXPANDQM V1, V2                        // 10440e42
	VEXPANDWM V1, V2                        // 10420e42
	VEXTDDVLX V1, V2, R3, V4                // 108110de
	VEXTDDVRX V1, V2, R3, V4                // 108110df
	VEXTDUBVLX V1, V2, R3, V4               // 108110d8
	VEXTDUBVRX V1, V2, R3, V4               // 108110d9
	VEXTDUHVLX V1, V2, R3, V4               // 108110da
	VEXTDUHVRX V1, V2, R3, V4               // 108110db
	VEXTDUWVLX V1, V2, R3, V4               // 108110dc
	VEXTDUWVRX V1, V2, R5, V3               // 1061115d
	VEXTRACTBM V1, R2                       // 10480e42
	VEXTRACTDM V1, R2                       // 104b0e42
	VEXTRACTHM V1, R2                       // 10490e42
	VEXTRACTQM V1, R2                       // 104c0e42
	VEXTRACTWM V1, R6                       // 10ca0e42
	VEXTSD2Q V1, V2                         // 105b0e02
	VGNB V1, $1, R31                        // 13e10ccc
	VINSBLX R1, R2, V3                      // 1061120f
	VINSBRX R1, R2, V3                      // 1061130f
	VINSBVLX R1, V1, V2                     // 1041080f
	VINSBVRX R1, V1, V2                     // 1041090f
	VINSD R1, $2, V2                        // 104209cf
	VINSDLX R1, R2, V3                      // 106112cf
	VINSDRX R1, R2, V3                      // 106113cf
	VINSHLX R1, R2, V3                      // 1061124f
	VINSHRX R1, R2, V3                      // 1061134f
	VINSHVLX R1, V2, V3                     // 1061104f
	VINSHVRX R1, V2, V3                     // 1061114f
	VINSW R1, $4, V3                        // 106408cf
	VINSWLX R1, R2, V3                      // 1061128f
	VINSWRX R1, R2, V3                      // 1061138f
	VINSWVLX R1, V2, V3                     // 1061108f
	VINSWVRX R1, V2, V3                     // 1061118f
	VMODSD V1, V2, V3                       // 106117cb
	VMODSQ V1, V2, V3                       // 1061170b
	VMODSW V1, V2, V3                       // 1061178b
	VMODUD V1, V2, V3                       // 106116cb
	VMODUQ V1, V2, V3                       // 1061160b
	VMODUW V1, V2, V3                       // 1061168b
	VMSUMCUD V1, V2, V3, V4                 // 108110d7
	VMULESD V1, V2, V3                      // 106113c8
	VMULEUD V1, V2, V3                      // 106112c8
	VMULHSD V1, V2, V3                      // 106113c9
	VMULHSW V1, V2, V3                      // 10611389
	VMULHUD V1, V2, V3                      // 106112c9
	VMULHUW V1, V2, V3                      // 10611289
	VMULLD V1, V2, V3                       // 106111c9
	VMULOSD V1, V2, V3                      // 106111c8
	VMULOUD V1, V2, V3                      // 106110c8
	VPDEPD V1, V2, V3                       // 106115cd
	VPEXTD V1, V2, V3                       // 1061158d
	VRLQ V1, V2, V3                         // 10611005
	VRLQMI V1, V2, V3                       // 10611045
	VRLQNM V1, V2, V3                       // 10611145
	VSLDBI V1, V2, $3, V3                   // 106110d6
	VSLQ V1, V2, V3                         // 10611105
	VSRAQ V1, V2, V3                        // 10611305
	VSRDBI V1, V2, $3, V4                   // 108112d6
	VSRQ V1, V2, V3                         // 10611205
	VSTRIBL V1, V2                          // 1040080d
	VSTRIBLCC V1, V2                        // 10400c0d
	VSTRIBR V1, V2                          // 1041080d
	VSTRIBRCC V1, V2                        // 10410c0d
	VSTRIHL V1, V2                          // 1042080d
	VSTRIHLCC V1, V2                        // 10420c0d
	VSTRIHR V1, V2                          // 1043080d
	VSTRIHRCC V1, V2                        // 10430c0d
	XSCMPEQQP V1, V2, V3                    // fc611088
	XSCMPGEQP V1, V2, V3                    // fc611188
	XSCMPGTQP V1, V2, V3                    // fc6111c8
	XSCVQPSQZ V1, V2                        // fc480e88
	XSCVQPUQZ V1, V2                        // fc400e88
	XSCVSQQP V1, V2                         // fc4b0e88
	XSCVUQQP V2, V3                         // fc631688
	XSMAXCQP V1, V2, V3                     // fc611548
	XSMINCQP V1, V2, V4                     // fc8115c8
	XVBF16GER2 VS1, VS2, A1                 // ec811198
	XVBF16GER2NN VS1, VS2, A1               // ec811790
	XVBF16GER2NP VS1, VS2, A1               // ec811390
	XVBF16GER2PN VS1, VS2, A1               // ec811590
	XVBF16GER2PP VS1, VS2, A1               // ec811190
	XVCVBF16SPN VS2, VS3                    // f070176c
	XVCVSPBF16 VS1, VS4                     // f0910f6c
	XVF16GER2 VS1, VS2, A1                  // ec811098
	XVF16GER2NN VS1, VS2, A1                // ec811690
	XVF16GER2NP VS1, VS2, A1                // ec811290
	XVF16GER2PN VS1, VS2, A1                // ec811490
	XVF16GER2PP VS1, VS2, A1                // ec811090
	XVF32GER VS1, VS2, A1                   // ec8110d8
	XVF32GERNN VS1, VS2, A1                 // ec8116d0
	XVF32GERNP VS1, VS2, A1                 // ec8112d0
	XVF32GERPN VS1, VS2, A1                 // ec8114d0
	XVF32GERPP VS1, VS2, A1                 // ec8110d0
	XVF64GER VS2, VS1, A1                   // ec8209d8
	XVF64GERNN VS2, VS1, A1                 // ec820fd0
	XVF64GERNP VS2, VS1, A1                 // ec820bd0
	XVF64GERPN VS2, VS1, A1                 // ec820dd0
	XVF64GERPP VS2, VS1, A1                 // ec8209d0
	XVI16GER2 VS1, VS2, A1                  // ec811258
	XVI16GER2PP VS1, VS2, A1                // ec811358
	XVI16GER2S VS1, VS2, A1                 // ec811158
	XVI16GER2SPP VS1, VS2, A1               // ec811150
	XVI4GER8 VS1, VS2, A1                   // ec811118
	XVI4GER8PP VS1, VS2, A1                 // ec811110
	XVI8GER4 VS1, VS2, A1                   // ec811018
	XVI8GER4PP VS1, VS2, A1                 // ec811010
	XVI8GER4SPP VS4, VS6, A1                // ec843318
	XVTLSBB VS1, CR2                        // f1020f6c
	XXBLENDVB VS1, VS3, VS7, VS11           // 05000000856119c0
	XXBLENDVD VS1, VS3, VS7, VS11           // 05000000856119f0
	XXBLENDVH VS1, VS3, VS7, VS11           // 05000000856119d0
	XXBLENDVW VS1, VS3, VS7, VS11           // 05000000856119e0
	XXEVAL VS1, VS2, VS3, $2, VS4           // 05000002888110d0
	XXGENPCVBM V2, $2, VS3                  // f0621728
	XXGENPCVDM V2, $2, VS3                  // f062176a
	XXGENPCVHM V2, $2, VS3                  // f062172a
	XXGENPCVWM V2, $2, VS3                  // f0621768
	XXMFACC A1                              // 7c800162
	XXMTACC A1                              // 7c810162
	XXPERMX VS1, VS34, VS2, $2, VS3         // 0500000288611082
	XXSETACCZ A1                            // 7c830162
	XXSPLTI32DX $1, $1234, VS3              // 05000000806204d2
	XXSPLTIDP $12345678, VS4                // 050000bc8084614e
	XXSPLTIW $123456, VS3                   // 050000018066e240

	// ISA 3.1B
	HASHST R2, -8(R1)                       // 7fe115a5
	HASHSTP R2, -8(R1)                      // 7fe11525
	HASHCHK -8(R1), R2                      // 7fe115e5
	HASHCHKP -8(R1), R2                     // 7fe11565

	RET