[all-commits] [llvm/llvm-project] 363d27: [x86] fold vperm2x128 to concat of 128-bit high ha...
RotateRight via All-commits
all-commits at lists.llvm.org
Wed Jan 22 12:38:54 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 363d27c871f44c45bb70a8adfb0ad93a0bf2e04d
https://github.com/llvm/llvm-project/commit/363d27c871f44c45bb70a8adfb0ad93a0bf2e04d
Author: Sanjay Patel <spatel at rotateright.com>
Date: 2020-01-22 (Wed, 22 Jan 2020)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/x86-interleaved-access.ll
Log Message:
-----------
[x86] fold vperm2x128 to concat of 128-bit high half vectors
vperm (ins ?, X, C), (ins ?, Y, C), 0x31 --> concat X, Y
This is another shuffle problem seen with PR42024:
https://bugs.llvm.org/show_bug.cgi?id=42024
We have this small crack in legalization/lowering/combining/demanded
that allows forming a vperm2f128 of high halves with AVX1 when we
could do better by peeking through the insert_subvector nodes.
AFAICT, it requires IR as shown in the diffs - much larger than legal
vectors - to avoid all of the usual folds.
Another option would prevent forming the 256-bit vperm in lowering.
Differential Revision: https://reviews.llvm.org/D73197
More information about the All-commits
mailing list