[vector] Fix test failure with UseAVX=0 and UseAVX=1
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Fri May 18 20:09:05 UTC 2018
Razvan, can you elaborate why you
src/hotspot/cpu/x86/x86.ad:
-instruct pblendvb1L(vecD dst, vecD src, rxmm0 mask) %{
+instruct pblendvb1L(vecD dst, vecD src, vecD mask, rxmm0 xmm_0) %{
predicate(UseAVX == 0 && UseSSE > 3 && n->as_Vector()->length() == 1
&& n->bottom_type()->is_vect()->element_basic_type() == T_LONG);
match(Set dst (VectorBlend (Binary dst src) mask));
+ effect(TEMP xmm_0);
format %{ "pblendvb $dst,$src,$mask\t! blend packed1L" %}
ins_encode %{
+ if ($mask$$XMMRegister != $xmm_0$$XMMRegister) {
+ __ movdqu($xmm_0$$XMMRegister, $mask$$XMMRegister);
+ }
__ pblendvb($dst$$XMMRegister, $src$$XMMRegister);
%}
ins_pipe( pipe_slow );
%}
"$mask$$XMMRegister != $xmm_0$$XMMRegister" check looks redundant.
Is it possible for input & temp to be assigned the same register?
Also, can you, please, elaborate why you remove basic type erasure for
masks? Is it because you adjusted ad rules to cover T_FLOAT & T_DOUBLE
as well?
-instruct pblendvb16B(vecX dst, vecX src, rxmm0 mask) %{
+instruct pblendvb16B(vecX dst, vecX src, vecX mask, rxmm0 xmm_0) %{
-instruct pblendvb2L(vecX dst, vecX src, rxmm0 mask) %{
+instruct pblendvb2L(vecX dst, vecX src, vecX mask, rxmm0 xmm_0) %{
-instruct blendvpd2D(vecX dst, vecX src, rxmm0 mask) %{
+instruct blendvpd2D(vecX dst, vecX src, vecX mask, rxmm0 xmm_0) %{
instruct loadmask4i(vecX dst, vecS src) %{
- predicate(UseSSE >= 4 && n->as_Vector()->length() == 4 &&
n->bottom_type()->is_vect()->element_basic_type() == T_INT);
+ predicate(UseSSE >= 4 && n->as_Vector()->length() == 4 &&
+ (n->bottom_type()->is_vect()->element_basic_type() == T_INT ||
+ n->bottom_type()->is_vect()->element_basic_type() ==
T_FLOAT));
Best regards,
Vladimir Ivanov
On 5/18/18 12:28, Lupusoru, Razvan A wrote:
> Hi all,
>
> The following patch fixes test failures when running tests with UseAVX=0 and UseAVX=1. Let me know if you have any comments. Thanks!
> http://cr.openjdk.java.net/~rlupusoru/panama/webrev_fixuseavx_01/index.html
>
> --Razvan
>
More information about the panama-dev
mailing list