[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