aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/StackProtector.cpp
diff options
context:
space:
mode:
authorTies Stuij <ties.stuij@arm.com>2022-12-01 16:37:50 +0000
committerTies Stuij <ties.stuij@arm.com>2022-12-02 11:27:14 +0000
commit82a5f1c62b64830069139d5840675588577a8711 (patch)
tree8f369ea40e31e5c31777c105c35c59034294abb6 /llvm/lib/CodeGen/StackProtector.cpp
parentc4edeb838519899170e564ef247a655f8fed9ea0 (diff)
downloadllvm-82a5f1c62b64830069139d5840675588577a8711.zip
llvm-82a5f1c62b64830069139d5840675588577a8711.tar.gz
llvm-82a5f1c62b64830069139d5840675588577a8711.tar.bz2
[AArch64] use CNT for ISD::popcnt and ISD::parity if available
These are the two places where we explicitly want to use cnt in SelectionDAG when feature CSSC is available: ISD::popcnt and ISD::parity For both, we need to make sure we're emitting optimized code for i32 (and lower), i64 and i128. The most optimal way is of course using the GPR CNT instruction. If we don't have CSSC, but we do have neon, we'll use floating point CNT. If all fails, we'll fall back on the general GPR popcnt and parity implementations. spec: https://developer.arm.com/documentation/ddi0602/2022-09/Base-Instructions/CNT--Count-bits- Reviewed By: lenary Differential Revision: https://reviews.llvm.org/D138808
Diffstat (limited to 'llvm/lib/CodeGen/StackProtector.cpp')
0 files changed, 0 insertions, 0 deletions