jit: fix test-vector-* failures
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 25 Jun 2021 23:07:30 +0000 (19:07 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Fri, 25 Jun 2021 23:07:30 +0000 (19:07 -0400)
Fix failures seen on i686 due to relying on exact floating-point
equality when testing results of vector division.

gcc/testsuite/ChangeLog:
* jit.dg/test-vector-rvalues.cc (check_div): Add specialization
for v4f, to avoid relying on exact floating-point equality.
* jit.dg/test-vector-types.cc (check_div): Likewise.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/testsuite/jit.dg/test-vector-rvalues.cc
gcc/testsuite/jit.dg/test-vector-types.cc

index ac230bf..0287711 100644 (file)
@@ -165,6 +165,14 @@ check_div (const V &a, const V &b, const V &c)
     CHECK_VALUE (c[i], a[i] / b[i]);
 }
 
+template <>
+void
+check_div<v4f> (const v4f &a, const v4f &b, const v4f &c)
+{
+  for (int i = 0; i < 4; i++)
+    CHECK_DOUBLE_VALUE (c[i], a[i] / b[i]);
+}
+
 template <typename V, typename E>
 void
 verify_vec_code (gcc_jit_context *ctxt, gcc_jit_result *result,
index 3389e04..1f49be6 100644 (file)
@@ -139,6 +139,14 @@ check_div (const T &a, const T &b, const T &c)
     CHECK_VALUE (c[i], a[i] / b[i]);
 }
 
+template <>
+void
+check_div<v4f> (const v4f &a, const v4f &b, const v4f &c)
+{
+  for (int i = 0; i < 4; i++)
+    CHECK_DOUBLE_VALUE (c[i], a[i] / b[i]);
+}
+
 template <typename T>
 void
 verify_vec_code (gcc_jit_context *ctxt, gcc_jit_result *result,