diff options
author | Lawrence Benson <github@lawben.com> | 2023-04-13 16:44:09 +0100 |
---|---|---|
committer | David Green <david.green@arm.com> | 2023-04-13 16:44:09 +0100 |
commit | 3653722ce6d9bb44a42ffdce4e07080aa1928ddc (patch) | |
tree | 7b0f92e6a33f372ddc338139957a7e7ddfcfb157 /llvm/lib/CodeGen/StackProtector.cpp | |
parent | aa754f7e0fddcc6c4d6737c71baf357825b09a3e (diff) | |
download | llvm-3653722ce6d9bb44a42ffdce4e07080aa1928ddc.zip llvm-3653722ce6d9bb44a42ffdce4e07080aa1928ddc.tar.gz llvm-3653722ce6d9bb44a42ffdce4e07080aa1928ddc.tar.bz2 |
[AArch64] Add more efficient vector bitcast for AArch64
Adds a DAG combine checks for vector comparisons followed by a bitcast to a
scalar value. Previously, this resulted in an expand. Now, this is done with a
constant number of instructions that take one bit per vector value (via an AND
mask) and perfom a horizontal add to get a single value. This is especially
useful for Clang's __builtin_convertvector() to a bool vector.
Issue: https://github.com/llvm/llvm-project/issues/59829
Differential Revision: https://reviews.llvm.org/D145301
Diffstat (limited to 'llvm/lib/CodeGen/StackProtector.cpp')
0 files changed, 0 insertions, 0 deletions