diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86IntrinsicsInfo.h')
-rw-r--r-- | llvm/lib/Target/X86/X86IntrinsicsInfo.h | 165 |
1 files changed, 83 insertions, 82 deletions
diff --git a/llvm/lib/Target/X86/X86IntrinsicsInfo.h b/llvm/lib/Target/X86/X86IntrinsicsInfo.h index b1c75f0d027..1c811a659c7 100644 --- a/llvm/lib/Target/X86/X86IntrinsicsInfo.h +++ b/llvm/lib/Target/X86/X86IntrinsicsInfo.h @@ -32,6 +32,7 @@ enum IntrinsicType : uint16_t { IFMA_OP, VPERM_2OP, INTR_TYPE_SCALAR_MASK, INTR_TYPE_SCALAR_MASK_RM, INTR_TYPE_3OP_SCALAR_MASK, COMPRESS_EXPAND_IN_REG, + TRUNCATE_TO_REG, TRUNCATE_TO_MEM_VI8, TRUNCATE_TO_MEM_VI16, TRUNCATE_TO_MEM_VI32, FIXUPIMM, FIXUPIMM_MASKZ, FIXUPIMMS, FIXUPIMMS_MASKZ, GATHER_AVX2, @@ -667,110 +668,110 @@ static const IntrinsicData IntrinsicsWithoutChain[] = { X86ISD::FMULS_RND, 0), X86_INTRINSIC_DATA(avx512_mask_mul_ss_round, INTR_TYPE_SCALAR_MASK_RM, X86ISD::FMULS_RND, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_db_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNC, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_db_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNC, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_db_512, INTR_TYPE_1OP_MASK, - ISD::TRUNCATE, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_dw_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNC, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_dw_256, INTR_TYPE_1OP_MASK, - ISD::TRUNCATE, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_dw_512, INTR_TYPE_1OP_MASK, - ISD::TRUNCATE, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_qb_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNC, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_qb_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNC, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_qb_512, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNC, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_qd_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNC, 0), + X86_INTRINSIC_DATA(avx512_mask_pmov_db_128, TRUNCATE_TO_REG, + X86ISD::VTRUNC, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_db_256, TRUNCATE_TO_REG, + X86ISD::VTRUNC, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_db_512, TRUNCATE_TO_REG, + ISD::TRUNCATE, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_dw_128, TRUNCATE_TO_REG, + X86ISD::VTRUNC, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_dw_256, TRUNCATE_TO_REG, + ISD::TRUNCATE, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_dw_512, TRUNCATE_TO_REG, + ISD::TRUNCATE, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_qb_128, TRUNCATE_TO_REG, + X86ISD::VTRUNC, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_qb_256, TRUNCATE_TO_REG, + X86ISD::VTRUNC, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_qb_512, TRUNCATE_TO_REG, + X86ISD::VTRUNC, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_qd_128, TRUNCATE_TO_REG, + X86ISD::VTRUNC, X86ISD::VMTRUNC), X86_INTRINSIC_DATA(avx512_mask_pmov_qd_256, INTR_TYPE_1OP_MASK, ISD::TRUNCATE, 0), X86_INTRINSIC_DATA(avx512_mask_pmov_qd_512, INTR_TYPE_1OP_MASK, ISD::TRUNCATE, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_qw_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNC, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_qw_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNC, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_qw_512, INTR_TYPE_1OP_MASK, - ISD::TRUNCATE, 0), - X86_INTRINSIC_DATA(avx512_mask_pmov_wb_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNC, 0), + X86_INTRINSIC_DATA(avx512_mask_pmov_qw_128, TRUNCATE_TO_REG, + X86ISD::VTRUNC, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_qw_256, TRUNCATE_TO_REG, + X86ISD::VTRUNC, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_qw_512, TRUNCATE_TO_REG, + ISD::TRUNCATE, X86ISD::VMTRUNC), + X86_INTRINSIC_DATA(avx512_mask_pmov_wb_128, TRUNCATE_TO_REG, + X86ISD::VTRUNC, X86ISD::VMTRUNC), X86_INTRINSIC_DATA(avx512_mask_pmov_wb_256, INTR_TYPE_1OP_MASK, ISD::TRUNCATE, 0), X86_INTRINSIC_DATA(avx512_mask_pmov_wb_512, INTR_TYPE_1OP_MASK, ISD::TRUNCATE, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_db_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_db_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_db_512, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_dw_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_dw_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_dw_512, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_qb_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_qb_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_qb_512, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), + X86_INTRINSIC_DATA(avx512_mask_pmovs_db_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_db_256, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_db_512, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_dw_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_dw_256, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_dw_512, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_qb_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_qb_256, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_qb_512, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), X86_INTRINSIC_DATA(avx512_mask_pmovs_qd_128, INTR_TYPE_1OP_MASK, X86ISD::VTRUNCS, 0), X86_INTRINSIC_DATA(avx512_mask_pmovs_qd_256, INTR_TYPE_1OP_MASK, X86ISD::VTRUNCS, 0), X86_INTRINSIC_DATA(avx512_mask_pmovs_qd_512, INTR_TYPE_1OP_MASK, X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_qw_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_qw_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_qw_512, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovs_wb_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCS, 0), + X86_INTRINSIC_DATA(avx512_mask_pmovs_qw_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_qw_256, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_qw_512, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), + X86_INTRINSIC_DATA(avx512_mask_pmovs_wb_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCS, X86ISD::VMTRUNCS), X86_INTRINSIC_DATA(avx512_mask_pmovs_wb_256, INTR_TYPE_1OP_MASK, X86ISD::VTRUNCS, 0), X86_INTRINSIC_DATA(avx512_mask_pmovs_wb_512, INTR_TYPE_1OP_MASK, X86ISD::VTRUNCS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_db_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_db_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_db_512, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_dw_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_dw_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_dw_512, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_qb_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_qb_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_qb_512, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_qd_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), + X86_INTRINSIC_DATA(avx512_mask_pmovus_db_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_db_256, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_db_512, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_dw_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_dw_256, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_dw_512, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_qb_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_qb_256, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_qb_512, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_qd_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), X86_INTRINSIC_DATA(avx512_mask_pmovus_qd_256, INTR_TYPE_1OP_MASK, X86ISD::VTRUNCUS, 0), X86_INTRINSIC_DATA(avx512_mask_pmovus_qd_512, INTR_TYPE_1OP_MASK, X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_qw_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_qw_256, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_qw_512, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), - X86_INTRINSIC_DATA(avx512_mask_pmovus_wb_128, INTR_TYPE_1OP_MASK, - X86ISD::VTRUNCUS, 0), + X86_INTRINSIC_DATA(avx512_mask_pmovus_qw_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_qw_256, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_qw_512, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), + X86_INTRINSIC_DATA(avx512_mask_pmovus_wb_128, TRUNCATE_TO_REG, + X86ISD::VTRUNCUS, X86ISD::VMTRUNCUS), X86_INTRINSIC_DATA(avx512_mask_pmovus_wb_256, INTR_TYPE_1OP_MASK, X86ISD::VTRUNCUS, 0), X86_INTRINSIC_DATA(avx512_mask_pmovus_wb_512, INTR_TYPE_1OP_MASK, |