| //===- X86ManualCompressEVEXTables.def ---------------------------*- C++ -*-==// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| // \file |
| // This file defines all the entries in X86 EVEX compression tables that need |
| // special handling. |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef NOCOMP |
| #define NOCOMP(INSN) |
| #endif |
| NOCOMP(VCVTQQ2PDZ128rr) |
| NOCOMP(VCVTQQ2PSZ128rm) |
| NOCOMP(VCVTQQ2PSZ128rr) |
| NOCOMP(VDBPSADBWZ128rmi) |
| NOCOMP(VDBPSADBWZ128rri) |
| NOCOMP(VPMAXSQZ128rm) |
| NOCOMP(VPMAXSQZ128rr) |
| NOCOMP(VPMAXUQZ128rm) |
| NOCOMP(VPMAXUQZ128rr) |
| NOCOMP(VPMINSQZ128rm) |
| NOCOMP(VPMINSQZ128rr) |
| NOCOMP(VPMINUQZ128rm) |
| NOCOMP(VPMINUQZ128rr) |
| NOCOMP(VPMULLQZ128rm) |
| NOCOMP(VPMULLQZ128rr) |
| NOCOMP(VPSRAQZ128ri) |
| NOCOMP(VPSRAQZ128rm) |
| NOCOMP(VPSRAQZ128rr) |
| NOCOMP(VSCALEFPSZ128rm) |
| NOCOMP(VDBPSADBWZ256rmi) |
| NOCOMP(VDBPSADBWZ256rri) |
| NOCOMP(VPMAXSQZ256rm) |
| NOCOMP(VPMAXSQZ256rr) |
| NOCOMP(VPMAXUQZ256rm) |
| NOCOMP(VPMAXUQZ256rr) |
| NOCOMP(VPMINSQZ256rm) |
| NOCOMP(VPMINSQZ256rr) |
| NOCOMP(VPMINUQZ256rm) |
| NOCOMP(VPMINUQZ256rr) |
| NOCOMP(VPMULLQZ256rm) |
| NOCOMP(VPMULLQZ256rr) |
| NOCOMP(VPSRAQZ256ri) |
| NOCOMP(VPSRAQZ256rm) |
| NOCOMP(VPSRAQZ256rr) |
| NOCOMP(VSCALEFPSZ256rm) |
| #undef NOCOMP |
| |
| #ifndef ENTRY |
| #define ENTRY(OLD, NEW) |
| #endif |
| ENTRY(VALIGNDZ128rmi, VPALIGNRrmi) |
| ENTRY(VALIGNDZ128rri, VPALIGNRrri) |
| ENTRY(VALIGNQZ128rmi, VPALIGNRrmi) |
| ENTRY(VALIGNQZ128rri, VPALIGNRrri) |
| ENTRY(VMAXSDZrm, VMAXSDrm) |
| ENTRY(VMAXSDZrr, VMAXSDrr) |
| ENTRY(VMAXSSZrm, VMAXSSrm) |
| ENTRY(VMAXSSZrr, VMAXSSrr) |
| ENTRY(VMINSDZrm, VMINSDrm) |
| ENTRY(VMINSDZrr, VMINSDrr) |
| ENTRY(VMINSSZrm, VMINSSrm) |
| ENTRY(VMINSSZrr, VMINSSrr) |
| ENTRY(VMOVDQU16Z128mr, VMOVDQUmr) |
| ENTRY(VMOVDQU16Z128rm, VMOVDQUrm) |
| ENTRY(VMOVDQU16Z128rr, VMOVDQUrr) |
| ENTRY(VMOVDQU8Z128mr, VMOVDQUmr) |
| ENTRY(VMOVDQU8Z128rm, VMOVDQUrm) |
| ENTRY(VMOVDQU8Z128rr, VMOVDQUrr) |
| ENTRY(VMOVDQU16Z256mr, VMOVDQUYmr) |
| ENTRY(VMOVDQU16Z256rm, VMOVDQUYrm) |
| ENTRY(VMOVDQU16Z256rr, VMOVDQUYrr) |
| ENTRY(VMOVDQU8Z256mr, VMOVDQUYmr) |
| ENTRY(VMOVDQU8Z256rm, VMOVDQUYrm) |
| ENTRY(VMOVDQU8Z256rr, VMOVDQUYrr) |
| ENTRY(VSHUFF32X4Z256rmi, VPERM2F128rm) |
| ENTRY(VSHUFF32X4Z256rri, VPERM2F128rr) |
| ENTRY(VSHUFF64X2Z256rmi, VPERM2F128rm) |
| ENTRY(VSHUFF64X2Z256rri, VPERM2F128rr) |
| ENTRY(VSHUFI32X4Z256rmi, VPERM2I128rm) |
| ENTRY(VSHUFI32X4Z256rri, VPERM2I128rr) |
| ENTRY(VSHUFI64X2Z256rmi, VPERM2I128rm) |
| ENTRY(VSHUFI64X2Z256rri, VPERM2I128rr) |
| // W bit does not match |
| ENTRY(VADDPDZ128rm, VADDPDrm) |
| ENTRY(VADDPDZ128rr, VADDPDrr) |
| ENTRY(VADDSDZrm, VADDSDrm) |
| ENTRY(VADDSDZrm_Int, VADDSDrm_Int) |
| ENTRY(VADDSDZrr, VADDSDrr) |
| ENTRY(VADDSDZrr_Int, VADDSDrr_Int) |
| ENTRY(VANDNPDZ128rm, VANDNPDrm) |
| ENTRY(VANDNPDZ128rr, VANDNPDrr) |
| ENTRY(VANDPDZ128rm, VANDPDrm) |
| ENTRY(VANDPDZ128rr, VANDPDrr) |
| ENTRY(VCOMISDZrm, VCOMISDrm) |
| ENTRY(VCOMISDZrm_Int, VCOMISDrm_Int) |
| ENTRY(VCOMISDZrr, VCOMISDrr) |
| ENTRY(VCOMISDZrr_Int, VCOMISDrr_Int) |
| ENTRY(VCVTPD2DQZ128rm, VCVTPD2DQrm) |
| ENTRY(VCVTPD2DQZ128rr, VCVTPD2DQrr) |
| ENTRY(VCVTPD2PSZ128rm, VCVTPD2PSrm) |
| ENTRY(VCVTPD2PSZ128rr, VCVTPD2PSrr) |
| ENTRY(VCVTSD2SSZrm, VCVTSD2SSrm) |
| ENTRY(VCVTSD2SSZrm_Int, VCVTSD2SSrm_Int) |
| ENTRY(VCVTSD2SSZrr, VCVTSD2SSrr) |
| ENTRY(VCVTSD2SSZrr_Int, VCVTSD2SSrr_Int) |
| ENTRY(VCVTTPD2DQZ128rm, VCVTTPD2DQrm) |
| ENTRY(VCVTTPD2DQZ128rr, VCVTTPD2DQrr) |
| ENTRY(VDIVPDZ128rm, VDIVPDrm) |
| ENTRY(VDIVPDZ128rr, VDIVPDrr) |
| ENTRY(VDIVSDZrm, VDIVSDrm) |
| ENTRY(VDIVSDZrm_Int, VDIVSDrm_Int) |
| ENTRY(VDIVSDZrr, VDIVSDrr) |
| ENTRY(VDIVSDZrr_Int, VDIVSDrr_Int) |
| ENTRY(VMAXCPDZ128rm, VMAXCPDrm) |
| ENTRY(VMAXCPDZ128rr, VMAXCPDrr) |
| ENTRY(VMAXCSDZrm, VMAXCSDrm) |
| ENTRY(VMAXCSDZrr, VMAXCSDrr) |
| ENTRY(VMAXPDZ128rm, VMAXPDrm) |
| ENTRY(VMAXPDZ128rr, VMAXPDrr) |
| ENTRY(VMAXSDZrm_Int, VMAXSDrm_Int) |
| ENTRY(VMAXSDZrr_Int, VMAXSDrr_Int) |
| ENTRY(VMINCPDZ128rm, VMINCPDrm) |
| ENTRY(VMINCPDZ128rr, VMINCPDrr) |
| ENTRY(VMINCSDZrm, VMINCSDrm) |
| ENTRY(VMINCSDZrr, VMINCSDrr) |
| ENTRY(VMINPDZ128rm, VMINPDrm) |
| ENTRY(VMINPDZ128rr, VMINPDrr) |
| ENTRY(VMINSDZrm_Int, VMINSDrm_Int) |
| ENTRY(VMINSDZrr_Int, VMINSDrr_Int) |
| ENTRY(VMOVAPDZ128mr, VMOVAPDmr) |
| ENTRY(VMOVAPDZ128rm, VMOVAPDrm) |
| ENTRY(VMOVAPDZ128rr, VMOVAPDrr) |
| ENTRY(VMOVDDUPZ128rm, VMOVDDUPrm) |
| ENTRY(VMOVDDUPZ128rr, VMOVDDUPrr) |
| ENTRY(VMOVDQA64Z128mr, VMOVDQAmr) |
| ENTRY(VMOVDQA64Z128rm, VMOVDQArm) |
| ENTRY(VMOVDQA64Z128rr, VMOVDQArr) |
| ENTRY(VMOVDQU64Z128mr, VMOVDQUmr) |
| ENTRY(VMOVDQU64Z128rm, VMOVDQUrm) |
| ENTRY(VMOVDQU64Z128rr, VMOVDQUrr) |
| ENTRY(VMOVHPDZ128mr, VMOVHPDmr) |
| ENTRY(VMOVHPDZ128rm, VMOVHPDrm) |
| ENTRY(VMOVLPDZ128mr, VMOVLPDmr) |
| ENTRY(VMOVLPDZ128rm, VMOVLPDrm) |
| ENTRY(VMOVNTPDZ128mr, VMOVNTPDmr) |
| ENTRY(VMOVPQI2QIZmr, VMOVPQI2QImr) |
| ENTRY(VMOVPQI2QIZrr, VMOVPQI2QIrr) |
| ENTRY(VMOVQI2PQIZrm, VMOVQI2PQIrm) |
| ENTRY(VMOVSDZmr, VMOVSDmr) |
| ENTRY(VMOVSDZrm, VMOVSDrm) |
| ENTRY(VMOVSDZrm_alt, VMOVSDrm_alt) |
| ENTRY(VMOVSDZrr, VMOVSDrr) |
| ENTRY(VMOVUPDZ128mr, VMOVUPDmr) |
| ENTRY(VMOVUPDZ128rm, VMOVUPDrm) |
| ENTRY(VMOVUPDZ128rr, VMOVUPDrr) |
| ENTRY(VMOVZPQILo2PQIZrr, VMOVZPQILo2PQIrr) |
| ENTRY(VMULPDZ128rm, VMULPDrm) |
| ENTRY(VMULPDZ128rr, VMULPDrr) |
| ENTRY(VMULSDZrm, VMULSDrm) |
| ENTRY(VMULSDZrm_Int, VMULSDrm_Int) |
| ENTRY(VMULSDZrr, VMULSDrr) |
| ENTRY(VMULSDZrr_Int, VMULSDrr_Int) |
| ENTRY(VORPDZ128rm, VORPDrm) |
| ENTRY(VORPDZ128rr, VORPDrr) |
| ENTRY(VPADDQZ128rm, VPADDQrm) |
| ENTRY(VPADDQZ128rr, VPADDQrr) |
| ENTRY(VPANDNQZ128rm, VPANDNrm) |
| ENTRY(VPANDNQZ128rr, VPANDNrr) |
| ENTRY(VPANDQZ128rm, VPANDrm) |
| ENTRY(VPANDQZ128rr, VPANDrr) |
| ENTRY(VPERMILPDZ128mi, VPERMILPDmi) |
| ENTRY(VPERMILPDZ128ri, VPERMILPDri) |
| ENTRY(VPERMILPDZ128rm, VPERMILPDrm) |
| ENTRY(VPERMILPDZ128rr, VPERMILPDrr) |
| ENTRY(VPMULDQZ128rm, VPMULDQrm) |
| ENTRY(VPMULDQZ128rr, VPMULDQrr) |
| ENTRY(VPMULUDQZ128rm, VPMULUDQrm) |
| ENTRY(VPMULUDQZ128rr, VPMULUDQrr) |
| ENTRY(VPORQZ128rm, VPORrm) |
| ENTRY(VPORQZ128rr, VPORrr) |
| ENTRY(VPSLLQZ128ri, VPSLLQri) |
| ENTRY(VPSLLQZ128rm, VPSLLQrm) |
| ENTRY(VPSLLQZ128rr, VPSLLQrr) |
| ENTRY(VPSRLQZ128ri, VPSRLQri) |
| ENTRY(VPSRLQZ128rm, VPSRLQrm) |
| ENTRY(VPSRLQZ128rr, VPSRLQrr) |
| ENTRY(VPSUBQZ128rm, VPSUBQrm) |
| ENTRY(VPSUBQZ128rr, VPSUBQrr) |
| ENTRY(VPUNPCKHQDQZ128rm, VPUNPCKHQDQrm) |
| ENTRY(VPUNPCKHQDQZ128rr, VPUNPCKHQDQrr) |
| ENTRY(VPUNPCKLQDQZ128rm, VPUNPCKLQDQrm) |
| ENTRY(VPUNPCKLQDQZ128rr, VPUNPCKLQDQrr) |
| ENTRY(VPXORQZ128rm, VPXORrm) |
| ENTRY(VPXORQZ128rr, VPXORrr) |
| ENTRY(VRNDSCALEPDZ128rmi, VROUNDPDmi) |
| ENTRY(VRNDSCALEPDZ128rri, VROUNDPDri) |
| ENTRY(VRNDSCALESDZm, VROUNDSDmi) |
| ENTRY(VRNDSCALESDZm_Int, VROUNDSDmi_Int) |
| ENTRY(VRNDSCALESDZr, VROUNDSDri) |
| ENTRY(VRNDSCALESDZr_Int, VROUNDSDri_Int) |
| ENTRY(VSHUFPDZ128rmi, VSHUFPDrmi) |
| ENTRY(VSHUFPDZ128rri, VSHUFPDrri) |
| ENTRY(VSQRTPDZ128m, VSQRTPDm) |
| ENTRY(VSQRTPDZ128r, VSQRTPDr) |
| ENTRY(VSQRTSDZm, VSQRTSDm) |
| ENTRY(VSQRTSDZm_Int, VSQRTSDm_Int) |
| ENTRY(VSQRTSDZr, VSQRTSDr) |
| ENTRY(VSQRTSDZr_Int, VSQRTSDr_Int) |
| ENTRY(VSUBPDZ128rm, VSUBPDrm) |
| ENTRY(VSUBPDZ128rr, VSUBPDrr) |
| ENTRY(VSUBSDZrm, VSUBSDrm) |
| ENTRY(VSUBSDZrm_Int, VSUBSDrm_Int) |
| ENTRY(VSUBSDZrr, VSUBSDrr) |
| ENTRY(VSUBSDZrr_Int, VSUBSDrr_Int) |
| ENTRY(VUCOMISDZrm, VUCOMISDrm) |
| ENTRY(VUCOMISDZrm_Int, VUCOMISDrm_Int) |
| ENTRY(VUCOMISDZrr, VUCOMISDrr) |
| ENTRY(VUCOMISDZrr_Int, VUCOMISDrr_Int) |
| ENTRY(VUNPCKHPDZ128rm, VUNPCKHPDrm) |
| ENTRY(VUNPCKHPDZ128rr, VUNPCKHPDrr) |
| ENTRY(VUNPCKLPDZ128rm, VUNPCKLPDrm) |
| ENTRY(VUNPCKLPDZ128rr, VUNPCKLPDrr) |
| ENTRY(VXORPDZ128rm, VXORPDrm) |
| ENTRY(VXORPDZ128rr, VXORPDrr) |
| ENTRY(VADDPDZ256rm, VADDPDYrm) |
| ENTRY(VADDPDZ256rr, VADDPDYrr) |
| ENTRY(VANDNPDZ256rm, VANDNPDYrm) |
| ENTRY(VANDNPDZ256rr, VANDNPDYrr) |
| ENTRY(VANDPDZ256rm, VANDPDYrm) |
| ENTRY(VANDPDZ256rr, VANDPDYrr) |
| ENTRY(VCVTPD2DQZ256rm, VCVTPD2DQYrm) |
| ENTRY(VCVTPD2DQZ256rr, VCVTPD2DQYrr) |
| ENTRY(VCVTPD2PSZ256rm, VCVTPD2PSYrm) |
| ENTRY(VCVTPD2PSZ256rr, VCVTPD2PSYrr) |
| ENTRY(VCVTTPD2DQZ256rm, VCVTTPD2DQYrm) |
| ENTRY(VCVTTPD2DQZ256rr, VCVTTPD2DQYrr) |
| ENTRY(VDIVPDZ256rm, VDIVPDYrm) |
| ENTRY(VDIVPDZ256rr, VDIVPDYrr) |
| ENTRY(VEXTRACTF64x2Z256mr, VEXTRACTF128mr) |
| ENTRY(VEXTRACTF64x2Z256rr, VEXTRACTF128rr) |
| ENTRY(VEXTRACTI64x2Z256mr, VEXTRACTI128mr) |
| ENTRY(VEXTRACTI64x2Z256rr, VEXTRACTI128rr) |
| ENTRY(VINSERTF64x2Z256rm, VINSERTF128rm) |
| ENTRY(VINSERTF64x2Z256rr, VINSERTF128rr) |
| ENTRY(VINSERTI64x2Z256rm, VINSERTI128rm) |
| ENTRY(VINSERTI64x2Z256rr, VINSERTI128rr) |
| ENTRY(VMAXCPDZ256rm, VMAXCPDYrm) |
| ENTRY(VMAXCPDZ256rr, VMAXCPDYrr) |
| ENTRY(VMAXPDZ256rm, VMAXPDYrm) |
| ENTRY(VMAXPDZ256rr, VMAXPDYrr) |
| ENTRY(VMINCPDZ256rm, VMINCPDYrm) |
| ENTRY(VMINCPDZ256rr, VMINCPDYrr) |
| ENTRY(VMINPDZ256rm, VMINPDYrm) |
| ENTRY(VMINPDZ256rr, VMINPDYrr) |
| ENTRY(VMOVAPDZ256mr, VMOVAPDYmr) |
| ENTRY(VMOVAPDZ256rm, VMOVAPDYrm) |
| ENTRY(VMOVAPDZ256rr, VMOVAPDYrr) |
| ENTRY(VMOVDDUPZ256rm, VMOVDDUPYrm) |
| ENTRY(VMOVDDUPZ256rr, VMOVDDUPYrr) |
| ENTRY(VMOVDQA64Z256mr, VMOVDQAYmr) |
| ENTRY(VMOVDQA64Z256rm, VMOVDQAYrm) |
| ENTRY(VMOVDQA64Z256rr, VMOVDQAYrr) |
| ENTRY(VMOVDQU64Z256mr, VMOVDQUYmr) |
| ENTRY(VMOVDQU64Z256rm, VMOVDQUYrm) |
| ENTRY(VMOVDQU64Z256rr, VMOVDQUYrr) |
| ENTRY(VMOVNTPDZ256mr, VMOVNTPDYmr) |
| ENTRY(VMOVUPDZ256mr, VMOVUPDYmr) |
| ENTRY(VMOVUPDZ256rm, VMOVUPDYrm) |
| ENTRY(VMOVUPDZ256rr, VMOVUPDYrr) |
| ENTRY(VMULPDZ256rm, VMULPDYrm) |
| ENTRY(VMULPDZ256rr, VMULPDYrr) |
| ENTRY(VORPDZ256rm, VORPDYrm) |
| ENTRY(VORPDZ256rr, VORPDYrr) |
| ENTRY(VPADDQZ256rm, VPADDQYrm) |
| ENTRY(VPADDQZ256rr, VPADDQYrr) |
| ENTRY(VPANDNQZ256rm, VPANDNYrm) |
| ENTRY(VPANDNQZ256rr, VPANDNYrr) |
| ENTRY(VPANDQZ256rm, VPANDYrm) |
| ENTRY(VPANDQZ256rr, VPANDYrr) |
| ENTRY(VPERMILPDZ256mi, VPERMILPDYmi) |
| ENTRY(VPERMILPDZ256ri, VPERMILPDYri) |
| ENTRY(VPERMILPDZ256rm, VPERMILPDYrm) |
| ENTRY(VPERMILPDZ256rr, VPERMILPDYrr) |
| ENTRY(VPMULDQZ256rm, VPMULDQYrm) |
| ENTRY(VPMULDQZ256rr, VPMULDQYrr) |
| ENTRY(VPMULUDQZ256rm, VPMULUDQYrm) |
| ENTRY(VPMULUDQZ256rr, VPMULUDQYrr) |
| ENTRY(VPORQZ256rm, VPORYrm) |
| ENTRY(VPORQZ256rr, VPORYrr) |
| ENTRY(VPSLLQZ256ri, VPSLLQYri) |
| ENTRY(VPSLLQZ256rm, VPSLLQYrm) |
| ENTRY(VPSLLQZ256rr, VPSLLQYrr) |
| ENTRY(VPSRLQZ256ri, VPSRLQYri) |
| ENTRY(VPSRLQZ256rm, VPSRLQYrm) |
| ENTRY(VPSRLQZ256rr, VPSRLQYrr) |
| ENTRY(VPSUBQZ256rm, VPSUBQYrm) |
| ENTRY(VPSUBQZ256rr, VPSUBQYrr) |
| ENTRY(VPUNPCKHQDQZ256rm, VPUNPCKHQDQYrm) |
| ENTRY(VPUNPCKHQDQZ256rr, VPUNPCKHQDQYrr) |
| ENTRY(VPUNPCKLQDQZ256rm, VPUNPCKLQDQYrm) |
| ENTRY(VPUNPCKLQDQZ256rr, VPUNPCKLQDQYrr) |
| ENTRY(VPXORQZ256rm, VPXORYrm) |
| ENTRY(VPXORQZ256rr, VPXORYrr) |
| ENTRY(VRNDSCALEPDZ256rmi, VROUNDPDYmi) |
| ENTRY(VRNDSCALEPDZ256rri, VROUNDPDYri) |
| ENTRY(VSHUFPDZ256rmi, VSHUFPDYrmi) |
| ENTRY(VSHUFPDZ256rri, VSHUFPDYrri) |
| ENTRY(VSQRTPDZ256m, VSQRTPDYm) |
| ENTRY(VSQRTPDZ256r, VSQRTPDYr) |
| ENTRY(VSUBPDZ256rm, VSUBPDYrm) |
| ENTRY(VSUBPDZ256rr, VSUBPDYrr) |
| ENTRY(VUNPCKHPDZ256rm, VUNPCKHPDYrm) |
| ENTRY(VUNPCKHPDZ256rr, VUNPCKHPDYrr) |
| ENTRY(VUNPCKLPDZ256rm, VUNPCKLPDYrm) |
| ENTRY(VUNPCKLPDZ256rr, VUNPCKLPDYrr) |
| ENTRY(VXORPDZ256rm, VXORPDYrm) |
| ENTRY(VXORPDZ256rr, VXORPDYrr) |
| ENTRY(VPBROADCASTQZ128rm, VPBROADCASTQrm) |
| ENTRY(VPBROADCASTQZ128rr, VPBROADCASTQrr) |
| ENTRY(VBROADCASTF64X2Z128rm, VBROADCASTF128rm) |
| ENTRY(VBROADCASTI64X2Z128rm, VBROADCASTI128rm) |
| ENTRY(VBROADCASTSDZ256rm, VBROADCASTSDYrm) |
| ENTRY(VBROADCASTSDZ256rr, VBROADCASTSDYrr) |
| ENTRY(VPBROADCASTQZ256rm, VPBROADCASTQYrm) |
| ENTRY(VPBROADCASTQZ256rr, VPBROADCASTQYrr) |
| ENTRY(MOVBE32rr, BSWAP32r) |
| ENTRY(MOVBE64rr, BSWAP64r) |
| #undef ENTRY |