Skip to content
This repository was archived by the owner on Mar 28, 2020. It is now read-only.

Commit 386ab19

Browse files
committed
[AVX-512] Don't use two opcodes for INTR_TYPE_SCALAR_MASK_RM. The handling was such that if the second opcode was present the first was ingored, so we can just have one opcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282344 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 6928dfa commit 386ab19

File tree

2 files changed

+21
-22
lines changed

2 files changed

+21
-22
lines changed

lib/Target/X86/X86ISelLowering.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17670,8 +17670,7 @@ static SDValue LowerINTRINSIC_WO_CHAIN(SDValue Op, const X86Subtarget &Subtarget
1767017670
// (2) With rounding mode and sae - 7 operands.
1767117671
if (Op.getNumOperands() == 6) {
1767217672
SDValue Sae = Op.getOperand(5);
17673-
unsigned Opc = IntrData->Opc1 ? IntrData->Opc1 : IntrData->Opc0;
17674-
return getScalarMaskingNode(DAG.getNode(Opc, dl, VT, Src1, Src2,
17673+
return getScalarMaskingNode(DAG.getNode(IntrData->Opc0, dl, VT, Src1, Src2,
1767517674
Sae),
1767617675
Mask, Src0, Subtarget, DAG);
1767717676
}

lib/Target/X86/X86IntrinsicsInfo.h

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -381,10 +381,10 @@ static const IntrinsicData IntrinsicsWithoutChain[] = {
381381
X86ISD::FADD_RND),
382382
X86_INTRINSIC_DATA(avx512_mask_add_ps_512, INTR_TYPE_2OP_MASK, ISD::FADD,
383383
X86ISD::FADD_RND),
384-
X86_INTRINSIC_DATA(avx512_mask_add_sd_round, INTR_TYPE_SCALAR_MASK_RM, ISD::FADD,
385-
X86ISD::FADD_RND),
386-
X86_INTRINSIC_DATA(avx512_mask_add_ss_round, INTR_TYPE_SCALAR_MASK_RM, ISD::FADD,
387-
X86ISD::FADD_RND),
384+
X86_INTRINSIC_DATA(avx512_mask_add_sd_round, INTR_TYPE_SCALAR_MASK_RM,
385+
X86ISD::FADD_RND, 0),
386+
X86_INTRINSIC_DATA(avx512_mask_add_ss_round, INTR_TYPE_SCALAR_MASK_RM,
387+
X86ISD::FADD_RND, 0),
388388
X86_INTRINSIC_DATA(avx512_mask_broadcastf32x2_256, BRCST32x2_TO_VEC,
389389
X86ISD::VBROADCAST, 0),
390390
X86_INTRINSIC_DATA(avx512_mask_broadcastf32x2_512, BRCST32x2_TO_VEC,
@@ -649,10 +649,10 @@ static const IntrinsicData IntrinsicsWithoutChain[] = {
649649
X86ISD::FDIV_RND),
650650
X86_INTRINSIC_DATA(avx512_mask_div_ps_512, INTR_TYPE_2OP_MASK, ISD::FDIV,
651651
X86ISD::FDIV_RND),
652-
X86_INTRINSIC_DATA(avx512_mask_div_sd_round, INTR_TYPE_SCALAR_MASK_RM, ISD::FDIV,
653-
X86ISD::FDIV_RND),
654-
X86_INTRINSIC_DATA(avx512_mask_div_ss_round, INTR_TYPE_SCALAR_MASK_RM, ISD::FDIV,
655-
X86ISD::FDIV_RND),
652+
X86_INTRINSIC_DATA(avx512_mask_div_sd_round, INTR_TYPE_SCALAR_MASK_RM,
653+
X86ISD::FDIV_RND, 0),
654+
X86_INTRINSIC_DATA(avx512_mask_div_ss_round, INTR_TYPE_SCALAR_MASK_RM,
655+
X86ISD::FDIV_RND, 0),
656656
X86_INTRINSIC_DATA(avx512_mask_expand_d_128, COMPRESS_EXPAND_IN_REG,
657657
X86ISD::EXPAND, 0),
658658
X86_INTRINSIC_DATA(avx512_mask_expand_d_256, COMPRESS_EXPAND_IN_REG,
@@ -770,9 +770,9 @@ static const IntrinsicData IntrinsicsWithoutChain[] = {
770770
X86_INTRINSIC_DATA(avx512_mask_max_ps_512, INTR_TYPE_2OP_MASK, X86ISD::FMAX,
771771
X86ISD::FMAX_RND),
772772
X86_INTRINSIC_DATA(avx512_mask_max_sd_round, INTR_TYPE_SCALAR_MASK_RM,
773-
X86ISD::FMAX, X86ISD::FMAX_RND),
773+
X86ISD::FMAX_RND, 0),
774774
X86_INTRINSIC_DATA(avx512_mask_max_ss_round, INTR_TYPE_SCALAR_MASK_RM,
775-
X86ISD::FMAX, X86ISD::FMAX_RND),
775+
X86ISD::FMAX_RND, 0),
776776
X86_INTRINSIC_DATA(avx512_mask_min_pd_128, INTR_TYPE_2OP_MASK, X86ISD::FMIN, 0),
777777
X86_INTRINSIC_DATA(avx512_mask_min_pd_256, INTR_TYPE_2OP_MASK, X86ISD::FMIN, 0),
778778
X86_INTRINSIC_DATA(avx512_mask_min_pd_512, INTR_TYPE_2OP_MASK, X86ISD::FMIN,
@@ -782,9 +782,9 @@ static const IntrinsicData IntrinsicsWithoutChain[] = {
782782
X86_INTRINSIC_DATA(avx512_mask_min_ps_512, INTR_TYPE_2OP_MASK, X86ISD::FMIN,
783783
X86ISD::FMIN_RND),
784784
X86_INTRINSIC_DATA(avx512_mask_min_sd_round, INTR_TYPE_SCALAR_MASK_RM,
785-
X86ISD::FMIN, X86ISD::FMIN_RND),
785+
X86ISD::FMIN_RND, 0),
786786
X86_INTRINSIC_DATA(avx512_mask_min_ss_round, INTR_TYPE_SCALAR_MASK_RM,
787-
X86ISD::FMIN, X86ISD::FMIN_RND),
787+
X86ISD::FMIN_RND, 0),
788788
X86_INTRINSIC_DATA(avx512_mask_move_sd, INTR_TYPE_SCALAR_MASK,
789789
X86ISD::MOVSD, 0),
790790
X86_INTRINSIC_DATA(avx512_mask_move_ss, INTR_TYPE_SCALAR_MASK,
@@ -793,10 +793,10 @@ static const IntrinsicData IntrinsicsWithoutChain[] = {
793793
X86ISD::FMUL_RND),
794794
X86_INTRINSIC_DATA(avx512_mask_mul_ps_512, INTR_TYPE_2OP_MASK, ISD::FMUL,
795795
X86ISD::FMUL_RND),
796-
X86_INTRINSIC_DATA(avx512_mask_mul_sd_round, INTR_TYPE_SCALAR_MASK_RM, ISD::FMUL,
797-
X86ISD::FMUL_RND),
798-
X86_INTRINSIC_DATA(avx512_mask_mul_ss_round, INTR_TYPE_SCALAR_MASK_RM, ISD::FMUL,
799-
X86ISD::FMUL_RND),
796+
X86_INTRINSIC_DATA(avx512_mask_mul_sd_round, INTR_TYPE_SCALAR_MASK_RM,
797+
X86ISD::FMUL_RND, 0),
798+
X86_INTRINSIC_DATA(avx512_mask_mul_ss_round, INTR_TYPE_SCALAR_MASK_RM,
799+
X86ISD::FMUL_RND, 0),
800800
X86_INTRINSIC_DATA(avx512_mask_pabs_b_128, INTR_TYPE_1OP_MASK, X86ISD::ABS, 0),
801801
X86_INTRINSIC_DATA(avx512_mask_pabs_b_256, INTR_TYPE_1OP_MASK, X86ISD::ABS, 0),
802802
X86_INTRINSIC_DATA(avx512_mask_pabs_b_512, INTR_TYPE_1OP_MASK, X86ISD::ABS, 0),
@@ -1367,10 +1367,10 @@ static const IntrinsicData IntrinsicsWithoutChain[] = {
13671367
X86ISD::FSUB_RND),
13681368
X86_INTRINSIC_DATA(avx512_mask_sub_ps_512, INTR_TYPE_2OP_MASK, ISD::FSUB,
13691369
X86ISD::FSUB_RND),
1370-
X86_INTRINSIC_DATA(avx512_mask_sub_sd_round, INTR_TYPE_SCALAR_MASK_RM, ISD::FSUB,
1371-
X86ISD::FSUB_RND),
1372-
X86_INTRINSIC_DATA(avx512_mask_sub_ss_round, INTR_TYPE_SCALAR_MASK_RM, ISD::FSUB,
1373-
X86ISD::FSUB_RND),
1370+
X86_INTRINSIC_DATA(avx512_mask_sub_sd_round, INTR_TYPE_SCALAR_MASK_RM,
1371+
X86ISD::FSUB_RND, 0),
1372+
X86_INTRINSIC_DATA(avx512_mask_sub_ss_round, INTR_TYPE_SCALAR_MASK_RM,
1373+
X86ISD::FSUB_RND, 0),
13741374
X86_INTRINSIC_DATA(avx512_mask_ucmp_b_128, CMP_MASK_CC, X86ISD::CMPMU, 0),
13751375
X86_INTRINSIC_DATA(avx512_mask_ucmp_b_256, CMP_MASK_CC, X86ISD::CMPMU, 0),
13761376
X86_INTRINSIC_DATA(avx512_mask_ucmp_b_512, CMP_MASK_CC, X86ISD::CMPMU, 0),

0 commit comments

Comments
 (0)