// 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