Skip to content

Commit 0319249

Browse files
authored
Merge branch 'main' into tidy
2 parents 956a711 + af44976 commit 0319249

File tree

27 files changed

+367
-449
lines changed

27 files changed

+367
-449
lines changed

clang/Maintainers.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ Templates
7878
| ekeane\@nvidia.com (email), ErichKeane (Phabricator), erichkeane (GitHub)
7979
8080

81+
Lambdas
82+
~~~~~~~
83+
| Corentin Jabot
84+
| corentin.jabot\@gmail.com (email), cor3ntin (Phabricator), cor3ntin (GitHub)
85+
86+
8187
Debug information
8288
~~~~~~~~~~~~~~~~~
8389
| Adrian Prantl

clang/lib/Driver/ToolChains/Arch/AArch64.cpp

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -135,21 +135,15 @@ getAArch64ArchFeaturesFromMarch(const Driver &D, StringRef March,
135135
return true;
136136
}
137137

138-
static bool getAArch64ArchFeaturesFromMcpu(
139-
const Driver &D, StringRef Mcpu, const ArgList &Args,
140-
llvm::AArch64::ExtensionSet &Extensions, std::vector<StringRef> &Features) {
138+
static bool
139+
getAArch64ArchFeaturesFromMcpu(const Driver &D, StringRef Mcpu,
140+
const ArgList &Args,
141+
llvm::AArch64::ExtensionSet &Extensions) {
141142
StringRef CPU;
142143
std::string McpuLowerCase = Mcpu.lower();
143144
if (!DecodeAArch64Mcpu(D, McpuLowerCase, CPU, Extensions))
144145
return false;
145146

146-
if (Mcpu == "native") {
147-
llvm::StringMap<bool> HostFeatures = llvm::sys::getHostCPUFeatures();
148-
for (auto &[Feature, Enabled] : HostFeatures) {
149-
Features.push_back(Args.MakeArgString((Enabled ? "+" : "-") + Feature));
150-
}
151-
}
152-
153147
return true;
154148
}
155149

@@ -216,11 +210,11 @@ void aarch64::getAArch64TargetFeatures(const Driver &D,
216210
success =
217211
getAArch64ArchFeaturesFromMarch(D, A->getValue(), Args, Extensions);
218212
else if ((A = Args.getLastArg(options::OPT_mcpu_EQ)))
219-
success = getAArch64ArchFeaturesFromMcpu(D, A->getValue(), Args, Extensions,
220-
Features);
213+
success =
214+
getAArch64ArchFeaturesFromMcpu(D, A->getValue(), Args, Extensions);
221215
else if (isCPUDeterminedByTriple(Triple))
222216
success = getAArch64ArchFeaturesFromMcpu(
223-
D, getAArch64TargetCPU(Args, Triple, A), Args, Extensions, Features);
217+
D, getAArch64TargetCPU(Args, Triple, A), Args, Extensions);
224218
else
225219
// Default to 'A' profile if the architecture is not specified.
226220
success = getAArch64ArchFeaturesFromMarch(D, "armv8-a", Args, Extensions);

clang/lib/Headers/hlsl/hlsl_intrinsics.h

Lines changed: 73 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -723,66 +723,88 @@ float4 cosh(float4);
723723

724724
#ifdef __HLSL_ENABLE_16_BIT
725725
_HLSL_AVAILABILITY(shadermodel, 6.2)
726-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
727-
int16_t countbits(int16_t);
726+
const inline uint countbits(int16_t x) {
727+
return __builtin_elementwise_popcount(x);
728+
}
728729
_HLSL_AVAILABILITY(shadermodel, 6.2)
729-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
730-
int16_t2 countbits(int16_t2);
730+
const inline uint2 countbits(int16_t2 x) {
731+
return __builtin_elementwise_popcount(x);
732+
}
731733
_HLSL_AVAILABILITY(shadermodel, 6.2)
732-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
733-
int16_t3 countbits(int16_t3);
734+
const inline uint3 countbits(int16_t3 x) {
735+
return __builtin_elementwise_popcount(x);
736+
}
734737
_HLSL_AVAILABILITY(shadermodel, 6.2)
735-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
736-
int16_t4 countbits(int16_t4);
738+
const inline uint4 countbits(int16_t4 x) {
739+
return __builtin_elementwise_popcount(x);
740+
}
737741
_HLSL_AVAILABILITY(shadermodel, 6.2)
738-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
739-
uint16_t countbits(uint16_t);
742+
const inline uint countbits(uint16_t x) {
743+
return __builtin_elementwise_popcount(x);
744+
}
740745
_HLSL_AVAILABILITY(shadermodel, 6.2)
741-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
742-
uint16_t2 countbits(uint16_t2);
746+
const inline uint2 countbits(uint16_t2 x) {
747+
return __builtin_elementwise_popcount(x);
748+
}
743749
_HLSL_AVAILABILITY(shadermodel, 6.2)
744-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
745-
uint16_t3 countbits(uint16_t3);
750+
const inline uint3 countbits(uint16_t3 x) {
751+
return __builtin_elementwise_popcount(x);
752+
}
746753
_HLSL_AVAILABILITY(shadermodel, 6.2)
747-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
748-
uint16_t4 countbits(uint16_t4);
754+
const inline uint4 countbits(uint16_t4 x) {
755+
return __builtin_elementwise_popcount(x);
756+
}
749757
#endif
750758

751-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
752-
int countbits(int);
753-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
754-
int2 countbits(int2);
755-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
756-
int3 countbits(int3);
757-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
758-
int4 countbits(int4);
759-
760-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
761-
uint countbits(uint);
762-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
763-
uint2 countbits(uint2);
764-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
765-
uint3 countbits(uint3);
766-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
767-
uint4 countbits(uint4);
768-
769-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
770-
int64_t countbits(int64_t);
771-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
772-
int64_t2 countbits(int64_t2);
773-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
774-
int64_t3 countbits(int64_t3);
775-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
776-
int64_t4 countbits(int64_t4);
777-
778-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
779-
uint64_t countbits(uint64_t);
780-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
781-
uint64_t2 countbits(uint64_t2);
782-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
783-
uint64_t3 countbits(uint64_t3);
784-
_HLSL_BUILTIN_ALIAS(__builtin_elementwise_popcount)
785-
uint64_t4 countbits(uint64_t4);
759+
const inline uint countbits(int x) { return __builtin_elementwise_popcount(x); }
760+
const inline uint2 countbits(int2 x) {
761+
return __builtin_elementwise_popcount(x);
762+
}
763+
const inline uint3 countbits(int3 x) {
764+
return __builtin_elementwise_popcount(x);
765+
}
766+
const inline uint4 countbits(int4 x) {
767+
return __builtin_elementwise_popcount(x);
768+
}
769+
770+
const inline uint countbits(uint x) {
771+
return __builtin_elementwise_popcount(x);
772+
}
773+
const inline uint2 countbits(uint2 x) {
774+
return __builtin_elementwise_popcount(x);
775+
}
776+
const inline uint3 countbits(uint3 x) {
777+
return __builtin_elementwise_popcount(x);
778+
}
779+
const inline uint4 countbits(uint4 x) {
780+
return __builtin_elementwise_popcount(x);
781+
}
782+
783+
const inline uint countbits(int64_t x) {
784+
return __builtin_elementwise_popcount(x);
785+
}
786+
const inline uint2 countbits(int64_t2 x) {
787+
return __builtin_elementwise_popcount(x);
788+
}
789+
const inline uint3 countbits(int64_t3 x) {
790+
return __builtin_elementwise_popcount(x);
791+
}
792+
const inline uint4 countbits(int64_t4 x) {
793+
return __builtin_elementwise_popcount(x);
794+
}
795+
796+
const inline uint countbits(uint64_t x) {
797+
return __builtin_elementwise_popcount(x);
798+
}
799+
const inline uint2 countbits(uint64_t2 x) {
800+
return __builtin_elementwise_popcount(x);
801+
}
802+
const inline uint3 countbits(uint64_t3 x) {
803+
return __builtin_elementwise_popcount(x);
804+
}
805+
const inline uint4 countbits(uint64_t4 x) {
806+
return __builtin_elementwise_popcount(x);
807+
}
786808

787809
//===----------------------------------------------------------------------===//
788810
// degrees builtins

clang/test/CodeGenHLSL/builtins/countbits.hlsl

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,51 @@
44

55
#ifdef __HLSL_ENABLE_16_BIT
66
// CHECK-LABEL: test_countbits_ushort
7-
// CHECK: call i16 @llvm.ctpop.i16
8-
uint16_t test_countbits_ushort(uint16_t p0)
7+
// CHECK: [[A:%.*]] = call i16 @llvm.ctpop.i16
8+
// CHECK-NEXT: zext i16 [[A]] to i32
9+
uint test_countbits_ushort(uint16_t p0)
10+
{
11+
return countbits(p0);
12+
}
13+
// CHECK-LABEL: test_countbits_short
14+
// CHECK: [[A:%.*]] = call i16 @llvm.ctpop.i16
15+
// CHECK-NEXT: sext i16 [[A]] to i32
16+
uint test_countbits_short(int16_t p0)
917
{
1018
return countbits(p0);
1119
}
1220
// CHECK-LABEL: test_countbits_ushort2
13-
// CHECK: call <2 x i16> @llvm.ctpop.v2i16
14-
uint16_t2 test_countbits_ushort2(uint16_t2 p0)
21+
// CHECK: [[A:%.*]] = call <2 x i16> @llvm.ctpop.v2i16
22+
// CHECK-NEXT: zext <2 x i16> [[A]] to <2 x i32>
23+
uint2 test_countbits_ushort2(uint16_t2 p0)
1524
{
1625
return countbits(p0);
1726
}
1827
// CHECK-LABEL: test_countbits_ushort3
19-
// CHECK: call <3 x i16> @llvm.ctpop.v3i16
20-
uint16_t3 test_countbits_ushort3(uint16_t3 p0)
28+
// CHECK: [[A:%.*]] = call <3 x i16> @llvm.ctpop.v3i16
29+
// CHECK-NEXT: zext <3 x i16> [[A]] to <3 x i32>
30+
uint3 test_countbits_ushort3(uint16_t3 p0)
2131
{
2232
return countbits(p0);
2333
}
2434
// CHECK-LABEL: test_countbits_ushort4
25-
// CHECK: call <4 x i16> @llvm.ctpop.v4i16
26-
uint16_t4 test_countbits_ushort4(uint16_t4 p0)
35+
// CHECK: [[A:%.*]] = call <4 x i16> @llvm.ctpop.v4i16
36+
// CHECK-NEXT: zext <4 x i16> [[A]] to <4 x i32>
37+
uint4 test_countbits_ushort4(uint16_t4 p0)
2738
{
2839
return countbits(p0);
2940
}
3041
#endif
3142

3243
// CHECK-LABEL: test_countbits_uint
3344
// CHECK: call i32 @llvm.ctpop.i32
34-
int test_countbits_uint(uint p0)
45+
uint test_countbits_uint(uint p0)
46+
{
47+
return countbits(p0);
48+
}
49+
// CHECK-LABEL: test_countbits_int
50+
// CHECK: call i32 @llvm.ctpop.i32
51+
uint test_countbits_int(int p0)
3552
{
3653
return countbits(p0);
3754
}
@@ -55,26 +72,37 @@ uint4 test_countbits_uint4(uint4 p0)
5572
}
5673

5774
// CHECK-LABEL: test_countbits_long
58-
// CHECK: call i64 @llvm.ctpop.i64
59-
uint64_t test_countbits_long(uint64_t p0)
75+
// CHECK: [[A:%.*]] = call i64 @llvm.ctpop.i64
76+
// CHECK-NEXT: trunc i64 [[A]] to i32
77+
uint test_countbits_long(uint64_t p0)
78+
{
79+
return countbits(p0);
80+
}
81+
// CHECK-LABEL: test_countbits_slong
82+
// CHECK: [[A:%.*]] = call i64 @llvm.ctpop.i64
83+
// CHECK-NEXT: trunc i64 [[A]] to i32
84+
uint test_countbits_slong(int64_t p0)
6085
{
6186
return countbits(p0);
6287
}
6388
// CHECK-LABEL: test_countbits_long2
64-
// CHECK: call <2 x i64> @llvm.ctpop.v2i64
65-
uint64_t2 test_countbits_long2(uint64_t2 p0)
89+
// CHECK: [[A:%.*]] = call <2 x i64> @llvm.ctpop.v2i64
90+
// CHECK-NEXT: trunc <2 x i64> [[A]] to <2 x i32>
91+
uint2 test_countbits_long2(uint64_t2 p0)
6692
{
6793
return countbits(p0);
6894
}
6995
// CHECK-LABEL: test_countbits_long3
70-
// CHECK: call <3 x i64> @llvm.ctpop.v3i64
71-
uint64_t3 test_countbits_long3(uint64_t3 p0)
96+
// CHECK: [[A:%.*]] = call <3 x i64> @llvm.ctpop.v3i64
97+
// CHECK-NEXT: trunc <3 x i64> [[A]] to <3 x i32>
98+
uint3 test_countbits_long3(uint64_t3 p0)
7299
{
73100
return countbits(p0);
74101
}
75102
// CHECK-LABEL: test_countbits_long4
76-
// CHECK: call <4 x i64> @llvm.ctpop.v4i64
77-
uint64_t4 test_countbits_long4(uint64_t4 p0)
103+
// CHECK: [[A:%.*]] = call <4 x i64> @llvm.ctpop.v4i64
104+
// CHECK-NEXT: trunc <4 x i64> [[A]] to <4 x i32>
105+
uint4 test_countbits_long4(uint64_t4 p0)
78106
{
79107
return countbits(p0);
80108
}

clang/test/Driver/Inputs/cpunative/cortex-a57

Lines changed: 0 additions & 8 deletions
This file was deleted.

clang/test/Driver/Inputs/cpunative/cortex-a72

Lines changed: 0 additions & 8 deletions
This file was deleted.

clang/test/Driver/Inputs/cpunative/cortex-a76

Lines changed: 0 additions & 8 deletions
This file was deleted.

clang/test/Driver/Inputs/cpunative/neoverse-n1

Lines changed: 0 additions & 8 deletions
This file was deleted.

clang/test/Driver/Inputs/cpunative/neoverse-v2

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)