mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
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:
@@ -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")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
/*
|
||||
|
||||
@@ -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
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user