Skip to content

Commit 7be7e8b

Browse files
authored
Merge branch 'main' into refactor/clang/unify-elementwise-builtins
2 parents a9630d7 + 4dc29b8 commit 7be7e8b

File tree

169 files changed

+8579
-1051
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

169 files changed

+8579
-1051
lines changed

clang/include/clang/Basic/BuiltinsAMDGPU.def

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,8 @@ TARGET_BUILTIN(__builtin_amdgcn_raw_ptr_buffer_atomic_fmax_f32, "ffQbiiIi", "",
187187
TARGET_BUILTIN(__builtin_amdgcn_raw_ptr_buffer_atomic_fmin_f64, "ddQbiiIi", "", "atomic-fmin-fmax-global-f64")
188188
TARGET_BUILTIN(__builtin_amdgcn_raw_ptr_buffer_atomic_fmax_f64, "ddQbiiIi", "", "atomic-fmin-fmax-global-f64")
189189

190-
TARGET_BUILTIN(__builtin_amdgcn_raw_ptr_buffer_load_lds, "vQbv*3IUiiiIiIi", "t", "vmem-to-lds-load-insts")
191-
TARGET_BUILTIN(__builtin_amdgcn_struct_ptr_buffer_load_lds, "vQbv*3IUiiiiIiIi", "t", "vmem-to-lds-load-insts")
190+
TARGET_BUILTIN(__builtin_amdgcn_raw_ptr_buffer_load_lds, "vQbv*3IUiiiIiIi", "", "vmem-to-lds-load-insts")
191+
TARGET_BUILTIN(__builtin_amdgcn_struct_ptr_buffer_load_lds, "vQbv*3IUiiiiIiIi", "", "vmem-to-lds-load-insts")
192192

193193
//===----------------------------------------------------------------------===//
194194
// Ballot builtins.
@@ -286,7 +286,7 @@ TARGET_BUILTIN(__builtin_amdgcn_global_atomic_fadd_v2bf16, "V2sV2s*1V2s", "t", "
286286
TARGET_BUILTIN(__builtin_amdgcn_ds_atomic_fadd_v2bf16, "V2sV2s*3V2s", "t", "atomic-ds-pk-add-16-insts")
287287
TARGET_BUILTIN(__builtin_amdgcn_ds_atomic_fadd_v2f16, "V2hV2h*3V2h", "t", "atomic-ds-pk-add-16-insts")
288288
TARGET_BUILTIN(__builtin_amdgcn_load_to_lds, "vv*v*3IUiIiIUi", "", "vmem-to-lds-load-insts")
289-
TARGET_BUILTIN(__builtin_amdgcn_global_load_lds, "vv*1v*3IUiIiIUi", "t", "vmem-to-lds-load-insts")
289+
TARGET_BUILTIN(__builtin_amdgcn_global_load_lds, "vv*1v*3IUiIiIUi", "", "vmem-to-lds-load-insts")
290290

291291
//===----------------------------------------------------------------------===//
292292
// Deep learning builtins.

clang/include/clang/Basic/arm_sve.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,7 @@ def SVDUPQ_LANE : SInst<"svdupq_lane[_{d}]", "ddn", "csilUcUsUiUlhfdb", MergeNo
993993
def SVEXT : SInst<"svext[_{d}]", "dddi", "csilUcUsUiUlhfdb", MergeNone, "aarch64_sve_ext", [VerifyRuntimeMode], [ImmCheck<2, ImmCheckExtract, 1>]>;
994994
defm SVLASTA : SVEPerm<"svlasta[_{d}]", "sPd", "aarch64_sve_lasta">;
995995
defm SVLASTB : SVEPerm<"svlastb[_{d}]", "sPd", "aarch64_sve_lastb">;
996-
def SVREV : SInst<"svrev[_{d}]", "dd", "csilUcUsUiUlhfdb", MergeNone, "aarch64_sve_rev", [VerifyRuntimeMode]>;
996+
def SVREV : SInst<"svrev[_{d}]", "dd", "csilUcUsUiUlhfdb", MergeNone, "vector_reverse", [VerifyRuntimeMode]>;
997997
def SVSEL : SInst<"svsel[_{d}]", "dPdd", "csilUcUsUiUlhfdb", MergeNone, "aarch64_sve_sel", [VerifyRuntimeMode]>;
998998
def SVSPLICE : SInst<"svsplice[_{d}]", "dPdd", "csilUcUsUiUlhfdb", MergeNone, "aarch64_sve_splice", [VerifyRuntimeMode]>;
999999
def SVTBL : SInst<"svtbl[_{d}]", "ddu", "csilUcUsUiUlhfdb", MergeNone, "aarch64_sve_tbl", [VerifyRuntimeMode]>;
@@ -1009,7 +1009,7 @@ def SVUZP2 : SInst<"svuzp2[_{d}]", "ddd", "csilUcUsUiUlhfdb", MergeNon
10091009
def SVZIP1 : SInst<"svzip1[_{d}]", "ddd", "csilUcUsUiUlhfdb", MergeNone, "aarch64_sve_zip1", [VerifyRuntimeMode]>;
10101010
def SVZIP2 : SInst<"svzip2[_{d}]", "ddd", "csilUcUsUiUlhfdb", MergeNone, "aarch64_sve_zip2", [VerifyRuntimeMode]>;
10111011

1012-
def SVREV_B8 : SInst<"svrev_b8", "PP", "Pc", MergeNone, "aarch64_sve_rev", [VerifyRuntimeMode]>;
1012+
def SVREV_B8 : SInst<"svrev_b8", "PP", "Pc", MergeNone, "vector_reverse", [VerifyRuntimeMode]>;
10131013
def SVREV_B16 : SInst<"svrev_b16", "PP", "Pc", MergeNone, "aarch64_sve_rev_b16", [IsOverloadNone, VerifyRuntimeMode]>;
10141014
def SVREV_B32 : SInst<"svrev_b32", "PP", "Pc", MergeNone, "aarch64_sve_rev_b32", [IsOverloadNone, VerifyRuntimeMode]>;
10151015
def SVREV_B64 : SInst<"svrev_b64", "PP", "Pc", MergeNone, "aarch64_sve_rev_b64", [IsOverloadNone, VerifyRuntimeMode]>;

clang/lib/Driver/SanitizerArgs.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ bool SanitizerArgs::needsFuzzerInterceptors() const {
358358
bool SanitizerArgs::needsUbsanRt() const {
359359
// All of these include ubsan.
360360
if (needsAsanRt() || needsMsanRt() || needsNsanRt() || needsHwasanRt() ||
361-
needsTsanRt() || needsDfsanRt() || needsLsanRt() ||
361+
needsTsanRt() || needsDfsanRt() || needsLsanRt() || needsTysanRt() ||
362362
needsCfiCrossDsoDiagRt() || (needsScudoRt() && !requiresMinimalRuntime()))
363363
return false;
364364

clang/lib/Headers/avx512bf16intrin.h

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ typedef __bf16 __bfloat16 __attribute__((deprecated("use __bf16 instead")));
2525
#define __DEFAULT_FN_ATTRS \
2626
__attribute__((__always_inline__, __nodebug__, __target__("avx512bf16")))
2727

28+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
29+
#define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512 constexpr
30+
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr
31+
#else
32+
#define __DEFAULT_FN_ATTRS512_CONSTEXPR __DEFAULT_FN_ATTRS512
33+
#define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS
34+
#endif
35+
2836
/// Convert One BF16 Data to One Single Float Data.
2937
///
3038
/// \headerfile <x86intrin.h>
@@ -35,7 +43,7 @@ typedef __bf16 __bfloat16 __attribute__((deprecated("use __bf16 instead")));
3543
/// A bfloat data.
3644
/// \returns A float data whose sign field and exponent field keep unchanged,
3745
/// and fraction field is extended to 23 bits.
38-
static __inline__ float __DEFAULT_FN_ATTRS _mm_cvtsbh_ss(__bf16 __A) {
46+
static __inline__ float __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtsbh_ss(__bf16 __A) {
3947
return (float)(__A);
4048
}
4149

@@ -235,7 +243,8 @@ _mm512_maskz_dpbf16_ps(__mmask16 __U, __m512 __D, __m512bh __A, __m512bh __B) {
235243
/// \param __A
236244
/// A 256-bit vector of [16 x bfloat].
237245
/// \returns A 512-bit vector of [16 x float] come from conversion of __A
238-
static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_cvtpbh_ps(__m256bh __A) {
246+
static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
247+
_mm512_cvtpbh_ps(__m256bh __A) {
239248
return (__m512) __builtin_convertvector(__A, __v16sf);
240249
}
241250

@@ -249,7 +258,7 @@ static __inline__ __m512 __DEFAULT_FN_ATTRS512 _mm512_cvtpbh_ps(__m256bh __A) {
249258
/// \param __A
250259
/// A 256-bit vector of [16 x bfloat].
251260
/// \returns A 512-bit vector of [16 x float] come from conversion of __A
252-
static __inline__ __m512 __DEFAULT_FN_ATTRS512
261+
static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
253262
_mm512_maskz_cvtpbh_ps(__mmask16 __U, __m256bh __A) {
254263
return (__m512)__builtin_ia32_selectps_512((__mmask16)__U,
255264
(__v16sf)_mm512_cvtpbh_ps(__A),
@@ -268,14 +277,16 @@ _mm512_maskz_cvtpbh_ps(__mmask16 __U, __m256bh __A) {
268277
/// \param __A
269278
/// A 256-bit vector of [16 x bfloat].
270279
/// \returns A 512-bit vector of [16 x float] come from conversion of __A
271-
static __inline__ __m512 __DEFAULT_FN_ATTRS512
280+
static __inline__ __m512 __DEFAULT_FN_ATTRS512_CONSTEXPR
272281
_mm512_mask_cvtpbh_ps(__m512 __S, __mmask16 __U, __m256bh __A) {
273282
return (__m512)__builtin_ia32_selectps_512(
274283
(__mmask16)__U, (__v16sf)_mm512_cvtpbh_ps(__A), (__v16sf)__S);
275284
}
276285

277286
#undef __DEFAULT_FN_ATTRS
287+
#undef __DEFAULT_FN_ATTRS_CONSTEXPR
278288
#undef __DEFAULT_FN_ATTRS512
289+
#undef __DEFAULT_FN_ATTRS512_CONSTEXPR
279290

280291
#endif
281292
#endif

clang/lib/Headers/avx512vlbf16intrin.h

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@
2424
__target__("avx512vl,avx512bf16"), \
2525
__min_vector_width__(256)))
2626

27+
#if defined(__cplusplus) && (__cplusplus >= 201103L)
28+
#define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128 constexpr
29+
#define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256 constexpr
30+
#else
31+
#define __DEFAULT_FN_ATTRS128_CONSTEXPR __DEFAULT_FN_ATTRS128
32+
#define __DEFAULT_FN_ATTRS256_CONSTEXPR __DEFAULT_FN_ATTRS256
33+
#endif
34+
2735
/// Convert Two Packed Single Data to One Packed BF16 Data.
2836
///
2937
/// \headerfile <x86intrin.h>
@@ -421,7 +429,8 @@ static __inline__ __bf16 __DEFAULT_FN_ATTRS128 _mm_cvtness_sbh(float __A) {
421429
/// \param __A
422430
/// A 128-bit vector of [4 x bfloat].
423431
/// \returns A 128-bit vector of [4 x float] come from conversion of __A
424-
static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_cvtpbh_ps(__m128bh __A) {
432+
static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
433+
_mm_cvtpbh_ps(__m128bh __A) {
425434
return (__m128)_mm256_castps256_ps128(
426435
(__m256) __builtin_convertvector(__A, __v8sf));
427436
}
@@ -433,7 +442,8 @@ static __inline__ __m128 __DEFAULT_FN_ATTRS128 _mm_cvtpbh_ps(__m128bh __A) {
433442
/// \param __A
434443
/// A 128-bit vector of [8 x bfloat].
435444
/// \returns A 256-bit vector of [8 x float] come from conversion of __A
436-
static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_cvtpbh_ps(__m128bh __A) {
445+
static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR
446+
_mm256_cvtpbh_ps(__m128bh __A) {
437447
return (__m256) __builtin_convertvector(__A, __v8sf);
438448
}
439449

@@ -447,7 +457,7 @@ static __inline__ __m256 __DEFAULT_FN_ATTRS256 _mm256_cvtpbh_ps(__m128bh __A) {
447457
/// \param __A
448458
/// A 128-bit vector of [4 x bfloat].
449459
/// \returns A 128-bit vector of [4 x float] come from conversion of __A
450-
static __inline__ __m128 __DEFAULT_FN_ATTRS128
460+
static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
451461
_mm_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
452462
return (__m128)__builtin_ia32_selectps_128(
453463
(__mmask8)__U, (__v4sf)_mm_cvtpbh_ps(__A), (__v4sf)_mm_setzero_ps());
@@ -463,7 +473,7 @@ _mm_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
463473
/// \param __A
464474
/// A 128-bit vector of [8 x bfloat].
465475
/// \returns A 256-bit vector of [8 x float] come from conversion of __A
466-
static __inline__ __m256 __DEFAULT_FN_ATTRS256
476+
static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR
467477
_mm256_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
468478
return (__m256)__builtin_ia32_selectps_256((__mmask8)__U,
469479
(__v8sf)_mm256_cvtpbh_ps(__A),
@@ -483,7 +493,7 @@ _mm256_maskz_cvtpbh_ps(__mmask8 __U, __m128bh __A) {
483493
/// \param __A
484494
/// A 128-bit vector of [4 x bfloat].
485495
/// \returns A 128-bit vector of [4 x float] come from conversion of __A
486-
static __inline__ __m128 __DEFAULT_FN_ATTRS128
496+
static __inline__ __m128 __DEFAULT_FN_ATTRS128_CONSTEXPR
487497
_mm_mask_cvtpbh_ps(__m128 __S, __mmask8 __U, __m128bh __A) {
488498
return (__m128)__builtin_ia32_selectps_128(
489499
(__mmask8)__U, (__v4sf)_mm_cvtpbh_ps(__A), (__v4sf)__S);
@@ -502,14 +512,16 @@ _mm_mask_cvtpbh_ps(__m128 __S, __mmask8 __U, __m128bh __A) {
502512
/// \param __A
503513
/// A 128-bit vector of [8 x bfloat].
504514
/// \returns A 256-bit vector of [8 x float] come from conversion of __A
505-
static __inline__ __m256 __DEFAULT_FN_ATTRS256
515+
static __inline__ __m256 __DEFAULT_FN_ATTRS256_CONSTEXPR
506516
_mm256_mask_cvtpbh_ps(__m256 __S, __mmask8 __U, __m128bh __A) {
507517
return (__m256)__builtin_ia32_selectps_256(
508518
(__mmask8)__U, (__v8sf)_mm256_cvtpbh_ps(__A), (__v8sf)__S);
509519
}
510520

511521
#undef __DEFAULT_FN_ATTRS128
512522
#undef __DEFAULT_FN_ATTRS256
523+
#undef __DEFAULT_FN_ATTRS128_CONSTEXPR
524+
#undef __DEFAULT_FN_ATTRS256_CONSTEXPR
513525

514526
#endif
515527
#endif

clang/lib/Tooling/Transformer/SourceCode.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,7 @@ static bool spelledInMacroDefinition(CharSourceRange Range,
114114
return B.isInvalid() || B != E;
115115
}
116116

117-
if (Range.getBegin().isMacroID())
118-
return getMacroArgumentSpellingLoc(Range.getBegin(), SM).isInvalid();
119-
if (Range.getEnd().isMacroID())
120-
return getMacroArgumentSpellingLoc(Range.getEnd(), SM).isInvalid();
121-
122-
return false;
117+
return Range.getBegin().isMacroID() || Range.getEnd().isMacroID();
123118
}
124119

125120
// Returns the expansion char-range of `Loc` if `Loc` is a split token. For

0 commit comments

Comments
 (0)