Windows-on-ARM-Experiments / mingw-woarm64-build

Workflows and build scripts for Windows on Arm64 GNU cross-compiler for `aarch64-w64-mingw32` target.
GNU General Public License v2.0
32 stars 4 forks source link

Investigating SVE/SVE2 and SME/SME2 #194

Open eukarpov opened 1 month ago

eukarpov commented 1 month ago

Thanks to @vejbomar work on unit tests grouping, we identified SVE/SVE2 and SME/SME2 as significant contributors to failing tests, totaling 212334. Based on the investigation, SVE is an optional extension for armv8.2-a, and SVE2/SME/SME2 require armv9-a. This means they are not priorities for the GCC 15 release for now.

The architecture version target is "armv8-a" for the GCC 15 release. It will help to focus on the right issues. SVE is an optional extension and is not needed for armv8-a. Once SVE becomes a priority, the target architecture version will be changed to "armv8 + sve".

To enable SVE support in GCC it should be enough to enable "armv8-a + sve" architecture. I have not tried that, and enabled SVE for armv8-a. It emits .variant_pcs (Symbol may follow different call convention) which is not supported by COFF. It was enough to add an empty handler for .variant_pcs to get bits for tests. Tests were failing and this is where investigation stopped.