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