The comment in tcg-runtime-gvec.c about CONFIG_VECTOR16 says that tcg-op-gvec.c has eliminated size 8 vectors, and only passes on multiples of 16. This may have been true of the first few operations, but is not true of all operations. In particular, multiply, shift by scalar, and compare of 8- and 16-bit elements are not expanded inline if host vector operations are not supported. For an x86_64 host that does not support AVX, this means that we will fall back to the helper, which will attempt to use SSE instructions, which will SEGV on an invalid 8-byte aligned memory operation. The first patch removes the CONFIG_VECTOR16 code and configuration; the subsequent patches tidy up tcg-runtime-gvec.c.
r~ Richard Henderson (4): tcg: Remove CONFIG_VECTOR16 tcg: Tidy tcg-runtime-gvec.c types tcg: Tidy tcg-runtime-gvec.c DUP* tcg: Remove tcg-runtime-gvec.c DO_CMP0 configure | 56 ------- accel/tcg/tcg-runtime-gvec.c | 298 ++++++++++++++--------------------- 2 files changed, 116 insertions(+), 238 deletions(-) -- 2.20.1