Hi, I start to enable "vect" testsuite for RISC-V.

I have a question when analyzing the 'wrapv-vect-reduc-dot-s8b.c'
It failed at:
FAIL: gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c scan-tree-dump-times vect 
"vect_recog_dot_prod_pattern: detected" 1
FAIL: gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c scan-tree-dump-times vect 
"vect_recog_widen_mult_pattern: detected" 1

They are found "2" times.

Since at the first time, it failed at the vectorization of conversion:

wrapv-vect-reduc-dot-s8b.c:29:14: missed:   conversion not supported by target.
wrapv-vect-reduc-dot-s8b.c:29:14: note:   vect_is_simple_use: operand X[i_14], 
type of def: internal
wrapv-vect-reduc-dot-s8b.c:29:14: note:   vect_is_simple_use: vectype 
vector([16,16]) signed char
wrapv-vect-reduc-dot-s8b.c:29:14: note:   vect_is_simple_use: operand X[i_14], 
type of def: internal
wrapv-vect-reduc-dot-s8b.c:29:14: note:   vect_is_simple_use: vectype 
vector([16,16]) signed char
wrapv-vect-reduc-dot-s8b.c:30:17: missed:   not vectorized: relevant stmt not 
supported: _2 = (short int) _1;
wrapv-vect-reduc-dot-s8b.c:29:14: missed:  bad operation or unsupported loop 
bound.

Here loop vectorizer is trying to do the conversion from char -> short with 
both same nunits.
But we don't support 'vec_unpack' stuff in RISC-V backend since I don't see the 
case that vec_unpack can optimize the codegen of autovectorizatio for RVV.

To fix it, is it necessary to support 'vec_unpack' ?

Thanks.


juzhe.zh...@rivai.ai

Reply via email to