This is how it appears to be handled in GCC and it prevents a "Unknown mismatch" error in the SelectionDAGBuilder.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
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?
Comment Actions
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.