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

    <tr>
        <th>Summary</th>
        <td>
            [RISC-V] Miscompile in rv64gcv with -O3 -flto
        </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
short a;
long long q;
short d = 22032;
char h = 88;
char k[25];
int main() {
  for (int l = 0; l < 25; ++l)
    k[l] = 9;
  for (int l = 0; l < d - 22007; l += 4)
    for (short m = 0; m < h - 63; m += 3)
      a += k[m] != k[l];
  q = a;
 __builtin_printf("%llu\n", q);
}
```

Commands:
```
# riscv
$ /scratch/ewlu/daily-upstream-build/build-gcv/bin/clang -march=rv64gcv -flto -O3 red.c -o user-config.out
$ 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
9

$ /scratch/ewlu/daily-upstream-build/build-gcv/bin/clang -march=rv64gcv -flto -O2 red.c -o user-config.out 
$ 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

# x86
$ ./native.out
0
```

Bisected to ff8f6abe20a9dfbb1de8d978f865092413d3416c as first bad commit.

Replacing `d - 22007` with `25` or `h - 63` with `25` prevents the error from occurring. `-flto` also appears to be mandatory here too

I don't know if this is could also be related to #134126? Both the commit messages seem to be lowering shuffles for vla code.

Found via fuzzer 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsVUGP2zYT_TX0ZSCDokRZPviwtj8BOQRfmza9GhQ5kthQopektMn--oKUtg6yaC9FbwUMa-Zx5mk4jxoK73U_IZ4IPxN-3Yk5DNad8MXMu9aqb6df0QcpPJLiidAnUtH1Jwl98oN1AQQpzoQ-GTv1kP6eV2BdVUCKKzBGC7bCchAOhoTW9XfQF8LPjBN-XTE9BRiFngirCTsCOUQQoLMOCKvjqkkclBTnZF6A8WgTdibsbAg7pgRIxIbwawo_rux_T6QgixXTwwaxcwwoH5Rb8rrD8ZE-pvQBMqiKzV9zi0cugHhDY2Vjqozlb775swMAz4l56y_cbu2sTdDT7e70FLrUGUYYN2Ym_DIl5wLP8VUpgxyu3ysWbfp0seMoJuV_kDParACnvVySXQJhjZdOBDkQ1sTzQFijhDbfsvnug0MxZrEgRViTnlkvl2hHzRppxNRDNgonB1Jc3VKVvVwg60ywkP2_AIdqLyGzMHt0mbRTp_u9ncP28p__9_Hz7fLT5y2XsMticCLFNY-7vrhluQVxE8bcck-Ka3AzbvD4Hl6-M_FruPk7SlJcl3xPCbu8Lliw7hHyumBVvvkQ9Ih2DpBlC7rWeoTsC9B9Dv-wQc84zllqd1X-2APICX06rnr920qwv1QC_pNik4K-SVHA17ra2rInrJlE0Atux5a-_9jO2qMMqCBY6Lq6q0SLjIqj6to2V1ir46Hu6orTIyvzQhVlXkkQHjrtfIBWKJB2HHXYr3Sf8G6E1FMPpKKPIVVReNFhiCDj0YvTqaLbGHq3ene44BQ8hAEBnbMOOmdHsFLOzump38fYdD5iuDDegrjfUTgf99EixAEignXfYECHEKxd6_sAyk6EHQJ8mewL6A7CoD1oD9LORq1ULYJDI7auEFbkRZmzihQNnG0YUlXrrmFE70WPHjziuL3b2BeMRYIf5q4z6NMwXowAaRVujWrsPClYtIBufn1FBzt1KtSxOIodnvJDWVLO8orvhlN14EKUXVuXqMqat8jzAxdM0ZIeSyzrnT4xyjgt6SGveUX5XlZUsPKgVCdbyRknJcVRaLM3Zhn31vU77f2Mp7woD5TvjGjR-HS7MjbhC6TVOKv5dedOMSlr596Tkhrtg3_QBB1MupY_ffjlkv0W74mP2ks73rVB0BO8fcpJ3jhTk2a72ZnTEMI9jXjWENb0Ogxzu5d2JKyJ_Nsjuzv7O8pAWJOq8oQ1W9nLif0RAAD__3AFcJk">