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