This is an archive of the discontinued LLVM Phabricator instance.

The following functions and tests work fine for powerpc64, so enable them.
AbandonedPublic

Authored by saugustine on Aug 15 2017, 1:11 PM.

Details

Summary

These functions were disabled for powerpc in the initial
checkin all the way back in 2009. The reasons why are lost to history,
but they work fine with modern clang and powerpc64. I have no way
to test them on 32-bit systems, but will clean this up if the someone
finds a failure.

Event Timeline

saugustine created this revision.Aug 15 2017, 1:11 PM

Anyone have any opinions on this?

aheejin resigned from this revision.Aug 16 2017, 2:50 PM

I don't have enough context or knowledge on this code base. Sorry!

nemanjai edited edge metadata.Aug 17 2017, 8:59 AM

Anyone have any opinions on this?

I don't see an issue with providing these functions on PowerPC as there doesn't seem to be anything in the implementation that PowerPC would have an issue with. However, I'm not sure if there are precision specifications for these builtins. If so, it is quite possible that PowerPC's long double won't meet those specifications. For the time being, the PPC long double is not IEEE 754 compliant - it's a pair of doubles.

joerg added a subscriber: joerg.Aug 17 2017, 9:04 AM

Because PPC uses the TC variant.

Because PPC uses the TC variant.

Sorry, I don't understand this comment. What is the "TC variant"?

joerg added a comment.Aug 17 2017, 1:08 PM

divtc3 and friends.

divtc3 and friends.

Ah, OK. I see what you mean now. These builtins are for XCmode calculations (complex values as two XFmode components). Since PPC has no support for XFmode (i.e. 80-bit long double) in HW (and I don't imagine emulation is useful), I'm not sure it's meaningful to expose these builtins.

That's at least my interpretation, but please let me know if I'm way off base with that analysis.

OK. I understand how these should work now.

As they are 80-bit specific, I am going to abandon this change and add them to my other patch which moves 80-bit specific floats and tests to x86-specific lists.

saugustine abandoned this revision.Aug 22 2017, 3:14 PM