This is an archive of the discontinued LLVM Phabricator instance.

[CodeGen] Fix SimplifyDemandedBits for scalable vectors
ClosedPublic

Authored by david-arm on May 26 2020, 1:01 AM.

Details

Summary

For now I have changed SimplifyDemandedBits and it's various callers
to assume we know nothing for scalable vectors and to ignore the
demanded bits completely. I have also done something similar for
SimplifyDemandedVectorElts. These changes fix up lots of warnings
due to calls to EVT::getVectorNumElements() for types with scalable
vectors. These functions are all used for optimisations, rather than
functional requirements. In future we can revisit this code if
there is a need to improve code quality for SVE.

Diff Detail

Event Timeline

david-arm created this revision.May 26 2020, 1:01 AM
Herald added a project: Restricted Project. · View Herald Transcript
david-arm updated this revision to Diff 268071.Jun 3 2020, 12:06 AM
david-arm updated this revision to Diff 269458.Jun 9 2020, 2:36 AM
david-arm added reviewers: efriedma, ctetreau.
david-arm updated this revision to Diff 270104.Jun 11 2020, 4:54 AM
  • Added some unit tests for NEON and SVE that demonstrate the different behaviour.
  • Added checks for no warnings in some tests due to this patch removing the last warnings in those files.
This revision is now accepted and ready to land.Jun 18 2020, 3:04 PM
This revision was automatically updated to reflect the committed changes.