[all-commits] [llvm/llvm-project] 88c5b5: [AggressiveInstCombine] Generalize foldGuardedRota...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Mon Dec 21 07:23:07 PST 2020


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 88c5b5006064d62cae4592e66f5bc8b7a7326ef2
      https://github.com/llvm/llvm-project/commit/88c5b5006064d62cae4592e66f5bc8b7a7326ef2
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-12-21 (Mon, 21 Dec 2020)

  Changed paths:
    M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
    M llvm/test/Transforms/AggressiveInstCombine/funnel.ll
    M llvm/test/Transforms/AggressiveInstCombine/rotate.ll

  Log Message:
  -----------
  [AggressiveInstCombine] Generalize foldGuardedRotateToFunnelShift to generic funnel shifts (REAPPLIED)

The fold currently only handles rotation patterns, but with the maturation of backend funnel shift handling we can now realistically handle all funnel shift patterns.

This should allow us to begin resolving PR46896 et al.

Ensure we block poison in a funnel shift value - similar to rG0fe91ad463fea9d08cbcd640a62aa9ca2d8d05e0

Reapplied with fix for PR48068 - we weren't checking that the shift values could be hoisted from their basicblocks.

Differential Revision: https://reviews.llvm.org/D90625




More information about the All-commits mailing list