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

    <tr>
        <th>Summary</th>
        <td>
            RISCV64 miscompile at -O1
        </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 a, b = 0x8FFFFFFF;
long c;
long *d = &c;
void e(unsigned char f) { a = f; }
void g(void) {
  unsigned int h = c;
  *d = h;
}
int main(void) {
  c = b;
  g();
  e(c >> 32);
  if (a == 0)
 return 0;
  else
    return 1;
}
```

Discovered/tested using https://github.com/llvm/llvm-project/commit/430a40d12eaa5a61792c4670955c110146902afb (not bisected)

Commands:
```sh
> /scratch/tc-testing/tc-jan-17-llvm/build/bin/clang -O1 red.c -o red.out
> QEMU_CPU=rv64,vlen=128,v=true,vext_spec=v1.0,Zve32f=true,Zve64f=true timeout --verbose -k 0.1 1 /scratch/tc-testing/tc-jan-17-llvm/build/bin/qemu-riscv64 red.out
> echo $?
1
> /scratch/tc-testing/tc-jan-17-llvm/build/bin/clang -O0 red.c -o red.out
> QEMU_CPU=rv64,vlen=128,v=true,vext_spec=v1.0,Zve32f=true,Zve64f=true timeout --verbose -k 0.1 1 /scratch/tc-testing/tc-jan-17-llvm/build/bin/qemu-riscv64 red.out
> echo $?
0
```

Found via fuzzer. I believe this reduced testcase does not have any undefined behavior.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkVUuP2zYQ_jXjy0AGH3pYBx127RWQQ9FnesgloKiRxEQSXZJSk_z6grJ37cUWBVr0FsOwZzgzn76PIw6V96afiSrIHiE77dQSBuuqswrO6M-JM6v1u8a2X6vfyAetPIF8AHYC9gA5u3z1xTdzQAXiiA2CPCH7cqgvH5CPl4zRzj3q1y6Ih3bLB5HfQqs1LRKIwzJv_FrUg3LYgSgRikdUW0kH8hGhON3V9CAO0bgmXiKILzCR5LAV3x6GNxLDy-ILbKyYlJn_HlhvZc0dVmQAorxbiTpi3hPIJ5TiddB0COKw6dl2LUYvIUdhcTOye6TR07ONzwn8LeeX1lzd7fdkvLYrOWpB1IF8oBYXb-YehxDOPvZV1CDq3oRhafbaTiDqcVyf_5Kzs59IBxC1ttNkopFKplLWckFKZSrnRSl0mheszDLNOeNpXjKhuiZqnG3AxnjSITIo76kd7TSpufVv3y0_XBfkE4KovXYq6CEK0EnUYOb-4nxSc8KL5Mq3WcwYZTaxb7Ue1dxj8iNHR-1eY2I3wy7hBv7z0w_vPx5_eg_y5NY8BXFcR5pBnnhs53EFeQpuoWjSl_DRn0mDPK18z0AcP6wkRXdL-bBSnj77GMxEdgmYJCu5xnrC5DOyPUf-3yX9QdOSOOP1mqdvxZAeLIJIQdaXRf4_7iL7bneR_cPpqu0yt7gahd3y7Ru5Pb7DhkZDK2EYjI_wi6YWw3WOYmvJYzwUg1oJ1fwVl7mlzsQx1dCgVmPdftdWsi1lqXZU8YJleVnkItsNFSnRseLQNm3JuCqyQuZtrrNGpjrnxaHZmUowkTLOS8EymWb7nNKOZYXiuW502qWQMpqUGfdxa_bW9Tvj_UJVcSgOcjeqhka_XQtCzPQnbkEQIt4SrtoGQrP0HlI2Gh_8DSWYMFL1y7tfj7_nKU5x6kxnMxKqEM_gbnFj9a8nzvZ0D6Le2P0VAAD__7wF9es">