<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/145335>145335</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[CostModel] TargetTransformInfoImplCRTPBase.getInstructionCost - move shuffle analysis into improveShuffleKindFromMask / target getShuffleCost
</td>
</tr>
<tr>
<th>Labels</th>
<td>
llvm:analysis
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
RKSimon
</td>
</tr>
</table>
<pre>
As discussed on #144690 and #141634 - we're making too many assumptions about how length changing shuffles are legalized by the target. These need to be driven by the actual target implementations.
Additionally - like getInstructionCost - improveShuffleKindFromMask needs to be able to recognize a SK_PermuteSingleSrc class shuffle that has been miss-tagged as a SK_PermuteTwoSrc class.
CC @davemgreen @preames
https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h#L1527-L1547
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUU02L4zgQ_TXypUiQZTvpHHzIZAg0PQPDJPelbJVlbesjqOQ06V-_2J10s7C7sCeppFelV6-ekNmaQNSK5ptovhc45TGm9vfLyfoYii7qW7tn0Jb7iZk0xABCVWVdb3YSMOiPqNxUNazgjYTaJgKPrzYYyDGCx3ADZJ78JdsYGLCLU4YxvoGjYPII_YjBzHAep2FwxICJwJFBZ99JQ3eDPBJkTIbyGs4jMUEg0pAjdAQ62SuFBwz7PKG7o8H6iyNPIePy-FrIvZD7vdZ2jtG5G6zA2VcCQ_k5cE5TP98cImdYzekpXun0QezFBn1M0f9Efl0I8J0Bdo7mbaI-mmDfCRBOL3_8ouSnTCcbjKNT6qF3yPxoE_KIGUZk6IgCeMu8ymgMaUD-W4HzW_zMvndwOICopcYreZPmdFHLSyL0xPCBGHO-sKj2Qh2FOhqbx6lb99ELdXTu-lhWlxT_pD4Ldexc7IQ6erThC2ND7yZNXwf7gO7GloU6nheJzwkDDzH55zDEZ39x61Go6kfZqO3qR9nU20K3ld5VOyyoLbeN3DztNvKpGNuhHrb0VNb17kmWshq6HZWq2WBZbeS2b5rCtkqqRm4Wu0nZrHfUN021w6GTQ4m0FbUkj9atZ3LrmExhmSdqy7qpqqZw2JHjxdlKLfyrPX7yV7PdU7uo0E2GRS2d5cxfxbLNbvkYsxt-Rk1ONN_hX9o-_D7_-oZM6380ko9X-hz8gwPYkON_eUyo48PIhvIdMVcspuTa_z3hRZx5cnd9rq36KwAA__9ijlt_">