https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51492
--- Comment #7 from Li Pan <pan2.li at intel dot com> --- RISC-V backend reproduce code, build with "-march=rv64gcv_zba_zbb_zbc_zbs --param=riscv-autovec-preference=fixed-vlmax -Ofast -ffast-math" typedef unsigned short uint16_t; void AAA (uint16_t *x, uint16_t *y, unsigned wsize, unsigned count) { unsigned m = 0, n = count; register uint16_t *p; p = x; do { m = *--p; *p = (uint16_t)(m >= wsize ? m-wsize : 0); } while (--n); n = wsize; p = y; do { m = *--p; *p = (uint16_t)(m >= wsize ? m-wsize : 0); } while (--n); }