<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">