<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/86670>86670</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[X86] X86FixupVectorConstants - load vector double data from i32/f32 constant
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:X86
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
RKSimon
</td>
</tr>
</table>
<pre>
We can halve the size of loaded vector double constant data by converting it from i32/f32 values with (V)CVT(U)DQ2PD/(V)CVTPS2PD, assuming the value is exactly representable as i32/f32. (V)CVTSI2SD/(V)CVTSS2SD could be possible as well.
This might need to be be target specific / scheduler driven as some cpus can be slow at the conversion.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxcks1unDAQgJ_GXEZBMGZ34cAhzQqp6iUtaZqrsQdwazDymE3Sp68gqbbNBaSx55sff4rZDjNRLQ6fxOGcqDWOPtTfvrR28nPSefNa_yDQaoZRuQtBHAnY_ibwPTivDBm4kI4-gPFr5wi0nzmqOYJRUUH3ugUuFKKdB7AR-uAnsBIFNr1EuCi3EsOzjSMILB8FVnePDwLL7wKr81e8Pwtsrgf37R65A8W8Thty62eHgGWgF6Wje4VASyCmOaqtI8XXguk_VdrP2P6Pb1tsz6D96gx0BItntu-EZ3IuFdlZZLdv34fRMkx2GCPMRAai31I6gqjCQBF4IW17q0FgA6xHMqujACbYC80bkf1EoJeV9-12BOz8M6i4j_S2NLZ-ThNTS1PJSiVU56c8L45SYpGMNZ0Qe62qE_ZF1VdGSVnJokfV9So_ZDqxNWZYZBKPeYFlUaRloctTofO8y0hJiaLIaFLWpc5dptSHIbHMK9Xl8XjKEqc6crybgdgp_YtmI-TtU3kUiJssod7ybrp1YFFkznLkKyna6HattvuHMzyVx8a-rMvjbsvduyUMN7tGHyTa3fmgyl-xkjW4eoxxYSFv9-drBhvHtUu1nwQ2Wwfvv5sl-J-ko8BmH4wFNvtsfwIAAP__Hrr0_A">