https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117990
--- Comment #4 from Li Pan <pan2.li at intel dot com> ---
Another example to reproduce this.
1 │ #define STEP 10
2 │
3 │ char d[225];
4 │ int e[STEP];
5 │
6 │ int main() {
7 │ for (long h = 0; h < STEP; ++h)
8 │ d[h * STEP] = 9; // 0, 10, 20, 30, 40, 50, 60, 70, 80, 90
9 │
10 │ for (int h = 3; h < STEP; h += 1)
11 │ e[h] = d[h * STEP]; // 30, 40, 50, 60, 70, 80, 90
12 │ // 3, 4, 5, 6, 7, 8, 9
13 │
14 │ if (e[5] != 9) {
15 │ return 123;
16 │ } else {
17 │ return 0;
18 │ }
19 │ }
QEMU_CPU=rv64,vlen=256,rvv_ta_all_1s=true,rvv_ma_all_1s=true,v=true,vext_spec=v1.0
~/bin/qemu/bin/qemu-riscv64 test.elf
FAIL:
- ../__RV64/bin/riscv64-unknown-elf-gcc test.c -march=rv64gcvb_zvl256b -O2
-mrvv-vector-bits=zvl -o test.elf
PASS:
- ../__RV64/bin/riscv64-unknown-elf-gcc test.c -march=rv64gcvb_zvl256b -O1
-mrvv-vector-bits=zvl -o test.elf
-