[PATCH] D24661: More processors support under AARch64 state for auto detection.

James Greenhalgh via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 21 07:49:28 PDT 2016


On Wed, Sep 21, 2016 at 07:52:36PM +0530, Suprateeka R Hegde wrote:
> On 20-Sep-2016 09:44 PM, James Greenhalgh wrote:
> >jgreenhalgh added a subscriber: jgreenhalgh.
> >
> >================ Comment at: lib/Target/AArch64/AArch64.td:259 @@
> >+258,3 @@ +                                   "AppliedMicro (APM)
> >X-Gene-1 processors", [ + FeatureCRC, + FeatureFPARMv8,
> >---------------- This disagrees with the GCC implementation of
> >-mcpu=xgene1 and the xgene-1 processors available in the GCC compile
> >farm (gcc113.osuosl.org is an APM X-Gene Mustang board). Are you
> >sure that the CRC feature should be enabled?
> 
> Yes. I am sure. Only the crypto (optional as per ARMv8-A specs) is
> missing on the first version of X-Gene (xgene1).
> 
> Are you talking about making it default? In that case I am OK with
> wither -mcpu=xgene1+crc (explicitly mention) or -mcpu=xgene1 (implicit;y
> enable CRC).
> 
> BTW, this need not match with GCC. Its all about documentation later on.

The X-Gene-1 machines I have access to do not have the CRC feature (also
optional as per ARMv8-A specs). I believe X-Gene 2 is the first generation
of X-Gene processors to support the CRC extension.

If you look at /proc/cpuinfo on any of the GCC compile farm X-Gene 1 machines
you'll find that the features string does not contain crc32:

  Features	: fp asimd evtstrm 

The compile farm machines are APM Mustang boards, but the Moonshot I have
access to also shows no CRC extension in features. For contrast, this is what
/proc/cpuinfo shows on a Cortex-A57 platform I have access to:

  Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 

This shows the optional Cryptography extensions (aes, pmull, sha1, sha2)
and the optional CRC extensions (crc32) as supported for this implementation
of Cortex-A57.

The implementations in GCC and the GNU assembler reflect this. -mcpu=xgene1
will not enable the CRC extension as the configurations of X-Gene 1 that
we have access to do not support the CRC extension.

I would find it surprising if passing -mcpu=xgene1 to Clang enabled
generation of instructions from the CRC extension, as these would cause a
SIGILL on my (and as far as I am aware, all) X-Gene 1 machines.

Thanks,
James



More information about the llvm-commits mailing list