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!?

Reply via email to