Skip to content

Update to LLVM 18.1.0 rc 4 #169

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 25 commits into from
Mar 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
b9029ed
Extend GCC workaround to GCC < 8.4 for llvm::iterator_range ctor (#82…
RoboTux Feb 22, 2024
1ea6a98
ReleaseNotes: mention -mtls-dialect=desc (#82731)
MaskRay Feb 23, 2024
4195885
[Loads] Fix crash in isSafeToLoadUnconditionally with scalable access…
lukel97 Feb 22, 2024
9c434b4
[libc++] Only include <setjmp.h> from the C library if it exists (#81…
ldionne Feb 16, 2024
7103145
[docs][llvm-objcopy] Add missing formats (#81981)
uweigand Feb 16, 2024
4ba68ab
[llvm-readobj,ELF] Support --decompress/-z (#82594)
MaskRay Feb 22, 2024
c65d48d
[libc++] Add details about string annotations (#82730)
AdvenamTacet Feb 23, 2024
95b6a7f
Backport 0bf4f82 to release/18.x (#82571)
whentojump Feb 24, 2024
cd2ca7f
fix links on clang 18.1.0rc release page (#82739)
h-vetinari Feb 26, 2024
5393a05
[SystemZ] Require D12 for i128 accesses in isLegalAddressingMode() (#…
JonPsson1 Jan 24, 2024
9d51bd1
[SystemZ] Use VT (not ArgVT) for SlotVT in LowerCall(). (#82475)
JonPsson1 Feb 21, 2024
3aea3d2
[GVN] Drop nsw/nuw flags when replacing the result of a with.overflow…
dtcxzyw Feb 26, 2024
a5b2e43
[FlattenCFG] Fix the miscompilation where phi nodes exist in the merg…
dtcxzyw Feb 25, 2024
c8b11e9
Fix build on musl by including stdint.h (#81434)
Calandracas606 Feb 22, 2024
9274829
[clang][CodeGen] Keep processing the rest of AST after encountering u…
whentojump Feb 22, 2024
d1a1d7a
[llvm][AArch64] Do not inline a function with different signing schem…
DanielKristofKiss Feb 26, 2024
4cc7a75
[llvm-shlib] Change libLLVM-$MAJOR.so symlink to point to versioned S…
tstellar Feb 23, 2024
a7a74ec
[Clang] Fixes to immediate-escalating functions (#82281)
cor3ntin Feb 21, 2024
b4b76bd
[AArch64] Make +pauth enabled in Armv8.3-a by default (#78027)
atrosinenko Feb 1, 2024
8328334
[AArch64] Add the Ampere1B core (#81297)
ptomsich Feb 9, 2024
f1978d1
[AArch64] Initial Ampere1B scheduling model (#81341)
ptomsich Feb 14, 2024
6d8f929
[NFC][AArch64] fix whitespace in AArch64SchedNeoverseV1 (#81744)
ptomsich Feb 15, 2024
e2182a6
[Mips] Fix unable to handle inline assembly ends with compat-branch o…
yingopq Feb 24, 2024
461274b
MIPS: Fix asm constraints "f" and "r" for softfloat (#79116)
wzssyqa Feb 27, 2024
ffe63e3
Merge remote-tracking branch 'upstream/release/18.x' into rust-18-rc4
nikic Mar 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 29 additions & 23 deletions clang/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,12 @@ code bases.

To reduce such widespread breakages, as an extension, Clang accepts this code
with an existing warning ``-Wambiguous-reversed-operator`` warning.
Fixes `GH <https://github.com/llvm/llvm-project/issues/53954>`_.
Fixes `#53954 <https://github.com/llvm/llvm-project/issues/53954>`_.

- The CMake variable ``GCC_INSTALL_PREFIX`` (which sets the default
``--gcc-toolchain=``) is deprecated and will be removed. Specify
``--gcc-install-dir=`` or ``--gcc-triple=`` in a `configuration file
<https://clang.llvm.org/docs/UsersManual.html#configuration-files>` as a
<https://clang.llvm.org/docs/UsersManual.html#configuration-files>`_ as a
replacement.
(`#77537 <https://github.com/llvm/llvm-project/pull/77537>`_)

Expand Down Expand Up @@ -95,7 +95,7 @@ C/C++ Language Potentially Breaking Changes

- Fixed a bug in finding matching `operator!=` while adding reversed `operator==` as
outlined in "The Equality Operator You Are Looking For" (`P2468 <http://wg21.link/p2468r2>`_).
Fixes (`#68901: <https://github.com/llvm/llvm-project/issues/68901>`_).
Fixes (`#68901 <https://github.com/llvm/llvm-project/issues/68901>`_).

C++ Specific Potentially Breaking Changes
-----------------------------------------
Expand Down Expand Up @@ -139,10 +139,10 @@ C++ Specific Potentially Breaking Changes

- Remove the hardcoded path to the imported modules for C++20 named modules. Now we
require all the dependent modules to specified from the command line.
See (`#62707: <https://github.com/llvm/llvm-project/issues/62707>`_).
See (`#62707 <https://github.com/llvm/llvm-project/issues/62707>`_).

- Forbid `import XXX;` in C++ to find module `XXX` comes from explicit clang modules.
See (`#64755: <https://github.com/llvm/llvm-project/issues/64755>`_).
See (`#64755 <https://github.com/llvm/llvm-project/issues/64755>`_).

ABI Changes in This Version
---------------------------
Expand Down Expand Up @@ -199,7 +199,7 @@ C++ Language Changes

C++20 Feature Support
^^^^^^^^^^^^^^^^^^^^^
- Implemented `P1907R1 <https://wg21.link/P1907R1>` which extends allowed non-type template argument
- Implemented `P1907R1 <https://wg21.link/P1907R1>`_ which extends allowed non-type template argument
kinds with e.g. floating point values and pointers and references to subobjects.
This feature is still experimental. Accordingly, ``__cpp_nontype_template_args`` was not updated.
However, its support can be tested with ``__has_extension(cxx_generalized_nttp)``.
Expand Down Expand Up @@ -259,7 +259,7 @@ Resolutions to C++ Defect Reports

- Implemented `CWG2598 <https://wg21.link/CWG2598>`_ and `CWG2096 <https://wg21.link/CWG2096>`_,
making unions (that have either no members or at least one literal member) literal types.
(`#77924: <https://github.com/llvm/llvm-project/issues/77924>`_).
(`#77924 <https://github.com/llvm/llvm-project/issues/77924>`_).


C Language Changes
Expand Down Expand Up @@ -415,7 +415,7 @@ Attribute Changes in Clang
types after default argument promotion. As a result, it's no longer an
automatic diagnostic to use parameters of types that the format style
supports but that are never the result of default argument promotion, such as
``float``. (`#59824: <https://github.com/llvm/llvm-project/issues/59824>`_)
``float``. (`#59824 <https://github.com/llvm/llvm-project/issues/59824>`_)

- Clang now supports ``[[clang::preferred_type(type-name)]]`` as an attribute
which can be applied to a bit-field. This attribute helps to map a bit-field
Expand Down Expand Up @@ -483,13 +483,13 @@ Improvements to Clang's diagnostics
- Clang's ``-Wtautological-negation-compare`` flag now diagnoses logical
tautologies like ``x && !x`` and ``!x || x`` in expressions. This also
makes ``-Winfinite-recursion`` diagnose more cases.
(`#56035: <https://github.com/llvm/llvm-project/issues/56035>`_).
(`#56035 <https://github.com/llvm/llvm-project/issues/56035>`_).
- Clang constexpr evaluator now diagnoses compound assignment operators against
uninitialized variables as a read of uninitialized object.
(`#51536 <https://github.com/llvm/llvm-project/issues/51536>`_)
- Clang's ``-Wformat-truncation`` now diagnoses ``snprintf`` call that is known to
result in string truncation.
(`#64871: <https://github.com/llvm/llvm-project/issues/64871>`_).
(`#64871 <https://github.com/llvm/llvm-project/issues/64871>`_).
Existing warnings that similarly warn about the overflow in ``sprintf``
now falls under its own warning group ```-Wformat-overflow`` so that it can
be disabled separately from ``Wfortify-source``.
Expand All @@ -505,12 +505,12 @@ Improvements to Clang's diagnostics
- Clang now emits ``-Wcast-qual`` for functional-style cast expressions.
- Clang no longer emits irrelevant notes about unsatisfied constraint expressions
on the left-hand side of ``||`` when the right-hand side constraint is satisfied.
(`#54678: <https://github.com/llvm/llvm-project/issues/54678>`_).
(`#54678 <https://github.com/llvm/llvm-project/issues/54678>`_).
- Clang now prints its 'note' diagnostic in cyan instead of black, to be more compatible
with terminals with dark background colors. This is also more consistent with GCC.
- Clang now displays an improved diagnostic and a note when a defaulted special
member is marked ``constexpr`` in a class with a virtual base class
(`#64843: <https://github.com/llvm/llvm-project/issues/64843>`_).
(`#64843 <https://github.com/llvm/llvm-project/issues/64843>`_).
- ``-Wfixed-enum-extension`` and ``-Wmicrosoft-fixed-enum`` diagnostics are no longer
emitted when building as C23, since C23 standardizes support for enums with a
fixed underlying type.
Expand Down Expand Up @@ -550,10 +550,10 @@ Improvements to Clang's diagnostics
1 | static_assert("A\n"[1] == U'🌍');
| ~~~~~~~~~^~~~~~~~
- Clang now always diagnoses when using non-standard layout types in ``offsetof`` .
(`#64619: <https://github.com/llvm/llvm-project/issues/64619>`_)
(`#64619 <https://github.com/llvm/llvm-project/issues/64619>`_)
- Clang now diagnoses redefined defaulted constructor when redefined
defaulted constructor with different exception specs.
(`#69094: <https://github.com/llvm/llvm-project/issues/69094>`_)
(`#69094 <https://github.com/llvm/llvm-project/issues/69094>`_)
- Clang now diagnoses use of variable-length arrays in C++ by default (and
under ``-Wall`` in GNU++ mode). This is an extension supported by Clang and
GCC, but is very easy to accidentally use without realizing it's a
Expand Down Expand Up @@ -629,7 +629,7 @@ Improvements to Clang's diagnostics

- Clang now diagnoses definitions of friend function specializations, e.g. ``friend void f<>(int) {}``.
- Clang now diagnoses narrowing conversions involving const references.
(`#63151: <https://github.com/llvm/llvm-project/issues/63151>`_).
(`#63151 <https://github.com/llvm/llvm-project/issues/63151>`_).
- Clang now diagnoses unexpanded packs within the template argument lists of function template specializations.
- The warning `-Wnan-infinity-disabled` is now emitted when ``INFINITY``
or ``NAN`` are used in arithmetic operations or function arguments in
Expand All @@ -639,7 +639,7 @@ Improvements to Clang's diagnostics
- Clang now diagnoses attempts to bind a bitfield to an NTTP of a reference type as erroneous
converted constant expression and not as a reference to subobject.
- Clang now diagnoses ``auto`` and ``decltype(auto)`` in declarations of conversion function template
(`CWG1878: <https://cplusplus.github.io/CWG/issues/1878.html>`_)
(`CWG1878 <https://cplusplus.github.io/CWG/issues/1878.html>`_)
- Clang now diagnoses the requirement that non-template friend declarations with requires clauses
and template friend declarations with a constraint that depends on a template parameter from an
enclosing template must be a definition.
Expand Down Expand Up @@ -670,15 +670,15 @@ Improvements to Clang's diagnostics

- Clang now diagnoses import before module declarations but not in global
module fragment.
(`#67627: <https://github.com/llvm/llvm-project/issues/67627>`_).
(`#67627 <https://github.com/llvm/llvm-project/issues/67627>`_).

- Clang now diagnoses include headers with angle in module purviews, which is
not usually intended.
(`#68615: <https://github.com/llvm/llvm-project/issues/68615>`_)
(`#68615 <https://github.com/llvm/llvm-project/issues/68615>`_)

- Clang now won't mention invisible namespace when diagnose invisible declarations
inside namespace. The original diagnostic message is confusing.
(`#73893: <https://github.com/llvm/llvm-project/issues/73893>`_)
(`#73893 <https://github.com/llvm/llvm-project/issues/73893>`_)

Improvements to Clang's time-trace
----------------------------------
Expand Down Expand Up @@ -963,7 +963,7 @@ Bug Fixes to C++ Support

- Fix a crash when calling a non-constant immediate function
in the initializer of a static data member.
(`#65985 <https://github.com/llvm/llvm-project/issues/65985>_`).
(`#65985 <https://github.com/llvm/llvm-project/issues/65985>`_).
- Clang now properly converts static lambda call operator to function
pointers on win32.
(`#62594 <https://github.com/llvm/llvm-project/issues/62594>`_)
Expand All @@ -972,7 +972,7 @@ Bug Fixes to C++ Support
of a function template or a member function of a class template was assigned
the location of a non-defining declaration rather than the location of the
definition the specialization was instantiated from.
(`#26057 <https://github.com/llvm/llvm-project/issues/26057>`_`)
(`#26057 <https://github.com/llvm/llvm-project/issues/26057>`_)

- Fix a crash when a default member initializer of a base aggregate
makes an invalid call to an immediate function.
Expand All @@ -983,11 +983,11 @@ Bug Fixes to C++ Support
(`#48527 <https://github.com/llvm/llvm-project/issues/48527>`_)

- Clang now no longer asserts when an UnresolvedLookupExpr is used as an
expression requirement. (`#66612 https://github.com/llvm/llvm-project/issues/66612`)
expression requirement. (`#66612 <https://github.com/llvm/llvm-project/issues/66612>`_)

- Clang now disambiguates NTTP types when printing diagnostics where the
NTTP types are compared with the 'diff' method.
(`#66744 https://github.com/llvm/llvm-project/issues/66744`)
(`#66744 <https://github.com/llvm/llvm-project/issues/66744>`_)

- Fix crash caused by a spaceship operator returning a comparision category by
reference. Fixes:
Expand Down Expand Up @@ -1099,6 +1099,11 @@ Bug Fixes to C++ Support
- Fix incorrect code generation caused by the object argument of ``static operator()`` and ``static operator[]`` calls not being evaluated.
Fixes (`#67976 <https://github.com/llvm/llvm-project/issues/67976>`_)

- Fix crash when using an immediate-escalated function at global scope.
(`#82258 <https://github.com/llvm/llvm-project/issues/82258>`_)
- Correctly immediate-escalate lambda conversion functions.
(`#82258 <https://github.com/llvm/llvm-project/issues/82258>`_)

Bug Fixes to AST Handling
^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed an import failure of recursive friend class template.
Expand Down Expand Up @@ -1286,6 +1291,7 @@ RISC-V Support
for RV64.

- ``__attribute__((rvv_vector_bits(N)))`` is now supported for RVV vbool*_t types.
- ``-mtls-dialect=desc`` is now supported to enable TLS descriptors (TLSDESC).

CUDA/HIP Language Changes
^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
4 changes: 3 additions & 1 deletion clang/include/clang/Sema/Sema.h
Original file line number Diff line number Diff line change
Expand Up @@ -1090,7 +1090,9 @@ class Sema final {
if (FD) {
FD->setWillHaveBody(true);
S.ExprEvalContexts.back().InImmediateFunctionContext =
FD->isImmediateFunction();
FD->isImmediateFunction() ||
S.ExprEvalContexts[S.ExprEvalContexts.size() - 2]
.isConstantEvaluated();
S.ExprEvalContexts.back().InImmediateEscalatingFunctionContext =
S.getLangOpts().CPlusPlus20 && FD->isImmediateEscalating();
} else
Expand Down
1 change: 0 additions & 1 deletion clang/lib/Basic/Targets/AArch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,6 @@ void AArch64TargetInfo::getTargetDefinesARMV83A(const LangOptions &Opts,
MacroBuilder &Builder) const {
Builder.defineMacro("__ARM_FEATURE_COMPLEX", "1");
Builder.defineMacro("__ARM_FEATURE_JCVT", "1");
Builder.defineMacro("__ARM_FEATURE_PAUTH", "1");
// Also include the Armv8.2 defines
getTargetDefinesARMV82A(Opts, Builder);
}
Expand Down
4 changes: 3 additions & 1 deletion clang/lib/Basic/Targets/Mips.h
Original file line number Diff line number Diff line change
Expand Up @@ -237,12 +237,14 @@ class LLVM_LIBRARY_VISIBILITY MipsTargetInfo : public TargetInfo {
case 'r': // CPU registers.
case 'd': // Equivalent to "r" unless generating MIPS16 code.
case 'y': // Equivalent to "r", backward compatibility only.
case 'f': // floating-point registers.
case 'c': // $25 for indirect jumps
case 'l': // lo register
case 'x': // hilo register pair
Info.setAllowsRegister();
return true;
case 'f': // floating-point registers.
Info.setAllowsRegister();
return FloatABI != SoftFloat;
case 'I': // Signed 16-bit constant
case 'J': // Integer 0
case 'K': // Unsigned 16-bit constant
Expand Down
11 changes: 7 additions & 4 deletions clang/lib/CodeGen/CodeGenPGO.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -240,9 +240,12 @@ struct MapRegionCounters : public RecursiveASTVisitor<MapRegionCounters> {
if (MCDCMaxCond == 0)
return true;

/// At the top of the logical operator nest, reset the number of conditions.
if (LogOpStack.empty())
/// At the top of the logical operator nest, reset the number of conditions,
/// also forget previously seen split nesting cases.
if (LogOpStack.empty()) {
NumCond = 0;
SplitNestedLogicalOp = false;
}

if (const Expr *E = dyn_cast<Expr>(S)) {
const BinaryOperator *BinOp = dyn_cast<BinaryOperator>(E->IgnoreParens());
Expand Down Expand Up @@ -293,7 +296,7 @@ struct MapRegionCounters : public RecursiveASTVisitor<MapRegionCounters> {
"contains an operation with a nested boolean expression. "
"Expression will not be covered");
Diag.Report(S->getBeginLoc(), DiagID);
return false;
return true;
}

/// Was the maximum number of conditions encountered?
Expand All @@ -304,7 +307,7 @@ struct MapRegionCounters : public RecursiveASTVisitor<MapRegionCounters> {
"number of conditions (%0) exceeds max (%1). "
"Expression will not be covered");
Diag.Report(S->getBeginLoc(), DiagID) << NumCond << MCDCMaxCond;
return false;
return true;
}

// Otherwise, allocate the number of bytes required for the bitmap
Expand Down
4 changes: 2 additions & 2 deletions clang/lib/Sema/SemaExpr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18294,7 +18294,6 @@ void Sema::CheckUnusedVolatileAssignment(Expr *E) {
}

void Sema::MarkExpressionAsImmediateEscalating(Expr *E) {
assert(!FunctionScopes.empty() && "Expected a function scope");
assert(getLangOpts().CPlusPlus20 &&
ExprEvalContexts.back().InImmediateEscalatingFunctionContext &&
"Cannot mark an immediate escalating expression outside of an "
Expand All @@ -18311,7 +18310,8 @@ void Sema::MarkExpressionAsImmediateEscalating(Expr *E) {
} else {
assert(false && "expected an immediately escalating expression");
}
getCurFunction()->FoundImmediateEscalatingExpression = true;
if (FunctionScopeInfo *FI = getCurFunction())
FI->FoundImmediateEscalatingExpression = true;
}

ExprResult Sema::CheckForImmediateInvocation(ExprResult E, FunctionDecl *Decl) {
Expand Down
11 changes: 11 additions & 0 deletions clang/test/CodeGen/Mips/inline-asm-constraints.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// RUN: %clang_cc1 -emit-llvm -triple mips -target-feature +soft-float %s -o - | FileCheck %s --check-prefix=SOFT_FLOAT

// SOFT_FLOAT: call void asm sideeffect "", "r,~{$1}"(float %1)
void read_float(float *p) {
__asm__("" ::"r"(*p));
}

// SOFT_FLOAT: call void asm sideeffect "", "r,~{$1}"(double %1)
void read_double(double *p) {
__asm__("" :: "r"(*p));
}
10 changes: 5 additions & 5 deletions clang/test/CodeGen/aarch64-targetattr.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,19 +97,19 @@ void minusarch() {}
// CHECK: attributes #0 = { {{.*}} "target-features"="+crc,+fp-armv8,+lse,+neon,+ras,+rdm,+v8.1a,+v8.2a,+v8a" }
// CHECK: attributes #1 = { {{.*}} "target-features"="+crc,+fp-armv8,+fullfp16,+lse,+neon,+ras,+rdm,+sve,+v8.1a,+v8.2a,+v8a" }
// CHECK: attributes #2 = { {{.*}} "target-features"="+crc,+fp-armv8,+fullfp16,+lse,+neon,+ras,+rdm,+sve,+sve2,+v8.1a,+v8.2a,+v8a" }
// CHECK: attributes #3 = { {{.*}} "target-features"="+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+ras,+rcpc,+rdm,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" }
// CHECK: attributes #3 = { {{.*}} "target-features"="+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+ras,+rcpc,+rdm,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" }
// CHECK: attributes #4 = { {{.*}} "target-cpu"="cortex-a710" "target-features"="+bf16,+complxnum,+crc,+dotprod,+flagm,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+mte,+neon,+pauth,+ras,+rcpc,+rdm,+sb,+sve,+sve2,+sve2-bitperm" }
// CHECK: attributes #5 = { {{.*}} "tune-cpu"="cortex-a710" }
// CHECK: attributes #6 = { {{.*}} "target-cpu"="generic" }
// CHECK: attributes #7 = { {{.*}} "tune-cpu"="generic" }
// CHECK: attributes #8 = { {{.*}} "target-cpu"="neoverse-n1" "target-features"="+aes,+crc,+dotprod,+fp-armv8,+fullfp16,+lse,+neon,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs" "tune-cpu"="cortex-a710" }
// CHECK: attributes #9 = { {{.*}} "target-features"="+fp-armv8,+fullfp16,+neon,+sve" "tune-cpu"="cortex-a710" }
// CHECK: attributes #10 = { {{.*}} "target-cpu"="neoverse-v1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+neon,+rand,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+spe,+ssbs,+sve,+sve2" }
// CHECK: attributes #11 = { {{.*}} "target-cpu"="neoverse-v1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+neon,+rand,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+spe,+ssbs,-sve" }
// CHECK: attributes #10 = { {{.*}} "target-cpu"="neoverse-v1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+rand,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+spe,+ssbs,+sve,+sve2" }
// CHECK: attributes #11 = { {{.*}} "target-cpu"="neoverse-v1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fp16fml,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+rand,+ras,+rcpc,+rdm,+sha2,+sha3,+sm4,+spe,+ssbs,-sve" }
// CHECK: attributes #12 = { {{.*}} "target-features"="+fp-armv8,+fullfp16,+neon,+sve" }
// CHECK: attributes #13 = { {{.*}} "target-features"="+fp-armv8,+fullfp16,+neon,+sve,-sve2" }
// CHECK: attributes #14 = { {{.*}} "target-features"="+fullfp16" }
// CHECK: attributes #15 = { {{.*}} "target-cpu"="neoverse-n1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" "tune-cpu"="cortex-a710" }
// CHECK: attributes #16 = { {{.*}} "branch-target-enforcement"="true" "guarded-control-stack"="true" {{.*}} "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" "tune-cpu"="cortex-a710" }
// CHECK: attributes #15 = { {{.*}} "target-cpu"="neoverse-n1" "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" "tune-cpu"="cortex-a710" }
// CHECK: attributes #16 = { {{.*}} "branch-target-enforcement"="true" "guarded-control-stack"="true" {{.*}} "target-features"="+aes,+bf16,+complxnum,+crc,+dotprod,+fp-armv8,+fullfp16,+i8mm,+jsconv,+lse,+neon,+pauth,+ras,+rcpc,+rdm,+sha2,+spe,+ssbs,+sve,+sve2,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+v8.6a,+v8a" "tune-cpu"="cortex-a710" }
// CHECK: attributes #17 = { {{.*}} "target-features"="-neon" }
// CHECK: attributes #18 = { {{.*}} "target-features"="-v9.3a" }
1 change: 1 addition & 0 deletions clang/test/Driver/aarch64-cssc.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
// RUN: %clang -S -o - -emit-llvm --target=aarch64-none-elf -march=armv9.4-a %s 2>&1 | FileCheck %s
// RUN: %clang -S -o - -emit-llvm --target=aarch64-none-elf -march=armv9.4-a+cssc %s 2>&1 | FileCheck %s
// RUN: %clang -S -o - -emit-llvm --target=aarch64-none-elf -march=armv9.4-a+nocssc %s 2>&1 | FileCheck %s --check-prefix=NO_CSSC
// RUN: %clang -S -o - -emit-llvm --target=aarch64-none-elf -mcpu=ampere1b %s 2>&1 | FileCheck %s

// CHECK: "target-features"="{{.*}},+cssc
// NO_CSSC: "target-features"="{{.*}},-cssc
Expand Down
Loading