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

    <tr>
        <th>Summary</th>
        <td>
            [RISC-V] rv64gcv miscompile at `-O2 -flto` with pass `gather/scatter lowering`
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          patrick-rivos
      </td>
    </tr>
</table>

<pre>
    Testcase:
```c
short a;
long long b;
int c = 4;
signed char d[10], e[10];
int main() {
  for (long h = 0; h < 10; ++h)
    d[h] = 1;
  for (int h = 0; h < 10; h += c || a)
    e[h] = 256 / d[h];
  __builtin_printf("%d\n", e[1]);
}
```

Commands:
```bash
> /scratch/tc-testing/tc-apr-23/build-rv64gcv/build-llvm-linux/bin/clang -fwrapv -march=rv64gcv -flto -O2 red.c -o red.out
> /scratch/tc-testing/tc-apr-23/build-rv64gcv/bin/qemu-riscv64 red.out
1
> /scratch/tc-testing/tc-apr-23/build-rv64gcv/build-llvm-linux/bin/clang -fwrapv red.c -o red.out
> /scratch/tc-testing/tc-apr-23/build-rv64gcv/bin/qemu-riscv64 red.out
0
```

Discovered/tested using cebc9609d8cdc6f488693cd8e4a616b935b38d2c (not bisected)

Found via fuzzer.

flto opt-bisect-limit points to `pass (70) RISC-V gather/scatter lowering on function (main)`

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8VE_v5DQM_TTuxeooTf_m0MPOlEqckABxXaVJ2gbapCTp_GA_PUpmdvgtaLkgrTTq2K78np9dm3uvF6NUD_UV6iHjZ1it6w8enBa_5U7frc8mK__sf1Y-CO4VlB-ADEA-QEMeP_Hw_WpdQA7l9eFv1iyYHtMrpk1AgVAOWL1iqQCJYuUOJdTXgkA9AL2hejnv03euDdAOKENon3HE2ToE2iW6NREQKK_JvGGRbKBXoNcVKPuchIlvhXpIGcWL54UXCb8CtybAcoh62hu0N-RfQKv30LRuEOj44nvH9PHjdOotaPPxcNqEOWmjQGsJ9c0k89mK1Bb2SoV2-Mcgnm563uy-cyP9v8c1cb8-Q-V3sSovHA9iBToGkQflgzbLw-GHy2kJdIwlytzdm2oR95e_bfc937Q5_4ihOJZRbNwsmM9vjh93zHfuxArl8MzEfN6CxfwHik7Ji8DcJsOe4X9XlOh_V_uZO-3Fvam-RC6-keRvrYv8xzcwaC_sXTklI4nyQUk8vTYLCjUJ1hAmOyFFM1dd17BSyE5VvCmaiZX1VHaSirgDxgactFciRBz2nmC0p5F41xzn89Mn5S7vX6ZR2yPkj-R807sOeFhtgsdgERpycO8jRUviOv_4_U-3_BdceFiVS93iISiHm31TLlZtDc6nEUFbE7Mel4C9RGeyLyUrGc9UX7RFyUhb1G229kJyNk-CtzUlVBZ1QaZZsKKQzTwxSkmme0poRSpa0qJgRXthc8FUMVeSTbSeOwIVUTvX2yXO_2LdkmnvT9V3rCvLbOOT2nw6oZQa9YbpZVzdeshcn76Z6Vw8VGTTPvi_UYIOW7q9D-3xXHxelT0Obz_0ppCH2Ky4NWl_oCH4psOKj_Y15Ksdg4Zkp9v6NYQjXQI6Ah0XHdZzugi7Ax1jKc-__HD2VyUC0DEJ8EDHJPCvAAAA__8nhMza">