summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/SystemZ/SystemZOperators.td
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2015-03-31 12:56:33 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2015-03-31 12:56:33 +0000
commitb401218ca2bda7d5ca7233b7d216a8f1860cc4b7 (patch)
treece2e6c4b2645ffbe7517cba86a4afbe664cf1c7a /llvm/lib/Target/SystemZ/SystemZOperators.td
parent1f6666a49c9a8cc773e81545d8cd70b047b73672 (diff)
downloadbcm5719-llvm-b401218ca2bda7d5ca7233b7d216a8f1860cc4b7.tar.gz
bcm5719-llvm-b401218ca2bda7d5ca7233b7d216a8f1860cc4b7.zip
[SystemZ] Use POPCNT instruction on z196
We already exploit a number of instructions specific to z196, but not yet POPCNT. Add support for the population-count facility, MC support for the POPCNT instruction, CodeGen support for using POPCNT, and implement the getPopcntSupport TargetTransformInfo hook. llvm-svn: 233689
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZOperators.td')
-rw-r--r--llvm/lib/Target/SystemZ/SystemZOperators.td1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZOperators.td b/llvm/lib/Target/SystemZ/SystemZOperators.td
index 51ac5daad54..0cb476d2122 100644
--- a/llvm/lib/Target/SystemZ/SystemZOperators.td
+++ b/llvm/lib/Target/SystemZ/SystemZOperators.td
@@ -121,6 +121,7 @@ def z_select_ccmask : SDNode<"SystemZISD::SELECT_CCMASK", SDT_ZSelectCCMask,
def z_adjdynalloc : SDNode<"SystemZISD::ADJDYNALLOC", SDT_ZAdjDynAlloc>;
def z_extract_access : SDNode<"SystemZISD::EXTRACT_ACCESS",
SDT_ZExtractAccess>;
+def z_popcnt : SDNode<"SystemZISD::POPCNT", SDTIntUnaryOp>;
def z_umul_lohi64 : SDNode<"SystemZISD::UMUL_LOHI64", SDT_ZGR128Binary64>;
def z_sdivrem32 : SDNode<"SystemZISD::SDIVREM32", SDT_ZGR128Binary32>;
def z_sdivrem64 : SDNode<"SystemZISD::SDIVREM64", SDT_ZGR128Binary64>;
OpenPOWER on IntegriCloud