[all-commits] [llvm/llvm-project] ef4f93: [X86] Remove isel patterns for (X86VBroadcast (i16...

topperc via All-commits all-commits at lists.llvm.org
Tue Mar 10 00:19:26 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: ef4f939d389e2abe6fdce45bd49cc71237429cb6
      https://github.com/llvm/llvm-project/commit/ef4f939d389e2abe6fdce45bd49cc71237429cb6
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

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

  Log Message:
  -----------
  [X86] Remove isel patterns for (X86VBroadcast (i16 (trunc (i32 (load))))). Replace with a DAG combine to form VBROADCAST_LOAD.

isTypeDesirableForOp prevents loads from being shrunk to i16 by DAG
combine. Because of this we can't just match the broadcast and a
scalar load. So look for broadcast+truncate+load and form a
vbroadcast_load during DAG combine. This replaces what was
previously done as an isel pattern and I think fixes it so we
won't change the size of a volatile load. But my main motivation
is just to clean up our isel patterns.




More information about the All-commits mailing list