PR target/77526
* combine.c (rest_of_handle_combine): If any edges have been purged,
free dominators if available.
* gcc.target/i386/pr77526.c: New test.
From-SVN: r240174
2016-09-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/77526
+ * combine.c (rest_of_handle_combine): If any edges have been purged,
+ free dominators if available.
+
+2016-09-16 Jakub Jelinek <jakub@redhat.com>
Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/77594
instructions. */
if (rebuild_jump_labels_after_combine)
{
+ if (dom_info_available_p (CDI_DOMINATORS))
+ free_dominance_info (CDI_DOMINATORS);
timevar_push (TV_JUMP);
rebuild_jump_labels (get_insns ());
cleanup_cfg (0);
2016-09-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/77526
+ * gcc.target/i386/pr77526.c: New test.
+
+2016-09-16 Jakub Jelinek <jakub@redhat.com>
Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/77594
--- /dev/null
+/* PR target/77526 */
+/* { dg-do compile { target int128 } } */
+/* { dg-options "-Os -fno-forward-propagate -fno-gcse -fno-rerun-cse-after-loop -mstringop-strategy=byte_loop -Wno-psabi" } */
+
+typedef char U __attribute__((vector_size(64)));
+typedef __int128 V __attribute__((vector_size(64)));
+
+V
+foo (int a, int b, __int128 c, U u)
+{
+ u = (u >> (u & 7)) | (u << -(u & 7));
+ return a + b + c + (V)u;
+}