aboutsummaryrefslogtreecommitdiff
path: root/libcxx/include/__algorithm/remove.h
diff options
context:
space:
mode:
authorRicardo Jesus <rjj@nvidia.com>2025-02-26 13:56:35 +0000
committerGitHub <noreply@github.com>2025-02-26 13:56:35 +0000
commit15fbdc2b9635b75f431a26b89b48fe03e7ed9d5c (patch)
treec6276b2831074e76fd29e903dba5b82ec9e87141 /libcxx/include/__algorithm/remove.h
parenta5d8b7aeb6b360f20eec88715081ecfdb286b83d (diff)
downloadllvm-15fbdc2b9635b75f431a26b89b48fe03e7ed9d5c.zip
llvm-15fbdc2b9635b75f431a26b89b48fe03e7ed9d5c.tar.gz
llvm-15fbdc2b9635b75f431a26b89b48fe03e7ed9d5c.tar.bz2
[AArch64][SVE] Lower unpredicated loads/stores as LDR/STR. (#127837)
Currently, given: ```cpp svuint8_t foo(uint8_t *x) { return svld1(svptrue_b8(), x); } ``` We generate: ```gas foo: ptrue p0.b ld1b { z0.b }, p0/z, [x0] ret ``` However, on little-endian and with unaligned memory accesses allowed, we could instead be using LDR as follows: ```gas foo: ldr z0, [x0] ret ``` The second form avoids the predicate dependency. Likewise for other types and stores.
Diffstat (limited to 'libcxx/include/__algorithm/remove.h')
0 files changed, 0 insertions, 0 deletions