This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Form G_DUPLANE32 for <2 x s32> shufflevectors in lowering.
ClosedPublic

Authored by aemerson on Mar 5 2021, 10:19 AM.

Details

Summary

For <2 x s32>, we can use G_DUPLANE32, but with a <4 x s32> source. To make it work, we can just widen the original source with a concat_vectors.

Doing this allows <2 x float> indexed fmul instruction selection patterns to fire, which gives a nice 0.3% code size saving on Bullet with -Os.

Diff Detail

Event Timeline

aemerson created this revision.Mar 5 2021, 10:19 AM
aemerson requested review of this revision.Mar 5 2021, 10:19 AM
paquette accepted this revision.Mar 5 2021, 1:17 PM

LGTM

This revision is now accepted and ready to land.Mar 5 2021, 1:17 PM