llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-codegen Author: Farzon Lotfi (farzonl) <details> <summary>Changes</summary> Remove elementwise description for builtins that don't perform elementwise operations. --- Full diff: https://github.com/llvm/llvm-project/pull/101543.diff 6 Files Affected: - (modified) clang/include/clang/Basic/Builtins.td (+2-2) - (modified) clang/lib/CodeGen/CGBuiltin.cpp (+2-2) - (modified) clang/lib/Headers/hlsl/hlsl_intrinsics.h (+82-82) - (modified) clang/lib/Sema/SemaHLSL.cpp (+2-2) - (added) clang/test/SemaHLSL/BuiltIns/all-errors.hlsl (+12) - (modified) clang/test/SemaHLSL/BuiltIns/any-errors.hlsl (+2-2) ``````````diff diff --git a/clang/include/clang/Basic/Builtins.td b/clang/include/clang/Basic/Builtins.td index 4133f6ff40cf3..ccddeb9396284 100644 --- a/clang/include/clang/Basic/Builtins.td +++ b/clang/include/clang/Basic/Builtins.td @@ -4654,13 +4654,13 @@ def GetDeviceSideMangledName : LangBuiltin<"CUDA_LANG"> { // HLSL def HLSLAll : LangBuiltin<"HLSL_LANG"> { - let Spellings = ["__builtin_hlsl_elementwise_all"]; + let Spellings = ["__builtin_hlsl_all"]; let Attributes = [NoThrow, Const]; let Prototype = "bool(...)"; } def HLSLAny : LangBuiltin<"HLSL_LANG"> { - let Spellings = ["__builtin_hlsl_elementwise_any"]; + let Spellings = ["__builtin_hlsl_any"]; let Attributes = [NoThrow, Const]; let Prototype = "bool(...)"; } diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 0c2ee446aa303..abea62ebaca49 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -18376,14 +18376,14 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned BuiltinID, return nullptr; switch (BuiltinID) { - case Builtin::BI__builtin_hlsl_elementwise_all: { + case Builtin::BI__builtin_hlsl_all: { Value *Op0 = EmitScalarExpr(E->getArg(0)); return Builder.CreateIntrinsic( /*ReturnType=*/llvm::Type::getInt1Ty(getLLVMContext()), CGM.getHLSLRuntime().getAllIntrinsic(), ArrayRef<Value *>{Op0}, nullptr, "hlsl.all"); } - case Builtin::BI__builtin_hlsl_elementwise_any: { + case Builtin::BI__builtin_hlsl_any: { Value *Op0 = EmitScalarExpr(E->getArg(0)); return Builder.CreateIntrinsic( /*ReturnType=*/llvm::Type::getInt1Ty(getLLVMContext()), diff --git a/clang/lib/Headers/hlsl/hlsl_intrinsics.h b/clang/lib/Headers/hlsl/hlsl_intrinsics.h index 09f26a4588c14..6d86d278bc711 100644 --- a/clang/lib/Headers/hlsl/hlsl_intrinsics.h +++ b/clang/lib/Headers/hlsl/hlsl_intrinsics.h @@ -145,106 +145,106 @@ float4 acos(float4); #ifdef __HLSL_ENABLE_16_BIT _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int16_t); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int16_t2); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int16_t3); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int16_t4); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint16_t); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint16_t2); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint16_t3); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint16_t4); #endif _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(half); _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(half2); _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(half3); _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(half4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(bool); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(bool2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(bool3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(bool4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(float); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(float2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(float3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(float4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int64_t); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int64_t2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int64_t3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(int64_t4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint64_t); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint64_t2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint64_t3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(uint64_t4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(double); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(double2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(double3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_all) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_all) bool all(double4); //===----------------------------------------------------------------------===// @@ -257,106 +257,106 @@ bool all(double4); #ifdef __HLSL_ENABLE_16_BIT _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int16_t); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int16_t2); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int16_t3); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int16_t4); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint16_t); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint16_t2); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint16_t3); _HLSL_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint16_t4); #endif _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(half); _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(half2); _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(half3); _HLSL_16BIT_AVAILABILITY(shadermodel, 6.2) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(half4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(bool); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(bool2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(bool3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(bool4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(float); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(float2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(float3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(float4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int64_t); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int64_t2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int64_t3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(int64_t4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint64_t); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint64_t2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint64_t3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(uint64_t4); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(double); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(double2); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(double3); -_HLSL_BUILTIN_ALIAS(__builtin_hlsl_elementwise_any) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(double4); //===----------------------------------------------------------------------===// diff --git a/clang/lib/Sema/SemaHLSL.cpp b/clang/lib/Sema/SemaHLSL.cpp index 11686db117ff4..7724fafb253c5 100644 --- a/clang/lib/Sema/SemaHLSL.cpp +++ b/clang/lib/Sema/SemaHLSL.cpp @@ -1017,8 +1017,8 @@ void SetElementTypeAsReturnType(Sema *S, CallExpr *TheCall, // returning an ExprError bool SemaHLSL::CheckBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) { switch (BuiltinID) { - case Builtin::BI__builtin_hlsl_elementwise_all: - case Builtin::BI__builtin_hlsl_elementwise_any: { + case Builtin::BI__builtin_hlsl_all: + case Builtin::BI__builtin_hlsl_any: { if (SemaRef.checkArgCount(TheCall, 1)) return true; break; diff --git a/clang/test/SemaHLSL/BuiltIns/all-errors.hlsl b/clang/test/SemaHLSL/BuiltIns/all-errors.hlsl new file mode 100644 index 0000000000000..4afd799f8539e --- /dev/null +++ b/clang/test/SemaHLSL/BuiltIns/all-errors.hlsl @@ -0,0 +1,12 @@ + +// RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.6-library %s -fnative-half-type -emit-llvm-only -disable-llvm-passes -verify -verify-ignore-unexpected + +bool test_too_few_arg() { + return __builtin_hlsl_all(); + // expected-error@-1 {{too few arguments to function call, expected 1, have 0}} +} + +bool test_too_many_arg(float2 p0) { + return __builtin_hlsl_all(p0, p0); + // expected-error@-1 {{too many arguments to function call, expected 1, have 2}} +} diff --git a/clang/test/SemaHLSL/BuiltIns/any-errors.hlsl b/clang/test/SemaHLSL/BuiltIns/any-errors.hlsl index 7bb5308c5d5ba..e42fd97b40219 100644 --- a/clang/test/SemaHLSL/BuiltIns/any-errors.hlsl +++ b/clang/test/SemaHLSL/BuiltIns/any-errors.hlsl @@ -2,11 +2,11 @@ // RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.6-library %s -fnative-half-type -emit-llvm-only -disable-llvm-passes -verify -verify-ignore-unexpected bool test_too_few_arg() { - return __builtin_hlsl_elementwise_any(); + return __builtin_hlsl_any(); // expected-error@-1 {{too few arguments to function call, expected 1, have 0}} } bool test_too_many_arg(float2 p0) { - return __builtin_hlsl_elementwise_any(p0, p0); + return __builtin_hlsl_any(p0, p0); // expected-error@-1 {{too many arguments to function call, expected 1, have 2}} } `````````` </details> https://github.com/llvm/llvm-project/pull/101543 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits