This is an archive of the discontinued LLVM Phabricator instance.

[Sparc] Use the IntPair reg class for r constraints with value type f64
ClosedPublic

Authored by dcederman on Jul 12 2018, 12:36 AM.

Details

Summary

This is how it appears to be handled in GCC and it prevents a "Unknown mismatch" error in the SelectionDAGBuilder.

Diff Detail

Event Timeline

dcederman created this revision.Jul 12 2018, 12:36 AM
jyknight accepted this revision.Jul 13 2018, 12:52 PM

Yep, this looks like the expected behavior.

This revision is now accepted and ready to land.Jul 13 2018, 12:52 PM

What happens to this test case on sparc64? Does something else complain earlier that "r" shouldn't be used for floats, or does it try to use a pair of "32-bit" integer registers even though they're 64-bit?

jrtc27 accepted this revision.Jul 17 2018, 6:16 AM

It turns out the backend just doesn't support 64-bit integer registers in assembly constraints on sparc64 anyway, so this doesn't make it any worse. I have a local patch which I will prepare and submit once this lands.

This revision was automatically updated to reflect the committed changes.