[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
Loading
Please sign in to comment