[x86] Addition of AMD CPU targets: Bobcat, Jaguar, Piledriver, Excavator, Zen2 and Zen3
Summary
This merge request introduces a number of AMD CPU targets for the x86 compiler:
-
Bobcat: supports
LZCNT
separately without BMI1. - Jaguar: supports BMI1 without BMI2. Supports AVX without FMA. This processor is used in the Playstation 4 and XBox One, so is an important target.
- Piledriver: supports BMI1 without BMI2. Supports AVX and FMA but not AVX2.
-
Excavator: almost identical to COREAVX2, but has the added caveat that
PDEP
andPEXT
are much slower due to being implemented in microcode. COREAVX2 has optimization hint flags to indicate their fast speed which EXCAVATOR does not have. - Zen2: identical to Zen, but this processor is used in the Playstation 5 and XBox Series S/X consoles, so is an important target.
-
Zen3:
PDEP
andPEXT
are finally hardware-implemented!
The second commit introduces the FMA
option for the -Cf
command-line argument, which sits between AVX and AVX2. This is meant to indicate support for FMA3 but not AVX2. -CfFMA
pairs well with -CpPILEDRIVER
.
System
- Processor architecture: i8086 (FPU flags only), i386, x86_64
Additional Notes
-CfFMA
sends the -mfma
argument to the LLVM Clang Assembler, so this will need testing.
Edited by J. Gareth "Kit" Moreton