1*0fca6ea1SDimitry Andric//===- X86ManualCompressEVEXTables.def ---------------------------*- C++ -*-==// 2*0fca6ea1SDimitry Andric// 3*0fca6ea1SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*0fca6ea1SDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 5*0fca6ea1SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*0fca6ea1SDimitry Andric// 7*0fca6ea1SDimitry Andric//===----------------------------------------------------------------------===// 8*0fca6ea1SDimitry Andric// \file 9*0fca6ea1SDimitry Andric// This file defines all the entries in X86 EVEX compression tables that need 10*0fca6ea1SDimitry Andric// special handling. 11*0fca6ea1SDimitry Andric//===----------------------------------------------------------------------===// 12*0fca6ea1SDimitry Andric 13*0fca6ea1SDimitry Andric#ifndef NOCOMP 14*0fca6ea1SDimitry Andric#define NOCOMP(INSN) 15*0fca6ea1SDimitry Andric#endif 16*0fca6ea1SDimitry AndricNOCOMP(VCVTQQ2PDZ128rr) 17*0fca6ea1SDimitry AndricNOCOMP(VCVTQQ2PSZ128rm) 18*0fca6ea1SDimitry AndricNOCOMP(VCVTQQ2PSZ128rr) 19*0fca6ea1SDimitry AndricNOCOMP(VDBPSADBWZ128rmi) 20*0fca6ea1SDimitry AndricNOCOMP(VDBPSADBWZ128rri) 21*0fca6ea1SDimitry AndricNOCOMP(VPMAXSQZ128rm) 22*0fca6ea1SDimitry AndricNOCOMP(VPMAXSQZ128rr) 23*0fca6ea1SDimitry AndricNOCOMP(VPMAXUQZ128rm) 24*0fca6ea1SDimitry AndricNOCOMP(VPMAXUQZ128rr) 25*0fca6ea1SDimitry AndricNOCOMP(VPMINSQZ128rm) 26*0fca6ea1SDimitry AndricNOCOMP(VPMINSQZ128rr) 27*0fca6ea1SDimitry AndricNOCOMP(VPMINUQZ128rm) 28*0fca6ea1SDimitry AndricNOCOMP(VPMINUQZ128rr) 29*0fca6ea1SDimitry AndricNOCOMP(VPMULLQZ128rm) 30*0fca6ea1SDimitry AndricNOCOMP(VPMULLQZ128rr) 31*0fca6ea1SDimitry AndricNOCOMP(VPSRAQZ128ri) 32*0fca6ea1SDimitry AndricNOCOMP(VPSRAQZ128rm) 33*0fca6ea1SDimitry AndricNOCOMP(VPSRAQZ128rr) 34*0fca6ea1SDimitry AndricNOCOMP(VSCALEFPSZ128rm) 35*0fca6ea1SDimitry AndricNOCOMP(VDBPSADBWZ256rmi) 36*0fca6ea1SDimitry AndricNOCOMP(VDBPSADBWZ256rri) 37*0fca6ea1SDimitry AndricNOCOMP(VPMAXSQZ256rm) 38*0fca6ea1SDimitry AndricNOCOMP(VPMAXSQZ256rr) 39*0fca6ea1SDimitry AndricNOCOMP(VPMAXUQZ256rm) 40*0fca6ea1SDimitry AndricNOCOMP(VPMAXUQZ256rr) 41*0fca6ea1SDimitry AndricNOCOMP(VPMINSQZ256rm) 42*0fca6ea1SDimitry AndricNOCOMP(VPMINSQZ256rr) 43*0fca6ea1SDimitry AndricNOCOMP(VPMINUQZ256rm) 44*0fca6ea1SDimitry AndricNOCOMP(VPMINUQZ256rr) 45*0fca6ea1SDimitry AndricNOCOMP(VPMULLQZ256rm) 46*0fca6ea1SDimitry AndricNOCOMP(VPMULLQZ256rr) 47*0fca6ea1SDimitry AndricNOCOMP(VPSRAQZ256ri) 48*0fca6ea1SDimitry AndricNOCOMP(VPSRAQZ256rm) 49*0fca6ea1SDimitry AndricNOCOMP(VPSRAQZ256rr) 50*0fca6ea1SDimitry AndricNOCOMP(VSCALEFPSZ256rm) 51*0fca6ea1SDimitry Andric#undef NOCOMP 52*0fca6ea1SDimitry Andric 53*0fca6ea1SDimitry Andric#ifndef ENTRY 54*0fca6ea1SDimitry Andric#define ENTRY(OLD, NEW) 55*0fca6ea1SDimitry Andric#endif 56*0fca6ea1SDimitry AndricENTRY(VALIGNDZ128rmi, VPALIGNRrmi) 57*0fca6ea1SDimitry AndricENTRY(VALIGNDZ128rri, VPALIGNRrri) 58*0fca6ea1SDimitry AndricENTRY(VALIGNQZ128rmi, VPALIGNRrmi) 59*0fca6ea1SDimitry AndricENTRY(VALIGNQZ128rri, VPALIGNRrri) 60*0fca6ea1SDimitry AndricENTRY(VMAXSDZrm, VMAXSDrm) 61*0fca6ea1SDimitry AndricENTRY(VMAXSDZrr, VMAXSDrr) 62*0fca6ea1SDimitry AndricENTRY(VMAXSSZrm, VMAXSSrm) 63*0fca6ea1SDimitry AndricENTRY(VMAXSSZrr, VMAXSSrr) 64*0fca6ea1SDimitry AndricENTRY(VMINSDZrm, VMINSDrm) 65*0fca6ea1SDimitry AndricENTRY(VMINSDZrr, VMINSDrr) 66*0fca6ea1SDimitry AndricENTRY(VMINSSZrm, VMINSSrm) 67*0fca6ea1SDimitry AndricENTRY(VMINSSZrr, VMINSSrr) 68*0fca6ea1SDimitry AndricENTRY(VMOVDQU16Z128mr, VMOVDQUmr) 69*0fca6ea1SDimitry AndricENTRY(VMOVDQU16Z128rm, VMOVDQUrm) 70*0fca6ea1SDimitry AndricENTRY(VMOVDQU16Z128rr, VMOVDQUrr) 71*0fca6ea1SDimitry AndricENTRY(VMOVDQU8Z128mr, VMOVDQUmr) 72*0fca6ea1SDimitry AndricENTRY(VMOVDQU8Z128rm, VMOVDQUrm) 73*0fca6ea1SDimitry AndricENTRY(VMOVDQU8Z128rr, VMOVDQUrr) 74*0fca6ea1SDimitry AndricENTRY(VMOVDQU16Z256mr, VMOVDQUYmr) 75*0fca6ea1SDimitry AndricENTRY(VMOVDQU16Z256rm, VMOVDQUYrm) 76*0fca6ea1SDimitry AndricENTRY(VMOVDQU16Z256rr, VMOVDQUYrr) 77*0fca6ea1SDimitry AndricENTRY(VMOVDQU8Z256mr, VMOVDQUYmr) 78*0fca6ea1SDimitry AndricENTRY(VMOVDQU8Z256rm, VMOVDQUYrm) 79*0fca6ea1SDimitry AndricENTRY(VMOVDQU8Z256rr, VMOVDQUYrr) 80*0fca6ea1SDimitry AndricENTRY(VSHUFF32X4Z256rmi, VPERM2F128rm) 81*0fca6ea1SDimitry AndricENTRY(VSHUFF32X4Z256rri, VPERM2F128rr) 82*0fca6ea1SDimitry AndricENTRY(VSHUFF64X2Z256rmi, VPERM2F128rm) 83*0fca6ea1SDimitry AndricENTRY(VSHUFF64X2Z256rri, VPERM2F128rr) 84*0fca6ea1SDimitry AndricENTRY(VSHUFI32X4Z256rmi, VPERM2I128rm) 85*0fca6ea1SDimitry AndricENTRY(VSHUFI32X4Z256rri, VPERM2I128rr) 86*0fca6ea1SDimitry AndricENTRY(VSHUFI64X2Z256rmi, VPERM2I128rm) 87*0fca6ea1SDimitry AndricENTRY(VSHUFI64X2Z256rri, VPERM2I128rr) 88*0fca6ea1SDimitry Andric// W bit does not match 89*0fca6ea1SDimitry AndricENTRY(VADDPDZ128rm, VADDPDrm) 90*0fca6ea1SDimitry AndricENTRY(VADDPDZ128rr, VADDPDrr) 91*0fca6ea1SDimitry AndricENTRY(VADDSDZrm, VADDSDrm) 92*0fca6ea1SDimitry AndricENTRY(VADDSDZrm_Int, VADDSDrm_Int) 93*0fca6ea1SDimitry AndricENTRY(VADDSDZrr, VADDSDrr) 94*0fca6ea1SDimitry AndricENTRY(VADDSDZrr_Int, VADDSDrr_Int) 95*0fca6ea1SDimitry AndricENTRY(VANDNPDZ128rm, VANDNPDrm) 96*0fca6ea1SDimitry AndricENTRY(VANDNPDZ128rr, VANDNPDrr) 97*0fca6ea1SDimitry AndricENTRY(VANDPDZ128rm, VANDPDrm) 98*0fca6ea1SDimitry AndricENTRY(VANDPDZ128rr, VANDPDrr) 99*0fca6ea1SDimitry AndricENTRY(VCOMISDZrm, VCOMISDrm) 100*0fca6ea1SDimitry AndricENTRY(VCOMISDZrm_Int, VCOMISDrm_Int) 101*0fca6ea1SDimitry AndricENTRY(VCOMISDZrr, VCOMISDrr) 102*0fca6ea1SDimitry AndricENTRY(VCOMISDZrr_Int, VCOMISDrr_Int) 103*0fca6ea1SDimitry AndricENTRY(VCVTPD2DQZ128rm, VCVTPD2DQrm) 104*0fca6ea1SDimitry AndricENTRY(VCVTPD2DQZ128rr, VCVTPD2DQrr) 105*0fca6ea1SDimitry AndricENTRY(VCVTPD2PSZ128rm, VCVTPD2PSrm) 106*0fca6ea1SDimitry AndricENTRY(VCVTPD2PSZ128rr, VCVTPD2PSrr) 107*0fca6ea1SDimitry AndricENTRY(VCVTSD2SSZrm, VCVTSD2SSrm) 108*0fca6ea1SDimitry AndricENTRY(VCVTSD2SSZrm_Int, VCVTSD2SSrm_Int) 109*0fca6ea1SDimitry AndricENTRY(VCVTSD2SSZrr, VCVTSD2SSrr) 110*0fca6ea1SDimitry AndricENTRY(VCVTSD2SSZrr_Int, VCVTSD2SSrr_Int) 111*0fca6ea1SDimitry AndricENTRY(VCVTTPD2DQZ128rm, VCVTTPD2DQrm) 112*0fca6ea1SDimitry AndricENTRY(VCVTTPD2DQZ128rr, VCVTTPD2DQrr) 113*0fca6ea1SDimitry AndricENTRY(VDIVPDZ128rm, VDIVPDrm) 114*0fca6ea1SDimitry AndricENTRY(VDIVPDZ128rr, VDIVPDrr) 115*0fca6ea1SDimitry AndricENTRY(VDIVSDZrm, VDIVSDrm) 116*0fca6ea1SDimitry AndricENTRY(VDIVSDZrm_Int, VDIVSDrm_Int) 117*0fca6ea1SDimitry AndricENTRY(VDIVSDZrr, VDIVSDrr) 118*0fca6ea1SDimitry AndricENTRY(VDIVSDZrr_Int, VDIVSDrr_Int) 119*0fca6ea1SDimitry AndricENTRY(VMAXCPDZ128rm, VMAXCPDrm) 120*0fca6ea1SDimitry AndricENTRY(VMAXCPDZ128rr, VMAXCPDrr) 121*0fca6ea1SDimitry AndricENTRY(VMAXCSDZrm, VMAXCSDrm) 122*0fca6ea1SDimitry AndricENTRY(VMAXCSDZrr, VMAXCSDrr) 123*0fca6ea1SDimitry AndricENTRY(VMAXPDZ128rm, VMAXPDrm) 124*0fca6ea1SDimitry AndricENTRY(VMAXPDZ128rr, VMAXPDrr) 125*0fca6ea1SDimitry AndricENTRY(VMAXSDZrm_Int, VMAXSDrm_Int) 126*0fca6ea1SDimitry AndricENTRY(VMAXSDZrr_Int, VMAXSDrr_Int) 127*0fca6ea1SDimitry AndricENTRY(VMINCPDZ128rm, VMINCPDrm) 128*0fca6ea1SDimitry AndricENTRY(VMINCPDZ128rr, VMINCPDrr) 129*0fca6ea1SDimitry AndricENTRY(VMINCSDZrm, VMINCSDrm) 130*0fca6ea1SDimitry AndricENTRY(VMINCSDZrr, VMINCSDrr) 131*0fca6ea1SDimitry AndricENTRY(VMINPDZ128rm, VMINPDrm) 132*0fca6ea1SDimitry AndricENTRY(VMINPDZ128rr, VMINPDrr) 133*0fca6ea1SDimitry AndricENTRY(VMINSDZrm_Int, VMINSDrm_Int) 134*0fca6ea1SDimitry AndricENTRY(VMINSDZrr_Int, VMINSDrr_Int) 135*0fca6ea1SDimitry AndricENTRY(VMOVAPDZ128mr, VMOVAPDmr) 136*0fca6ea1SDimitry AndricENTRY(VMOVAPDZ128rm, VMOVAPDrm) 137*0fca6ea1SDimitry AndricENTRY(VMOVAPDZ128rr, VMOVAPDrr) 138*0fca6ea1SDimitry AndricENTRY(VMOVDDUPZ128rm, VMOVDDUPrm) 139*0fca6ea1SDimitry AndricENTRY(VMOVDDUPZ128rr, VMOVDDUPrr) 140*0fca6ea1SDimitry AndricENTRY(VMOVDQA64Z128mr, VMOVDQAmr) 141*0fca6ea1SDimitry AndricENTRY(VMOVDQA64Z128rm, VMOVDQArm) 142*0fca6ea1SDimitry AndricENTRY(VMOVDQA64Z128rr, VMOVDQArr) 143*0fca6ea1SDimitry AndricENTRY(VMOVDQU64Z128mr, VMOVDQUmr) 144*0fca6ea1SDimitry AndricENTRY(VMOVDQU64Z128rm, VMOVDQUrm) 145*0fca6ea1SDimitry AndricENTRY(VMOVDQU64Z128rr, VMOVDQUrr) 146*0fca6ea1SDimitry AndricENTRY(VMOVHPDZ128mr, VMOVHPDmr) 147*0fca6ea1SDimitry AndricENTRY(VMOVHPDZ128rm, VMOVHPDrm) 148*0fca6ea1SDimitry AndricENTRY(VMOVLPDZ128mr, VMOVLPDmr) 149*0fca6ea1SDimitry AndricENTRY(VMOVLPDZ128rm, VMOVLPDrm) 150*0fca6ea1SDimitry AndricENTRY(VMOVNTPDZ128mr, VMOVNTPDmr) 151*0fca6ea1SDimitry AndricENTRY(VMOVPQI2QIZmr, VMOVPQI2QImr) 152*0fca6ea1SDimitry AndricENTRY(VMOVPQI2QIZrr, VMOVPQI2QIrr) 153*0fca6ea1SDimitry AndricENTRY(VMOVQI2PQIZrm, VMOVQI2PQIrm) 154*0fca6ea1SDimitry AndricENTRY(VMOVSDZmr, VMOVSDmr) 155*0fca6ea1SDimitry AndricENTRY(VMOVSDZrm, VMOVSDrm) 156*0fca6ea1SDimitry AndricENTRY(VMOVSDZrm_alt, VMOVSDrm_alt) 157*0fca6ea1SDimitry AndricENTRY(VMOVSDZrr, VMOVSDrr) 158*0fca6ea1SDimitry AndricENTRY(VMOVUPDZ128mr, VMOVUPDmr) 159*0fca6ea1SDimitry AndricENTRY(VMOVUPDZ128rm, VMOVUPDrm) 160*0fca6ea1SDimitry AndricENTRY(VMOVUPDZ128rr, VMOVUPDrr) 161*0fca6ea1SDimitry AndricENTRY(VMOVZPQILo2PQIZrr, VMOVZPQILo2PQIrr) 162*0fca6ea1SDimitry AndricENTRY(VMULPDZ128rm, VMULPDrm) 163*0fca6ea1SDimitry AndricENTRY(VMULPDZ128rr, VMULPDrr) 164*0fca6ea1SDimitry AndricENTRY(VMULSDZrm, VMULSDrm) 165*0fca6ea1SDimitry AndricENTRY(VMULSDZrm_Int, VMULSDrm_Int) 166*0fca6ea1SDimitry AndricENTRY(VMULSDZrr, VMULSDrr) 167*0fca6ea1SDimitry AndricENTRY(VMULSDZrr_Int, VMULSDrr_Int) 168*0fca6ea1SDimitry AndricENTRY(VORPDZ128rm, VORPDrm) 169*0fca6ea1SDimitry AndricENTRY(VORPDZ128rr, VORPDrr) 170*0fca6ea1SDimitry AndricENTRY(VPADDQZ128rm, VPADDQrm) 171*0fca6ea1SDimitry AndricENTRY(VPADDQZ128rr, VPADDQrr) 172*0fca6ea1SDimitry AndricENTRY(VPANDNQZ128rm, VPANDNrm) 173*0fca6ea1SDimitry AndricENTRY(VPANDNQZ128rr, VPANDNrr) 174*0fca6ea1SDimitry AndricENTRY(VPANDQZ128rm, VPANDrm) 175*0fca6ea1SDimitry AndricENTRY(VPANDQZ128rr, VPANDrr) 176*0fca6ea1SDimitry AndricENTRY(VPERMILPDZ128mi, VPERMILPDmi) 177*0fca6ea1SDimitry AndricENTRY(VPERMILPDZ128ri, VPERMILPDri) 178*0fca6ea1SDimitry AndricENTRY(VPERMILPDZ128rm, VPERMILPDrm) 179*0fca6ea1SDimitry AndricENTRY(VPERMILPDZ128rr, VPERMILPDrr) 180*0fca6ea1SDimitry AndricENTRY(VPMULDQZ128rm, VPMULDQrm) 181*0fca6ea1SDimitry AndricENTRY(VPMULDQZ128rr, VPMULDQrr) 182*0fca6ea1SDimitry AndricENTRY(VPMULUDQZ128rm, VPMULUDQrm) 183*0fca6ea1SDimitry AndricENTRY(VPMULUDQZ128rr, VPMULUDQrr) 184*0fca6ea1SDimitry AndricENTRY(VPORQZ128rm, VPORrm) 185*0fca6ea1SDimitry AndricENTRY(VPORQZ128rr, VPORrr) 186*0fca6ea1SDimitry AndricENTRY(VPSLLQZ128ri, VPSLLQri) 187*0fca6ea1SDimitry AndricENTRY(VPSLLQZ128rm, VPSLLQrm) 188*0fca6ea1SDimitry AndricENTRY(VPSLLQZ128rr, VPSLLQrr) 189*0fca6ea1SDimitry AndricENTRY(VPSRLQZ128ri, VPSRLQri) 190*0fca6ea1SDimitry AndricENTRY(VPSRLQZ128rm, VPSRLQrm) 191*0fca6ea1SDimitry AndricENTRY(VPSRLQZ128rr, VPSRLQrr) 192*0fca6ea1SDimitry AndricENTRY(VPSUBQZ128rm, VPSUBQrm) 193*0fca6ea1SDimitry AndricENTRY(VPSUBQZ128rr, VPSUBQrr) 194*0fca6ea1SDimitry AndricENTRY(VPUNPCKHQDQZ128rm, VPUNPCKHQDQrm) 195*0fca6ea1SDimitry AndricENTRY(VPUNPCKHQDQZ128rr, VPUNPCKHQDQrr) 196*0fca6ea1SDimitry AndricENTRY(VPUNPCKLQDQZ128rm, VPUNPCKLQDQrm) 197*0fca6ea1SDimitry AndricENTRY(VPUNPCKLQDQZ128rr, VPUNPCKLQDQrr) 198*0fca6ea1SDimitry AndricENTRY(VPXORQZ128rm, VPXORrm) 199*0fca6ea1SDimitry AndricENTRY(VPXORQZ128rr, VPXORrr) 200*0fca6ea1SDimitry AndricENTRY(VRNDSCALEPDZ128rmi, VROUNDPDmi) 201*0fca6ea1SDimitry AndricENTRY(VRNDSCALEPDZ128rri, VROUNDPDri) 202*0fca6ea1SDimitry AndricENTRY(VRNDSCALESDZm, VROUNDSDmi) 203*0fca6ea1SDimitry AndricENTRY(VRNDSCALESDZm_Int, VROUNDSDmi_Int) 204*0fca6ea1SDimitry AndricENTRY(VRNDSCALESDZr, VROUNDSDri) 205*0fca6ea1SDimitry AndricENTRY(VRNDSCALESDZr_Int, VROUNDSDri_Int) 206*0fca6ea1SDimitry AndricENTRY(VSHUFPDZ128rmi, VSHUFPDrmi) 207*0fca6ea1SDimitry AndricENTRY(VSHUFPDZ128rri, VSHUFPDrri) 208*0fca6ea1SDimitry AndricENTRY(VSQRTPDZ128m, VSQRTPDm) 209*0fca6ea1SDimitry AndricENTRY(VSQRTPDZ128r, VSQRTPDr) 210*0fca6ea1SDimitry AndricENTRY(VSQRTSDZm, VSQRTSDm) 211*0fca6ea1SDimitry AndricENTRY(VSQRTSDZm_Int, VSQRTSDm_Int) 212*0fca6ea1SDimitry AndricENTRY(VSQRTSDZr, VSQRTSDr) 213*0fca6ea1SDimitry AndricENTRY(VSQRTSDZr_Int, VSQRTSDr_Int) 214*0fca6ea1SDimitry AndricENTRY(VSUBPDZ128rm, VSUBPDrm) 215*0fca6ea1SDimitry AndricENTRY(VSUBPDZ128rr, VSUBPDrr) 216*0fca6ea1SDimitry AndricENTRY(VSUBSDZrm, VSUBSDrm) 217*0fca6ea1SDimitry AndricENTRY(VSUBSDZrm_Int, VSUBSDrm_Int) 218*0fca6ea1SDimitry AndricENTRY(VSUBSDZrr, VSUBSDrr) 219*0fca6ea1SDimitry AndricENTRY(VSUBSDZrr_Int, VSUBSDrr_Int) 220*0fca6ea1SDimitry AndricENTRY(VUCOMISDZrm, VUCOMISDrm) 221*0fca6ea1SDimitry AndricENTRY(VUCOMISDZrm_Int, VUCOMISDrm_Int) 222*0fca6ea1SDimitry AndricENTRY(VUCOMISDZrr, VUCOMISDrr) 223*0fca6ea1SDimitry AndricENTRY(VUCOMISDZrr_Int, VUCOMISDrr_Int) 224*0fca6ea1SDimitry AndricENTRY(VUNPCKHPDZ128rm, VUNPCKHPDrm) 225*0fca6ea1SDimitry AndricENTRY(VUNPCKHPDZ128rr, VUNPCKHPDrr) 226*0fca6ea1SDimitry AndricENTRY(VUNPCKLPDZ128rm, VUNPCKLPDrm) 227*0fca6ea1SDimitry AndricENTRY(VUNPCKLPDZ128rr, VUNPCKLPDrr) 228*0fca6ea1SDimitry AndricENTRY(VXORPDZ128rm, VXORPDrm) 229*0fca6ea1SDimitry AndricENTRY(VXORPDZ128rr, VXORPDrr) 230*0fca6ea1SDimitry AndricENTRY(VADDPDZ256rm, VADDPDYrm) 231*0fca6ea1SDimitry AndricENTRY(VADDPDZ256rr, VADDPDYrr) 232*0fca6ea1SDimitry AndricENTRY(VANDNPDZ256rm, VANDNPDYrm) 233*0fca6ea1SDimitry AndricENTRY(VANDNPDZ256rr, VANDNPDYrr) 234*0fca6ea1SDimitry AndricENTRY(VANDPDZ256rm, VANDPDYrm) 235*0fca6ea1SDimitry AndricENTRY(VANDPDZ256rr, VANDPDYrr) 236*0fca6ea1SDimitry AndricENTRY(VCVTPD2DQZ256rm, VCVTPD2DQYrm) 237*0fca6ea1SDimitry AndricENTRY(VCVTPD2DQZ256rr, VCVTPD2DQYrr) 238*0fca6ea1SDimitry AndricENTRY(VCVTPD2PSZ256rm, VCVTPD2PSYrm) 239*0fca6ea1SDimitry AndricENTRY(VCVTPD2PSZ256rr, VCVTPD2PSYrr) 240*0fca6ea1SDimitry AndricENTRY(VCVTTPD2DQZ256rm, VCVTTPD2DQYrm) 241*0fca6ea1SDimitry AndricENTRY(VCVTTPD2DQZ256rr, VCVTTPD2DQYrr) 242*0fca6ea1SDimitry AndricENTRY(VDIVPDZ256rm, VDIVPDYrm) 243*0fca6ea1SDimitry AndricENTRY(VDIVPDZ256rr, VDIVPDYrr) 244*0fca6ea1SDimitry AndricENTRY(VEXTRACTF64x2Z256mr, VEXTRACTF128mr) 245*0fca6ea1SDimitry AndricENTRY(VEXTRACTF64x2Z256rr, VEXTRACTF128rr) 246*0fca6ea1SDimitry AndricENTRY(VEXTRACTI64x2Z256mr, VEXTRACTI128mr) 247*0fca6ea1SDimitry AndricENTRY(VEXTRACTI64x2Z256rr, VEXTRACTI128rr) 248*0fca6ea1SDimitry AndricENTRY(VINSERTF64x2Z256rm, VINSERTF128rm) 249*0fca6ea1SDimitry AndricENTRY(VINSERTF64x2Z256rr, VINSERTF128rr) 250*0fca6ea1SDimitry AndricENTRY(VINSERTI64x2Z256rm, VINSERTI128rm) 251*0fca6ea1SDimitry AndricENTRY(VINSERTI64x2Z256rr, VINSERTI128rr) 252*0fca6ea1SDimitry AndricENTRY(VMAXCPDZ256rm, VMAXCPDYrm) 253*0fca6ea1SDimitry AndricENTRY(VMAXCPDZ256rr, VMAXCPDYrr) 254*0fca6ea1SDimitry AndricENTRY(VMAXPDZ256rm, VMAXPDYrm) 255*0fca6ea1SDimitry AndricENTRY(VMAXPDZ256rr, VMAXPDYrr) 256*0fca6ea1SDimitry AndricENTRY(VMINCPDZ256rm, VMINCPDYrm) 257*0fca6ea1SDimitry AndricENTRY(VMINCPDZ256rr, VMINCPDYrr) 258*0fca6ea1SDimitry AndricENTRY(VMINPDZ256rm, VMINPDYrm) 259*0fca6ea1SDimitry AndricENTRY(VMINPDZ256rr, VMINPDYrr) 260*0fca6ea1SDimitry AndricENTRY(VMOVAPDZ256mr, VMOVAPDYmr) 261*0fca6ea1SDimitry AndricENTRY(VMOVAPDZ256rm, VMOVAPDYrm) 262*0fca6ea1SDimitry AndricENTRY(VMOVAPDZ256rr, VMOVAPDYrr) 263*0fca6ea1SDimitry AndricENTRY(VMOVDDUPZ256rm, VMOVDDUPYrm) 264*0fca6ea1SDimitry AndricENTRY(VMOVDDUPZ256rr, VMOVDDUPYrr) 265*0fca6ea1SDimitry AndricENTRY(VMOVDQA64Z256mr, VMOVDQAYmr) 266*0fca6ea1SDimitry AndricENTRY(VMOVDQA64Z256rm, VMOVDQAYrm) 267*0fca6ea1SDimitry AndricENTRY(VMOVDQA64Z256rr, VMOVDQAYrr) 268*0fca6ea1SDimitry AndricENTRY(VMOVDQU64Z256mr, VMOVDQUYmr) 269*0fca6ea1SDimitry AndricENTRY(VMOVDQU64Z256rm, VMOVDQUYrm) 270*0fca6ea1SDimitry AndricENTRY(VMOVDQU64Z256rr, VMOVDQUYrr) 271*0fca6ea1SDimitry AndricENTRY(VMOVNTPDZ256mr, VMOVNTPDYmr) 272*0fca6ea1SDimitry AndricENTRY(VMOVUPDZ256mr, VMOVUPDYmr) 273*0fca6ea1SDimitry AndricENTRY(VMOVUPDZ256rm, VMOVUPDYrm) 274*0fca6ea1SDimitry AndricENTRY(VMOVUPDZ256rr, VMOVUPDYrr) 275*0fca6ea1SDimitry AndricENTRY(VMULPDZ256rm, VMULPDYrm) 276*0fca6ea1SDimitry AndricENTRY(VMULPDZ256rr, VMULPDYrr) 277*0fca6ea1SDimitry AndricENTRY(VORPDZ256rm, VORPDYrm) 278*0fca6ea1SDimitry AndricENTRY(VORPDZ256rr, VORPDYrr) 279*0fca6ea1SDimitry AndricENTRY(VPADDQZ256rm, VPADDQYrm) 280*0fca6ea1SDimitry AndricENTRY(VPADDQZ256rr, VPADDQYrr) 281*0fca6ea1SDimitry AndricENTRY(VPANDNQZ256rm, VPANDNYrm) 282*0fca6ea1SDimitry AndricENTRY(VPANDNQZ256rr, VPANDNYrr) 283*0fca6ea1SDimitry AndricENTRY(VPANDQZ256rm, VPANDYrm) 284*0fca6ea1SDimitry AndricENTRY(VPANDQZ256rr, VPANDYrr) 285*0fca6ea1SDimitry AndricENTRY(VPERMILPDZ256mi, VPERMILPDYmi) 286*0fca6ea1SDimitry AndricENTRY(VPERMILPDZ256ri, VPERMILPDYri) 287*0fca6ea1SDimitry AndricENTRY(VPERMILPDZ256rm, VPERMILPDYrm) 288*0fca6ea1SDimitry AndricENTRY(VPERMILPDZ256rr, VPERMILPDYrr) 289*0fca6ea1SDimitry AndricENTRY(VPMULDQZ256rm, VPMULDQYrm) 290*0fca6ea1SDimitry AndricENTRY(VPMULDQZ256rr, VPMULDQYrr) 291*0fca6ea1SDimitry AndricENTRY(VPMULUDQZ256rm, VPMULUDQYrm) 292*0fca6ea1SDimitry AndricENTRY(VPMULUDQZ256rr, VPMULUDQYrr) 293*0fca6ea1SDimitry AndricENTRY(VPORQZ256rm, VPORYrm) 294*0fca6ea1SDimitry AndricENTRY(VPORQZ256rr, VPORYrr) 295*0fca6ea1SDimitry AndricENTRY(VPSLLQZ256ri, VPSLLQYri) 296*0fca6ea1SDimitry AndricENTRY(VPSLLQZ256rm, VPSLLQYrm) 297*0fca6ea1SDimitry AndricENTRY(VPSLLQZ256rr, VPSLLQYrr) 298*0fca6ea1SDimitry AndricENTRY(VPSRLQZ256ri, VPSRLQYri) 299*0fca6ea1SDimitry AndricENTRY(VPSRLQZ256rm, VPSRLQYrm) 300*0fca6ea1SDimitry AndricENTRY(VPSRLQZ256rr, VPSRLQYrr) 301*0fca6ea1SDimitry AndricENTRY(VPSUBQZ256rm, VPSUBQYrm) 302*0fca6ea1SDimitry AndricENTRY(VPSUBQZ256rr, VPSUBQYrr) 303*0fca6ea1SDimitry AndricENTRY(VPUNPCKHQDQZ256rm, VPUNPCKHQDQYrm) 304*0fca6ea1SDimitry AndricENTRY(VPUNPCKHQDQZ256rr, VPUNPCKHQDQYrr) 305*0fca6ea1SDimitry AndricENTRY(VPUNPCKLQDQZ256rm, VPUNPCKLQDQYrm) 306*0fca6ea1SDimitry AndricENTRY(VPUNPCKLQDQZ256rr, VPUNPCKLQDQYrr) 307*0fca6ea1SDimitry AndricENTRY(VPXORQZ256rm, VPXORYrm) 308*0fca6ea1SDimitry AndricENTRY(VPXORQZ256rr, VPXORYrr) 309*0fca6ea1SDimitry AndricENTRY(VRNDSCALEPDZ256rmi, VROUNDPDYmi) 310*0fca6ea1SDimitry AndricENTRY(VRNDSCALEPDZ256rri, VROUNDPDYri) 311*0fca6ea1SDimitry AndricENTRY(VSHUFPDZ256rmi, VSHUFPDYrmi) 312*0fca6ea1SDimitry AndricENTRY(VSHUFPDZ256rri, VSHUFPDYrri) 313*0fca6ea1SDimitry AndricENTRY(VSQRTPDZ256m, VSQRTPDYm) 314*0fca6ea1SDimitry AndricENTRY(VSQRTPDZ256r, VSQRTPDYr) 315*0fca6ea1SDimitry AndricENTRY(VSUBPDZ256rm, VSUBPDYrm) 316*0fca6ea1SDimitry AndricENTRY(VSUBPDZ256rr, VSUBPDYrr) 317*0fca6ea1SDimitry AndricENTRY(VUNPCKHPDZ256rm, VUNPCKHPDYrm) 318*0fca6ea1SDimitry AndricENTRY(VUNPCKHPDZ256rr, VUNPCKHPDYrr) 319*0fca6ea1SDimitry AndricENTRY(VUNPCKLPDZ256rm, VUNPCKLPDYrm) 320*0fca6ea1SDimitry AndricENTRY(VUNPCKLPDZ256rr, VUNPCKLPDYrr) 321*0fca6ea1SDimitry AndricENTRY(VXORPDZ256rm, VXORPDYrm) 322*0fca6ea1SDimitry AndricENTRY(VXORPDZ256rr, VXORPDYrr) 323*0fca6ea1SDimitry AndricENTRY(VPBROADCASTQZ128rm, VPBROADCASTQrm) 324*0fca6ea1SDimitry AndricENTRY(VPBROADCASTQZ128rr, VPBROADCASTQrr) 325*0fca6ea1SDimitry AndricENTRY(VBROADCASTF64X2Z128rm, VBROADCASTF128rm) 326*0fca6ea1SDimitry AndricENTRY(VBROADCASTI64X2Z128rm, VBROADCASTI128rm) 327*0fca6ea1SDimitry AndricENTRY(VBROADCASTSDZ256rm, VBROADCASTSDYrm) 328*0fca6ea1SDimitry AndricENTRY(VBROADCASTSDZ256rr, VBROADCASTSDYrr) 329*0fca6ea1SDimitry AndricENTRY(VPBROADCASTQZ256rm, VPBROADCASTQYrm) 330*0fca6ea1SDimitry AndricENTRY(VPBROADCASTQZ256rr, VPBROADCASTQYrr) 331*0fca6ea1SDimitry Andric#undef ENTRY 332*0fca6ea1SDimitry Andric 333*0fca6ea1SDimitry Andric#ifndef NOCOMP_ND 334*0fca6ea1SDimitry Andric#define NOCOMP_ND(INSN) 335*0fca6ea1SDimitry Andric#endif 336*0fca6ea1SDimitry Andric// When condition evaluates to false, the destination register is zeroed for 337*0fca6ea1SDimitry Andric// nonNDD CFCMOV but not for NDD CFCMOV. 338*0fca6ea1SDimitry AndricNOCOMP_ND(CFCMOV16rm_ND) 339*0fca6ea1SDimitry AndricNOCOMP_ND(CFCMOV16rr_ND) 340*0fca6ea1SDimitry AndricNOCOMP_ND(CFCMOV32rm_ND) 341*0fca6ea1SDimitry AndricNOCOMP_ND(CFCMOV32rr_ND) 342*0fca6ea1SDimitry AndricNOCOMP_ND(CFCMOV64rm_ND) 343*0fca6ea1SDimitry AndricNOCOMP_ND(CFCMOV64rr_ND) 344*0fca6ea1SDimitry Andric#undef NOCOMP_ND 345*0fca6ea1SDimitry Andric 346*0fca6ea1SDimitry Andric#ifndef ENTRY_ND 347*0fca6ea1SDimitry Andric#define ENTRY_ND(OLD, NEW) 348*0fca6ea1SDimitry Andric#endif 349*0fca6ea1SDimitry AndricENTRY_ND(MOVBE32rr, BSWAP32r) 350*0fca6ea1SDimitry AndricENTRY_ND(MOVBE64rr, BSWAP64r) 351*0fca6ea1SDimitry Andric#undef ENTRY_ND 352*0fca6ea1SDimitry Andric 353*0fca6ea1SDimitry Andric#ifndef ENTRY_SSE2AVX 354*0fca6ea1SDimitry Andric#define ENTRY_SSE2AVX(OLD, NEW) 355*0fca6ea1SDimitry Andric#endif 356*0fca6ea1SDimitry AndricENTRY_SSE2AVX(BLENDVPDrm0, VBLENDVPDrmr) 357*0fca6ea1SDimitry AndricENTRY_SSE2AVX(BLENDVPDrr0, VBLENDVPDrrr) 358*0fca6ea1SDimitry AndricENTRY_SSE2AVX(BLENDVPSrm0, VBLENDVPSrmr) 359*0fca6ea1SDimitry AndricENTRY_SSE2AVX(BLENDVPSrr0, VBLENDVPSrrr) 360*0fca6ea1SDimitry AndricENTRY_SSE2AVX(PBLENDVBrm0, VPBLENDVBrmr) 361*0fca6ea1SDimitry AndricENTRY_SSE2AVX(PBLENDVBrr0, VPBLENDVBrrr) 362*0fca6ea1SDimitry Andric#undef ENTRY_SSE2AVX 363