2011-07-19 Jakub Jelinek <jakub@redhat.com>
Backport from mainline
+ 2011-07-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/49619
+ * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
+ pass VOIDmode as op0_mode to recursive call.
+
2011-05-27 Jakub Jelinek <jakub@redhat.com>
PR c++/49165
{
/* Try to simplify the expression further. */
rtx tor = simplify_gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1));
- temp = combine_simplify_rtx (tor, mode, in_dest);
+ temp = combine_simplify_rtx (tor, VOIDmode, in_dest);
/* If we could, great. If not, do not go ahead with the IOR
replacement, since PLUS appears in many special purpose
2011-07-19 Jakub Jelinek <jakub@redhat.com>
Backport from mainline
+ 2011-07-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/49619
+ * gcc.dg/pr49619.c: New test.
+
2011-05-27 Jakub Jelinek <jakub@redhat.com>
PR c++/49165
--- /dev/null
+/* PR rtl-optimization/49619 */
+/* { dg-do compile } */
+/* { dg-options "-O -fno-tree-fre" } */
+
+extern int a, b;
+
+void
+foo (int x)
+{
+ a = 2;
+ b = 0;
+ b = (a && ((a = 1, 0 >= b) || (short) (x + (b & x))));
+}