https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106326
--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Richard Sandiford <rsand...@gcc.gnu.org>: https://gcc.gnu.org/g:e09007308c96a036a4a4e6fd4d6c09442b4c4420 commit r14-5881-ge09007308c96a036a4a4e6fd4d6c09442b4c4420 Author: Richard Sandiford <richard.sandif...@arm.com> Date: Mon Nov 27 14:44:02 2023 +0000 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.