python3kgae updated this revision to Diff 441358. python3kgae added a comment.
Rebase to fix test fail. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D128855/new/ https://reviews.llvm.org/D128855 Files: clang/include/clang/Basic/Builtins.def clang/include/clang/Basic/DiagnosticSemaKinds.td clang/lib/Headers/CMakeLists.txt clang/lib/Headers/hlsl.h clang/lib/Headers/hlsl/hlsl_intrinsics.h clang/lib/Sema/SemaDeclAttr.cpp clang/test/SemaHLSL/Wave.hlsl Index: clang/test/SemaHLSL/Wave.hlsl =================================================================== --- clang/test/SemaHLSL/Wave.hlsl +++ clang/test/SemaHLSL/Wave.hlsl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -x hlsl -triple dxil--shadermodel6.7-library %s -verify +// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple dxil--shadermodel6.7-library %s -verify // Make sure WaveActiveCountBits is accepted. Index: clang/lib/Sema/SemaDeclAttr.cpp =================================================================== --- clang/lib/Sema/SemaDeclAttr.cpp +++ clang/lib/Sema/SemaDeclAttr.cpp @@ -5629,11 +5629,12 @@ bool IsAArch64 = S.Context.getTargetInfo().getTriple().isAArch64(); bool IsARM = S.Context.getTargetInfo().getTriple().isARM(); bool IsRISCV = S.Context.getTargetInfo().getTriple().isRISCV(); + bool IsHLSL = S.Context.getLangOpts().HLSL; if ((IsAArch64 && !ArmSveAliasValid(S.Context, BuiltinID, AliasName)) || (IsARM && !ArmMveAliasValid(BuiltinID, AliasName) && !ArmCdeAliasValid(BuiltinID, AliasName)) || (IsRISCV && !RISCVAliasValid(BuiltinID, AliasName)) || - (!IsAArch64 && !IsARM && !IsRISCV)) { + (!IsAArch64 && !IsARM && !IsRISCV && !IsHLSL)) { S.Diag(AL.getLoc(), diag::err_attribute_builtin_alias) << AL; return; } Index: clang/lib/Headers/hlsl/hlsl_intrinsics.h =================================================================== --- /dev/null +++ clang/lib/Headers/hlsl/hlsl_intrinsics.h @@ -0,0 +1,15 @@ +//===----- hlsl_intrinsics.h - HLSL definitions for intrinsics ----------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _HLSL_HLSL_INTRINSICS_H_ +#define _HLSL_HLSL_INTRINSICS_H_ + +__attribute__((clang_builtin_alias(__builtin_hlsl_wave_active_count_bits))) uint +WaveActiveCountBits(bool bBit); + +#endif //_HLSL_HLSL_INTRINSICS_H_ Index: clang/lib/Headers/hlsl.h =================================================================== --- clang/lib/Headers/hlsl.h +++ clang/lib/Headers/hlsl.h @@ -10,5 +10,6 @@ #define _HLSL_H_ #include "hlsl/hlsl_basic_types.h" +#include "hlsl/hlsl_intrinsics.h" #endif //_HLSL_H_ Index: clang/lib/Headers/CMakeLists.txt =================================================================== --- clang/lib/Headers/CMakeLists.txt +++ clang/lib/Headers/CMakeLists.txt @@ -65,6 +65,7 @@ set(hlsl_files hlsl.h hlsl/hlsl_basic_types.h + hlsl/hlsl_intrinsics.h ) set(mips_msa_files Index: clang/include/clang/Basic/DiagnosticSemaKinds.td =================================================================== --- clang/include/clang/Basic/DiagnosticSemaKinds.td +++ clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -4183,7 +4183,7 @@ "argument %0 to 'preferred_name' attribute is not a typedef for " "a specialization of %1">; def err_attribute_builtin_alias : Error< - "%0 attribute can only be applied to a ARM or RISC-V builtin">; + "%0 attribute can only be applied to a ARM, HLSL or RISC-V builtin">; // called-once attribute diagnostics. def err_called_once_attribute_wrong_type : Error< Index: clang/include/clang/Basic/Builtins.def =================================================================== --- clang/include/clang/Basic/Builtins.def +++ clang/include/clang/Basic/Builtins.def @@ -1699,7 +1699,7 @@ LANGBUILTIN(__builtin_get_device_side_mangled_name, "cC*.", "ncT", CUDA_LANG) // HLSL -LANGBUILTIN(WaveActiveCountBits, "Uib", "nc", HLSL_LANG) +LANGBUILTIN(__builtin_hlsl_wave_active_count_bits, "Uib", "nc", HLSL_LANG) // Builtins for XRay BUILTIN(__xray_customevent, "vcC*z", "")
Index: clang/test/SemaHLSL/Wave.hlsl =================================================================== --- clang/test/SemaHLSL/Wave.hlsl +++ clang/test/SemaHLSL/Wave.hlsl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -x hlsl -triple dxil--shadermodel6.7-library %s -verify +// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple dxil--shadermodel6.7-library %s -verify // Make sure WaveActiveCountBits is accepted. Index: clang/lib/Sema/SemaDeclAttr.cpp =================================================================== --- clang/lib/Sema/SemaDeclAttr.cpp +++ clang/lib/Sema/SemaDeclAttr.cpp @@ -5629,11 +5629,12 @@ bool IsAArch64 = S.Context.getTargetInfo().getTriple().isAArch64(); bool IsARM = S.Context.getTargetInfo().getTriple().isARM(); bool IsRISCV = S.Context.getTargetInfo().getTriple().isRISCV(); + bool IsHLSL = S.Context.getLangOpts().HLSL; if ((IsAArch64 && !ArmSveAliasValid(S.Context, BuiltinID, AliasName)) || (IsARM && !ArmMveAliasValid(BuiltinID, AliasName) && !ArmCdeAliasValid(BuiltinID, AliasName)) || (IsRISCV && !RISCVAliasValid(BuiltinID, AliasName)) || - (!IsAArch64 && !IsARM && !IsRISCV)) { + (!IsAArch64 && !IsARM && !IsRISCV && !IsHLSL)) { S.Diag(AL.getLoc(), diag::err_attribute_builtin_alias) << AL; return; } Index: clang/lib/Headers/hlsl/hlsl_intrinsics.h =================================================================== --- /dev/null +++ clang/lib/Headers/hlsl/hlsl_intrinsics.h @@ -0,0 +1,15 @@ +//===----- hlsl_intrinsics.h - HLSL definitions for intrinsics ----------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _HLSL_HLSL_INTRINSICS_H_ +#define _HLSL_HLSL_INTRINSICS_H_ + +__attribute__((clang_builtin_alias(__builtin_hlsl_wave_active_count_bits))) uint +WaveActiveCountBits(bool bBit); + +#endif //_HLSL_HLSL_INTRINSICS_H_ Index: clang/lib/Headers/hlsl.h =================================================================== --- clang/lib/Headers/hlsl.h +++ clang/lib/Headers/hlsl.h @@ -10,5 +10,6 @@ #define _HLSL_H_ #include "hlsl/hlsl_basic_types.h" +#include "hlsl/hlsl_intrinsics.h" #endif //_HLSL_H_ Index: clang/lib/Headers/CMakeLists.txt =================================================================== --- clang/lib/Headers/CMakeLists.txt +++ clang/lib/Headers/CMakeLists.txt @@ -65,6 +65,7 @@ set(hlsl_files hlsl.h hlsl/hlsl_basic_types.h + hlsl/hlsl_intrinsics.h ) set(mips_msa_files Index: clang/include/clang/Basic/DiagnosticSemaKinds.td =================================================================== --- clang/include/clang/Basic/DiagnosticSemaKinds.td +++ clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -4183,7 +4183,7 @@ "argument %0 to 'preferred_name' attribute is not a typedef for " "a specialization of %1">; def err_attribute_builtin_alias : Error< - "%0 attribute can only be applied to a ARM or RISC-V builtin">; + "%0 attribute can only be applied to a ARM, HLSL or RISC-V builtin">; // called-once attribute diagnostics. def err_called_once_attribute_wrong_type : Error< Index: clang/include/clang/Basic/Builtins.def =================================================================== --- clang/include/clang/Basic/Builtins.def +++ clang/include/clang/Basic/Builtins.def @@ -1699,7 +1699,7 @@ LANGBUILTIN(__builtin_get_device_side_mangled_name, "cC*.", "ncT", CUDA_LANG) // HLSL -LANGBUILTIN(WaveActiveCountBits, "Uib", "nc", HLSL_LANG) +LANGBUILTIN(__builtin_hlsl_wave_active_count_bits, "Uib", "nc", HLSL_LANG) // Builtins for XRay BUILTIN(__xray_customevent, "vcC*z", "")
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits