[llvm] r279957 - [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.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 28 21:49:27 PDT 2016
Author: ctopper
Date: Sun Aug 28 23:49:27 2016
New Revision: 279957
URL: http://llvm.org/viewvc/llvm-project?rev=279957&view=rev
Log:
[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.
Modified:
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=279957&r1=279956&r2=279957&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Sun Aug 28 23:49:27 2016
@@ -30365,11 +30365,9 @@ static SDValue lowerX86FPLogicOp(SDNode
// 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
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();
More information about the llvm-commits
mailing list