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

    <tr>
        <th>Summary</th>
        <td>
            [SPIR-V] OpPhi not handled as a phi node by the MIR verifier
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:SPIR-V
      </td>
    </tr>

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

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

<pre>
    When expensive checks are enabled, MIR is checked after each pass.
SPIR-V has an OpPhi instruction, similar to LLVM's phi instruction.
But because the MIR verifier doesn't know about it, it expects all operands to be defined by a dominating block (unlike the phi instruction).

Might want to add a new bit in the td files (akin to isBarrier bit) so the verifier can know "this instruction is allowed to have partially undefined operands)?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxckstu4zgQRb-G2hRiSLTkx0KLZAIDwSSYIAOk10WybFWbJgUWZXf-vkHZ6Uc2EiCRp-5BXRThQyDqVfeguscKpzzE1P9LFKYslYnuo_82UAD6MVIQPhPYgexRABMBBTSenNL_wMvTG7Bcf5ID3GdKQGgHGFFkoepHVd____r0dvcOAwpggP_G14GBg-Q02cwxFI7wiT0myBGen99flF4LjH8fu8EepgyGLE5CkAeaE5wp8Z4pgYskQel1hmOIF0ATpwycywTOs4zNAug9xJESBidloiFwtOdADswHILh44oCZwwGMj_YISm-m4Pl4nTh-jb-9Rbs-X_gwZLhgyIWNzgFCoAsYzsBhJmQHe_YkBYzH8jECywOmVCRMCbwFifPZX24Ww9VKaZ0Hlj8zlB2g9_FCrrAGPBOMmDKj9x8whU-9T2ult2q5q1y_dNvlFivqm7VedXWtN-tq6Nu2a-1Gr6yhpnNNvdmQxq7Bbl3b1WpvKu51rdt626yaTrdtu6jt3iKudL1pCHWzUm1NJ2S_8P58WsR0qFhkor6w2rbyaMjL3D6tDdojBaeWt6IorUsnU1_u3pnpIKqtPUuW37TM2c_tvV3pHm-9CjHDgMH50kYBnLcVoqOy2q99qabk-yHnUdTyXumd0rsD52EyCxtPSu_KuNvrbkzxO9ms9G42EaV3N5lzr38GAAD__z46GSs">