[PATCH] D58197: [x86] vectorize more cast ops in lowering to avoid register file transfers

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 14 04:17:59 PST 2019


RKSimon added inline comments.


================
Comment at: llvm/test/CodeGen/X86/known-signbits-vector.ll:79
 ; X64-NEXT:    shrq $32, %rax
 ; X64-NEXT:    vcvtsi2ssl %eax, %xmm1, %xmm0
 ; X64-NEXT:    retq
----------------
spatel wrote:
> RKSimon wrote:
> > Any idea why this still fails?
> This is almost the same example as in:
> https://bugs.llvm.org/show_bug.cgi?id=39975
> 
> On x86-64 only (because the 64-bit shift isn't legal on i686), we scalarize the shift. So that means we have the shift sitting between the extract and cast, so no match.
Hmm - is it worth us investigating a trunc(lshr(extract(v2i64 x, i), 32)) -> trunc(extract(v2i64 x, i+1)) combine? (and variants)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58197/new/

https://reviews.llvm.org/D58197





More information about the llvm-commits mailing list