On Tue, Oct 18, 2011 at 11:39:22AM +0200, Ira Rosen wrote: > On 2 October 2011 10:30, Ira Rosen <ira.ro...@linaro.org> wrote: > > On 29 September 2011 17:30, Ramana Radhakrishnan > > <ramana.radhakrish...@linaro.org> wrote: > >> On 19 September 2011 08:54, Ira Rosen <ira.ro...@linaro.org> wrote: > >> > >>> > >>> Bootstrapped on powerpc64-suse-linux, tested on powerpc64-suse-linux > >>> and arm-linux-gnueabi > >>> OK for mainline? > >> > >> Sorry I missed this patch. Is there any reason why we need unspecs in > >> this case ? Can't this be represented by subregs and zero/ sign > >> extensions in RTL without the UNSPECs ? > > I committed the attached patch with Ramana's solution for testing
> +/* Detect widening shift pattern: > > + type a_t; > + TYPE a_T, res_T; > + > + S1 a_t = ; > + S2 a_T = (TYPE) a_t; > + S3 res_T = a_T << CONST; > + > + where type 'TYPE' is at least double the size of type 'type'. > + > + Also detect unsgigned cases: unsigned Jakub