On Mon, Apr 04, 2016 at 11:16:48PM +0200, Zdenek Sojka wrote:
> gcc/Changelog:
> 
> 2016-04-04  Zdenek Sojka  
> 
>     PR tree-optimization/70509
>     * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int () instead 
> of the vector base type for index.
> 
> 
> gcc/testsuite/Changelog:
> 
> 2016-04-04  Zdenek Sojka  
> 
>     PR tree-optimization/70509
>     * gcc.target/i386/avx512bw-pr70509.c: New.

I've tested this on x86_64-linux and i686-linux (including running
the testcase under sde64 emulation), and committed to trunk.
This has been small enough, but if you plan to provide more fixes
(beyond your very much appreciated bugreporting), we'll need a copyright
assignment (unless you already have it).

I've also committed following patch Marc mentioned in the PR, as obvious
after bootstrap/regtest on x86_64-linux and i686-linux, haven't managed
to create a testcase that would be miscompiled though, so it is for now
just a theoretical fix.

2016-04-05  Marc Glisse  <marc.gli...@inria.fr>
            Jakub Jelinek  <ja...@redhat.com>

        PR tree-optimization/70509
        * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
        Shift HOST_WIDE_INT_1U instead of 1.

--- gcc/simplify-rtx.c.jj       2016-03-03 18:21:02.000000000 +0100
+++ gcc/simplify-rtx.c  2016-04-05 16:29:44.502306175 +0200
@@ -3665,7 +3665,7 @@ simplify_binary_operation_1 (enum rtx_co
              for (int i = 0; i < XVECLEN (trueop1, 0); i++)
                {
                  rtx j = XVECEXP (trueop1, 0, i);
-                 if (sel & (1 << UINTVAL (j)))
+                 if (sel & (HOST_WIDE_INT_1U << UINTVAL (j)))
                    all_operand1 = false;
                  else
                    all_operand0 = false;


        Jakub

Reply via email to