diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2023-11-27 14:44:02 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2023-11-27 14:44:02 +0000 |
commit | e09007308c96a036a4a4e6fd4d6c09442b4c4420 (patch) | |
tree | b2ad14b739bf91c0627b1f0ea0a3bed98d8d1b1c /libcpp/expr.cc | |
parent | 31e9074977bb7de83fa5d28d286323987d5d87f2 (diff) | |
download | gcc-e09007308c96a036a4a4e6fd4d6c09442b4c4420.zip gcc-e09007308c96a036a4a4e6fd4d6c09442b4c4420.tar.gz gcc-e09007308c96a036a4a4e6fd4d6c09442b4c4420.tar.bz2 |
aarch64: Remove redundant zeroing/merging in SVE intrinsics [PR106326]
Many predicated SVE intrinsics provide three forms of predication:
zeroing, merging, and any/dont-care. All three are equivalent when
the predicate is all-true, so this patch drops the zeroing and
merging in that case.
gcc/
PR target/106326
* config/aarch64/aarch64-sve-builtins.h (is_ptrue): Declare.
* config/aarch64/aarch64-sve-builtins.cc (is_ptrue): New function.
(gimple_folder::redirect_pred_x): Likewise.
(gimple_folder::fold): Use it.
gcc/testsuite/
PR target/106326
* gcc.target/aarch64/sve/acle/general/pr106326_1.c: New test.
Diffstat (limited to 'libcpp/expr.cc')
0 files changed, 0 insertions, 0 deletions