components/gcc45/patches/003-pr43430-0.patch
author jenny.yung@oracle.com <jenny.yung@oracle.com>
Tue, 16 Jun 2015 10:14:56 -0700
branchs11-update
changeset 4489 2713cbca9e1e
parent 2569 9b54136e00bb
permissions -rw-r--r--
21240304 Upgrade OpenSSL version to 1.0.1o 21240457 problem in LIBRARY/OPENSSL 21240446 problem in LIBRARY/OPENSSL 21240467 problem in LIBRARY/OPENSSL 21240436 problem in LIBRARY/OPENSSL 21240415 problem in LIBRARY/OPENSSL 21240488 problem in LIBRARY/OPENSSL
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2569
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     1
#
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     2
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43430
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     3
# http://patchwork.ozlabs.org/patch/64010/
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     4
#
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     5
# patch had to be re-written because it did not apply cleanly
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     6
#
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     7
# Bug Summary: when compiling FFmpeg with -ftree-vectorizer-verbose
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     8
# certain loops are not being vectorized. This is due to the following
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
     9
# comparison test in gcc/tree-vect-stmts.c:
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    10
# 
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    11
# if (TREE_TYPE (TREE_OPERAND (cond_expr, 0)) != TREE_TYPE (vectype))
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    12
#     return false;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    13
#
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    14
# By replacing all the pointer equality comparisons with types_compatible_p
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    15
# comparisons, loops can now be vectorized (this is a very simplified
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    16
# description of the patch).
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    17
#
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    18
--- gcc-4.5.2/gcc/tree-vect-stmts.c	2010-11-02 05:12:56.000000000 -0700
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    19
+++ gcc-4.5.2/gcc/tree-vect-stmts.c	2013-02-12 15:35:40.852464111 -0800
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    20
@@ -4041,16 +4041,18 @@
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    21
   loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    22
   enum machine_mode vec_mode;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    23
   tree def;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    24
-  enum vect_def_type dt;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    25
+  enum vect_def_type dt, dts[4];
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    26
   int nunits = TYPE_VECTOR_SUBPARTS (vectype);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    27
   int ncopies = LOOP_VINFO_VECT_FACTOR (loop_vinfo) / nunits;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    28
   enum tree_code code;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    29
+  stmt_vec_info prev_stmt_info = NULL;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    30
+  int j;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    31
 
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    32
   /* FORNOW: unsupported in basic block SLP.  */
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    33
   gcc_assert (loop_vinfo);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    34
 
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    35
   gcc_assert (ncopies >= 1);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    36
-  if (ncopies > 1)
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    37
+  if (reduc_index && ncopies > 1)
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    38
     return false; /* FORNOW */
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    39
 
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    40
   if (!STMT_VINFO_RELEVANT_P (stmt_info))
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    41
@@ -4137,18 +4139,51 @@
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    42
   vec_dest = vect_create_destination_var (scalar_dest, vectype);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    43
 
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    44
   /* Handle cond expr.  */
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    45
+
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    46
+  for (j = 0; j < ncopies; j++)
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    47
+    {
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    48
+      gimple new_stmt;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    49
+      if (j == 0)
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    50
+	{
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    51
+	  gimple gtemp;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    52
   vec_cond_lhs =
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    53
-    vect_get_vec_def_for_operand (TREE_OPERAND (cond_expr, 0), stmt, NULL);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    54
+	      vect_get_vec_def_for_operand (TREE_OPERAND (cond_expr, 0),
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    55
+					    stmt, NULL);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    56
+	  vect_is_simple_use (TREE_OPERAND (cond_expr, 0), loop_vinfo,
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    57
+			      NULL, &gtemp, &def, &dts[0]);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    58
   vec_cond_rhs =
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    59
-    vect_get_vec_def_for_operand (TREE_OPERAND (cond_expr, 1), stmt, NULL);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    60
+	      vect_get_vec_def_for_operand (TREE_OPERAND (cond_expr, 1),
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    61
+					    stmt, NULL);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    62
+	  vect_is_simple_use (TREE_OPERAND (cond_expr, 1), loop_vinfo,
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    63
+			      NULL, &gtemp, &def, &dts[1]);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    64
   if (reduc_index == 1)
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    65
     vec_then_clause = reduc_def;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    66
   else
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    67
-    vec_then_clause = vect_get_vec_def_for_operand (then_clause, stmt, NULL);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    68
+	    {
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    69
+	      vec_then_clause = vect_get_vec_def_for_operand (then_clause,
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    70
+							      stmt, NULL);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    71
+	      vect_is_simple_use (then_clause, loop_vinfo,
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    72
+				  NULL, &gtemp, &def, &dts[2]);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    73
+	    }
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    74
   if (reduc_index == 2)
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    75
     vec_else_clause = reduc_def;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    76
   else
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    77
-    vec_else_clause = vect_get_vec_def_for_operand (else_clause, stmt, NULL);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    78
+	    {
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    79
+	      vec_else_clause = vect_get_vec_def_for_operand (else_clause,
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    80
+							      stmt, NULL);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    81
+	      vect_is_simple_use (else_clause, loop_vinfo,
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    82
+				  NULL, &gtemp, &def, &dts[3]);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    83
+	    }
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    84
+	}
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    85
+      else
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    86
+	{
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    87
+	  vec_cond_lhs = vect_get_vec_def_for_stmt_copy (dts[0], vec_cond_lhs);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    88
+	  vec_cond_rhs = vect_get_vec_def_for_stmt_copy (dts[1], vec_cond_rhs);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    89
+	  vec_then_clause = vect_get_vec_def_for_stmt_copy (dts[2],
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    90
+							    vec_then_clause);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    91
+	  vec_else_clause = vect_get_vec_def_for_stmt_copy (dts[3],
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    92
+							    vec_else_clause);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    93
+	}
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    94
 
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    95
   /* Arguments are ready. Create the new vector stmt.  */
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    96
   vec_compare = build2 (TREE_CODE (cond_expr), vectype,
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    97
@@ -4156,10 +4191,17 @@
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    98
   vec_cond_expr = build3 (VEC_COND_EXPR, vectype,
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
    99
 			  vec_compare, vec_then_clause, vec_else_clause);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   100
 
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   101
-  *vec_stmt = gimple_build_assign (vec_dest, vec_cond_expr);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   102
-  new_temp = make_ssa_name (vec_dest, *vec_stmt);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   103
-  gimple_assign_set_lhs (*vec_stmt, new_temp);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   104
-  vect_finish_stmt_generation (stmt, *vec_stmt, gsi);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   105
+      new_stmt = gimple_build_assign (vec_dest, vec_cond_expr);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   106
+      new_temp = make_ssa_name (vec_dest, new_stmt);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   107
+      gimple_assign_set_lhs (new_stmt, new_temp);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   108
+      vect_finish_stmt_generation (stmt, new_stmt, gsi);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   109
+      if (j == 0)
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   110
+        STMT_VINFO_VEC_STMT (stmt_info) = *vec_stmt = new_stmt;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   111
+      else
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   112
+        STMT_VINFO_RELATED_STMT (prev_stmt_info) = new_stmt;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   113
+
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   114
+      prev_stmt_info = vinfo_for_stmt (new_stmt);
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   115
+    }
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   116
 
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   117
   return true;
9b54136e00bb 16325156 gcc 4.5.2 testsuite fails pr43430-1.c scan-tree-dump-times testcase
Stefan Teleman <stefan.teleman@oracle.com>
parents:
diff changeset
   118
 }