+2017-02-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/79388
+ PR rtl-optimization/79450
+ * combine.c (distribute_notes): When removing TEM_INSN for which
+ corresponding dest has last value recorded, invalidate that last
+ value.
+
2016-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
NULL_RTX, NULL_RTX, NULL_RTX);
distribute_links (LOG_LINKS (tem_insn));
+ unsigned int regno = REGNO (XEXP (note, 0));
+ reg_stat_type *rsp = ®_stat[regno];
+ if (rsp->last_set == tem_insn)
+ record_value_for_reg (XEXP (note, 0), NULL, NULL_RTX);
+
SET_INSN_DELETED (tem_insn);
if (tem_insn == i2)
i2 = NULL;
+2017-02-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/79388
+ PR rtl-optimization/79450
+ * gcc.c-torture/execute/pr79388.c: New test.
+ * gcc.c-torture/execute/pr79450.c: New test.
+
2017-02-12 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/65542
- * gfortran.dg/spread_init_expr_2.f90: New test case.
+ * gfortran.dg/spread_init_expr_2.f90: New test case.
2017-02-11 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/vect/vect-24.c: Remove xfail on ARM targets.
2017-01-25 Carl Love <cel@us.ibm.com>
- * gcc.target/powerpc/builtins-3-p8.c: Add missing tests for the
+
+ * gcc.target/powerpc/builtins-3-p8.c: Add missing tests for the
vec_packs built-ins
2017-01-25 Christophe Lyon <christophe.lyon@linaro.org>
2017-01-23 Thomas Koenig <tkoenig@netcologne.de>
- * gfortran.dg/integer_exponentiation_7.f90: New test.
+ * gfortran.dg/integer_exponentiation_7.f90: New test.
2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
--- /dev/null
+/* PR rtl-optimization/79388 */
+/* { dg-additional-options "-fno-tree-coalesce-vars" } */
+
+unsigned int a, c;
+
+__attribute__ ((noinline, noclone)) unsigned int
+foo (unsigned int p)
+{
+ p |= 1;
+ p &= 0xfffe;
+ p %= 0xffff;
+ c = p;
+ return a + p;
+}
+
+int
+main (void)
+{
+ int x = foo (6);
+ if (x != 6)
+ __builtin_abort();
+ return 0;
+}
--- /dev/null
+/* PR rtl-optimization/79450 */
+
+unsigned int
+foo (unsigned char x, unsigned long long y)
+{
+ do
+ {
+ x &= !y;
+ x %= 24;
+ }
+ while (x < y);
+ return x + y;
+}
+
+int
+main (void)
+{
+ unsigned int x = foo (1, 0);
+ if (x != 1)
+ __builtin_abort ();
+ return 0;
+}