https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115248
--- Comment #4 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:a68e32b8e4b4c03c81e3a4b7560d52fef2d16088 commit r15-8024-ga68e32b8e4b4c03c81e3a4b7560d52fef2d16088 Author: Richard Sandiford <richard.sandif...@arm.com> Date: Thu Mar 13 12:03:04 2025 +0000 testsuite: Remove sve/pre_cond_share_1.c [PR115248] gcc.target/aarch64/sve/pre_cond_share_1.c started failing after r15-276-gbed6ec161be8c5ca. However, that was incidental. The test's inner loop is duplicated by -fswitch-loops and that patch happened to change the copy of the loop that was not the original focus of the test. The test was added as part of r14-4713-g4b39aeef594f311e (patch A). Before patch A we had: mask__109.48_201 = vect_distbb_170.43_191 < vect_cst__200; _263 = .COND_MUL (mask__109.48_201, vect_iftmp.45_195, vect_cst__198, { 0.0, ... }); vect_prephitmp_153.50_205 = .VCOND (vect_distbb_170.43_191, { 0.0, ... }, _263, vect_cst__198, 112); which, expanding the .VCOND, is equivalent to: mask__102.46_197 = vect_distbb_170.43_191 >= { 0.0, ... }; mask__109.48_201 = vect_distbb_170.43_191 < vect_cst__200; _263 = .COND_MUL (mask__109.48_201, vect_iftmp.45_195, vect_cst__198, { 0.0, ... }); vect_prephitmp_153.50_205 = mask__102.46_197 ? _263 : vect_cst__198 After patch A we had: mask__102.46_197 = vect_distbb_170.43_191 >= { 0.0, ... }; mask__109.48_201 = vect_distbb_170.43_191 < vect_cst__200; _70 = mask__102.46_197 & mask__109.48_201; vect_prephitmp_153.50_205 = .COND_MUL (_70, vect_iftmp.45_195, vect_cst__198, { 0.0, ... }); But this changes the behaviour when vect_distbb_170.43_191 < { 0.0, ... }. In that case, the original code would pick an else value of vect_cst__198, whereas the new code would pick an else value of { 0.0, ... }. That was fixed in r14-8668-g8123f3ca3fd89103 (PR113607, patch B), but fixing the bug (rightly) reverted the code to the previous output. Patch B therefore XFAILed the thing that patch A was originally testing. Since the test was added for patch A and since patch A seems to generate incorrect code for the test, I think we should just remove it. gcc/testsuite/ PR testsuite/115248 * gcc.target/aarch64/sve/pre_cond_share_1.c: Delete