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

    <tr>
        <th>Summary</th>
        <td>
            [DirectX] Pow optomized to Powi in frotend causes the backend to have an intrinsic it can't lower
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:DirectX
      </td>
    </tr>

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

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

<pre>
    The DirectX backend knows how to lower `Intrinsic::pow`. It does not know how to lower `Intrinsic::powi`

This optimization replaces `Intrinsic::pow` with `Intrinsic::powi`.

https://github.com/llvm/llvm-project/blob/cd56666d7b6fa0b3214c226b2ae8a473537a009e/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp#L2397-L2401

We need a change in the backend to handle `Intrinsic::powi` so we can legalize it to the right thing.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUkkFr3DAQhX-NfBli5JEtxwcftg0LgRwCTWmvkj1rT6OVjKSNyf764s2mLZRAexqQeE96bz6TEk-eqBfNJ4F4MPEcvBOIorkrzCnPIfbXw8KG8bV_mgnuONKQv4M1wzP5EZ59WBPMYYUcwIWVIggt732O7BMPQu2E2i1hFVqWcJ9hDJTAh3wR_oOOhZZC7oTcPc2cICyZj3w2mYOHSIszA6UPX4SV8_yxb_lmPOe8pO0C9wL3E-f5ZMshHAXunXt5HzdLDD9oyAL31gUrcD-MjdZaj63VByOtwqoeELVFQ7emblWjWiNlR3_48KZ7isanQ4jHJHD_NbPb5hc-Lo4Prw9sPxvnUjksi0D1gKprbx6wltXbZ78ReKIRDAyz8RMBe8gz_dpHDjAbPzr6ODakACvBYDw4mozjMwHnTbkZRZ7mDHlmP5XF2KuxU50pqK_aulayrTpZzH2Dh44OtcSqQjVip-pWk6zRSluhVlhwjxIbWVeyamutZNlUt3JUVadHe4tVrUUt6WjYlVs1ZYhTwSmdqK9Ug1gVzlhy6UrmNZtQuyt9V0Zjf1mMPU1J1NJxyum3XebsLmi_a5o7eAzrRlA48pkuVT2GlbcGDzHkrb3BnBKlvwt9ITAe-L3Ora7BeIFtfmO3OEXX_zdHl8Tb8q-hX3r8GQAA___4WCai">