<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/149335>149335</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [RISC-V] Miscompile at -O[23]
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ewlu
      </td>
    </tr>
</table>

<pre>
    Testcase:
```c
unsigned short a[10];
void b(short c, short i[]) {
  for (short k = 1; k < 9; k += 2)
    a[k] = c ? i[k] : i[k + 1];
}
long long m;
short c;
short i[10];
void checksum() {
  for (int k = 0; k < 10; ++k)
    m ^= a[k] + (m < 6) + (m > 2);
}
int main() {
  for (int k = 0; k < 10; ++k)
    a[k] = 3;
  b(c, i);
 checksum();
  __builtin_printf("%llu\n", m);
}
```

Commands
```
# -O3
$ /scratch/ewlu/daily-upstream-build/build-gcv/bin/clang -march=rv64gcv -O3 red.c -o user-config.out -fsigned-char -fno-strict-aliasing -fwrapv 
$ QEMU_CPU=rv64,vlen=128,rvv_ta_all_1s=true,rvv_ma_all_1s=true,v=true,vext_spec=v1.0,zve32f=true,zve64f=true timeout --verbose -k 0.1 4 /scratch/ewlu/daily-upstream-build/build-gcv/bin/qemu-riscv64 user-config.out 1
65541

# -O2
$ /scratch/ewlu/daily-upstream-build/build-gcv/bin/clang -march=rv64gcv -O2 red.c -o user-config.out -fsigned-char -fno-strict-aliasing -fwrapv 
$ QEMU_CPU=rv64,vlen=128,rvv_ta_all_1s=true,rvv_ma_all_1s=true,v=true,vext_spec=v1.0,zve32f=true,zve64f=true timeout --verbose -k 0.1 4 /scratch/ewlu/daily-upstream-build/build-gcv/bin/qemu-riscv64 user-config.out 1
65541

# -O1
$ /scratch/ewlu/daily-upstream-build/build-gcv/bin/clang -march=rv64gcv -O1 red.c -o user-config.out -fsigned-char -fno-strict-aliasing -fwrapv 
$ QEMU_CPU=rv64,vlen=128,rvv_ta_all_1s=true,rvv_ma_all_1s=true,v=true,vext_spec=v1.0,zve32f=true,zve64f=true timeout --verbose -k 0.1 4 /scratch/ewlu/daily-upstream-build/build-gcv/bin/qemu-riscv64 user-config.out 1
0
```

Bisected to 60ad6e3fa45c03dc1fc7521ead7583a9a7d9fb61 as the first bad commit.

Found via fuzzer
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsVktv4zYQ_jXjy0AGNTSl6KCDHxHQw2L72l4NiqJsNnq4JKV08-sLUk6cJnvbzW0Bw5r3fDMfIVE6Z06D1iWIHYjDSk7-PNpSP3bTqh6br-Wf2nklnQa-BbaFjC0_BWw7DTG3QXcerUcJYpcyEAfgO2DbeTQN1kB3i1cB7a-BZukFVCDkIRSxHS2-hD4g8AOmwHdR3GNxFWkXHARUxCSMLR9AHGKCQuBVLH41bRcl5GH6ggvyA7BtNw4njH_9Yn5G-Uox3xhInbV6cFMPdPcN_GZ4Rs9u6NMoB_C0e7hh7xHEfQi9DUEh7K6PWVksf7PcL3O_GiE066UZvh_K_9bIlx4YuYusmZfGb8Z_jjwe68l03gzHizWDb6OXgETXTSD2Q1T22L8Z4OUwBZlt92Pfy6Fxbz3EMfnMo7RBoMopK706A1XhlAJVjTTd12S6OG-17JOApQGq4jM5qTnIYU2V6uRwwqSXVp2BH-ycbU5qDtXR6matMBlxctomahxac1qPk8ekXQ55os7SYtIOY-K8NconsjPSmVCwfbTyMuMV4m_3n74c979-uXYA2s-dHoAf0rCWvZ3no5dH2XXH1AE_eDvpq7l_b55fifpff3QXrYAf5nTNgPZPs-bU3kKeZp1tnnX0ptdxhGTWth6dxuQB2TrF71zjP7qfEmucmrPNu32lwLaZEJt0IXVhjz6UPfrJ3oeyl34oe-lP9n4ke-z9i3VnnFZeN-hHzJhsMs1buRGK8UalrcoFpVo2ubjjspB5U7R1lqJ06M8aW2Odx1o2qMa-N369lKzGaWhwNhLb6elJ21VT8qbghVzpMs0F5ZkoCr46lzznRCxjbc0yJou2ySnLa0aKU0FNmq1MSYwEy9M8FZRxvm5J1ZnKha6FZA1x2DDdS9Otu27u16M9rYxzky7TTcG5WHWy1p2L1xeiQT9i9IYvjjisbBmSkno6OdiwzjjvbmW88V289_z-yx_75K_w_ftknBr7i-k0So_JZxA74qHQZLvy7P3FhWsQVUDVyfjzVK_V2ANVoeb1kVzs-LdWHqiKSBxQdYU6l_RfAAAA__84T9jn">