re PR bootstrap/92433 (r276645 breaks bootstrap on powerpc)
authorJakub Jelinek <jakub@redhat.com>
Mon, 11 Nov 2019 20:05:49 +0000 (21:05 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 11 Nov 2019 20:05:49 +0000 (21:05 +0100)
PR bootstrap/92433
* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard
ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check.  Use
std::swap.

From-SVN: r278066

gcc/ChangeLog
gcc/config/rs6000/rs6000-c.c

index 329d107..2d50a75 100644 (file)
@@ -1,3 +1,10 @@
+2019-11-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/92433
+       * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard
+       ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check.  Use
+       std::swap.
+
 2019-11-11  Richard Sandiford  <richard.sandiford@arm.com>
 
        PR tree-optimization/92420
index bd4b19d..81db96f 100644 (file)
@@ -6076,14 +6076,14 @@ altivec_build_resolved_builtin (tree *args, int n,
      condition (LT vs. EQ, which is recognizable by bit 1 of the first
      argument) is reversed.  Patch the arguments here before building
      the resolved CALL_EXPR.  */
-  if (desc->code == ALTIVEC_BUILTIN_VEC_VCMPGE_P
+  if (n == 3
+      && desc->code == ALTIVEC_BUILTIN_VEC_VCMPGE_P
       && desc->overloaded_code != ALTIVEC_BUILTIN_VCMPGEFP_P
       && desc->overloaded_code != VSX_BUILTIN_XVCMPGEDP_P)
     {
-      tree t;
-      t = args[2], args[2] = args[1], args[1] = t;
-      t = arg_type[2], arg_type[2] = arg_type[1], arg_type[1] = t;
-      
+      std::swap (args[1], args[2]);
+      std::swap (arg_type[1], arg_type[2]);
+
       args[0] = fold_build2 (BIT_XOR_EXPR, TREE_TYPE (args[0]), args[0],
                             build_int_cst (NULL_TREE, 2));
     }