gcc/
authorienkovich <ienkovich@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Nov 2015 12:21:33 +0000 (12:21 +0000)
committerienkovich <ienkovich@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Nov 2015 12:21:33 +0000 (12:21 +0000)
* tree-vect-generic.c (do_compare): Use -1 for true
result instead of 1.

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

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

index 60ad78a..c7b238b 100644 (file)
@@ -1,3 +1,8 @@
+2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
+
+       * tree-vect-generic.c (do_compare): Use -1 for true
+       result instead of 1.
+
 2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
         * config/aarch64/aarch64.c
index 4e96e87..c64fdc4 100644 (file)
@@ -154,10 +154,16 @@ static tree
 do_compare (gimple_stmt_iterator *gsi, tree inner_type, tree a, tree b,
            tree bitpos, tree bitsize, enum tree_code code, tree type)
 {
+  tree stype = TREE_TYPE (type);
+  tree cst_false = build_zero_cst (stype);
+  tree cst_true = build_all_ones_cst (stype);
+  tree cmp;
+
   a = tree_vec_extract (gsi, inner_type, a, bitsize, bitpos);
   b = tree_vec_extract (gsi, inner_type, b, bitsize, bitpos);
 
-  return gimplify_build2 (gsi, code, TREE_TYPE (type), a, b);
+  cmp = build2 (code, boolean_type_node, a, b);
+  return gimplify_build3 (gsi, COND_EXPR, stype, cmp, cst_true, cst_false);
 }
 
 /* Expand vector addition to scalars.  This does bit twiddling