[all-commits] [llvm/llvm-project] 5be37c: [x86][CGP] try to hoist funnel shift above select-...

RotateRight via All-commits all-commits at lists.llvm.org
Sat May 16 07:46:11 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5be37cb124f71e267f1cf7bc3929486fde2acd0a
      https://github.com/llvm/llvm-project/commit/5be37cb124f71e267f1cf7bc3929486fde2acd0a
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2020-05-16 (Sat, 16 May 2020)

  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/test/CodeGen/X86/vector-fshl-256.ll
    M llvm/test/Transforms/CodeGenPrepare/X86/vec-shift.ll

  Log Message:
  -----------
  [x86][CGP] try to hoist funnel shift above select-of-splats

This is basically the same patch as D63233, but converted to
funnel shifts rather than regular shifts. I did not see a
way to effectively share code for these 2 cases though.

This follows D79718 and D79827 to re-fix PR37426 because
that gets canonicalized to funnel shift intrinsics in IR.

I did draft an alternative patch as an enhancement to
"shouldSinkOperands()", but that was awkward because
we have to key the transform from the select, but then
look at both its users and its operands.




More information about the All-commits mailing list