OSDN Git Service

2010-10-27 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 Oct 2011 12:10:57 +0000 (12:10 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 Oct 2011 12:10:57 +0000 (12:10 +0000)
PR middle-end/50731
* tree-vect-generic.c (do_binop): Handle scalar operands.

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

gcc/ChangeLog
gcc/tree-vect-generic.c

index 8b8cea7..fe6f88b 100644 (file)
@@ -1,3 +1,8 @@
+2010-10-27  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/50731
+       * tree-vect-generic.c (do_binop): Handle scalar operands.
+
 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/37191
index ccbec6e..6555932 100644 (file)
@@ -125,8 +125,10 @@ static tree
 do_binop (gimple_stmt_iterator *gsi, tree inner_type, tree a, tree b,
          tree bitpos, tree bitsize, enum tree_code code)
 {
-  a = tree_vec_extract (gsi, inner_type, a, bitsize, bitpos);
-  b = tree_vec_extract (gsi, inner_type, b, bitsize, bitpos);
+  if (TREE_CODE (TREE_TYPE (a)) == VECTOR_TYPE)
+    a = tree_vec_extract (gsi, inner_type, a, bitsize, bitpos);
+  if (TREE_CODE (TREE_TYPE (b)) == VECTOR_TYPE)
+    b = tree_vec_extract (gsi, inner_type, b, bitsize, bitpos);
   return gimplify_build2 (gsi, code, inner_type, a, b);
 }