re PR middle-end/46292 (FAIL: gcc.c-torture/execute/vector-shift2.c compilation,...
authorUros Bizjak <uros@gcc.gnu.org>
Thu, 4 Nov 2010 16:06:45 +0000 (17:06 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 4 Nov 2010 16:06:45 +0000 (17:06 +0100)
PR middle-end/46292
* lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
if the innermode is not vector mode, determine the mode of a subreg
by using mode_for_size of inner_size.

From-SVN: r166318

gcc/ChangeLog
gcc/lower-subreg.c
gcc/testsuite/ChangeLog

index 71bd8b4edc3f4bb56870c653f3037d6913f90717..b0618ac209542de7a7d4130f6fcdef5cdf5057c4 100644 (file)
@@ -1,3 +1,10 @@
+2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR middle-end/46292
+       * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
+       if the innermode is not vector mode, determine the mode of a subreg
+       by using mode_for_size of inner_size.
+
 2010-11-04  Richard Guenther  <rguenther@suse.de>
 
        PR rtl-optimization/46183
 
 2010-11-03  Xinliang David Li  <davidxl@google.com>
 
-       PR target/46200
-       * tree-ssa-loop-ivopts.c (get_computation_cost_at):
-       Adjust cbase if the use stmt is after iv update.
+       PR target/46200
+       * tree-ssa-loop-ivopts.c (get_computation_cost_at):
+       Adjust cbase if the use stmt is after iv update.
 
 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
 
index 1c4e9adb004d5ed9a47e20a58c8b4c3fcb073c8c..3563cee0824e8da863409dc084290171398b5705 100644 (file)
@@ -411,10 +411,15 @@ simplify_subreg_concatn (enum machine_mode outermode, rtx op,
   part = XVECEXP (op, 0, byte / inner_size);
   partmode = GET_MODE (part);
 
-  if (partmode == VOIDmode)
+  /* VECTOR_CSTs in debug expressions are expanded into CONCATN instead of
+     regular CONST_VECTORs.  They have vector or integer modes, depending
+     on the capabilities of the target.  Cope with them.  */
+  if (partmode == VOIDmode && VECTOR_MODE_P (innermode))
+    partmode = GET_MODE_INNER (innermode);
+  else if (partmode == VOIDmode)
     {
-      gcc_assert (VECTOR_MODE_P (innermode));
-      partmode = GET_MODE_INNER (innermode);
+      enum mode_class mclass = GET_MODE_CLASS (innermode);
+      partmode = mode_for_size (inner_size * BITS_PER_UNIT, mclass, 0);
     }
 
   final_offset = byte % inner_size;
index 0fa52176934c8e63d784d3edc75e033904e8f714..89a05356e3cf5769a217972ec3c8c3f4456b1547 100644 (file)
        * objc.dg/property/at-property-14.m: New.
        * objc.dg/property/at-property-15.m: New.
        * obj-c++.dg/property/at-property-14.mm: New.
-       * obj-c++.dg/property/at-property-15.mm: New.   
+       * obj-c++.dg/property/at-property-15.mm: New.
 
        * objc.dg/foreach-6.m: Added a few more tests for valid and
        invalid iterating variables and collections.
-       
+
 2010-11-03  Xinliang David Li  <davidxl@google.com>
 
-       PR target/46200
-       * g++.dg/tree-ssa/ivopts-2.C: New test.
+       PR target/46200
+       * g++.dg/tree-ssa/ivopts-2.C: New test.
 
 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
 
 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        Implemented -fobjc-std=objc1 flag.
-       * objc.dg/fobjc-std-1.m: New.   
+       * objc.dg/fobjc-std-1.m: New.
        * obj-c++.dg/fobjc-std-1.mm: New.
 
 2010-11-03  Richard Guenther  <rguenther@suse.de>
 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        * objc.dg/property/dotsyntax-1.m: New.
-       * objc.dg/property/dotsyntax-2.m: New.  
+       * objc.dg/property/dotsyntax-2.m: New.
        * obj-c++.dg/property/dotsyntax-1.mm: New.
-       * obj-c++.dg/property/dotsyntax-2.mm: New.      
+       * obj-c++.dg/property/dotsyntax-2.mm: New.
 
 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
 
        * obj-c++.dg/attributes/method-deprecated-3.mm: New.
        * obj-c++.dg/attributes/method-noreturn-1.mm: New.
        * obj-c++.dg/attributes/method-sentinel-1.mm: New.
-       * obj-c++.dg/attributes/method-format-1.mm: New.        
-       
+       * obj-c++.dg/attributes/method-format-1.mm: New.
+
 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        * objc.dg/property/at-property-deprecated-1.m: New.
-       * obj-c++.dg/property/at-property-deprecated-1.mm: New. 
+       * obj-c++.dg/property/at-property-deprecated-1.mm: New.
 
 2010-11-01  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        * objc.dg/property/at-property-12.m: New.
        * objc.dg/property/at-property-13.m: New.
        * obj-c++.dg/property/at-property-12.mm: New.
-       * obj-c++.dg/property/at-property-13.mm: New.   
-       
+       * obj-c++.dg/property/at-property-13.mm: New.
+
 2010-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        PR fortran/46152
        * objc.dg/property/property-neg-4.m: Same change.
        * objc.dg/property/property-neg-5.m: Same change.
        * objc.dg/property/property-neg-7.m: Same change.
-       * objc.dg/property/property-1.m: Same change.   
+       * objc.dg/property/property-1.m: Same change.
        * objc.dg/property/synthesize-1.m: Same change.
        * objc.dg/property/at-property-2.m: Same change.
        * objc.dg/property/at-property-4.m: Same change.
        @synthesize/@dynamic.  Use the same code for GNU and NeXT runtime.
        * objc.dg/property/fsf-property-basic.m: Same change.
        * objc.dg/property/fsf-property-named-ivar.m: Same change.
-       
+
        * objc.dg/property/at-property-5.m: New.
        * objc.dg/property/at-property-6.m: New.
        * objc.dg/property/at-property-7.m: New.
        * obj-c++.dg/property/property-neg-4.mm: Same change.
        * obj-c++.dg/property/property-neg-5.mm: Same change.
        * obj-c++.dg/property/property-neg-7.mm: Same change.
-       * obj-c++.dg/property/property-1.mm: Same change.       
+       * obj-c++.dg/property/property-1.mm: Same change.
        * obj-c++.dg/property/synthesize-1.mm: Same change.
        * obj-c++.dg/property/at-property-2.mm: Same change.
        * obj-c++.dg/property/at-property-4.mm: Same change.
        @synthesize/@dynamic.  Use the same code for GNU and NeXT runtime.
        * obj-c++.dg/property/fsf-property-basic.mm: Same change.
        * obj-c++.dg/property/fsf-property-named-ivar.mm: Same change.
-       
+
        * obj-c++.dg/property/at-property-5.mm: New.
-       * obj-c++.dg/property/at-property-6.mm: New.    
+       * obj-c++.dg/property/at-property-6.mm: New.
        * obj-c++.dg/property/at-property-7.mm: New.
        * obj-c++.dg/property/at-property-8.mm: New.
        * obj-c++.dg/property/at-property-9.mm: New.
        * obj-c++.dg/property/at-property-11.mm: New.
        * obj-c++.dg/property/synthesize-2.mm: New.
        * obj-c++.dg/property/dynamic-2.mm: New.
-       
+
 2010-10-29  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
            Andrew Pinski <pinskia@gmail.com>