ifc-20040816-2.c: Use integer arithmetic instead of floating point arithmetic, which...
authorBen Elliston <bje@au.ibm.com>
Wed, 20 Oct 2004 01:29:57 +0000 (01:29 +0000)
committerBen Elliston <bje@gcc.gnu.org>
Wed, 20 Oct 2004 01:29:57 +0000 (11:29 +1000)
* gcc.dg/tree-ssa/ifc-20040816-2.c: Use integer arithmetic instead
of floating point arithmetic, which could trap.

Co-Authored-By: Devang Patel <dpatel@apple.com>
From-SVN: r89313

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c

index 7b8fc4840f33cb453aacc6cafa6b7e6f2d8949b0..1a7ccc05cbe344ff49e77de70bd8ad6355dc5e6d 100644 (file)
@@ -1,3 +1,9 @@
+2004-10-20  Ben Elliston  <bje@au.ibm.com>
+           Devang Patel  <dpatel@apple.com>
+
+       * gcc.dg/tree-ssa/ifc-20040816-2.c: Use integer arithmetic instead
+       of floating point arithmetic, which could trap.
+
 2004-10-19  Mark Mitchell  <mark@codesourcery.com>
 
        PR c++/14035
index 1fd92e13cb483300cfa9dc556e83585564c0fd9d..85a79e7296963dfdbc545e3d51a9b7d72a40cc95 100644 (file)
@@ -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;