From c09521768db0c4a207071cd0cf9deb8ccefee9bf Mon Sep 17 00:00:00 2001 From: Ben Elliston Date: Wed, 20 Oct 2004 01:29:57 +0000 Subject: [PATCH] ifc-20040816-2.c: Use integer arithmetic instead of floating point arithmetic, which could trap. * gcc.dg/tree-ssa/ifc-20040816-2.c: Use integer arithmetic instead of floating point arithmetic, which could trap. Co-Authored-By: Devang Patel From-SVN: r89313 --- gcc/testsuite/ChangeLog | 6 +++++ .../gcc.dg/tree-ssa/ifc-20040816-2.c | 27 +++++++++---------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7b8fc4840f3..1a7ccc05cbe 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2004-10-20 Ben Elliston + Devang Patel + + * gcc.dg/tree-ssa/ifc-20040816-2.c: Use integer arithmetic instead + of floating point arithmetic, which could trap. + 2004-10-19 Mark Mitchell PR c++/14035 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c b/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c index 1fd92e13cb4..85a79e72969 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c @@ -1,30 +1,29 @@ /* { dg-do compile } */ /* { dg-options "-c -O2 -ftree-vectorize -fdump-tree-ifcvt-stats" { target *-*-* } } */ -typedef float afloat __attribute__ ((__aligned__(16))); -void foo(const afloat * __restrict__ zr_in, - const afloat * __restrict__ zi_in, - const afloat * __restrict__ zk_in, - afloat * __restrict__ zr_out, - afloat * __restrict__ zi_out, - afloat * __restrict__ zk_out, - float cr, float ci) +void foo(const int * __restrict__ zr_in, + const int * __restrict__ zi_in, + const int * __restrict__ zk_in, + int * __restrict__ zr_out, + int * __restrict__ zi_out, + int * __restrict__ zk_out, + int cr, int ci) { unsigned int pi; - float tmp_r, tmp_i, tmp_k; + int tmp_r, tmp_i, tmp_k; for (pi = 0; pi < (512)*(512); pi++) { - float zr = zr_in[pi]; - float zi = zi_in[pi]; - float zk = zk_in[pi]; + int zr = zr_in[pi]; + int zi = zi_in[pi]; + int zk = zk_in[pi]; - if (zr*zr + zi*zi >= 4.0f) { + if (zr*zr + zi*zi >= 4) { tmp_r = zr; tmp_i = zi; tmp_k = zk; } else { tmp_r = (zr*zr - zi*zi + cr); tmp_i = (2 * zr * zi + ci); - tmp_k = zk + 1.0f; + tmp_k = zk + 1; } zr_out[pi] = tmp_r; zi_out[pi] = tmp_i; -- 2.30.2