|
| 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 | + RET |
0 commit comments