[PATCH] D110926: [GlobalISel] Support vectors in LegalizerHelper::narrowScalarMul
Jay Foad via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 20 08:43:26 PDT 2021
foad added a comment.
My preferred way of implementing this would be to extend G_MERGE_VALUES so that it works elementwise on vectors:
%2:_(<3 x s64>) = G_MERGE_VALUES %0:_(<3 x s32>), %1:_(<3 x s32>) // %0 is three low halves, %1 is three high halves
But that requires G_UNMERGE_VALUES to be able to do the converse:
%1:_(<3 x s32>), %2:_(<3 x s32>) = G_UNMERGE_VALUES %0:_(<3 x s64>) // %1 is three low halves, %2 is three high halves
But this was already allowed and apparently meant something different (a G_BITCAST plus the converse of G_CONCAT_VECTORS?) which is how I got sidetracked into D111132 <https://reviews.llvm.org/D111132>.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D110926/new/
https://reviews.llvm.org/D110926
More information about the llvm-commits
mailing list