Support vector type G_MERGE_VALUES selection. For now G_MERGE_VALUES marked as legal for any type, so nothing to do in legalizer.
Split from https://reviews.llvm.org/D33665
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/X86/X86InstructionSelector.cpp | ||
---|---|---|
902 ↗ | (On Diff #101619) | why not use G_INSERT for the first element as well? |
lib/Target/X86/X86InstructionSelector.cpp | ||
---|---|---|
902 ↗ | (On Diff #101619) | For the first element i need to create G_INSERT undef, val %0(<8 x s32>) = IMPLICIT_DEF %1(<4 x s32>) = COPY %xmm1 %2(<8 x s32>) = G_INSERT %0(<8 x s32>), %1(<4 x s32>), 0 That will be lowered to InsertSubreg. IMPLICIT_DEF is dead code and doesn't get RegClass constrain so MachineVerifier fail. In general case we have dead code elimination so this problem doesn't exist. |