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.
