This is an archive of the discontinued LLVM Phabricator instance.

[SVE] Fix VLS selection error from performPostLD1Combine(...)
AbandonedPublic

Authored by cameron.mcinally on Jan 24 2022, 8:06 AM.

Details

Summary

This is a patch for a VLS selection error from performPostLD1Combine(...). That peep is currently specific to NEON, so bail out if fixed length SVE vectors are found.

Notice that performPostLD1Combine(...) is static, so I don't have access to the usual useSVEForFixedLengthVectorVT(...) and friends that would usually solve a problem like this. Is there a better way to handle this situation?

Also notice that the test case was reduced by Bugpoint from a real code. I tried to target the performPostLD1Combine(...) peep directly, but was not able to match the same code paths that trigger the optimization. Maybe someone else sees what I missed.

Diff Detail

Event Timeline

cameron.mcinally requested review of this revision.Jan 24 2022, 8:06 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 24 2022, 8:06 AM

Further reduced test case, but still not great.

Notice that performPostLD1Combine(...) is static, so I don't have access to the usual useSVEForFixedLengthVectorVT(...) and friends that would usually solve a problem like this. Is there a better way to handle this situation?

You can make performPostLD1Combine a member of AArch64TargetLowering if that would help.

I believe this is a duplicate of D117674, which had not been reviewed yet so I've just pushed it along.

cameron.mcinally abandoned this revision.Jan 25 2022, 7:07 AM

I believe this is a duplicate of D117674, which had not been reviewed yet so I've just pushed it along.

I believe it is, with a better test case. I'll abandon this patch. Thanks, Paul and Eli.