[clang][aarch64] Drop experimental from __ARM_FEATURE_SVE_BITS macro

The __ARM_FEATURE_SVE_BITS feature macro is specified in the Arm C
Language Extensions (ACLE) for SVE [1] (version 00bet5). From the spec,
where __ARM_FEATURE_SVE_BITS==N:

    When N is nonzero, indicates that the implementation is generating
    code for an N-bit SVE target and that the arm_sve_vector_bits(N)
    attribute is available.

This was defined in D83550 as __ARM_FEATURE_SVE_BITS_EXPERIMENTAL and
enabled under the -msve-vector-bits flag to simplify initial tests.
This patch drops _EXPERIMENTAL now there is support for the feature.

[1] https://developer.arm.com/documentation/100987/latest

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D86720
This commit is contained in:
Cullen Rhodes 2020-09-03 09:19:41 +00:00
parent 4c5e4aa89b
commit f9091e56d3
13 changed files with 22 additions and 29 deletions

View file

@ -4944,10 +4944,6 @@ to the SVE predicate type ``svbool_t``, this excludes tuple types such as
``N==__ARM_FEATURE_SVE_BITS``, the implementation defined feature macro that is
enabled under the ``-msve-vector-bits`` flag.
NOTE: This feature is currently WIP, the ``-msve-vector-bits=`` flag defines
the ``__ARM_FEATURE_SVE_BITS_EXPERIMENTAL`` macro. This feature is complete
when experimental is dropped.
For more information See `Arm C Language Extensions for SVE
<https://developer.arm.com/documentation/100987/latest>`_ for more information.
}];

View file

@ -378,8 +378,7 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions &Opts,
Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8");
if (Opts.ArmSveVectorBits)
Builder.defineMacro("__ARM_FEATURE_SVE_BITS_EXPERIMENTAL",
Twine(Opts.ArmSveVectorBits));
Builder.defineMacro("__ARM_FEATURE_SVE_BITS", Twine(Opts.ArmSveVectorBits));
}
ArrayRef<Builtin::Info> AArch64TargetInfo::getTargetBuiltins() const {

View file

@ -6,7 +6,7 @@
#include <arm_sve.h>
#define N __ARM_FEATURE_SVE_BITS_EXPERIMENTAL
#define N __ARM_FEATURE_SVE_BITS
typedef svint64_t fixed_int64_t __attribute__((arm_sve_vector_bits(N)));
typedef svfloat64_t fixed_float64_t __attribute__((arm_sve_vector_bits(N)));

View file

@ -4,7 +4,7 @@
#include <arm_sve.h>
#define N __ARM_FEATURE_SVE_BITS_EXPERIMENTAL
#define N __ARM_FEATURE_SVE_BITS
typedef svint32_t fixed_int32_t __attribute__((arm_sve_vector_bits(N)));
typedef svfloat64_t fixed_float64_t __attribute__((arm_sve_vector_bits(N)));

View file

@ -4,7 +4,7 @@
#include <arm_sve.h>
#define N __ARM_FEATURE_SVE_BITS_EXPERIMENTAL
#define N __ARM_FEATURE_SVE_BITS
typedef svint32_t fixed_int32_t __attribute__((arm_sve_vector_bits(N)));
typedef svfloat64_t fixed_float64_t __attribute__((arm_sve_vector_bits(N)));

View file

@ -3,7 +3,7 @@
#include <arm_sve.h>
#define N __ARM_FEATURE_SVE_BITS_EXPERIMENTAL
#define N __ARM_FEATURE_SVE_BITS
typedef svint32_t fixed_int32_t __attribute__((arm_sve_vector_bits(N)));
typedef svbool_t fixed_bool_t __attribute__((arm_sve_vector_bits(N)));

View file

@ -5,7 +5,7 @@
#include <arm_sve.h>
#define N __ARM_FEATURE_SVE_BITS_EXPERIMENTAL
#define N __ARM_FEATURE_SVE_BITS
typedef svint64_t fixed_int64_t __attribute__((arm_sve_vector_bits(N)));
typedef svbfloat16_t fixed_bfloat16_t __attribute__((arm_sve_vector_bits(N)));

View file

@ -7,7 +7,7 @@
#include <arm_sve.h>
#define N __ARM_FEATURE_SVE_BITS_EXPERIMENTAL
#define N __ARM_FEATURE_SVE_BITS
typedef svint8_t fixed_int8_t __attribute__((arm_sve_vector_bits(N)));
typedef svint16_t fixed_int16_t __attribute__((arm_sve_vector_bits(N)));

View file

@ -14,7 +14,7 @@
// RUN: -target-feature +sve -target-feature +bf16 -msve-vector-bits=2048 \
// RUN: | FileCheck %s --check-prefix=CHECK-2048
#define N __ARM_FEATURE_SVE_BITS_EXPERIMENTAL
#define N __ARM_FEATURE_SVE_BITS
typedef __SVInt8_t fixed_int8_t __attribute__((arm_sve_vector_bits(N)));
typedef __SVInt16_t fixed_int16_t __attribute__((arm_sve_vector_bits(N)));

View file

@ -14,7 +14,7 @@
// RUN: -target-feature +sve -target-feature +bf16 -msve-vector-bits=2048 \
// RUN: | FileCheck %s --check-prefix=CHECK-2048
#define N __ARM_FEATURE_SVE_BITS_EXPERIMENTAL
#define N __ARM_FEATURE_SVE_BITS
namespace std {
class type_info;

View file

@ -44,12 +44,12 @@
// CHECK-NOT: __ARM_BF16_FORMAT_ALTERNATIVE 1
// CHECK-NOT: __ARM_FEATURE_BF16 1
// CHECK-NOT: __ARM_FEATURE_BF16_VECTOR_ARITHMETIC 1
// CHECK-NOT: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 0
// CHECK-NOT: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 128
// CHECK-NOT: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 256
// CHECK-NOT: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 512
// CHECK-NOT: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 1024
// CHECK-NOT: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 2048
// CHECK-NOT: __ARM_FEATURE_SVE_BITS 0
// CHECK-NOT: __ARM_FEATURE_SVE_BITS 128
// CHECK-NOT: __ARM_FEATURE_SVE_BITS 256
// CHECK-NOT: __ARM_FEATURE_SVE_BITS 512
// CHECK-NOT: __ARM_FEATURE_SVE_BITS 1024
// CHECK-NOT: __ARM_FEATURE_SVE_BITS 2048
// RUN: %clang -target aarch64_be-eabi -x c -E -dM %s -o - | FileCheck %s -check-prefix CHECK-BIGENDIAN
// CHECK-BIGENDIAN: __ARM_BIG_ENDIAN 1
@ -444,10 +444,8 @@
// RUN: %clang -target aarch64-arm-none-eabi -march=armv8-a+sve -msve-vector-bits=1024 -x c -E -dM %s -o - 2>&1 | FileCheck -check-prefix=CHECK-SVE-VECTOR-BITS-1024 %s
// RUN: %clang -target aarch64-arm-none-eabi -march=armv8-a+sve -msve-vector-bits=2048 -x c -E -dM %s -o - 2>&1 | FileCheck -check-prefix=CHECK-SVE-VECTOR-BITS-2048 %s
// RUN: %clang -target aarch64-arm-none-eabi -march=armv8-a+sve -msve-vector-bits=2048 -x c -E -dM %s -o - 2>&1 | FileCheck -check-prefix=CHECK-SVE-VECTOR-BITS-2048 %s
// NOTE: The __ARM_FEATURE_SVE_BITS feature macro is experimental until the
// feature is complete.
// CHECK-SVE-VECTOR-BITS-128: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 128
// CHECK-SVE-VECTOR-BITS-256: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 256
// CHECK-SVE-VECTOR-BITS-512: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 512
// CHECK-SVE-VECTOR-BITS-1024: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 1024
// CHECK-SVE-VECTOR-BITS-2048: __ARM_FEATURE_SVE_BITS_EXPERIMENTAL 2048
// CHECK-SVE-VECTOR-BITS-128: __ARM_FEATURE_SVE_BITS 128
// CHECK-SVE-VECTOR-BITS-256: __ARM_FEATURE_SVE_BITS 256
// CHECK-SVE-VECTOR-BITS-512: __ARM_FEATURE_SVE_BITS 512
// CHECK-SVE-VECTOR-BITS-1024: __ARM_FEATURE_SVE_BITS 1024
// CHECK-SVE-VECTOR-BITS-2048: __ARM_FEATURE_SVE_BITS 2048

View file

@ -4,7 +4,7 @@
// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fsyntax-only -verify -msve-vector-bits=1024 -fallow-half-arguments-and-returns %s
// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fsyntax-only -verify -msve-vector-bits=2048 -fallow-half-arguments-and-returns %s
#define N __ARM_FEATURE_SVE_BITS_EXPERIMENTAL
#define N __ARM_FEATURE_SVE_BITS
typedef __SVInt8_t svint8_t;
typedef __SVInt16_t svint16_t;

View file

@ -1,7 +1,7 @@
// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fsyntax-only -verify -std=c++11 -msve-vector-bits=512 -fallow-half-arguments-and-returns %s
// expected-no-diagnostics
#define N __ARM_FEATURE_SVE_BITS_EXPERIMENTAL
#define N __ARM_FEATURE_SVE_BITS
typedef __SVInt8_t svint8_t;
typedef svint8_t fixed_int8_t __attribute__((arm_sve_vector_bits(N)));