#BEGIN_LEGAL
#
#Copyright (c) 2023 Intel Corporation
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#  
#END_LEGAL

# a complete definition of all AVX10.1 instructions

XED_ISA_SET_AVX512F_SCALAR, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1
XED_ISA_SET_AVX512F_128N,   AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1
XED_ISA_SET_AVX512F_128,    AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512F_256,    AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512F_512,    AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]
XED_ISA_SET_AVX512F_KOPW,   AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]

XED_ISA_SET_AVX512CD_128, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512CD_256, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512CD_512, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512BW_128N, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1
XED_ISA_SET_AVX512BW_128,  AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512BW_256,  AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512BW_512,  AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]
XED_ISA_SET_AVX512BW_KOPD, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512BW_KOPQ, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]

XED_ISA_SET_AVX512DQ_SCALAR, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1
XED_ISA_SET_AVX512DQ_128N,   AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1
XED_ISA_SET_AVX512DQ_128,    AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512DQ_256,    AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512DQ_512,    AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]
XED_ISA_SET_AVX512DQ_KOPB,   AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512DQ_KOPW,   AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]

XED_ISA_SET_AVX512_VBMI_128, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_VBMI_256, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_VBMI_512, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512_IFMA_128, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_IFMA_256, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_IFMA_512, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512_VNNI_128, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_VNNI_256, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_VNNI_512, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512_BF16_128, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_BF16_256, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_BF16_512, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512_VPOPCNTDQ_128, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_VPOPCNTDQ_256, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_VPOPCNTDQ_512, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512_VBMI2_128, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_VBMI2_256, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_VBMI2_512, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512_VAES_128, AVX10:  vaes.7.0.ecx.9 avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_VAES_256, AVX10:  vaes.7.0.ecx.9 avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_VAES_512, AVX10:  vaes.7.0.ecx.9 avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512_GFNI_128, AVX10:  gfni.7.0.ecx.8 avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_GFNI_256, AVX10:  gfni.7.0.ecx.8 avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_GFNI_512, AVX10:  gfni.7.0.ecx.8 avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512_VPCLMULQDQ_128, AVX10:  vpclmulqdq.7.0.ecx.10 avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_VPCLMULQDQ_256, AVX10:  vpclmulqdq.7.0.ecx.10 avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_VPCLMULQDQ_512, AVX10:  vpclmulqdq.7.0.ecx.10 avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512_BITALG_128, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_BITALG_256, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_BITALG_512, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

XED_ISA_SET_AVX512_FP16_SCALAR, AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1
XED_ISA_SET_AVX512_FP16_128N,   AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1
XED_ISA_SET_AVX512_FP16_128,    AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_128vl.24.0.ebx[16]
XED_ISA_SET_AVX512_FP16_256,    AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_256vl.24.0.ebx[17]
XED_ISA_SET_AVX512_FP16_512,    AVX10:  avx10_enabled.7.1.edx[19] avx10_ver1.24.0.ebx[0:7]=1 avx10_512vl.24.0.ebx[18]

