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

    <tr>
        <th>Summary</th>
        <td>
            [PowerPC] Crash during Running pass 'Prepare loop for ppc preferred instruction forms'
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          pkubaj
      </td>
    </tr>
</table>

<pre>
    FreeBSD 13.2-BETA2, LLVM 15, 16 and 17 snapshots, powerpc (only 32-bit)

Reduced test:
```
class c;
class A {
  void d(c &) const;
};
class e {
public:
 int f();
  unsigned char *i();
};
class c : public e {};
void A::d(c &j) const {
  int a = j.f(), g = 1;
  unsigned char *b = j.i();
  for (;;) {
    for (int h = 0; h < a; ++h)
      b[++g] = 5;
    b[g] = 0;
  }
}
```

Compile with (builds with -O0):
`/usr/local/llvm15/bin/clang-15 -cc1 -triple powerpc-portbld-freebsd13.2 -emit-obj -O1 ThresholdShader-f6b32e.cpp`

Output:
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /usr/local/llvm15/bin/clang-15 -cc1 -triple powerpc-portbld-freebsd13.2 -emit-obj -O1 ThresholdShader-f6b32e.cpp
1.      <eof> parser at end of file
2. Code generation
3.      Running pass 'Function Pass Manager' on module 'ThresholdShader-f6b32e.cpp'.
4.      Running pass 'Prepare loop for ppc preferred instruction forms' on function '@_ZNK1A1dER1c'
#0 0x000000081757de0c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/local/llvm15/bin/../lib/libLLVM-15.so+0x341fe0c)
#1 0x000000081757e54c (/usr/local/llvm15/bin/../lib/libLLVM-15.so+0x342054c)
#2 0x000000081757b574 llvm::sys::RunSignalHandlers() (/usr/local/llvm15/bin/../lib/libLLVM-15.so+0x341d574)
#3 0x000000081757e9e0 (/usr/local/llvm15/bin/../lib/libLLVM-15.so+0x34209e0)
#4 0x00000008100f4410 handle_signal /usr/src/lib/libthr/thread/thr_sig.c:303:3
Segmentation fault (core dumped)
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEVk9v27gT_TT0ZSCBIiXLPvhgOzF-wK_dBkmxh70UFDmSmMqiwD9N--0XpFTH9bY9LAKsYVDUcMj3hpx5lHBOdyPijlQHUt2tRPC9sbvpc2jE86ox6tvuZBEPT3dQ8Jxlh_uPe0bYEd69-_M9FFXsFmsQo4KiBjeKyfXGu2iezAvaSQJhGzMO34CzrNGesC2hd4Tu5_YRVZCowKPzhC9GsqbLP73KQTgHkvDD9fseSL0YAL4YrUARtolwa8K2IM0YV1w8SH13Mx1fp0-hGbS8oIMePbSEbSJVfoEIY9opBbIXFgjb6xuXf2JIIHwP8_IL4JVP4ryPsHx_of584X4dXmQkgPA7eM6_M2NH6JKp-B3JZpl1SxagNdFhEy38EFGv8C6jEbhPS1DCD6l7BBG7hB0IO_SX44T0a2IapZGOVHdpYnWFOTtchujVUNyZyzb-LAvm9mjOkx4QXrTvI8Em6EG5-TX7QFOIV1nETsFZwk6DkWKIz-HLOSbtqdEjYSc5iLHLigoyKQvIvNXTgN8TN5uM9c2gstYiNk7F_IcMz9pnpnmG7EMBH3uLrjeDeuqFQpu164YzzOU03dD-EPwUfpngD-_u90_34EJz1vGgm9CBxQgP3kDv_eTiVHYi7NRp34cml-a8hLM8ssmaZ5SesJN2LqAj7JTKUo9yCArB9wjSCtdDI-Rnb4XEVKUWJ2skOocKnAl2NseZwjkjtfCowIYRnLR68vlM-ckL-RlUOE-XoGg-58CDNZ0VZxC2C2ccfeQO_-FJJHLFQo7wI5qW8HuYhHVoQXjAUYFpodUDzs4sh6NRCB2OaIXXZpztfFnkMYyjHjuYYpETVp_CKKMXPETDezGKDi1hNZgRzkaFAaPXbyiyetnW8hcIDxYnYREGY6ZUm9Mk49G1aC3GM3behplDa-zZLeDtd2KE1aSkn_764__FvlD3j4WMljkXGadAv9L5tynqqlZIJaTcSuLkvrm582D16NPJf5zTZ_PqZMXLJ-O8RXFOCnyMopVkJQrP7w8_z6NNN3Mbb5asqHJnCDvQr7wsWqTy9d5gvLjhi1Up3wCH0ar8AYfd4DRVXf5sXx7D-KS7UQz_E6Ma0LpZbN8idFXV5TUlfhv6FumbhL5Feo1TXuNQ2pZlQaFP4X1yKdbXknZWXi_u-2j0vUWh5k6ckccLllMe20VCsIvyIOasFWHwMRBpLCZdQfXK50e5XKkdV1u-FSvcFeu65qzabPmq36mtaDdY87Jga1q0qpJclaoQslmvKyU2K71jlHHKWFUUVcF5XknFKC22quDbRrSMlBTPQg953L7c2G6VxHS3ptstXQ2iwcGlTyXGRnyBNEgYi19OdpdkuAmdIyUdtPPudRWv_ZC-sR6ioj0c4w14TGKsgo2F_gYFvwp22P37yyKF-HcAAAD__9P868g">