<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/126974>126974</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[RISC-V] Miscompile using rv64gcv
</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
int a[][21][21];
void b(int c, int d, int e, short f, _Bool g, char h, char i, int j, int k,
int l, unsigned char m, int n, char o, int p, long long q[],
unsigned short r[][10], unsigned s[][10],
unsigned long long t[][10][10][10], unsigned long long u[][10][10][10],
int w[][10][10][10][10], _Bool x) {
for (signed z = 0; z < (char)m + 3; z = 4)
for (short aa = ({
__typeof__(0) ab = 173;
__typeof__(0) ac = ({
__typeof__(0) ab = m;
ab;
});
ab > ac ? ab : ac;
}) -
171;
aa < 9; aa = k)
a[z][aa][aa] = ~0;
}
typedef int ad;
int printf(const char *, ...);
long long ae;
void af(long long *ae, int v) { *ae ^= v; }
int c;
int d;
int e;
short f;
_Bool g;
char h;
char i;
int j;
int k = 2805750831;
int l;
char m;
int n;
char o;
int p;
long long q[0];
unsigned short r[0][10];
unsigned s[0][10];
unsigned long long t[0][10][10][10];
unsigned long long u[0][10][10][10];
int w[0][10][10][10][10];
_Bool x;
int a[21][21][21];
void ag() {
for (ad y = 0; y < 10; ++y)
for (ad ah = 0; ah < 10; ++ah)
for (ad ai = 0; ai < 10; ++ai)
af(&ae, a[y][ah][ai]);
}
int main() {
b(c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, w, x);
ag();
printf("%llu\n", ae);
}
```
Commands:
```
# riscv
$ 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 1
18446744073709551615
```
Godbolt: https://godbolt.org/z/85rz18rxY
Bisected to cfee344dda7394631f2177a15e56cfeee1d61fc4 as the first bad commit
I tried reducing the testcase down farther but was unsuccessful
Found via fuzzer. First detected 01/24/2025
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMVkuPo7gT_zTOxUpkF-9DDnkMf81hpP8-ZqU9RQZM8DSPHmzo7hz2s6_KQCBJd89GkSm76lcvXFUIrdW5lnJLvD3xjivRmaJpt_Kl7FZJk71t_5TapEJL4uwI2xGfDf-UsJ2qDRUDjnh74Munsyds1zcqowmBECVTAgeKRDYREgldNK2hOZKnfdOU9IxkWoiWFldKTZAfE_FE4EDYjg4_PCmR1dU2nGyAVZN0fdXUTEfPSJRNfR6Wn2McS61XZYOP7TVUzgbRhcQD7x01szVzJ37_XKqeUd0vUbcZefmF_MLakPpXAhElwd6qyZuWEghHLy6UOEfKiLO35AFZmFACUUUJ7KkzsY7UJRCNnkxKbAKFsGwC4WjjdDJvz7LJTycCIUPjIrEiPHCGG0Tf_b2DS-9Uf_D70GI12hPJZ4ZJcMTYPpGw6r4M_sTDbkdFOkIGPF1_AOcBv9NtU3agaHJK39OYXay8y_AahVg8rdA_bFCEBtkOY85kbi-FyAaOrYFW1SbHN9nU2gwFQmCHF2Kz2VwjnW-gkIvCFoiceQR2Qk7V1Y83aTilxPuCXvUYxuDS0BGuniycGk1MfcFups5gN2NvmGk1g3_M5JNNBITMCzwWOnzmlAtsNR_Xi-NmkaT7JGCrYNce906TuCmuO6HP2bcd4tOi_QjY_Sfg1B4-lbxBTB3iChcPPf-x94szVuRjUxEZfZsbypu949zSBPYE9m8PHURkVBQzxNK3GFHMoBuYWsDUI0wtYXS41QT84S5jkG9jcRXjU9meGS0LDPNRCVXfRYujz449O_KsQjvo7Iiz080ONjvUnuw8wsVOLTux7LCyg-onLq2dl7gYOyFwecHlddGUppSP-2uJEwACXll2xDvUdnPAcr6N4zrekWa7Q1NVos703exHGhzaKp321G5c-tuXb99Ph_9_J86x7X2XwKEvZU2cI0fTh7bvT0acRFmeuCbO0bSdHI-rx-N-QcpXc9LPMiXOsecbRuBw6aUD-Sxy6aXvTntqVCWbztD1updt0mhJ10-UbTh1KYFYp60waUEgxi8cAnEmVPm27p61aaWo1kmnyoxAbJ_rc9ojje81_imrbm1D9l3aadmu06bO1XmDxjhhuzFnmJnX0B_TsiEQ18KoXl7leOi6fuC6LHACFnke97n3mPr_NVnSlAanR2HMs30FEBOIzwNj07RnAvGFQBx67YWH7evfA3KvtEyNzKhpaJpL6bhulonAiVzf4TnwIBDck56PPMkzn-epS4WmppA0V602NBEZTZuqUmbQ-JWaVsmMtjLrUoXNqZDUjN-FNGteapqL1hSypUln6IvQ-PXSpanUOu_KQUncdHVGeyVo3l0ust3Q2BrLpBncZZxADC4uDLxVtnWyyInESm554ERO5EHorIqtSCGRrhe4PIzSFHgSCZexIIHQywI_FCu1RTwDDsBx2XApwM-YJ0IniMBlxGWyEqrclGVfYR5XSutObjn4UeCuSpHIUtvvYYBavlDLxYrxjqt2i6B10p01cVmptNGzGqNMaT-kf__6x2H9F87ib0qnTfWsSkk7janD4jin_apry-3di1Wm6JJN2lQEYtQ5PtbPbfNDpoZAbD3RBOLR1X4L_wYAAP__Qm8sow">