This is an archive of the discontinued LLVM Phabricator instance.

[GISel][AArch64] Close some gaps
AbandonedPublic

Authored by tschuett on Jul 23 2023, 9:59 AM.

Details

Reviewers
None
Summary

I had to update two failing existing tests.

Diff Detail

Event Timeline

tschuett created this revision.Jul 23 2023, 9:59 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 23 2023, 9:59 AM
tschuett requested review of this revision.Jul 23 2023, 9:59 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 23 2023, 9:59 AM
tschuett abandoned this revision.Jul 23 2023, 10:11 AM

Chuong in our team is currently looking into zext/sext of vector instructions. I think he said it needed something to handle v4i16->v4i64 type extends that need to be split into two step, but it was working for a lot of the other cases.

Sorry for the churn! I found:
remark: unable to legalize instruction: %942:_(<4 x s64>) = G_ZEXT %941:_(<4 x s32>) [-Rpass-missed=gisel-legalize]
remark: unable to legalize instruction: %190:_(<8 x s32>) = G_ZEXT %188:_(<8 x s16>) [-Rpass-missed=gisel-legalize]
I did the following on a Graviton 3:
https://gist.github.com/tschuett/d448c87ee985af99f90568fddf9ffd82

Sounds good. There is a lot of extra complexity in the vector lowering - a lot of cases that can go wrong or be missed. I am hoping that we can clear up most of them and that will put us in a better place to start optimizing what remains.

A lot of the test updates look very similar to what he had I think, which is a good sign. I'm hoping that something like https://reviews.llvm.org/D155871 can help to get USHLL2 working.