Arm micro-architecture dispatch (#344)

Details:
- Reworked support for ARM hardware detection in bli_cpuid.c to parse 
  the result of a CPUID-like instruction.
- Added a64fx support to bli_gks.c.
- #include arm64 and arm32 family headers from bli_arch_config.h.
- Fix the ordering of the "armsve" and "a64fx" strings in the 
  config_name string array in bli_arch.c. The ordering did not match
  the ordering of the corresponding arch_t values in bli_type_defs.h,
  as it should have all along.
- Added clang support to make_defs.mk in arm64, cortexa53, cortexa57 
  subconfigs.
- Updated arm64 and arm32 families in config_registry.
- Updated docs/HardwareSupport.md to reflect added ARM support.
- Thanks to Dave Love, RuQing Xu, and Devin Matthews for their
  contributions in this PR (#344).
This commit is contained in:
Dave Love
2021-10-04 18:03:04 +00:00
committed by GitHub
parent 0a45bc0fbc
commit d0a0b4b841
10 changed files with 277 additions and 112 deletions

View File

@@ -24,7 +24,7 @@ A few remarks / reminders:
| AMD Steamroller (AVX/FMA3) | `steamroller` | `sdcz` | |
| AMD Excavator (AVX/FMA3) | `excavator` | `sdcz` | |
| AMD Zen (AVX/FMA3) | `zen` | `sdcz` | `sd` |
| Intel Core2 (SSE3) | `penryn` | `sd` | `d` |
| Intel Core2 (SSE3) | `penryn` | `sd` | `d` |
| Intel Sandy/Ivy Bridge (AVX/FMA3) | `sandybridge` | `sdcz` | |
| Intel Haswell, Broadwell (AVX/FMA3) | `haswell` | `sdcz` | `sd` |
| Intel Sky/Kaby/CoffeeLake (AVX/FMA3) | `haswell` | `sdcz` | `sd` |
@@ -35,6 +35,8 @@ A few remarks / reminders:
| ARMv7 Cortex-A15 (NEON) | `cortex-a15` | `sd` | |
| ARMv8 Cortex-A53 (NEON) | `cortex-a53` | `sd` | |
| ARMv8 Cortex-A57 (NEON) | `cortex-a57` | `sd` | |
| ARMv8.1 ThunderX2 (NEON) | `thunderx2` | `sd` | |
| ARMv8.1 A64FX (SVE) | `a64fx` | `d` | |
| IBM Blue Gene/Q (QPX int) | `bgq` | `d` | |
| IBM Power7 (QPX int) | `power7` | `d` | |
| template (C99) | `template` | `sdcz` | `sdcz` |