On Sat, Nov 19, 2016 at 09:05:05AM +0100, Jakub Jelinek wrote: > On Fri, Nov 18, 2016 at 09:30:06PM +0100, Jakub Jelinek wrote: > > On Fri, Nov 18, 2016 at 08:41:01PM +0100, Jakub Jelinek wrote: > > > I'm seeing lots of ICEs with this. > > > > Here is untested fix for that, will bootstrap/regtest it soon (after my > > current set of bootstraps finishes). > > > > 2016-11-18 Jakub Jelinek <ja...@redhat.com> > > > > * config/i386/i386.c (ix86_expand_builtin): Remove msk_mov variable, > > don't initialize it, don't use it for the case where it isn't > > provable %{z} nor using the same argument, instead move merge > > argument into a new pseudo and use that as target. Formatting fixes. > > Now successfully bootstrapped/regtested on x86_64-linux and i686-linux and > fixed a couple of FAILs, but not tons of others. > > Here is another patch I'm going to test which fixes many other FAILs, but > still some are left: > FAIL: gcc.target/i386/funcspec-3.c (internal compiler error) > FAIL: gcc.target/i386/funcspec-3.c (test for excess errors) > FAIL: gcc.target/i386/mvc1.c (internal compiler error) > FAIL: gcc.target/i386/mvc1.c (test for excess errors) > FAIL: gcc.target/i386/mvc6.c (internal compiler error) > FAIL: gcc.target/i386/mvc6.c (test for excess errors) > FAIL: gcc.target/i386/mvc6.c scan-assembler vpshufb > FAIL: gcc.target/i386/mvc6.c scan-assembler punpcklbw > FAIL: gcc.target/i386/mvc8.c (internal compiler error) > FAIL: gcc.target/i386/mvc8.c (test for excess errors) > FAIL: gcc.target/i386/pr67995-2.c (internal compiler error) > FAIL: gcc.target/i386/pr67995-2.c (test for excess errors) > FAIL: gcc.target/i386/pr71652-3.c (internal compiler error) > FAIL: gcc.target/i386/pr71652-3.c (test for errors, line 5) > FAIL: gcc.target/i386/pr71652-3.c (test for excess errors) > Will debug even those.
The fix for that (still not bootstrapped/regtested) is below. Will now bootstrap/regtest all 3 patches and hopefully all the 4fma* introduced regressions will be gone. 2016-11-19 Jakub Jelinek <ja...@redhat.com> * config/i386/i386.c (ix86_valid_target_attribute_tree): Don't clear opts->x_ix86_isa_flags, clear opts->x_ix86_isa_flags2 instead and using = 0 instead of &= 0. --- gcc/config/i386/i386.c.jj 2016-11-19 08:54:37.000000000 +0100 +++ gcc/config/i386/i386.c 2016-11-19 09:20:52.314913008 +0100 @@ -6845,7 +6845,7 @@ ix86_valid_target_attribute_tree (tree a | OPTION_MASK_ABI_64 | OPTION_MASK_ABI_X32 | OPTION_MASK_CODE16); - opts->x_ix86_isa_flags &= 0; + opts->x_ix86_isa_flags2 = 0; } else if (!orig_arch_specified) opts->x_ix86_arch_string = NULL; Jakub