https://gcc.gnu.org/g:299a8e2dc667e795991bc439d2cad5ea5bd379e2

commit r15-7480-g299a8e2dc667e795991bc439d2cad5ea5bd379e2
Author: Andrew Carlotti <andrew.carlo...@arm.com>
Date:   Wed Feb 5 17:27:56 2025 +0000

    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.

Diff:
---
 gcc/config/aarch64/aarch64-option-extensions.def               | 10 +++++-----
 gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c        |  6 +++---
 gcc/testsuite/gcc.target/aarch64/simd/vmla_lane_indices_1.c    |  2 +-
 .../gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_1.c  |  2 +-
 .../acle/general-c/ternary_mfloat8_lane_group_selection_1.c    |  2 +-
 gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_lane_mf8.c  |  4 ++--
 gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_mf8.c       |  4 ++--
 7 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/gcc/config/aarch64/aarch64-option-extensions.def 
b/gcc/config/aarch64/aarch64-option-extensions.def
index cc42bd518dca..aa8d315c240f 100644
--- a/gcc/config/aarch64/aarch64-option-extensions.def
+++ b/gcc/config/aarch64/aarch64-option-extensions.def
@@ -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")
 
diff --git a/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c 
b/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c
index 0dcfbec05bad..97d68b94512e 100644
--- a/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c
+++ b/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c
@@ -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
diff --git a/gcc/testsuite/gcc.target/aarch64/simd/vmla_lane_indices_1.c 
b/gcc/testsuite/gcc.target/aarch64/simd/vmla_lane_indices_1.c
index d1a69f4ba541..739ff4c6a75a 100644
--- a/gcc/testsuite/gcc.target/aarch64/simd/vmla_lane_indices_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/simd/vmla_lane_indices_1.c
@@ -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,
diff --git 
a/gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_1.c 
b/gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_1.c
index 9ad789a8ad2c..fa0df46db226 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_1.c
@@ -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, 
diff --git 
a/gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_lane_group_selection_1.c
 
b/gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_lane_group_selection_1.c
index dec00e3abf15..f6fce2f5c40f 100644
--- 
a/gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_lane_group_selection_1.c
+++ 
b/gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_lane_group_selection_1.c
@@ -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, 
diff --git a/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_lane_mf8.c 
b/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_lane_mf8.c
index 83fe5cff5d3c..ce16f8b26725 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_lane_mf8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_lane_mf8.c
@@ -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
 
 /*
diff --git a/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_mf8.c 
b/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_mf8.c
index 12e28e3284ff..c22019990ebf 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_mf8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/dot_mf8.c
@@ -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
 
 /*

Reply via email to