<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">