On Fri, Mar 28, 2014 at 10:46 PM, Joseph S. Myers
<jos...@codesourcery.com> wrote:
> If you build an x86_64 toolchain with --with-arch enabling various
> instruction set extensions by default, this causes some tests to fail
> that aren't expecting those extensions to be enabled.  This patch
> fixes various tests failing like that for an x86_64-linux-gnu
> toolchain configured --with-arch=bdver3, generally by using
> appropriate -mno-* options in the tests, or in the case of
> gcc.dg/pr45416.c by adjusting the scan-assembler to allow the
> alternative instruction that gets used in this case.  It's quite
> likely other such failures appear for other --with-arch choices.
>
> Tested x86_64-linux-gnu.  OK to commit?
>
> In addition to the failures fixed by this patch, there are many
> gcc.dg/vect tests where having additional vector extensions enabled
> breaks their expectations; I'm not sure of the best way to handle
> those.  And you get
>
> FAIL: gcc.target/i386/avx512f-vfmaddXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmaddXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmaddsubXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmaddsubXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubaddXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfmsubaddXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmaddXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmaddXXXps-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmsubXXXpd-2.c (test for excess errors)
> FAIL: gcc.target/i386/avx512f-vfnmsubXXXps-2.c (test for excess errors)
>
> which are assembler errors such as "operand type mismatch for
> `vfmaddpd'" - it looks like the compiler isn't really prepared for the
> -mavx512f -mfma4 combination, but I'm not sure what the best way to
> handle it is (producing invalid output doesn't seem right, however).

I will look into these.

> If you test with -march=bdver3 in the multilib options (runtest
> --target_board=unix/-march=bdver3) rather than as the configured
> default, you get extra failures for the usual reason of multilib
> options going after the options from dg-options (which I propose to
> address in the usual way using dg-skip-if for -march= options
> different from the one present in dg-options).
>
> 2014-03-28  Joseph Myers  <jos...@codesourcery.com>
>
>         * gcc.dg/pr45416.c: Allow bextr on x86.
>         * gcc.target/i386/fma4-builtin.c, gcc.target/i386/fma4-fma-2.c,
>         gcc.target/i386/fma4-fma.c, gcc.target/i386/fma4-vector-2.c,
>         gcc.target/i386/fma4-vector.c: Use -mno-fma.
>         * gcc.target/i386/l_fma_double_1.c,
>         gcc.target/i386/l_fma_double_2.c,
>         gcc.target/i386/l_fma_double_3.c,
>         gcc.target/i386/l_fma_double_4.c,
>         gcc.target/i386/l_fma_double_5.c,
>         gcc.target/i386/l_fma_double_6.c, gcc.target/i386/l_fma_float_1.c,
>         gcc.target/i386/l_fma_float_2.c, gcc.target/i386/l_fma_float_3.c,
>         gcc.target/i386/l_fma_float_4.c, gcc.target/i386/l_fma_float_5.c,
>         gcc.target/i386/l_fma_float_6.c: Use -mno-fma4.
>         * gcc.target/i386/pr27971.c: Use -mno-tbm.
>         * gcc.target/i386/pr42542-4a.c: Use -mno-avx.
>         * gcc.target/i386/pr59390.c: Use -mno-fma -mno-fma4.

OK.

Thanks,
Uros.

Reply via email to