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