https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115282
Kewen Lin <linkw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2024-05-31 Status|UNCONFIRMED |NEW CC| |linkw at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Kewen Lin <linkw at gcc dot gnu.org> --- (In reply to Richard Biener from comment #1) > I don't see a good reason why, but I don't have a BE cross around to check > myself. Does BE vect maybe not have unsigned integer vector multiplication > support? BE should have int vector mult too, I noticed it's guarded with TARGET_ALTIVEC. The first loop (line 17) causes the difference, previously it did the splitting like: test.c:16:17: note: Splitting SLP group at stmt 6 test.c:16:17: note: Split group into 6 and 2 but now it won't and then seems to fail due to that: test.c:16:17: note: ==> examining statement: _14 = in[_13]; test.c:16:17: missed: permutation requires at least three vectors _2 = in[_1]; test.c:16:17: missed: unsupported load permutation test.c:25:14: missed: not vectorized: relevant stmt not supported: _14 = in[_13]; test.c:16:17: note: Cannot vectorize all-constant op node 0x140dd450 test.c:16:17: note: removing SLP instance operations starting from: out[_1] = _17; test.c:16:17: missed: unsupported SLP instances test.c:16:17: note: re-trying with SLP disabled test.c:16:17: note: vectorization_factor = 4, niters = 8 I can't figure out why it can pass on LE, so I did a test on LE and found it fails on LE too!?