[all-commits] [llvm/llvm-project] e76032: [X86] LowerRotate - improve vXi8 rotate-by-scalar ...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Wed Nov 17 11:00:28 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: e76032c17301bf929b16a56f8d1dbb366c3c49d8
https://github.com/llvm/llvm-project/commit/e76032c17301bf929b16a56f8d1dbb366c3c49d8
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-11-17 (Wed, 17 Nov 2021)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/min-legal-vector-width.ll
M llvm/test/CodeGen/X86/vector-fshl-rot-128.ll
M llvm/test/CodeGen/X86/vector-fshl-rot-256.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-128.ll
M llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
M llvm/test/CodeGen/X86/vector-rotate-128.ll
M llvm/test/CodeGen/X86/vector-rotate-256.ll
Log Message:
-----------
[X86] LowerRotate - improve vXi8 rotate-by-scalar lowering with direct use of (extended) shift-by-scalar helpers.
If we're rotating vXi8 by a splatted amount, then unpack to vXi16, perform a SHL by the (extended) scalar, and then pack the results.
This is a vector equivalent to the "rotl(x,y) -> (((aext(x) << bw) | zext(x)) << (y & (bw-1))) >> bw" style expansion we do for scalars in LowerFunnelShift.
I think we can usefully use this for other vector types and vector funnel-shifts in the future, depending how we expand beyond D113192 for matching rotations/funnel-shifts for more type/ops.
Commit: 3020608b619583ebafed618f6113ccc153a06fe1
https://github.com/llvm/llvm-project/commit/3020608b619583ebafed618f6113ccc153a06fe1
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2021-11-17 (Wed, 17 Nov 2021)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUCombinerHelper.cpp
Log Message:
-----------
Fix MSVC signed/unsigned mismatch warning. NFC.
Compare: https://github.com/llvm/llvm-project/compare/69f35f896912...3020608b6195
More information about the All-commits
mailing list