[Bug driver/60233] AVX instructions emitted with -march=native on host without AVX support

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Feb 17 06:33:00 GMT 2014


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60233

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2014-02-17
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |uros at gcc dot gnu.org
   Target Milestone|---                         |4.8.3
     Ever confirmed|0                           |1

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think the reason for this is that -march=native passes in your case -mf16c,
and -mf16c implies -mavx.  So, either OPTION_MASK_ISA_F16C_SET should not
include OPTION_MASK_ISA_AVX_SET, or the driver shouldn't set -mf16c if AVX
support is missing.
As at least some of the F16C instructions use ymmN registers, if we'd change
OPTION_MASK_ISA_F16C_SET, then the *256 TARGET_F16C patterns would also need to
be guarded with && TARGET_AVX.
For the latter alternative, we would need to do something like:
--- gcc/config/i386/driver-i386.c 2014-01-03 11:41:06.393269411 +0100
+++ gcc/config/i386/driver-i386.c 2014-02-17 07:32:41.289022308 +0100
@@ -513,6 +513,7 @@ const char *host_detect_local_cpu (int a
       has_avx2 = 0;
       has_fma = 0;
       has_fma4 = 0;
+      has_f16c = 0;
       has_xop = 0;
       has_xsave = 0;
       has_xsaveopt = 0;



More information about the Gcc-bugs mailing list