Skip to content

Commit 9f65140

Browse files
authored
merge main into amd-staging (llvm#3314)
2 parents 0d27bb3 + 80e7cf6 commit 9f65140

File tree

10 files changed

+2647
-1648
lines changed

10 files changed

+2647
-1648
lines changed

clang-tools-extra/clang-tidy/modernize/UseDesignatedInitializersCheck.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,11 @@ void UseDesignatedInitializersCheck::registerMatchers(MatchFinder *Finder) {
121121
hasAnyBase(hasType(cxxRecordDecl(has(fieldDecl()))));
122122
Finder->addMatcher(
123123
initListExpr(
124-
hasType(cxxRecordDecl(
125-
RestrictToPODTypes ? isPOD() : isAggregate(),
126-
unless(anyOf(HasBaseWithFields, hasName("::std::array"))))
127-
.bind("type")),
124+
hasType(hasUnqualifiedDesugaredType(recordType(hasDeclaration(
125+
cxxRecordDecl(
126+
RestrictToPODTypes ? isPOD() : isAggregate(),
127+
unless(anyOf(HasBaseWithFields, hasName("::std::array"))))
128+
.bind("type"))))),
128129
IgnoreSingleElementAggregates ? hasMoreThanOneElement() : anything(),
129130
unless(isFullyDesignated()))
130131
.bind("init"),
@@ -155,7 +156,7 @@ void UseDesignatedInitializersCheck::check(
155156
DiagnosticBuilder Diag =
156157
diag(InitList->getLBraceLoc(),
157158
"use designated initializer list to initialize %0");
158-
Diag << Type << InitList->getSourceRange();
159+
Diag << InitList->getType() << InitList->getSourceRange();
159160
for (const Stmt *InitExpr : *SyntacticInitList) {
160161
const auto Designator = Designators[InitExpr->getBeginLoc()];
161162
if (Designator && !Designator->empty())

clang-tools-extra/docs/ReleaseNotes.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ Changes in existing checks
122122
- Improved :doc:`misc-header-include-cycle
123123
<clang-tidy/checks/misc/header-include-cycle>` check performance.
124124

125+
- Improved :doc:`modernize-use-designated-initializers
126+
<clang-tidy/checks/modernize/use-designated-initializers>` check to
127+
suggest using designated initializers for aliased aggregate types.
128+
125129
- Improved :doc:`modernize-use-std-format
126130
<clang-tidy/checks/modernize/use-std-format>` check to correctly match
127131
when the format string is converted to a different type by an implicit

clang-tools-extra/test/clang-tidy/checkers/modernize/use-designated-initializers.cpp

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,3 +224,55 @@ std::array a{1,2,3};
224224
std::array<int,2> b{10, 11};
225225
using array = std::array<int, 2>;
226226
array c{10, 11};
227+
228+
struct S16 {
229+
int a;
230+
int b;
231+
};
232+
233+
using S17 = S16;
234+
235+
S17 s171{1, 2};
236+
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: use designated initializer list to initialize 'S17' (aka 'S16') [modernize-use-designated-initializers]
237+
// CHECK-MESSAGES: :[[@LINE-9]]:1: note: aggregate type is defined here
238+
// CHECK-FIXES: S17 s171{.a=1, .b=2};
239+
// CHECK-MESSAGES-POD: :[[@LINE-4]]:9: warning: use designated initializer list to initialize 'S17' (aka 'S16') [modernize-use-designated-initializers]
240+
// CHECK-MESSAGES-POD: :[[@LINE-12]]:1: note: aggregate type is defined here
241+
// CHECK-FIXES-POD: S17 s171{.a=1, .b=2};
242+
243+
S17 s172{.a=1, 2};
244+
// CHECK-MESSAGES: :[[@LINE-1]]:16: warning: use designated init expression to initialize field 'b' [modernize-use-designated-initializers]
245+
// CHECK-MESSAGES-POD: :[[@LINE-2]]:16: warning: use designated init expression to initialize field 'b' [modernize-use-designated-initializers]
246+
// CHECK-FIXES: S17 s172{.a=1, .b=2};
247+
248+
S17 s173{.a=1, .b=2}; // no issue
249+
250+
typedef S16 S18;
251+
252+
S18 s181{1, 2};
253+
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: use designated initializer list to initialize 'S18' (aka 'S16') [modernize-use-designated-initializers]
254+
// CHECK-MESSAGES-POD: :[[@LINE-2]]:9: warning: use designated initializer list to initialize 'S18' (aka 'S16') [modernize-use-designated-initializers]
255+
256+
S18 s182{1, .b=2};
257+
// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: use designated init expression to initialize field 'a' [modernize-use-designated-initializers]
258+
// CHECK-MESSAGES-POD: :[[@LINE-2]]:10: warning: use designated init expression to initialize field 'a' [modernize-use-designated-initializers]
259+
// CHECK-FIXES: S18 s182{.a=1, .b=2};
260+
261+
S18 s183{.a=1, .b=2}; // no issue
262+
263+
struct S19 {
264+
int i;
265+
S17 s17;
266+
S18 s18;
267+
};
268+
269+
S19 s191{1, {2, .b=3}, {4, 5}};
270+
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: use designated initializer list to initialize 'S19' [modernize-use-designated-initializers]
271+
// CHECK-MESSAGES: :[[@LINE-8]]:1: note: aggregate type is defined here
272+
// CHECK-MESSAGES: :[[@LINE-3]]:14: warning: use designated init expression to initialize field 'a' [modernize-use-designated-initializers]
273+
// CHECK-MESSAGES: :[[@LINE-4]]:24: warning: use designated initializer list to initialize 'S18' (aka 'S16') [modernize-use-designated-initializers]
274+
// CHECK-MESSAGES-POD: :[[@LINE-5]]:9: warning: use designated initializer list to initialize 'S19' [modernize-use-designated-initializers]
275+
// CHECK-MESSAGES-POD: :[[@LINE-12]]:1: note: aggregate type is defined here
276+
// CHECK-MESSAGES-POD: :[[@LINE-7]]:14: warning: use designated init expression to initialize field 'a' [modernize-use-designated-initializers]
277+
// CHECK-MESSAGES-POD: :[[@LINE-8]]:24: warning: use designated initializer list to initialize 'S18' (aka 'S16') [modernize-use-designated-initializers]
278+
// CHECK-FIXES: S19 s191{.i=1, .s17={.a=2, .b=3}, .s18={.a=4, .b=5}};
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// RUN: %clang --target=riscv32-unknown-linux-gnu -march=rv32i -E -dM %s \
2+
// RUN: -o - | FileCheck %s
3+
// RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -E -dM %s \
4+
// RUN: -o - | FileCheck %s
5+
6+
// CHECK-NOT: __riscv_xcvalu {{.*$}}
7+
// CHECK-NOT: __riscv_xcvbi {{.*$}}
8+
// CHECK-NOT: __riscv_xcvbitmanip {{.*$}}
9+
// CHECK-NOT: __riscv_xcvelw {{.*$}}
10+
// CHECK-NOT: __riscv_xcvmac {{.*$}}
11+
// CHECK-NOT: __riscv_xcvmem {{.*$}}
12+
// CHECK-NOT: __riscv_xcvsimd {{.*$}}
13+
14+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
15+
// RUN: -march=rv32ixcvalu -E -dM %s \
16+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVALU-EXT %s
17+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
18+
// RUN: -march=rv64ixcvalu -E -dM %s \
19+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVALU-EXT %s
20+
// CHECK-XCVALU-EXT: __riscv_xcvalu 1000000{{$}}
21+
22+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
23+
// RUN: -march=rv32ixcvbi -E -dM %s \
24+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVBI-EXT %s
25+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
26+
// RUN: -march=rv64ixcvbi -E -dM %s \
27+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVBI-EXT %s
28+
// CHECK-XCVBI-EXT: __riscv_xcvbi 1000000{{$}}
29+
30+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
31+
// RUN: -march=rv32ixcvbitmanip -E -dM %s \
32+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVBITMANIP-EXT %s
33+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
34+
// RUN: -march=rv64ixcvbitmanip -E -dM %s \
35+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVBITMANIP-EXT %s
36+
// CHECK-XCVBITMANIP-EXT: __riscv_xcvbitmanip 1000000{{$}}
37+
38+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
39+
// RUN: -march=rv32ixcvmac -E -dM %s \
40+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVMAC-EXT %s
41+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
42+
// RUN: -march=rv64ixcvmac -E -dM %s \
43+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVMAC-EXT %s
44+
// CHECK-XCVMAC-EXT: __riscv_xcvmac 1000000{{$}}
45+
46+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
47+
// RUN: -march=rv32ixcvmem -E -dM %s \
48+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVMEM-EXT %s
49+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
50+
// RUN: -march=rv64ixcvmem -E -dM %s \
51+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVMEM-EXT %s
52+
// CHECK-XCVMEM-EXT: __riscv_xcvmem 1000000{{$}}
53+
54+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
55+
// RUN: -march=rv32ixcvsimd -E -dM %s \
56+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVSIMD-EXT %s
57+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
58+
// RUN: -march=rv64ixcvsimd -E -dM %s \
59+
// RUN: -o - | FileCheck --check-prefix=CHECK-XCVSIMD-EXT %s
60+
// CHECK-XCVSIMD-EXT: __riscv_xcvsimd 1000000{{$}}

clang/test/Preprocessor/riscv-target-features-sifive.c

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
// RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -E -dM %s \
44
// RUN: -o - | FileCheck %s
55

6+
// CHECK-NOT: __riscv_xsfcease {{.*$}}
7+
// CHECK-NOT: __riscv_xsfvcp {{.*$}}
8+
// CHECK-NOT: __riscv_xsfvfnrclipxfqf {{.*$}}
9+
// CHECK-NOT: __riscv_xsfvfwmaccqqq {{.*$}}
10+
// CHECK-NOT: __riscv_xsfqmaccdod {{.*$}}
11+
// CHECK-NOT: __riscv_xsfvqmaccqoq {{.*$}}
12+
// CHECK-NOT: __riscv_xsifivecdiscarddlone {{.*$}}
13+
// CHECK-NOT: __riscv_xsifivecflushdlone {{.*$}}
614
// CHECK-NOT: __riscv_xsfmm128t {{.*$}}
715
// CHECK-NOT: __riscv_xsfmm16t {{.*$}}
816
// CHECK-NOT: __riscv_xsfmm32a8i {{.*$}}
@@ -14,6 +22,70 @@
1422
// CHECK-NOT: __riscv_xsfmm64t {{.*$}}
1523
// CHECK-NOT: __riscv_xsfmmbase {{.*$}}
1624

25+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
26+
// RUN: -march=rv32ixsfcease -E -dM %s \
27+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFCEASE-EXT %s
28+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
29+
// RUN: -march=rv64ixsfcease -E -dM %s \
30+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFCEASE-EXT %s
31+
// CHECK-XSFCEASE-EXT: __riscv_xsfcease 1000000{{$}}
32+
33+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
34+
// RUN: -march=rv32ixsfvcp -E -dM %s \
35+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVCP-EXT %s
36+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
37+
// RUN: -march=rv64ixsfvcp -E -dM %s \
38+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVCP-EXT %s
39+
// CHECK-XSFVCP-EXT: __riscv_xsfvcp 1000000{{$}}
40+
41+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
42+
// RUN: -march=rv32ixsfvfnrclipxfqf -E -dM %s \
43+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVFNRCLIPXFQF-EXT %s
44+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
45+
// RUN: -march=rv64ixsfvfnrclipxfqf -E -dM %s \
46+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVFNRCLIPXFQF-EXT %s
47+
// CHECK-XSFVFNRCLIPXFQF-EXT: __riscv_xsfvfnrclipxfqf 1000000{{$}}
48+
49+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
50+
// RUN: -march=rv32ixsfvfwmaccqqq -E -dM %s \
51+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVFWMACCQQQ-EXT %s
52+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
53+
// RUN: -march=rv64ixsfvfwmaccqqq -E -dM %s \
54+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVFWMACCQQQ-EXT %s
55+
// CHECK-XSFVFWMACCQQQ-EXT: __riscv_xsfvfwmaccqqq 1000000{{$}}
56+
57+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
58+
// RUN: -march=rv32ixsfvqmaccdod -E -dM %s \
59+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVQMACCDOD-EXT %s
60+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
61+
// RUN: -march=rv64ixsfvqmaccdod -E -dM %s \
62+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVQMACCDOD-EXT %s
63+
// CHECK-XSFVQMACCDOD-EXT: __riscv_xsfvqmaccdod 1000000{{$}}
64+
65+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
66+
// RUN: -march=rv32ixsfvqmaccqoq -E -dM %s \
67+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVQMACCQOQ-EXT %s
68+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
69+
// RUN: -march=rv64ixsfvqmaccqoq -E -dM %s \
70+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFVQMACCQOQ-EXT %s
71+
// CHECK-XSFVQMACCQOQ-EXT: __riscv_xsfvqmaccqoq 1000000{{$}}
72+
73+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
74+
// RUN: -march=rv32ixsifivecdiscarddlone -E -dM %s \
75+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSIFIVECDISCARDDLONE-EXT %s
76+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
77+
// RUN: -march=rv64ixsifivecdiscarddlone -E -dM %s \
78+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSIFIVECDISCARDDLONE-EXT %s
79+
// CHECK-XSIFIVECDISCARDDLONE-EXT: __riscv_xsifivecdiscarddlone 1000000{{$}}
80+
81+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
82+
// RUN: -march=rv32ixsifivecflushdlone -E -dM %s \
83+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSIFIVECFLUSHDLONE-EXT %s
84+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
85+
// RUN: -march=rv64ixsifivecflushdlone -E -dM %s \
86+
// RUN: -o - | FileCheck --check-prefix=CHECK-XSIFIVECFLUSHDLONE-EXT %s
87+
// CHECK-XSIFIVECFLUSHDLONE-EXT: __riscv_xsifivecflushdlone 1000000{{$}}
88+
1789
// RUN: %clang --target=riscv32 \
1890
// RUN: -march=rv32i_zve32x_xsfmm128t -E -dM %s \
1991
// RUN: -o - | FileCheck --check-prefix=CHECK-XSFMM128T %s
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
// RUN: %clang --target=riscv32-unknown-linux-gnu -march=rv32i -E -dM %s \
2+
// RUN: -o - | FileCheck %s
3+
// RUN: %clang --target=riscv64-unknown-linux-gnu -march=rv64i -E -dM %s \
4+
// RUN: -o - | FileCheck %s
5+
6+
// CHECK-NOT: __riscv_xtheadba {{.*$}}
7+
// CHECK-NOT: __riscv_xtheadbb {{.*$}}
8+
// CHECK-NOT: __riscv_xtheadbs {{.*$}}
9+
// CHECK-NOT: __riscv_xtheadcmo {{.*$}}
10+
// CHECK-NOT: __riscv_xtheadcondmov {{.*$}}
11+
// CHECK-NOT: __riscv_xtheadfmemidx {{.*$}}
12+
// CHECK-NOT: __riscv_xtheadmac {{.*$}}
13+
// CHECK-NOT: __riscv_xtheadmemidx {{.*$}}
14+
// CHECK-NOT: __riscv_xtheadmempair {{.*$}}
15+
// CHECK-NOT: __riscv_xtheadsync {{.*$}}
16+
// CHECK-NOT: __riscv_xtheadvdot {{.*$}}
17+
18+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
19+
// RUN: -march=rv32ixtheadba -E -dM %s \
20+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBA-EXT %s
21+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
22+
// RUN: -march=rv64ixtheadba -E -dM %s \
23+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBA-EXT %s
24+
// CHECK-XTHEADBA-EXT: __riscv_xtheadba 1000000{{$}}
25+
26+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
27+
// RUN: -march=rv32ixtheadbb -E -dM %s \
28+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBB-EXT %s
29+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
30+
// RUN: -march=rv64ixtheadbb -E -dM %s \
31+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBB-EXT %s
32+
// CHECK-XTHEADBB-EXT: __riscv_xtheadbb 1000000{{$}}
33+
34+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
35+
// RUN: -march=rv32ixtheadbs -E -dM %s \
36+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBS-EXT %s
37+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
38+
// RUN: -march=rv64ixtheadbs -E -dM %s \
39+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADBS-EXT %s
40+
// CHECK-XTHEADBS-EXT: __riscv_xtheadbs 1000000{{$}}
41+
42+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
43+
// RUN: -march=rv32ixtheadcmo -E -dM %s \
44+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCMO-EXT %s
45+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
46+
// RUN: -march=rv64ixtheadcmo -E -dM %s \
47+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCMO-EXT %s
48+
// CHECK-XTHEADCMO-EXT: __riscv_xtheadcmo 1000000{{$}}
49+
50+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
51+
// RUN: -march=rv32ixtheadcondmov -E -dM %s \
52+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCONDMOV-EXT %s
53+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
54+
// RUN: -march=rv64ixtheadcondmov -E -dM %s \
55+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADCONDMOV-EXT %s
56+
// CHECK-XTHEADCONDMOV-EXT: __riscv_xtheadcondmov 1000000{{$}}
57+
58+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
59+
// RUN: -march=rv32ixtheadfmemidx -E -dM %s \
60+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADFMEMIDX-EXT %s
61+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
62+
// RUN: -march=rv64ixtheadfmemidx -E -dM %s \
63+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADFMEMIDX-EXT %s
64+
// CHECK-XTHEADFMEMIDX-EXT: __riscv_xtheadfmemidx 1000000{{$}}
65+
66+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
67+
// RUN: -march=rv32ixtheadmac -E -dM %s \
68+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMAC-EXT %s
69+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
70+
// RUN: -march=rv64ixtheadmac -E -dM %s \
71+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMAC-EXT %s
72+
// CHECK-XTHEADMAC-EXT: __riscv_xtheadmac 1000000{{$}}
73+
74+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
75+
// RUN: -march=rv32ixtheadmemidx -E -dM %s \
76+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMIDX-EXT %s
77+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
78+
// RUN: -march=rv64ixtheadmemidx -E -dM %s \
79+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMIDX-EXT %s
80+
// CHECK-XTHEADMEMIDX-EXT: __riscv_xtheadmemidx 1000000{{$}}
81+
82+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
83+
// RUN: -march=rv32ixtheadmempair -E -dM %s \
84+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMPAIR-EXT %s
85+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
86+
// RUN: -march=rv64ixtheadmempair -E -dM %s \
87+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADMEMPAIR-EXT %s
88+
// CHECK-XTHEADMEMPAIR-EXT: __riscv_xtheadmempair 1000000{{$}}
89+
90+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
91+
// RUN: -march=rv32ixtheadsync -E -dM %s \
92+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADSYNC-EXT %s
93+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
94+
// RUN: -march=rv64ixtheadsync -E -dM %s \
95+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADSYNC-EXT %s
96+
// CHECK-XTHEADSYNC-EXT: __riscv_xtheadsync 1000000{{$}}
97+
98+
// RUN: %clang --target=riscv32-unknown-linux-gnu \
99+
// RUN: -march=rv32ixtheadvdot -E -dM %s \
100+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADVDOT-EXT %s
101+
// RUN: %clang --target=riscv64-unknown-linux-gnu \
102+
// RUN: -march=rv64ixtheadvdot -E -dM %s \
103+
// RUN: -o - | FileCheck --check-prefix=CHECK-XTHEADVDOT-EXT %s
104+
// CHECK-XTHEADVDOT-EXT: __riscv_xtheadvdot 1000000{{$}}

0 commit comments

Comments
 (0)