re PR target/81151 (-Wmaybe-uninitialized in insn-emit.c)
authorJakub Jelinek <jakub@redhat.com>
Wed, 21 Jun 2017 20:02:00 +0000 (22:02 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 21 Jun 2017 20:02:00 +0000 (22:02 +0200)
PR target/81151
* config/i386/sse.md (round<mode>2): Renumber match_dup and
operands indexes to avoid gap between operands and match_dups.

From-SVN: r249469

gcc/ChangeLog
gcc/config/i386/sse.md

index ea97b0badff28cf4af7506053322c8432b8c43f0..d40f0c8c3243628eedbd68ce854b075801206a7f 100644 (file)
@@ -1,3 +1,9 @@
+2017-06-21  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/81151
+       * config/i386/sse.md (round<mode>2): Renumber match_dup and
+       operands indexes to avoid gap between operands and match_dups.
+
 2017-06-21  Andrew Pinski  <apinski@cavium.com>
 
        * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
index 29a039d5b361509fdebce5555e5a8c3fd1fe10bd..f61ae2bb927699e2da7831e187d7d56a5752c858 100644 (file)
    (set_attr "mode" "<MODE>")])
 
 (define_expand "round<mode>2"
-  [(set (match_dup 4)
+  [(set (match_dup 3)
        (plus:VF
          (match_operand:VF 1 "register_operand")
-         (match_dup 3)))
+         (match_dup 2)))
    (set (match_operand:VF 0 "register_operand")
        (unspec:VF
-         [(match_dup 4) (match_dup 5)]
+         [(match_dup 3) (match_dup 4)]
          UNSPEC_ROUND))]
   "TARGET_ROUND && !flag_trapping_math"
 {
   vec_half = ix86_build_const_vector (<MODE>mode, true, half);
   vec_half = force_reg (<MODE>mode, vec_half);
 
-  operands[3] = gen_reg_rtx (<MODE>mode);
-  emit_insn (gen_copysign<mode>3 (operands[3], vec_half, operands[1]));
+  operands[2] = gen_reg_rtx (<MODE>mode);
+  emit_insn (gen_copysign<mode>3 (operands[2], vec_half, operands[1]));
 
-  operands[4] = gen_reg_rtx (<MODE>mode);
-  operands[5] = GEN_INT (ROUND_TRUNC);
+  operands[3] = gen_reg_rtx (<MODE>mode);
+  operands[4] = GEN_INT (ROUND_TRUNC);
 })
 
 (define_expand "round<mode>2_sfix"