]> gcc.gnu.org Git - gcc.git/commitdiff
re PR tree-optimization/60849 (bogus comparison result type)
authorRichard Biener <rguenther@suse.de>
Thu, 17 Apr 2014 13:50:55 +0000 (13:50 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 17 Apr 2014 13:50:55 +0000 (13:50 +0000)
2014-04-17  Richard Biener  <rguenther@suse.de>

PR middle-end/60849
* tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
comparison results and add clarifying comment.

From-SVN: r209486

gcc/ChangeLog
gcc/tree-ssa-propagate.c

index ead28c2bf928261cc14c5a1b4ed74d08fe467ea5..1f463e340512e0c575ff42fb0c451e2e192f181b 100644 (file)
@@ -1,3 +1,9 @@
+2014-04-17  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/60849
+       * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
+       comparison results and add clarifying comment.
+
 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
 
        * genmodes.c (struct mode_data): Add need_bytesize_adj field.
index 47fd15455b258c72f39ae6bc7dfc42cc87fb6196..59e46dc6420b46b45e04e569740b7997714f451f 100644 (file)
@@ -572,9 +572,13 @@ valid_gimple_rhs_p (tree expr)
       break;
 
     case tcc_comparison:
-      if (!INTEGRAL_TYPE_P (TREE_TYPE (expr))
-         || (TREE_CODE (TREE_TYPE (expr)) != BOOLEAN_TYPE
-             && TYPE_PRECISION (TREE_TYPE (expr)) != 1))
+      /* GENERIC allows comparisons with non-boolean types, reject
+         those for GIMPLE.  Let vector-typed comparisons pass - rules
+        for GENERIC and GIMPLE are the same here.  */
+      if (!(INTEGRAL_TYPE_P (TREE_TYPE (expr))
+           && (TREE_CODE (TREE_TYPE (expr)) == BOOLEAN_TYPE
+               || TYPE_PRECISION (TREE_TYPE (expr)) == 1))
+         && ! VECTOR_TYPE_P (TREE_TYPE (expr)))
        return false;
 
       /* Fallthru.  */
This page took 0.065705 seconds and 5 git commands to generate.