Hi!

On Fri, Mar 07, 2014 at 05:35:01PM +0800, Thomas Preud'homme wrote:
> --- a/gcc/tree-ssa-math-opts.c
> +++ b/gcc/tree-ssa-math-opts.c
> @@ -1801,7 +1801,9 @@ find_bswap_1 (gimple stmt, struct symbolic_number *n, 
> int limit)
>  
>    if (rhs_class == GIMPLE_BINARY_RHS)
>      {
> +      int i;
>        struct symbolic_number n1, n2;
> +      unsigned HOST_WIDEST_INT mask;
>        tree source_expr2;
>  
>        if (code != BIT_IOR_EXPR)
> @@ -1827,6 +1829,15 @@ find_bswap_1 (gimple stmt, struct symbolic_number *n, 
> int limit)
>           return NULL_TREE;
>  
>         n->size = n1.size;
> +       for (i = 0, mask = 0xff; i < n->size; i++, mask <<= 8)

This should be mask <<= BITS_PER_UNIT for consistency.

And, as has been said earlier, the testcase should be a runtime testcase
(in gcc.c-torture/execute/), probably with
__attribute__((noinline, noclone)) on the function, where main calls the
function with a couple of different values, verifies the result and aborts
if it is incorrect.

        Jakub

Reply via email to