diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td --- a/clang/include/clang/Basic/AttrDocs.td +++ b/clang/include/clang/Basic/AttrDocs.td @@ -4944,10 +4944,6 @@ ``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 `_ for more information. }]; diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp --- a/clang/lib/Basic/Targets/AArch64.cpp +++ b/clang/lib/Basic/Targets/AArch64.cpp @@ -378,8 +378,7 @@ 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 AArch64TargetInfo::getTargetBuiltins() const { diff --git a/clang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c b/clang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c --- a/clang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c +++ b/clang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c @@ -6,7 +6,7 @@ #include -#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))); diff --git a/clang/test/CodeGen/attr-arm-sve-vector-bits-call.c b/clang/test/CodeGen/attr-arm-sve-vector-bits-call.c --- a/clang/test/CodeGen/attr-arm-sve-vector-bits-call.c +++ b/clang/test/CodeGen/attr-arm-sve-vector-bits-call.c @@ -4,7 +4,7 @@ #include -#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))); diff --git a/clang/test/CodeGen/attr-arm-sve-vector-bits-cast.c b/clang/test/CodeGen/attr-arm-sve-vector-bits-cast.c --- a/clang/test/CodeGen/attr-arm-sve-vector-bits-cast.c +++ b/clang/test/CodeGen/attr-arm-sve-vector-bits-cast.c @@ -4,7 +4,7 @@ #include -#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))); diff --git a/clang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c b/clang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c --- a/clang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c +++ b/clang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c @@ -3,7 +3,7 @@ #include -#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))); diff --git a/clang/test/CodeGen/attr-arm-sve-vector-bits-globals.c b/clang/test/CodeGen/attr-arm-sve-vector-bits-globals.c --- a/clang/test/CodeGen/attr-arm-sve-vector-bits-globals.c +++ b/clang/test/CodeGen/attr-arm-sve-vector-bits-globals.c @@ -5,7 +5,7 @@ #include -#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))); diff --git a/clang/test/CodeGen/attr-arm-sve-vector-bits-types.c b/clang/test/CodeGen/attr-arm-sve-vector-bits-types.c --- a/clang/test/CodeGen/attr-arm-sve-vector-bits-types.c +++ b/clang/test/CodeGen/attr-arm-sve-vector-bits-types.c @@ -7,7 +7,7 @@ #include -#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))); diff --git a/clang/test/CodeGenCXX/aarch64-mangle-sve-fixed-vectors.cpp b/clang/test/CodeGenCXX/aarch64-mangle-sve-fixed-vectors.cpp --- a/clang/test/CodeGenCXX/aarch64-mangle-sve-fixed-vectors.cpp +++ b/clang/test/CodeGenCXX/aarch64-mangle-sve-fixed-vectors.cpp @@ -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))); diff --git a/clang/test/CodeGenCXX/aarch64-sve-fixedtypeinfo.cpp b/clang/test/CodeGenCXX/aarch64-sve-fixedtypeinfo.cpp --- a/clang/test/CodeGenCXX/aarch64-sve-fixedtypeinfo.cpp +++ b/clang/test/CodeGenCXX/aarch64-sve-fixedtypeinfo.cpp @@ -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; diff --git a/clang/test/Preprocessor/aarch64-target-features.c b/clang/test/Preprocessor/aarch64-target-features.c --- a/clang/test/Preprocessor/aarch64-target-features.c +++ b/clang/test/Preprocessor/aarch64-target-features.c @@ -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 diff --git a/clang/test/Sema/attr-arm-sve-vector-bits.c b/clang/test/Sema/attr-arm-sve-vector-bits.c --- a/clang/test/Sema/attr-arm-sve-vector-bits.c +++ b/clang/test/Sema/attr-arm-sve-vector-bits.c @@ -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; diff --git a/clang/test/SemaCXX/attr-arm-sve-vector-bits.cpp b/clang/test/SemaCXX/attr-arm-sve-vector-bits.cpp --- a/clang/test/SemaCXX/attr-arm-sve-vector-bits.cpp +++ b/clang/test/SemaCXX/attr-arm-sve-vector-bits.cpp @@ -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)));