On Tue, Aug 11, 2015 at 06:11:35PM -0700, Richard Henderson wrote:
> @@ -8173,6 +8173,13 @@ genimm_ppc::exam_search (HOST_WIDE_INT c, int budget)
>    if (exam_mask (-1, c, sub_budget))
>      return true;
>  
> +  /* If the two halves are equal, use an insert.  */
> +  if (c >> 32 == test && exam_sub (test, sub_budget))
> +    {
> +      opN (VEC_DUPLICATE, 0xffffffffu); /* RLDIMI */
> +      return true;
> +    }

Does this work for c with the high bit set?  I think you need
to cast it to unsigned HOST_WIDE_INT first?


Segher

Reply via email to