PR middle-end/85414
* rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG
on a SUBREG.
* gcc.dg/pr85414.c: New test.
From-SVN: r259433
+2018-04-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/85414
+ * rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG
+ on a SUBREG.
+
2018-04-17 Martin Jambor <mjambor@suse.cz>
PR ipa/85421
return new_rtx;
}
- else if (mode != GET_MODE (x) && GET_MODE (x) != VOIDmode
+ else if (mode != GET_MODE (x) && GET_MODE (x) != VOIDmode && !SUBREG_P (x)
&& validate_subreg (mode, GET_MODE (x), x,
- subreg_lowpart_offset (mode, GET_MODE (x))))
+ subreg_lowpart_offset (mode, GET_MODE (x))))
return gen_lowpart_SUBREG (mode, x);
else
return 0;
+2018-04-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/85414
+ * gcc.dg/pr85414.c: New test.
+
2018-04-17 Martin Jambor <mjambor@suse.cz>
PR ipa/85421
--- /dev/null
+/* PR middle-end/85414 */
+/* { dg-do compile { target int128 } } */
+/* { dg-options "-Og -fgcse -Wno-uninitialized" } */
+
+int
+foo (void)
+{
+ unsigned __int128 c;
+ return __builtin_mul_overflow_p (59, -c, (short) 0);
+}