RFR: 8231649: PPC64: Intrinsics for Math.ceil, floor, rint on Power

Michihiro Horie HORIE at jp.ibm.com
Mon Oct 7 07:13:51 UTC 2019


Hi Vladimir,

Thanks a lot for your nice suggestion. Yes, I prefer enum use.
I'm wondering if the enum constants can be declared in sharedRuntime.hpp.
Webrev: http://cr.openjdk.java.net/~mhorie/8231649/webrev.02/

Best regards,
Michihiro



From:	Vladimir Ivanov <vladimir.x.ivanov at oracle.com>
To:	Michihiro Horie <HORIE at jp.ibm.com>,
            ppc-aix-port-dev at openjdk.java.net, hotspot compiler
            <hotspot-compiler-dev at openjdk.java.net>
Date:	2019/10/04 23:05
Subject:	[EXTERNAL] Re: RFR: 8231649: PPC64: Intrinsics for Math.ceil,
            floor, rint on Power



Hi Michihiro,

src/hotspot/cpu/ppc/macroAssembler_ppc.cpp:
+  switch (rmode) {
+    case 0: // rint
+      frin(t, b);
+      break;
+    case 1: // floor
+      frim(t, b);
+      break;
+    case 2: // ceil
+      frip(t, b);
+      break;
+    default:
+      ShouldNotReachHere();
+  }

What do you think about introducing enum constants instead of using
hard-coded 0/1/2?

src/hotspot/share/opto/library_call.cpp:

   case vmIntrinsics::_ceil:   n = new RoundDoubleModeNode(arg,
makecon(TypeInt::make(2))); break;
   case vmIntrinsics::_floor:  n = new RoundDoubleModeNode(arg,
makecon(TypeInt::make(1))); break;
   case vmIntrinsics::_rint:   n = new RoundDoubleModeNode(arg,
makecon(TypeInt::make(0))); break;

The downside is you have to move the switch from macroAssembler because
enum should be visible from both places. (Is there a better place for
that than roundD_regNode::emit() in AD file?)

Best regards,
Vladimir Ivanov

On 02/10/2019 07:27, Michihiro Horie wrote:
>
> Dear all,
>
> Would you please review the following change?
> Bug:
https://urldefense.proofpoint.com/v2/url?u=https-3A__bugs.openjdk.java.net_browse_JDK-2D8231649&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=oecsIpYF-cifqq2i1JEH0Q&m=R6acJsgDk7_ranieVc4S0sbz0QkjQsntUQEjH0ccyNY&s=llmr9Zh9oQcigrJ0dsVA_LudU15VZuJSEc01KPG28RA&e=

> Webrev:
https://urldefense.proofpoint.com/v2/url?u=http-3A__cr.openjdk.java.net_-7Emhorie_8231649_webrev.00&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg&r=oecsIpYF-cifqq2i1JEH0Q&m=R6acJsgDk7_ranieVc4S0sbz0QkjQsntUQEjH0ccyNY&s=ByqZ3EjmpHbcgI1a94W8uyXm9FwOgo3DNSLl63wBJow&e=

>
> This change adds intrinsics for Math's ceil, floor, and rint for PPC64,
on
> top of 8226721: Missing intrinsics for Math.ceil, floor, rint.
>
> Best regards,
> Michihiro
>



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/attachments/20191007/df4042f1/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <https://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/attachments/20191007/df4042f1/graycol.gif>


More information about the ppc-aix-port-dev mailing list