changeset 58255:095de1cbce58 vectorIntrinsics

fix sqrt vector intrinsic and add test for sqrt with small fix to test infra for windows/cygwin
author vdeshpande
date Mon, 09 Apr 2018 11:47:54 -0700
parents 6bb71f8ea849
children 7a8945863393
files src/hotspot/share/opto/vectornode.cpp test/jdk/jdk/incubator/vector/Byte128VectorTests.java test/jdk/jdk/incubator/vector/Byte256VectorTests.java test/jdk/jdk/incubator/vector/Byte512VectorTests.java test/jdk/jdk/incubator/vector/Byte64VectorTests.java test/jdk/jdk/incubator/vector/Double128VectorTests.java test/jdk/jdk/incubator/vector/Double256VectorTests.java test/jdk/jdk/incubator/vector/Double512VectorTests.java test/jdk/jdk/incubator/vector/Double64VectorTests.java test/jdk/jdk/incubator/vector/Float128VectorTests.java test/jdk/jdk/incubator/vector/Float256VectorTests.java test/jdk/jdk/incubator/vector/Float512VectorTests.java test/jdk/jdk/incubator/vector/Float64VectorTests.java test/jdk/jdk/incubator/vector/Int128VectorTests.java test/jdk/jdk/incubator/vector/Int256VectorTests.java test/jdk/jdk/incubator/vector/Int512VectorTests.java test/jdk/jdk/incubator/vector/Int64VectorTests.java test/jdk/jdk/incubator/vector/Long128VectorTests.java test/jdk/jdk/incubator/vector/Long256VectorTests.java test/jdk/jdk/incubator/vector/Long512VectorTests.java test/jdk/jdk/incubator/vector/Long64VectorTests.java test/jdk/jdk/incubator/vector/Short128VectorTests.java test/jdk/jdk/incubator/vector/Short256VectorTests.java test/jdk/jdk/incubator/vector/Short512VectorTests.java test/jdk/jdk/incubator/vector/Short64VectorTests.java test/jdk/jdk/incubator/vector/config.sh test/jdk/jdk/incubator/vector/gen-template.sh
diffstat 27 files changed, 387 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/hotspot/share/opto/vectornode.cpp	Mon Apr 09 11:28:01 2018 -0700
+++ b/src/hotspot/share/opto/vectornode.cpp	Mon Apr 09 11:47:54 2018 -0700
@@ -225,6 +225,7 @@
   case Op_NegVI:
   case Op_NegVF:
   case Op_NegVD:
+  case Op_SqrtVF:
   case Op_SqrtVD:
   case Op_NotV:
   case Op_LShiftVB:
--- a/test/jdk/jdk/incubator/vector/Byte128VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Byte128VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Byte128VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Byte256VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Byte256VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Byte256VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Byte512VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Byte512VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Byte512VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Byte64VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Byte64VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Byte64VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Double128VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Double128VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -725,5 +725,47 @@
 
 
 
+
+
+    static double sqrt(double a) {
+        return (double)(Math.sqrt((double)a));
+    }
+
+
+
+    @Test(dataProvider = "doubleUnaryOpProvider")
+    static void sqrtDouble128VectorTests(IntFunction<double[]> fa) {
+        double[] a = fa.apply(SPECIES.length());
+        double[] r = new double[a.length];
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                DoubleVector<Shapes.S128Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt().intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, Double128VectorTests::sqrt);
+    }
+
+
+
+    @Test(dataProvider = "doubleUnaryOpMaskProvider")
+    static void sqrtMaskedDouble128VectorTests(IntFunction<double[]> fa,
+                                                IntFunction<boolean[]> fm) {
+        double[] a = fa.apply(SPECIES.length());
+        double[] r = new double[a.length];
+        boolean[] mask = fm.apply(SPECIES.length());
+        Vector.Mask<Double, Shapes.S128Bit> vmask = SPECIES.maskFromValues(mask);
+
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                DoubleVector<Shapes.S128Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt(vmask).intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, mask, Double128VectorTests::sqrt);
+    }
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Double256VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Double256VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -725,5 +725,47 @@
 
 
 
+
+
+    static double sqrt(double a) {
+        return (double)(Math.sqrt((double)a));
+    }
+
+
+
+    @Test(dataProvider = "doubleUnaryOpProvider")
+    static void sqrtDouble256VectorTests(IntFunction<double[]> fa) {
+        double[] a = fa.apply(SPECIES.length());
+        double[] r = new double[a.length];
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                DoubleVector<Shapes.S256Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt().intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, Double256VectorTests::sqrt);
+    }
+
+
+
+    @Test(dataProvider = "doubleUnaryOpMaskProvider")
+    static void sqrtMaskedDouble256VectorTests(IntFunction<double[]> fa,
+                                                IntFunction<boolean[]> fm) {
+        double[] a = fa.apply(SPECIES.length());
+        double[] r = new double[a.length];
+        boolean[] mask = fm.apply(SPECIES.length());
+        Vector.Mask<Double, Shapes.S256Bit> vmask = SPECIES.maskFromValues(mask);
+
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                DoubleVector<Shapes.S256Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt(vmask).intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, mask, Double256VectorTests::sqrt);
+    }
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Double512VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Double512VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -725,5 +725,47 @@
 
 
 
+
+
+    static double sqrt(double a) {
+        return (double)(Math.sqrt((double)a));
+    }
+
+
+
+    @Test(dataProvider = "doubleUnaryOpProvider")
+    static void sqrtDouble512VectorTests(IntFunction<double[]> fa) {
+        double[] a = fa.apply(SPECIES.length());
+        double[] r = new double[a.length];
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                DoubleVector<Shapes.S512Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt().intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, Double512VectorTests::sqrt);
+    }
+
+
+
+    @Test(dataProvider = "doubleUnaryOpMaskProvider")
+    static void sqrtMaskedDouble512VectorTests(IntFunction<double[]> fa,
+                                                IntFunction<boolean[]> fm) {
+        double[] a = fa.apply(SPECIES.length());
+        double[] r = new double[a.length];
+        boolean[] mask = fm.apply(SPECIES.length());
+        Vector.Mask<Double, Shapes.S512Bit> vmask = SPECIES.maskFromValues(mask);
+
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                DoubleVector<Shapes.S512Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt(vmask).intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, mask, Double512VectorTests::sqrt);
+    }
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Double64VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Double64VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -725,5 +725,47 @@
 
 
 
+
+
+    static double sqrt(double a) {
+        return (double)(Math.sqrt((double)a));
+    }
+
+
+
+    @Test(dataProvider = "doubleUnaryOpProvider")
+    static void sqrtDouble64VectorTests(IntFunction<double[]> fa) {
+        double[] a = fa.apply(SPECIES.length());
+        double[] r = new double[a.length];
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                DoubleVector<Shapes.S64Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt().intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, Double64VectorTests::sqrt);
+    }
+
+
+
+    @Test(dataProvider = "doubleUnaryOpMaskProvider")
+    static void sqrtMaskedDouble64VectorTests(IntFunction<double[]> fa,
+                                                IntFunction<boolean[]> fm) {
+        double[] a = fa.apply(SPECIES.length());
+        double[] r = new double[a.length];
+        boolean[] mask = fm.apply(SPECIES.length());
+        Vector.Mask<Double, Shapes.S64Bit> vmask = SPECIES.maskFromValues(mask);
+
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                DoubleVector<Shapes.S64Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt(vmask).intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, mask, Double64VectorTests::sqrt);
+    }
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Float128VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Float128VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -725,5 +725,47 @@
 
 
 
+
+
+    static float sqrt(float a) {
+        return (float)(Math.sqrt((double)a));
+    }
+
+
+
+    @Test(dataProvider = "floatUnaryOpProvider")
+    static void sqrtFloat128VectorTests(IntFunction<float[]> fa) {
+        float[] a = fa.apply(SPECIES.length());
+        float[] r = new float[a.length];
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                FloatVector<Shapes.S128Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt().intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, Float128VectorTests::sqrt);
+    }
+
+
+
+    @Test(dataProvider = "floatUnaryOpMaskProvider")
+    static void sqrtMaskedFloat128VectorTests(IntFunction<float[]> fa,
+                                                IntFunction<boolean[]> fm) {
+        float[] a = fa.apply(SPECIES.length());
+        float[] r = new float[a.length];
+        boolean[] mask = fm.apply(SPECIES.length());
+        Vector.Mask<Float, Shapes.S128Bit> vmask = SPECIES.maskFromValues(mask);
+
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                FloatVector<Shapes.S128Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt(vmask).intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, mask, Float128VectorTests::sqrt);
+    }
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Float256VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Float256VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -725,5 +725,47 @@
 
 
 
+
+
+    static float sqrt(float a) {
+        return (float)(Math.sqrt((double)a));
+    }
+
+
+
+    @Test(dataProvider = "floatUnaryOpProvider")
+    static void sqrtFloat256VectorTests(IntFunction<float[]> fa) {
+        float[] a = fa.apply(SPECIES.length());
+        float[] r = new float[a.length];
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                FloatVector<Shapes.S256Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt().intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, Float256VectorTests::sqrt);
+    }
+
+
+
+    @Test(dataProvider = "floatUnaryOpMaskProvider")
+    static void sqrtMaskedFloat256VectorTests(IntFunction<float[]> fa,
+                                                IntFunction<boolean[]> fm) {
+        float[] a = fa.apply(SPECIES.length());
+        float[] r = new float[a.length];
+        boolean[] mask = fm.apply(SPECIES.length());
+        Vector.Mask<Float, Shapes.S256Bit> vmask = SPECIES.maskFromValues(mask);
+
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                FloatVector<Shapes.S256Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt(vmask).intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, mask, Float256VectorTests::sqrt);
+    }
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Float512VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Float512VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -725,5 +725,47 @@
 
 
 
+
+
+    static float sqrt(float a) {
+        return (float)(Math.sqrt((double)a));
+    }
+
+
+
+    @Test(dataProvider = "floatUnaryOpProvider")
+    static void sqrtFloat512VectorTests(IntFunction<float[]> fa) {
+        float[] a = fa.apply(SPECIES.length());
+        float[] r = new float[a.length];
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                FloatVector<Shapes.S512Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt().intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, Float512VectorTests::sqrt);
+    }
+
+
+
+    @Test(dataProvider = "floatUnaryOpMaskProvider")
+    static void sqrtMaskedFloat512VectorTests(IntFunction<float[]> fa,
+                                                IntFunction<boolean[]> fm) {
+        float[] a = fa.apply(SPECIES.length());
+        float[] r = new float[a.length];
+        boolean[] mask = fm.apply(SPECIES.length());
+        Vector.Mask<Float, Shapes.S512Bit> vmask = SPECIES.maskFromValues(mask);
+
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                FloatVector<Shapes.S512Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt(vmask).intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, mask, Float512VectorTests::sqrt);
+    }
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Float64VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Float64VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -725,5 +725,47 @@
 
 
 
+
+
+    static float sqrt(float a) {
+        return (float)(Math.sqrt((double)a));
+    }
+
+
+
+    @Test(dataProvider = "floatUnaryOpProvider")
+    static void sqrtFloat64VectorTests(IntFunction<float[]> fa) {
+        float[] a = fa.apply(SPECIES.length());
+        float[] r = new float[a.length];
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                FloatVector<Shapes.S64Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt().intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, Float64VectorTests::sqrt);
+    }
+
+
+
+    @Test(dataProvider = "floatUnaryOpMaskProvider")
+    static void sqrtMaskedFloat64VectorTests(IntFunction<float[]> fa,
+                                                IntFunction<boolean[]> fm) {
+        float[] a = fa.apply(SPECIES.length());
+        float[] r = new float[a.length];
+        boolean[] mask = fm.apply(SPECIES.length());
+        Vector.Mask<Float, Shapes.S64Bit> vmask = SPECIES.maskFromValues(mask);
+
+        for (int ic = 0; ic < INVOC_COUNT; ic++) {
+            for (int i = 0; i < a.length; i += SPECIES.length()) {
+                FloatVector<Shapes.S64Bit> av = SPECIES.fromArray(a, i);
+                av.sqrt(vmask).intoArray(r, i);
+            }
+        }
+
+        assertArraysEquals(a, r, mask, Float64VectorTests::sqrt);
+    }
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Int128VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Int128VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Int128VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Int256VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Int256VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Int256VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Int512VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Int512VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Int512VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Int64VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Int64VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Int64VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Long128VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Long128VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Long128VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Long256VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Long256VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Long256VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Long512VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Long512VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Long512VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Long64VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Long64VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Long64VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Short128VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Short128VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Short128VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Short256VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Short256VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Short256VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Short512VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Short512VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Short512VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/Short64VectorTests.java	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/Short64VectorTests.java	Mon Apr 09 11:47:54 2018 -0700
@@ -916,5 +916,8 @@
         assertArraysEquals(a, r, mask, Short64VectorTests::not);
     }
 
+
+
+
 }
 
--- a/test/jdk/jdk/incubator/vector/config.sh	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/config.sh	Mon Apr 09 11:47:54 2018 -0700
@@ -59,7 +59,7 @@
 # Windows uses ";", while Unix-based OSes use ":"
 uname_s=$(uname -s)
 VECTORTESTS_HOME_CP=$VECTORTESTS_HOME
-if [ "$uname_cygwin" == "CYGWIN" ]; then
+if [ VAR_OS_ENV==windows.cygwin ]; then
   VECTORTESTS_HOME_CP=$(cygpath -pw $VECTORTESTS_HOME)
 fi
 
--- a/test/jdk/jdk/incubator/vector/gen-template.sh	Mon Apr 09 11:28:01 2018 -0700
+++ b/test/jdk/jdk/incubator/vector/gen-template.sh	Mon Apr 09 11:47:54 2018 -0700
@@ -141,6 +141,7 @@
 gen_unary_alu_op "neg" "-((\$type\$)a)" $template_file
 gen_unary_alu_op "abs" "Math.abs((\$type\$)a)" $template_file
 gen_unary_alu_op "not" "~((\$type\$)a)" $template_file "BITWISE"
+gen_unary_alu_op "sqrt" "Math.sqrt((double)a)" $template_file "FP"
 #gen_binary_op "lessThan" "<" $template_file
 #gen_binary_op "greaterThan" ">" $template_file
 gen_footer $template_file