[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