aarch64: Update fp8 dependencies

We agreed with LLVM developers to not enforce the architectural
dependencies between fp8 multiplication features, and they have already
been removed from LLVM and Binutils.  Remove them from GCC as well.

gcc/ChangeLog:

	* config/aarch64/aarch64-option-extensions.def
	(SSVE_FP8FMA): Adjust formatting.
	(FP8DOT4): Replace FP8FMA dependency with FP8.
	(SSVE_FP8DOT4): Replace SSVE_FP8FMA dependency with SME2+FP8.
	(FP8DOT2): Replace FP8DOT4 dependency with FP8.
	(SSVE_FP8DOT2): Replace SSVE_FP8DOT4 dependency with SME2+FP8.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/pragma_cpp_predefs_4.c: Adjust expected
	defines.
	* gcc.target/aarch64/simd/vmla_lane_indices_1.c: Modify target
	pragmas.
	* gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_1.c:
	Ditto.
	* gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_lane_group_selection_1.c:
	Ditto.
	* gcc.target/aarch64/sve2/acle/asm/dot_lane_mf8.c: Ditto.
	* gcc.target/aarch64/sve2/acle/asm/dot_mf8.c: Ditto.
This commit is contained in:
Andrew Carlotti
2025-02-05 17:27:56 +00:00
parent 00d943bf84
commit 299a8e2dc6
7 changed files with 15 additions and 15 deletions

View File

@@ -261,17 +261,17 @@ AARCH64_OPT_EXTENSION("fp8", FP8, (SIMD), (), (), "f8cvt")
AARCH64_OPT_EXTENSION("fp8fma", FP8FMA, (FP8), (), (), "f8fma")
AARCH64_OPT_EXTENSION("ssve-fp8fma", SSVE_FP8FMA, (SME2,FP8), (), (), "smesf8fma")
AARCH64_OPT_EXTENSION("ssve-fp8fma", SSVE_FP8FMA, (SME2, FP8), (), (), "smesf8fma")
AARCH64_OPT_EXTENSION("faminmax", FAMINMAX, (SIMD), (), (), "faminmax")
AARCH64_OPT_EXTENSION("fp8dot4", FP8DOT4, (FP8FMA), (), (), "f8dp4")
AARCH64_OPT_EXTENSION("fp8dot4", FP8DOT4, (FP8), (), (), "f8dp4")
AARCH64_OPT_EXTENSION("ssve-fp8dot4", SSVE_FP8DOT4, (SSVE_FP8FMA), (), (), "smesf8dp4")
AARCH64_OPT_EXTENSION("ssve-fp8dot4", SSVE_FP8DOT4, (SME2, FP8), (), (), "smesf8dp4")
AARCH64_OPT_EXTENSION("fp8dot2", FP8DOT2, (FP8DOT4), (), (), "f8dp2")
AARCH64_OPT_EXTENSION("fp8dot2", FP8DOT2, (FP8), (), (), "f8dp2")
AARCH64_OPT_EXTENSION("ssve-fp8dot2", SSVE_FP8DOT2, (SSVE_FP8DOT4), (), (), "smesf8dp2")
AARCH64_OPT_EXTENSION("ssve-fp8dot2", SSVE_FP8DOT2, (SME2, FP8), (), (), "smesf8dp2")
AARCH64_OPT_EXTENSION("lut", LUT, (SIMD), (), (), "lut")

View File

@@ -292,7 +292,7 @@
#ifndef __ARM_FEATURE_FP8
#error Foo
#endif
#ifndef __ARM_FEATURE_FP8FMA
#ifdef __ARM_FEATURE_FP8FMA
#error Foo
#endif
#ifndef __ARM_FEATURE_FP8DOT4
@@ -306,10 +306,10 @@
#ifndef __ARM_FEATURE_FP8
#error Foo
#endif
#ifndef __ARM_FEATURE_FP8FMA
#ifdef __ARM_FEATURE_FP8FMA
#error Foo
#endif
#ifndef __ARM_FEATURE_FP8DOT4
#ifdef __ARM_FEATURE_FP8DOT4
#error Foo
#endif
#ifndef __ARM_FEATURE_FP8DOT2

View File

@@ -2,7 +2,7 @@
#include "arm_neon.h"
#pragma GCC target "+fp8dot4+fp8dot2"
#pragma GCC target "+fp8fma"
void
test(float16x4_t f16, float16x8_t f16q, float32x2_t f32,

View File

@@ -2,7 +2,7 @@
#include <arm_sve.h>
#pragma GCC target ("arch=armv8.2-a+sve2+fp8dot2")
#pragma GCC target ("arch=armv8.2-a+sve2+fp8fma+fp8dot4+fp8dot2")
void
test (svfloat16_t f16, svmfloat8_t f8, fpm_t fpm,

View File

@@ -2,7 +2,7 @@
#include <arm_sve.h>
#pragma GCC target ("arch=armv8.2-a+ssve-fp8fma+ssve-fp8dot2")
#pragma GCC target ("arch=armv8.2-a+ssve-fp8fma+ssve-fp8dot4+ssve-fp8dot2")
void
f1 (svfloat16_t f16, svmfloat8_t f8, fpm_t fpm,

View File

@@ -4,9 +4,9 @@
#include "test_sve_acle.h"
#pragma GCC target "+fp8dot2"
#pragma GCC target "+fp8dot2+fp8dot4"
#ifdef STREAMING_COMPATIBLE
#pragma GCC target "+ssve-fp8dot2"
#pragma GCC target "+ssve-fp8dot2+ssve-fp8dot4"
#endif
/*

View File

@@ -4,9 +4,9 @@
#include "test_sve_acle.h"
#pragma GCC target "+fp8dot2"
#pragma GCC target "+fp8dot2+fp8dot4"
#ifdef STREAMING_COMPATIBLE
#pragma GCC target "+ssve-fp8dot2"
#pragma GCC target "+ssve-fp8dot2+ssve-fp8dot4"
#endif
/*