[all-commits] [llvm/llvm-project] 45ebe3: [X86][AVX] Pad small shuffle inputs in combineX86S...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Sun May 31 04:46:20 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 45ebe38ffc40bb7221fc587bfb4481cf7f53ebbc
      https://github.com/llvm/llvm-project/commit/45ebe38ffc40bb7221fc587bfb4481cf7f53ebbc
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-05-31 (Sun, 31 May 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86][AVX] Pad small shuffle inputs in combineX86ShufflesRecursively

As detailed on PR45974 and D79987, getFauxShuffleMask is creating nodes on the fly to create shuffles with inputs the same size as the result, causing problems for hasOneUse() checks in later simplification stages.

Currently only combineX86ShufflesRecursively benefits from these widened inputs so I've begun moving the functionality there, and out of getFauxShuffleMask. This allows us to remove the widening from VBROADCAST and *EXTEND* faux shuffle cases.

This just leaves the INSERT_SUBVECTOR case in getFauxShuffleMask still creating nodes, which will require more extensive refactoring.




More information about the All-commits mailing list