aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2021-06-25 19:07:30 -0400
committerDavid Malcolm <dmalcolm@redhat.com>2021-06-25 19:07:30 -0400
commit99585d88a090b4c5b7791f7ab62f70eb37b748fa (patch)
treec60c1ddd11ccc5c91e872a8410eba1b5936aeb08
parent176289e50e3d379b681f8775cdb0230b1e9f50dc (diff)
downloadgcc-99585d88a090b4c5b7791f7ab62f70eb37b748fa.zip
gcc-99585d88a090b4c5b7791f7ab62f70eb37b748fa.tar.gz
gcc-99585d88a090b4c5b7791f7ab62f70eb37b748fa.tar.bz2
jit: fix test-vector-* failures
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>
-rw-r--r--gcc/testsuite/jit.dg/test-vector-rvalues.cc8
-rw-r--r--gcc/testsuite/jit.dg/test-vector-types.cc8
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/jit.dg/test-vector-rvalues.cc b/gcc/testsuite/jit.dg/test-vector-rvalues.cc
index ac230bf7..0287711 100644
--- a/gcc/testsuite/jit.dg/test-vector-rvalues.cc
+++ b/gcc/testsuite/jit.dg/test-vector-rvalues.cc
@@ -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,
diff --git a/gcc/testsuite/jit.dg/test-vector-types.cc b/gcc/testsuite/jit.dg/test-vector-types.cc
index 3389e04..1f49be6 100644
--- a/gcc/testsuite/jit.dg/test-vector-types.cc
+++ b/gcc/testsuite/jit.dg/test-vector-types.cc
@@ -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,