[all-commits] [llvm/llvm-project] 19d028: [X86][AVX] Fold extract_subvector(VSRLI/VSHLI(x, 32...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Wed Jan 20 06:35:54 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 19d02842ee56089b9208875ce4582e113e08fb6d
      https://github.com/llvm/llvm-project/commit/19d02842ee56089b9208875ce4582e113e08fb6d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-01-20 (Wed, 20 Jan 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/combine-sra.ll
    M llvm/test/CodeGen/X86/pmul.ll
    M llvm/test/CodeGen/X86/vec-strict-inttofp-256.ll

  Log Message:
  -----------
  [X86][AVX] Fold extract_subvector(VSRLI/VSHLI(x,32)) -> VSRLI/VSHLI(extract_subvector(x),32)

As discussed on D56387, if we're shifting to extract the upper/lower half of a vXi64 vector then we're actually better off performing this at the subvector level as its very likely to fold into something.

combineConcatVectorOps can perform this in reverse if necessary.




More information about the All-commits mailing list