<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJztVE2P0zAQ_TXOxdoqcZqkPeSwUIEQFyT2wHUST1OvHDv1R7fk1zNJW9gtK-0CEuJA5MR-Mx5nnmf0Giu_1nfoA8tv-S6EwdOCiXc0Oisbq8PCuo7QSC9my0_j_cfijqUblt6evu_RoIOAkoPv-dY6HnbK8wFCQGd49Oi54A475cngORjJB2dlbMmRkUNGI8EErowPLrZBWbPgH0xAkNxuz78q0_OYYQPjlO8rHiZyzpbpFDBHXuyHobeH8djsv-9bMVE4r5hYM_GWcHHs-_TqpNnE8g3vsWfFm5QVG9o8orO_NJ2is9-Kfg0L-ZRF9jOL7N9i4eNE4Zzto-t_vLwKCdSz_MV9HgOeaBegn7ochv2zzfWAU38O1uP_3nu5as-33N-uXCLrXK7zNSQQw866uofjzT7CCCaJTtdXyqbCLjaL1vYEtD5cphuq-z22gaDyPqKnRZEvszLZ1as2y2DVZLjGapW1KxRrqAosId9WUFZloqFB7Wu6XLrb5M9_qWqRCpFmokyrZSXyxbaqsBFFWlRtVebpkloLe1B6MZ0zqXTi6vnIJnaenJoE1_9wgveqM4iXDIMKegZfViVh_jk2dgiqB821fUCnTEfyyw-UHGk6JT6Aw4usT2WbTBqPHKR06D3vrUROym9smFRfJjOhembzDa-01pY>53416</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[X86] Suboptimal lowering of vector compare pattern, complex address mode is not used
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
max-quazan
</td>
</tr>
</table>
<pre>
Test: https://godbolt.org/z/e14PzjK5T
Generated asm for this pattern uses 2 registers and produces 1 redundant instruction. Intead of
```
baz: # @baz
vpmovzxbq (%rsi), %xmm0 # xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero,mem[1],zero,zero,zero,zero,zero,zero,zero
vpmovzxbq (%rdi), %xmm1 # xmm1 = mem[0],zero,zero,zero,zero,zero,zero,zero,mem[1],zero,zero,zero,zero,zero,zero,zero
vpsubq %xmm1, %xmm0, %xmm0
vptest %xmm0, %xmm0
sete %al
retq
```
we propose
```
baz: # @baz
vpmovzxbq (%rsi), %xmm0 # xmm0 = mem[0],zero,zero,zero,zero,zero,zero,zero,mem[1],zero,zero,zero,zero,zero,zero,zero
vpsubq (%rdi), %xmm0, %xmm0
vptest %xmm0, %xmm0
sete %al
retq
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztVMuOmzAU_RqzsQYZAyFZsJg2alV1U6mz6NbgC_HI2MSPTMrX90KSdiYz0ky7qLooMtj3Zd-Dj05j5ff6Dnwg-S3dhTB6XBD-AUdvZWN1SK3r0Zrwhaz4Mt1_Lu8I2xJ2e_p-BANOBJBU-IF21tGwU56OIgRwhkYPnnLqoFceHZ4KI-norIwtBjIMyGikMIEq44OLbVDWpPSTCSAktd35qBU7j8VsxDT3-4aH8JySgs0FS-XFfxgHe5iOzf5n3prw0nlF-Ibw92iXx2FgVzstLpJv6QADKd8xUm4xeQJnf2s6VWd_VP0WFPIpiuw5iuzfQuHjDOHc7aPf_3h5VRKQs_TVPA8BTrBLoZ-GHIT9i-R6gJmfo_Xwn3uv39rLlPvbN5fIOpebfCOSoIKGGiF-W68QJP0aGzsGNQhNtX0Ap0yPqkIP0AaUqtYOo3BwUau5m9ml4UiFlA68p4OVQFHQjA2zmMkkOl1fKaUKu9ikWImG1ofLdIM8useD0FTeR_C4KPMiWyW7Ou9gnclOimq9gaIQLXRQcNHmObBys4ZEiwa0n5EgjETVnHHOMr5iVVHxPO2qChpesrJqq1XOCiQaDELpdD541uzE1UsPTew9BjXKr_8VFN6r3gBc9hcx7KyrB3G82UcxCZMsHddLuz8A2r7B3w">