PR target/68269
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 Jan 2016 15:10:41 +0000 (15:10 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 Jan 2016 15:10:41 +0000 (15:10 +0000)
* combine.c (expand_field_assignment): Punt if compute_mode is
unsupported scalar mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232366 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/combine.c

index 4cf1e81..fe9a60a 100644 (file)
@@ -1,3 +1,9 @@
+2016-01-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/68269
+       * combine.c (expand_field_assignment): Punt if compute_mode is
+       unsupported scalar mode.
+
 2016-01-14  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/66856
index d088031..2f913dd 100644 (file)
@@ -7247,6 +7247,10 @@ expand_field_assignment (const_rtx x)
       if (len >= HOST_BITS_PER_WIDE_INT)
        break;
 
+      /* Don't try to compute in too wide unsupported modes.  */
+      if (!targetm.scalar_mode_supported_p (compute_mode))
+       break;
+
       /* Now compute the equivalent expression.  Make a copy of INNER
         for the SET_DEST in case it is a MEM into which we will substitute;
         we don't want shared RTL in that case.  */