[all-commits] [llvm/llvm-project] 3be653: [X86] canonicalizeShuffleWithBinOps - generalize t...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Tue Dec 12 02:59:59 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3be65325f9e37db2d6eeffe96f9709d710a9a49f
      https://github.com/llvm/llvm-project/commit/3be65325f9e37db2d6eeffe96f9709d710a9a49f
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-12-12 (Tue, 12 Dec 2023)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/widen_bitcnt.ll

  Log Message:
  -----------
  [X86] canonicalizeShuffleWithBinOps - generalize to handle some unary ops

Rename to canonicalizeShuffleWithOp and begin adding SHUFFLE(UNARYOP(X),UNARYOP(Y)) -> UNARYOP(SHUFFLE(X,Y)) fold support.

This is only kicking in after legalization, so targets that expand bit counts are still duplicating but it helps with a few initial cases.

I'm investigating adding support for extensions/conversions as well, but this is a first step.




More information about the All-commits mailing list