]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
authorirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Feb 2007 08:41:01 +0000 (08:41 +0000)
committerirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Feb 2007 08:41:01 +0000 (08:41 +0000)
vectype is not NULL.
(vect_pattern_recog_1): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121640 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c [new file with mode: 0644]
gcc/tree-vect-patterns.c

index 947df6f73c3274223cb37cc05f7978625130a1a1..9207c8ebe5eadc083f060a511bc81c259bc8c85b 100644 (file)
@@ -1,3 +1,9 @@
+2007-02-06  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that 
+       vectype is not NULL.
+       (vect_pattern_recog_1): Likewise.
+
 2007-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
index f22064aaf6e0d10ff64e5ef70d3f10c7d0015b85..3f676a85871274119e70378e7cf7de148a0828d7 100644 (file)
@@ -1,3 +1,7 @@
+2007-02-06  Ira Rosen  <irar@il.ibm.com> 
+
+       * gcc.dg/vect/fast-math-vect-pow-2.c: New test.
+
 2007-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * gcc.dg/builtins-20.c: Add more cases.
diff --git a/gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c b/gcc/testsuite/gcc.dg/vect/fast-math-vect-pow-2.c
new file mode 100644 (file)
index 0000000..a9d927b
--- /dev/null
@@ -0,0 +1,33 @@
+/* { dg-do compile } */
+
+typedef double d_type;
+struct
+{
+  d_type x;
+  d_type y;
+} S[100];
+
+#define N 16
+d_type foo (d_type t);
+
+d_type
+main1 ()
+{
+  int i;
+  d_type t;
+
+  for (i = 0; i < N; i++)
+    {
+      t = (d_type) i / (d_type) 10;
+      S[5].x = t * t;
+    }
+  return S[5].x;
+}
+
+int
+main (void)
+{
+  d_type tmp = main1 ();
+}
+/* { dg-final { cleanup-tree-dump "vect" } } */
+
index c9e34e3e4198779490e86945a502cf0e7b3614fa..9fac417d0d0ff3a616b2f0a1752d833db427a4dd 100644 (file)
@@ -386,7 +386,8 @@ vect_recog_widen_mult_pattern (tree last_stmt,
 
   /* Check target support  */
   vectype = get_vectype_for_scalar_type (half_type0);
-  if (!supportable_widening_operation (WIDEN_MULT_EXPR, last_stmt, vectype,
+  if (!vectype
+      || !supportable_widening_operation (WIDEN_MULT_EXPR, last_stmt, vectype,
                                        &dummy, &dummy, &dummy_code,
                                        &dummy_code))
     return NULL;
@@ -647,6 +648,9 @@ vect_pattern_recog_1 (
 
       /* Check target support  */
       pattern_vectype = get_vectype_for_scalar_type (type_in);
+      if (!pattern_vectype)
+        return;
+
       optab = optab_for_tree_code (TREE_CODE (pattern_expr), pattern_vectype);
       vec_mode = TYPE_MODE (pattern_vectype);
       if (!optab