https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122961

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
OK, so the reason is the pattern detection (but not application!) scan is based
on the vectorization to eventually succeed.  But:

/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c:30:14:
note:   ==> examining statement: _2 = (signed short) _1;
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c:30:14:
note:   vect_is_simple_use: operand X[i_17], type of def: internal
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c:30:14:
missed:   conversion not supported by target.

that's signed extension V8QI -> V4HI.

We already conditionalize "vectorized 1 loops" on vect_widen_mult_qi_to_hi,
I think a bit too restrictive, but the easiest fix is to conditionalize
the dot-prod scan to the same condition.  Or simply remove it, it's somewhat
pointless IMO.

I think originally the testcase was to allow also a used dot_prod
vectorization,
but I don't know a target that can do dot_prod qi->hi, x86 does v16qi->v4si
only.

I'll adjust accordingly.

Reply via email to