[all-commits] [llvm/llvm-project] bbf4af: [X86][SSE] Remove XFormVExtractWithShuffleIntoLoad...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Tue Nov 19 04:02:07 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: bbf4af3109d1958d69c3c1f2af78870207928f4b
      https://github.com/llvm/llvm-project/commit/bbf4af3109d1958d69c3c1f2af78870207928f4b
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2019-11-19 (Tue, 19 Nov 2019)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/2011-05-09-loaduse.ll
    M llvm/test/CodeGen/X86/extractelement-load.ll
    M llvm/test/CodeGen/X86/insertps-combine.ll
    M llvm/test/CodeGen/X86/vec_extract.ll

  Log Message:
  -----------
  [X86][SSE] Remove XFormVExtractWithShuffleIntoLoad to prevent legalization infinite loops (PR43971)

As detailed in PR43971/D70267, the use of XFormVExtractWithShuffleIntoLoad causes issues where we end up in infinite loops of extract(targetshuffle(vecload)) -> extract(shuffle(vecload)) -> extract(vecload) -> extract(targetshuffle(vecload)), there are just too many legalization checks at every stage that we can't guarantee that extract(shuffle(vecload)) -> scalarload can occur.

At the moment we see a number of minor regressions as we don't fold extract(shuffle(vecload)) -> scalarload before legal ops, these can be addressed in future patches and extension of X86ISelLowering's combineExtractWithShuffle.




More information about the All-commits mailing list