[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