<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/121702>121702</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[InstCombine] Commuted pattern is not handled
</td>
</tr>
<tr>
<th>Labels</th>
<td>
llvm:instcombine,
missed-optimization
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
dtcxzyw
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dtcxzyw
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/4xa1fG3a9
```
define i1 @icmp_equality_test_commute_select1(i64 %X, i64 %Y, i64 %Z) {
entry:
%XeqZ = icmp eq i64 %X, %Z
%YeqZ = icmp eq i64 %Y, %Z
%XeqY = icmp eq i64 %X, %Y
%and = select i1 %YeqZ, i1 false, i1 %XeqY
%equal = select i1 %XeqZ, i1 %YeqZ, i1 %and
ret i1 %equal
}
define i1 @icmp_equality_test_commute_select2(i64 %X, i64 %Y, i64 %Z) {
entry:
%XeqZ = icmp eq i64 %X, %Z
%YeqZ = icmp ne i64 %Y, %Z
%XeqY = icmp eq i64 %X, %Y
%and = select i1 %YeqZ, i1 %XeqY, i1 false
%equal = select i1 %XeqZ, i1 %YeqZ, i1 %and
ret i1 %equal
}
```
```
define i1 @icmp_equality_test_commute_select1(i64 %X, i64 %Y, i64 %Z) {
%XeqY = icmp eq i64 %X, %Y
ret i1 %XeqY
}
define i1 @icmp_equality_test_commute_select2(i64 %X, i64 %Y, i64 %Z) {
%XeqZ = icmp eq i64 %X, %Z
%YeqZ = icmp ne i64 %Y, %Z
%XeqY = icmp eq i64 %X, %Y
%and = select i1 %YeqZ, i1 %XeqY, i1 false
%equal = select i1 %XeqZ, i1 %YeqZ, i1 %and
ret i1 %equal
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMVcFuozAQ_ZrhYjUyAwQ4cKCJWO0fNL1ENp4kXhmcYNNt-vUrHKJmu9qVemi7EoIRmvdm5vHwCOf0vieqILsHROXb55fzT0CEbB2J0R_sUM0vI2nVuTp4f3SQ1IANYLO3SlrjF3bYAzYvgE36LOLdt0SUwGtY8vnitaKd7onpmEHKddsdt3QahdH-vPXk_La1XTd62joy1PoYsNDLlAFmD4ArNsebm_gRsGSQ3wOvqffDeeqJ1wFBp0cGyZpNZRid2C1TQPKaBbq_JG7eJj7QafMvxs01UfQq5F2mCNNeyoTGY7YTxtEcz7xXaJDjT_DDK_h3qku1gB7omh1IJuXz9XR_r-z4BbJP3X207Fepbz_CB8p-Y_vP-gXeoddr27P9PsUs7Ast8v86JFJVosqkFBFVcZ4seZkWZRodKk5YJGlLss1RCZELJQkRscgVFq2Uka6QY8ZjnsXLJM3SRamWbZFJmfJdgQUipJw6oc3CmKduOqAj7dxIVYxxzjEyQpJx87E_pUBS69751nZS9zRtAFwBYqedI3Vnj153-kV4bft5OwzVBLuT495Byo123r3W8tqbsFS-986vZs5szVYXCyl2FN7T0DPtWG89O4heGVLROJi3K0b7wygXre0Am9Do5XF3HOwPaj1gEwZzgM0821OFvwIAAP__S7nv-g">