[PATCH] D128855: [HLSL] Change WaveActiveCountBits to wrapper of __builtin_hlsl_wave_active_count_bits
Xiang Li via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 29 14:00:53 PDT 2022
python3kgae created this revision.
python3kgae added reviewers: Anastasia, svenvh, jdoerfert, azabaznov, beanz, tra, yaxunl, pow2clk.
Herald added subscribers: luke957, s.egerton, simoncook, mgorny.
Herald added a reviewer: aaron.ballman.
Herald added a project: All.
python3kgae requested review of this revision.
Herald added subscribers: cfe-commits, pcwang-thead.
Herald added a project: clang.
Change WaveActiveCountBits from builtin into wrapper of __builtin_hlsl_wave_active_count_bits.
For comment at
https://reviews.llvm.org/D126857#inline-1235949
Repository:
rG LLVM Github Monorepo
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", "")
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D128855.441163.patch
Type: text/x-patch
Size: 3830 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220629/332101ff/attachment.bin>
More information about the cfe-commits
mailing list