This is an archive of the discontinued LLVM Phabricator instance.

GlobalISel: Implement lower for G_SHUFFLE_VECTOR
ClosedPublic

Authored by arsenm on Aug 12 2019, 2:55 PM.

Diff Detail

Event Timeline

arsenm created this revision.Aug 12 2019, 2:55 PM

LGTM - conditional to the parent patch.

lib/CodeGen/GlobalISel/LegalizerHelper.cpp
3774

Would it be possible to buildInstr in a way that it can be CSE'd (collect the regs in a SmallVector and build in the end)?
While I think the chances of CSEing a G_BUILD_VECTOR is quite low, it probably doesn't hurt to enable it.

This revision is now accepted and ready to land.Aug 12 2019, 4:02 PM
arsenm marked an inline comment as done.Aug 12 2019, 4:18 PM
arsenm added inline comments.
lib/CodeGen/GlobalISel/LegalizerHelper.cpp
3774

It's possible, but I find the intermediate vectors for these sorts of things kind of annoying to use and it seemed more straightforward to add operands directly

lib/CodeGen/GlobalISel/LegalizerHelper.cpp
3774

Even if it's annoying, I'd prefer we try to build instructions in a way that's CSEable and in parallel maybe look at ways to make this less annoying.
Personally I like the intermediate vector + buildVector at once vs buildInstrNoInsert + insertInstr (maybe because I'm used to it).

arsenm updated this revision to Diff 214740.Aug 12 2019, 4:35 PM

Use buildBiuildVector

arsenm closed this revision.Aug 13 2019, 9:08 AM

r368709