Skip to content

[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 and PEXT 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 and PEXT 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

Merge request reports