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

    <tr>
        <th>Summary</th>
        <td>
            RISCV64 vector miscompile at -O2
        </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
int printf(const char *, ...);
int b, e, z, v, h;
short i, j;
int *k = &b;
static int l;
static int *n = &l;
static int o;

static int r() {
  long x = 0;
  signed char y = 0;
  short w = 0;
  *k = 1;
  h = 0;
 n;
  while (h < 2) {
    e = i = 0;
    while (i < 3) {
      j = o << l;
      w = b * 3;
      e ^= j >= 0;
      long q = e;
 x = w & -q ?: w;
      y = x;
      z |= y;
      while (o < 2)
        o += 1;
      i += 1;
    }
    h++;
  }
 return z;
}

int main() {
  v = r();
  printf("%d\n", v);
}
```
Commands:
```bash
> /scratch/tc-testing/llvm-feb-5/build/bin/clang -O2 -march=rv64gcv red.c -o user-config.out -Wno-unused-value
> QEMU_CPU=rv64,Zve32f=true,Zve64f=true /scratch/tc-testing/llvm-feb-5/build/bin/qemu-riscv64 user-config.out
0
> /scratch/tc-testing/llvm-feb-5/build/bin/clang -O1 -march=rv64gcv red.c -o user-config.out -Wno-unused-value
> QEMU_CPU=rv64,Zve32f=true,Zve64f=true /scratch/tc-testing/llvm-feb-5/build/bin/qemu-riscv64 user-config.out
3
```

.c, .bc, .asm: 
[c-bc-asm.zip](https://github.com/llvm/llvm-project/files/14186745/c-bc-asm.zip)

`--opt-bisect-limit` points to `InstCombinePass`

Discovered/tested using a7bc9cb6ffa91ff0ebabc45c0c7263c7c2c3a4de (not bisected)
Found using fuzzer.

#80792 also fails with `-march=rv64gcv -O2` so these might be related?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcVk1v4zYQ_TX0ZSCBomTJPvjg2BGwh2K3H9sCvRQkNZKYlUgvSckb__qCkj8SO5cWPTUIqHDem-Gb4QwR7pxqNOKGLJ_Icr_gg2-N3Ry4t0p-i6wajVsIU71ufkPnJXdI0i2he0K3JKfzr5z3Sns4WKV9TdhKGu08yJZbIGxL2A7iOCZsTdKnG1sEO4blFJYxLO2V4VpjPahgfHnnRtj2G5B0D4Tl4kb33CsJgdB9ZCRsqy9eHxLM1fgAWcJWhK2BFGcGQGd0Az-mgPTqCDBVs5oTf31Ep5SOD_ZrRskbY3tP02_AY6s6BMJWgbUDdqcOACdv9XDUG1c1uaYPrgAvk5sJeKB07_zhnIAIsiG9wxDI8jnAIcbz4-nnyn2fQuANmkt5DLcDUUBLkm7heOc7l_THnfUEpNgF4PVe6CVVc63SWxhCiuzpvvDhR30MkGJ_27SBEli3e7zCFv1gNZxuPXWBbn3cc6UfG2ucUjx33JvY19EijBG2rMhyp6c_p8FZf3DQZT7n7c70PdeVe5xfwV17NqXPQFjppOVetoSVXkYenVe6IazsurGPahTRkrBSDKqrwjfkUMqO6waizwyinlvZknRvxzxr5AgWq1hCZGBwaCNpdK2a2Aweoj-0iQY9OKyikXcD3jT8_PzT1792X76ewxC2-3PElNUk3Xs74LzPs8v-32n-jv0QWeXkmGf34mYp9D-qSvK_qkr6YXvNayynp17MH-76MMRnwvJJRkJG3PXxSR3Ich9eL-8PU0eykrCyUb4dRCxNf9Z4kXqw5gWlJ6ysVYeOsDLJklVeZEH_u6iXAb9qjCJz8JFQDqWPOtUrT3IKB6O0d-ANkJx-0s7vTC-Uxi_cubuU9spJM6LFUKNQQqxgcEo3wAsh11Lkdc3XSV1TFFzIbCmpLFieykIymfKsmh4gbTzMIkKcs8jSDPoSrB5OJ7TxO_UsXdFizYB3zkDNVefgqHwbND80VPSZhcScAd-iQ-hV03oQCBY7Hg5Ny0W1Sat1uuYL3CQFLdhytWLpot3QHBNMKF1JTCpa1YLmWZEUNRNVUdOaLdSGUZZRRnPG0jRL4pVIEyHWFaNrrFmGJKPYc9XF4bpiY5uFcm7AzYquE7rouMDOTf9iMKbxCBMYHq_lfmE30xWLoXEko51y3t2ieOU73Pzy6dfd73kGI0pvLPThRvpDeNq5D4kvBttt_nErTSJCL00i_w4AAP__VH-F9Q">