[all-commits] [llvm/llvm-project] 26390f: [VectorCombine] foldShuffleOfShuffles - fold shuff...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Sun Jun 22 05:31:07 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 26390f22b8aa90c422b9e39a8295a7a0a6ef33ba
https://github.com/llvm/llvm-project/commit/26390f22b8aa90c422b9e39a8295a7a0a6ef33ba
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2025-06-22 (Sun, 22 Jun 2025)
Changed paths:
M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
M llvm/test/Transforms/VectorCombine/AArch64/shuffletoidentity.ll
M llvm/test/Transforms/VectorCombine/X86/extract-insert-poison.ll
M llvm/test/Transforms/VectorCombine/X86/load-inseltpoison.ll
Log Message:
-----------
[VectorCombine] foldShuffleOfShuffles - fold shuffle(shuffle(x,y),poison) length changing masks (#144690)
The shuffle merging code assumes that the shuffle sources are all the
same type, which fails if we've changed length and don't have 2 inner
shuffles. We already handle length-changing shuffles if we do have 2
inner shuffles.
This patch creates a fake "all poison" shuffle mask and reuses the other
shuffle's sources, which can be safely used with the existing merge
code.
The alternative was a considerable refactor of the merge code to account
for different vector widths......
Fixes #144656
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list