aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2023-11-27 14:44:02 +0000
committerRichard Sandiford <richard.sandiford@arm.com>2023-11-27 14:44:02 +0000
commite09007308c96a036a4a4e6fd4d6c09442b4c4420 (patch)
treeb2ad14b739bf91c0627b1f0ea0a3bed98d8d1b1c /libcpp
parent31e9074977bb7de83fa5d28d286323987d5d87f2 (diff)
downloadgcc-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')
0 files changed, 0 insertions, 0 deletions