RFR(M):8188139:PPC64: Superword Level Parallelization with VSX

Gustavo Romero gromero at linux.vnet.ibm.com
Fri Sep 29 19:19:51 UTC 2017


Hi Vladimir,

On 29-09-2017 16:00, Vladimir Kozlov wrote:
> I looked on shared code. One comment - change in opto/type.cpp affects s390.

Do you strongly oppose to split PPC64 and s390 like?

diff -r e93ed1a09240 src/share/vm/opto/type.cpp
--- a/src/share/vm/opto/type.cpp        Tue Aug 08 22:57:34 2017 +0000
+++ b/src/share/vm/opto/type.cpp        Fri Sep 29 15:17:17 2017 -0400
@@ -67,7 +67,13 @@
   { Bad,             T_ILLEGAL,    "vectorx:",      false, 0,                    relocInfo::none          },  // VectorX
   { Bad,             T_ILLEGAL,    "vectory:",      false, 0,                    relocInfo::none          },  // VectorY
   { Bad,             T_ILLEGAL,    "vectorz:",      false, 0,                    relocInfo::none          },  // VectorZ
-#elif defined(PPC64) || defined(S390)
+#elif defined(PPC64)
+  { Bad,             T_ILLEGAL,    "vectors:",      false, 0,                    relocInfo::none          },  // VectorS
+  { Bad,             T_ILLEGAL,    "vectord:",      false, Op_RegL,              relocInfo::none          },  // VectorD
+  { Bad,             T_ILLEGAL,    "vectorx:",      false, Op_VecX,              relocInfo::none          },  // VectorX
+  { Bad,             T_ILLEGAL,    "vectory:",      false, 0,                    relocInfo::none          },  // VectorY
+  { Bad,             T_ILLEGAL,    "vectorz:",      false, 0,                    relocInfo::none          },  // VectorZ
+#elif defined(S390)
   { Bad,             T_ILLEGAL,    "vectors:",      false, 0,                    relocInfo::none          },  // VectorS
   { Bad,             T_ILLEGAL,    "vectord:",      false, Op_RegL,              relocInfo::none          },  // VectorD
   { Bad,             T_ILLEGAL,    "vectorx:",      false, 0,                    relocInfo::none          },  // VectorX


Kind regards,
Gustavo

> Vladimir
> 
> On 9/29/17 2:37 AM, Michihiro Horie wrote:
>> Dear all,
>>
>> Would you please review the following change?
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8188139
>> Webrev: http://cr.openjdk.java.net/~mhorie/8188139/webrev.00/
>>
>> This change introduces to use VSX for Superword Level Parallelization, concretely VSX instructions are emitted for Replicate[BSIFDL] nodes in ppc.ad.
>> Since I am not familiar with the hotspot's register allocation and the TOC use in POWER, I would be very grateful to have any comments to improve the change.
>>
>> In addition, the change includes some minor fixes in assembler_ppc.inline.hpp. I think there are some instructions that should have 1u in higher bits.
>>
>>
>> I used the attached micro benchmark.
>> /(See attached file: ArraysFillTest.java)/
>>
>> Best regards,
>> -- 
>> Michihiro,
>> IBM Research - Tokyo
>>
> 



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