This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: illegal instruction (CPU mismatch)
- From: Jeffrey Walton <noloader at gmail dot com>
- To: Markus Trippelsdorf <markus at trippelsdorf dot de>
- Cc: Mahmood Naderan <nt_mahmood at yahoo dot com>, "gcc-help at gcc dot gnu dot org" <gcc-help at gcc dot gnu dot org>
- Date: Fri, 16 Sep 2016 07:37:48 -0400
- Subject: Re: illegal instruction (CPU mismatch)
- Authentication-results: sourceware.org; auth=none
- References: <2070054246.1500449.1474012574681.ref@mail.yahoo.com> <2070054246.1500449.1474012574681@mail.yahoo.com> <20160916083133.GA313@x4>
- Reply-to: noloader at gmail dot com
>> Specifically, the 6380 has the following flags while 6282 doesn't have them
>>
>>
>> fma, f16c, tch, tce, tbm and bmi1
>>
>>
>> Problem is that, I have compiled OpenMPI and another program (which is written in Fortran) on the frontend. When issue the run via MPI, the compute node fails with an illegal instruction
I believe many AMD processors lack BMI, BMI2, ADX, etc. I don't know
about that particular model.
Try adding -mno-bmi to your CFLAGS and CXXFLAGS to clear the BMI/BMI2 issue.
I don't know about the other cpu flags. GCC is good about taking a cpu
feature, like ADX, and using -madx and -mno-adx. An exception is
RDRAND, whits omits the A for some reason; you use -mrdrnd.
Jeff