[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