<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/149250>149250</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[VectorCombine] Implement shrinkSplatShuffle from InstCombine
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Adar-Dagan
</td>
</tr>
</table>
<pre>
Implement in VectorCombine an equivalate to shrinkSplatShuffle from InstCombineCasts.cpp that is cost model aware.
`castop(shuffle(X, undef/poison, splatMask)) -> shuffle(castop(X), undef/poison, splatMask)`
This is searching for the opposite transformation from VectorCombine::foldShuffleOfCastops, which pushes casting operations to happen later.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMkkFvpDgQhX-NuZQaGQNNc-DQ29mWcljtIaNRrgUUbU-M7XGZRPPvRyatRDnNnJAo1XuvPj9kNjdHNIj2H9E-FLgl7eNwnjEeHvCGrhj9_Gt4XIOllVwC4-A7TcnHi19H4wjQAf3czCtaTATJA-to3MtTsJie9LYslmCJfoVHx-m-dEFOXE4hQNKYwDBMnhOsfiYL-IaRSiHP4ign5OSDUCd-VxLq9CzUBTY30yLUNXjD3uU_nP3-Q34Rqheqh4Oo_4XPrQ-h533-R4WjzAHk-Zs2nPMxYZy0cTdYfISkCXwInk0-OaLjxccVk_Hu_dYviER9FvV58Xa-8_h_uexxONu-aTNpCBtrYsgxs4kPFHc5zkQ1hkAOMuBYQjEP9dzXPRY0VF2rOtW3TVfooTnNaq6Oqm9IopLN2FRIp4aaqh5bwrowg5KqlV3VybbqZVdWrSQ6dl3Xn2TdnUg0klY0trT2dS19vBWGeaOhanrVysLiSJb3qijl6A32qVAqNycOeekwbjcWjbQmv_CHTDLJ7h37CqZ9gM9m_UVvii3aQacUODNVV6GuN5P0NpaTX4W6Zr_75xCi_0FTEuq6p2ShrvczXgf1OwAA__9D2_4G">