This is an archive of the discontinued LLVM Phabricator instance.

[GlobalISel] Add widenScalar support for G_CONCAT_VECTORS and use for legalization v2s32 G_ICMPs
AbandonedPublic

Authored by aemerson on Sep 22 2020, 4:28 PM.

Details

Summary

Also adds FewerElements support for G_TRUNC. The switch case was present but the type index was always being rejected by the helper.

Diff Detail

Event Timeline

aemerson created this revision.Sep 22 2020, 4:28 PM
aemerson requested review of this revision.Sep 22 2020, 4:28 PM
arsenm added inline comments.Sep 23 2020, 5:53 AM
llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
165–166

I'm not sure why all of these lines changed?

llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
3941–3947

I think this deserves to be split into a separate patch

3945

This doesn't do anything, I assume this should have a NewNarrowTy =

llvm/test/CodeGen/AArch64/GlobalISel/legalize-vector-icmp.mir
1959

Can you add a case with an <8 x s32> icmp result type

aemerson abandoned this revision.Sep 23 2020, 4:32 PM

I've decided to use custom legalization for this particular case in D88191, abandoning this change but I might revive it in another form later.