aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorRicardo Jesus <rjj@nvidia.com>2025-05-06 08:48:08 +0100
committerGitHub <noreply@github.com>2025-05-06 08:48:08 +0100
commitfbd9a3160b392c343f9ce24af0180d8b14c68dfe (patch)
tree9828414839c39ccda33fd115132cab38e9151c55 /flang/lib/Frontend/CompilerInvocation.cpp
parentfd161cf56f4356c38f82a6d68a80236e00bce39d (diff)
downloadllvm-fbd9a3160b392c343f9ce24af0180d8b14c68dfe.zip
llvm-fbd9a3160b392c343f9ce24af0180d8b14c68dfe.tar.gz
llvm-fbd9a3160b392c343f9ce24af0180d8b14c68dfe.tar.bz2
[AArch64][SVE] Combine UXT[BHW] intrinsics to AND. (#137956)
This patch combines uxt[bhw] intrinsics to and_u when the governing predicate is all-true or the passthrough is undef (e.g. in cases of ``unknown'' merging). This improves code gen as the latter can be emitted as AND immediate instructions. For example, given: ```cpp svuint64_t foo(svuint64_t x) { return svextb_z(svptrue_b64(), x); } ``` Currently: ```gas foo: ptrue p0.d movi v1.2d, #0000000000000000 uxtb z0.d, p0/m, z0.d ret ``` Becomes: ```gas foo: and z0.d, z0.d, #0xff ret ```
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions