[all-commits] [llvm/llvm-project] 4e2114: [X86] combineVectorShiftImm - fold (shift (logic X...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Thu Mar 30 04:47:45 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4e21140465caad9bf666e02a2396b2acb961e313
      https://github.com/llvm/llvm-project/commit/4e21140465caad9bf666e02a2396b2acb961e313
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/combine-rotates.ll
    M llvm/test/CodeGen/X86/combine-sdiv.ll
    M llvm/test/CodeGen/X86/combine-shl.ll
    M llvm/test/CodeGen/X86/combine-srl.ll
    M llvm/test/CodeGen/X86/dpbusd_i4.ll
    M llvm/test/CodeGen/X86/funnel-shift-rot.ll
    M llvm/test/CodeGen/X86/selectcc-to-shiftand.ll
    M llvm/test/CodeGen/X86/shrink-const.ll
    M llvm/test/CodeGen/X86/vector-fshl-rot-128.ll
    M llvm/test/CodeGen/X86/vector-fshl-rot-sub128.ll
    M llvm/test/CodeGen/X86/vector-fshr-rot-128.ll
    M llvm/test/CodeGen/X86/vector-fshr-rot-sub128.ll
    M llvm/test/CodeGen/X86/vector-rotate-128.ll
    M llvm/test/CodeGen/X86/vector-shuffle-128-v16.ll
    M llvm/test/CodeGen/X86/vector_splat-const-shift-of-constmasked.ll

  Log Message:
  -----------
  [X86] combineVectorShiftImm - fold (shift (logic X, C2), C1) -> (logic (shift X, C1), (shift C2, C1))

Helps expose a number of cases that we could/should reassociate - if only the vector constants hadn't already been lowered :(

It also forms a number of additional VPTERNLOG nodes, bringing together logic ops that had been stuck on either side of a shift op


  Commit: b0c892296b830eece7edd213ddddfc396ffcc8a9
      https://github.com/llvm/llvm-project/commit/b0c892296b830eece7edd213ddddfc396ffcc8a9
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/pr45378.ll
    M llvm/test/CodeGen/X86/ptest.ll
    M llvm/test/CodeGen/X86/vector-reduce-or-cmp.ll

  Log Message:
  -----------
  [X86] LowerVectorAllZero - use MOVMSKPS for comparisons coming from vXi32/vXi64 vectors

Reduces size of all/anyof comparison mask and is more likely to further fold with source vectors.

MOVMSKPD is trickier to match as if we had the CMPEQQ instruction we'd be using the PTEST path


Compare: https://github.com/llvm/llvm-project/compare/83546221af43...b0c892296b83


More information about the All-commits mailing list