summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2017-12-15 21:18:05 +0000
committerCraig Topper <craig.topper@intel.com>2017-12-15 21:18:05 +0000
commit422ed23298a5666acd5dc15813d9389c26a3725e (patch)
tree60870ddbcff5b7867f8996937b594e8efbd4f370 /llvm/lib/Target
parentf08ab74ae3a2e64b475d67ec26413b3712f438ac (diff)
downloadbcm5719-llvm-422ed23298a5666acd5dc15813d9389c26a3725e.tar.gz
bcm5719-llvm-422ed23298a5666acd5dc15813d9389c26a3725e.zip
[X86] In LowerVectorCTPOP use ISD::ZERO_EXTEND/ISD::TRUNCATE instead of the target specific nodes.
The target independent nodes will get legalized to the target specific nodes by their own legalization process. Someday I'd like to stop using a target specific for zero extends and truncates of legal types so the less places we reference the target specific opcode the better. llvm-svn: 320863
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 0429f65e73d..94714bf6920 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -23779,14 +23779,14 @@ static SDValue LowerVectorCTPOP(SDValue Op, const X86Subtarget &Subtarget,
// TRUNC(CTPOP(ZEXT(X))) to make use of vXi32/vXi64 VPOPCNT instructions.
if (Subtarget.hasVPOPCNTDQ()) {
if (VT == MVT::v8i16) {
- Op = DAG.getNode(X86ISD::VZEXT, DL, MVT::v8i64, Op0);
+ Op = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::v8i64, Op0);
Op = DAG.getNode(ISD::CTPOP, DL, MVT::v8i64, Op);
- return DAG.getNode(X86ISD::VTRUNC, DL, VT, Op);
+ return DAG.getNode(ISD::TRUNCATE, DL, VT, Op);
}
if (VT == MVT::v16i8 || VT == MVT::v16i16) {
- Op = DAG.getNode(X86ISD::VZEXT, DL, MVT::v16i32, Op0);
+ Op = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::v16i32, Op0);
Op = DAG.getNode(ISD::CTPOP, DL, MVT::v16i32, Op);
- return DAG.getNode(X86ISD::VTRUNC, DL, VT, Op);
+ return DAG.getNode(ISD::TRUNCATE, DL, VT, Op);
}
}
OpenPOWER on IntegriCloud