diff options
author | Craig Topper <craig.topper@gmail.com> | 2016-08-29 04:49:27 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2016-08-29 04:49:27 +0000 |
commit | f0e822ff31a668ea85e388bdd9207df859352d41 (patch) | |
tree | 285ba415358228ba6e314d0a727db29d5a9d542b | |
parent | 71584cd0f06e596e16cfee11f3179913c3b974c4 (diff) | |
download | bcm5719-llvm-f0e822ff31a668ea85e388bdd9207df859352d41.tar.gz bcm5719-llvm-f0e822ff31a668ea85e388bdd9207df859352d41.zip |
[AVX-512] Always use v8i64 when converting 512-bit FAND/FOR/FXOR/FANDN to integer operations when DQI isn't supported. This is consistent with the recent changes to promote logical operations to i64 vectors.
llvm-svn: 279957
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 2591aef6c42..381b81f9945 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -30365,11 +30365,9 @@ static SDValue lowerX86FPLogicOp(SDNode *N, SelectionDAG &DAG, // VXORPS, VORPS, VANDPS, VANDNPS are supported only under DQ extention. // These logic operations may be executed in the integer domain. SDLoc dl(N); - MVT IntScalar = MVT::getIntegerVT(VT.getScalarSizeInBits()); - MVT IntVT = MVT::getVectorVT(IntScalar, VT.getVectorNumElements()); - SDValue Op0 = DAG.getBitcast(IntVT, N->getOperand(0)); - SDValue Op1 = DAG.getBitcast(IntVT, N->getOperand(1)); + SDValue Op0 = DAG.getBitcast(MVT::v8i64, N->getOperand(0)); + SDValue Op1 = DAG.getBitcast(MVT::v8i64, N->getOperand(1)); unsigned IntOpcode = 0; switch (N->getOpcode()) { default: llvm_unreachable("Unexpected FP logic op"); @@ -30378,7 +30376,7 @@ static SDValue lowerX86FPLogicOp(SDNode *N, SelectionDAG &DAG, case X86ISD::FAND: IntOpcode = ISD::AND; break; case X86ISD::FANDN: IntOpcode = X86ISD::ANDNP; break; } - SDValue IntOp = DAG.getNode(IntOpcode, dl, IntVT, Op0, Op1); + SDValue IntOp = DAG.getNode(IntOpcode, dl, MVT::v8i64, Op0, Op1); return DAG.getBitcast(VT, IntOp); } return SDValue(); |