<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/86068>86068</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
missed fold, shuffle(shuffle(v1, m0), v2, m1) => shuffle(v1, v2, m2)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
missed-optimization
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zhengyang92
</td>
</tr>
</table>
<pre>
https://alive2.llvm.org/ce/z/4BPEz9
https://godbolt.org/z/qExEGvbfn (see the subpar codegen)
```
define <2 x float> @src(<2 x float> %0, <2 x float> %1) {
entry:
%3 = shufflevector <2 x float> %1, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
%4 = shufflevector <2 x float> %3, <2 x float> %0, <2 x i32> <i32 0, i32 3>
ret <2 x float> %4
}
define <2 x float> @tgt(<2 x float> %0, <2 x float> %1) {
entry:
%sv = shufflevector <2 x float> %0, <2 x float> %1, <2 x i32> <i32 3, i32 1>
ret <2 x float> %sv
}
```
@regehr @dtcxzyw @nikic @efriedma-quic @RKSimon @topperc
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVE1zmzAQ_TXLRWOPWIENBw6JbXropdP-AkALqAXkSILG_vUdYZI6H25y6AwDK7TvPemttIW1qhmIMojvId4HxehabbJzS0NzKoYmxaDU8pS1zh0tiDvAHDAvOjURrrtu6tfaNIB5RYD5GTCP7r8dzinwPfC7l6BGy1J3bgH43IfD4-HLVNYDA0wsEXMtMTuWx8KwSktqaABcuJb3hi_PPJRUq4EYiB2yR1Z3unAgDgwibk0FmLyZwJgD7t4CMA4BUwbb-wsxDc6c_MrnEfMJgoHYM9uOdd3RRJXT5gbPW_6jVlYPVzNK4JwvdkogmzE-WPLE4Uo3-pyuuLEvflOVP6mKK0FD7j2W6EURtvuP7HeN-8_22-lzPvxD4IYP4smH8GMf7PSuEa-OJUTcUEOt8VZIVz2eT799OKhfqvIB1UaR7IvVw3j58f3rD9XrYbZOH49kKnYtFMhMyFSkRUBZuA15mvIkjoM2i7cCaxljIcIoTVIpyhpL4iIuCx5v4iRQGXKMuMCQizAK4_UmKutUxolMSWIkuV9NX6ju-TIHytqRsmTDN0nQFSV1dm4OiL2yluRKH53q1blwyh9p9F3DZB69KsfGQsQ7ZZ39y-eU6yi7gFmtO-n9Xuro7_1zNM016rm_87hjE87Dy8kQe1-B17lLCgKmwWi6V12qUa4dy3Wle8DcL2f5rI5G_6TKAebzXi1gPm_3TwAAAP__s2FpEQ">