llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-hlsl @llvm/pr-subscribers-clang-driver Author: Dan Brown (danbrown-amd) <details> <summary>Changes</summary> Addresses #<!-- -->119260. --- Patch is 127.32 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/184892.diff 135 Files Affected: - (modified) clang/include/clang/Basic/DiagnosticSemaKinds.td (+5) - (modified) clang/lib/Sema/SemaHLSL.cpp (+23) - (modified) clang/test/AST/HLSL/HLSLControlFlowHint.hlsl (+1-1) - (modified) clang/test/AST/HLSL/matrix-alias.hlsl (+4-4) - (modified) clang/test/AST/HLSL/matrix-constructors.hlsl (+2-1) - (modified) clang/test/AST/HLSL/matrix-elementexpr-tree-transform.hlsl (+1-1) - (modified) clang/test/AST/HLSL/matrix-general-initializer.hlsl (+3-3) - (modified) clang/test/AST/HLSL/matrix-member-access-scalar.hlsl (+2-1) - (modified) clang/test/AST/HLSL/matrix-member-access-swizzle.hlsl (+2-1) - (modified) clang/test/AST/HLSL/vector-alias.hlsl (+4-3) - (modified) clang/test/AST/HLSL/vector-constructors.hlsl (+3-2) - (modified) clang/test/AST/HLSL/vk.spec-constant.usage.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/BasicFeatures/frem_modulo.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/GroupMemoryBarrierWithGroupSync.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveAllEqual.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveBallot.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveBitOr.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveBitXor.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveCountBits.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveMax.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveMin.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveProduct.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveActiveSum.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WavePrefixCountBits.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WavePrefixProduct.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WavePrefixSum.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/WaveReadLaneAt.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/acos-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/acos.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/all.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/any.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/asdouble.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/asin-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/asin.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/atan-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/atan.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/atan2-overloads.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/atan2.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/clamp-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/clamp.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/clip.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/cosh-overloads.hlsl (+3-3) - (modified) clang/test/CodeGenHLSL/builtins/cosh.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/cross.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/ddx-coarse-builtin.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/ddx-coarse.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/ddx-fine-builtin.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/ddx-fine.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/ddx.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/ddy-coarse-builtin.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/ddy-coarse.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/ddy-fine-builtin.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/ddy-fine.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/ddy.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/degrees-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/degrees.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/distance.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/dot.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/dot2add.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/f16tof32-builtin.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/f16tof32.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/f32tof16-builtin.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/f32tof16.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/faceforward.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/firstbithigh.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/firstbitlow.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/fmod.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/frac-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/frac.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/isinf-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/isinf.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/isnan.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/length.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/lerp-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/lerp.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/mad.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/normalize-overloads.hlsl (+3-3) - (modified) clang/test/CodeGenHLSL/builtins/normalize.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/radians-overloads.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/radians.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/rcp.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/reflect.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/refract.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/rsqrt-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/rsqrt.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/sign.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/sinh.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/smoothstep.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/step-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/step.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/tan-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/tan.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/builtins/tanh-overloads.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/builtins/tanh.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/resources/StructuredBuffers-methods-ps.hlsl (+2-2) - (modified) clang/test/CodeGenHLSL/resources/cbuffer_geps.hlsl (+1-1) - (modified) clang/test/CodeGenHLSL/semantics/semantic.explicit-mix-builtin.vs.hlsl (+1-1) - (modified) clang/test/Driver/dxc_hlsl-rootsig-ver.hlsl (+3-3) - (modified) clang/test/ParserHLSL/access_specifiers.hlsl (+2-2) - (modified) clang/test/ParserHLSL/hlsl_contained_type_attr.hlsl (+1-1) - (modified) clang/test/ParserHLSL/hlsl_contained_type_attr_error.hlsl (+1-1) - (modified) clang/test/ParserHLSL/hlsl_is_rov_attr.hlsl (+1-1) - (modified) clang/test/ParserHLSL/hlsl_is_rov_attr_error.hlsl (+1-1) - (modified) clang/test/ParserHLSL/hlsl_raw_buffer_attr.hlsl (+1-1) - (modified) clang/test/ParserHLSL/hlsl_raw_buffer_attr_error.hlsl (+1-1) - (modified) clang/test/ParserHLSL/hlsl_resource_class_attr.hlsl (+1-1) - (modified) clang/test/ParserHLSL/hlsl_resource_class_attr_error.hlsl (+1-1) - (modified) clang/test/ParserHLSL/hlsl_resource_dimension_attr.hlsl (+1-1) - (modified) clang/test/ParserHLSL/hlsl_resource_dimension_attr_error.hlsl (+1-1) - (modified) clang/test/ParserHLSL/semantic_parsing.hlsl (+2-2) - (modified) clang/test/ParserHLSL/semantic_parsing_define.hlsl (+2-2) - (modified) clang/test/SemaHLSL/Availability/attr-deprecated.hlsl (+1-1) - (modified) clang/test/SemaHLSL/BuiltIns/binary-compat-overload-warnings.hlsl (+3-3) - (modified) clang/test/SemaHLSL/BuiltIns/matrix-constructors-errors.hlsl (+2-1) - (modified) clang/test/SemaHLSL/BuiltIns/ternary-compat-overload-warnings.hlsl (+1-1) - (modified) clang/test/SemaHLSL/BuiltIns/unary-compat-overload-warnings.hlsl (+24-24) - (modified) clang/test/SemaHLSL/BuiltIns/vec-scalar-compat-overload-warnings.hlsl (+1-1) - (modified) clang/test/SemaHLSL/BuiltIns/vector-constructors-errors.hlsl (+2-1) - (modified) clang/test/SemaHLSL/Language/InitIncompleteArrays.hlsl (+1-1) - (modified) clang/test/SemaHLSL/Language/InitLists.hlsl (+1-1) - (modified) clang/test/SemaHLSL/Language/NoVirtual.hlsl (+1-1) - (modified) clang/test/SemaHLSL/Language/OutputParameters.hlsl (+1-1) - (modified) clang/test/SemaHLSL/Language/TemplateOutArg.hlsl (+1-1) - (modified) clang/test/SemaHLSL/Semantics/semantic.explicit-mix-builtin-vs.hlsl (+1-1) - (modified) clang/test/SemaHLSL/Semantics/semantic.explicit-mix-location-2.hlsl (+1-1) - (modified) clang/test/SemaHLSL/Semantics/semantic.explicit-mix-location.hlsl (+1-1) - (modified) clang/test/SemaHLSL/Semantics/valid_entry_parameter.hlsl (+1-1) - (modified) clang/test/SemaHLSL/Semantics/vertexid.vs.hlsl (+2-2) - (modified) clang/test/SemaHLSL/Types/short-errors.hlsl (+2-2) - (modified) clang/test/SemaHLSL/entry_shader.hlsl (+27-3) - (modified) clang/test/SemaHLSL/num_threads.hlsl (+16-3) - (modified) clang/test/SemaHLSL/prohibit_reference.hlsl (+1-1) - (modified) clang/test/SemaHLSL/vk.spec-constant.error.hlsl (+2-1) ``````````diff diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 0c25eb2443d5e..79e1a3fa10fbe 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -13517,6 +13517,11 @@ def err_hlsl_attr_invalid_ast_node : Error< def err_hlsl_attr_incompatible : Error<"%0 attribute is not compatible with %1 attribute">; +def err_hlsl_ambiguous_entry_point : Error< + "ambiguous entry point definition '%0'">; +def err_hlsl_missing_entry_point : Error<"missing entry point definition '%0'">; +def note_hlsl_previous_definition_here : Note< + "previous '%0' definition is here">; def err_hlsl_entry_shader_attr_mismatch : Error< "%0 attribute on entry function does not match the target profile">; def err_hlsl_numthreads_argument_oor : Error<"argument '%select{X|Y|Z}0' to numthreads attribute cannot exceed %1">; diff --git a/clang/lib/Sema/SemaHLSL.cpp b/clang/lib/Sema/SemaHLSL.cpp index 3babf64822f10..bfeee6f0f7773 100644 --- a/clang/lib/Sema/SemaHLSL.cpp +++ b/clang/lib/Sema/SemaHLSL.cpp @@ -2809,6 +2809,12 @@ void DiagnoseHLSLAvailability::HandleFunctionOrMethodRef(FunctionDecl *FD, void DiagnoseHLSLAvailability::RunOnTranslationUnit( const TranslationUnitDecl *TU) { + // cases: no match, 1 match, >1 match + auto &TargetInfo = SemaRef.getASTContext().getTargetInfo(); + auto &entryName = TargetInfo.getTargetOpts().HLSLEntry; + bool isLibraryShader = TargetInfo.getTriple().getEnvironment() == + llvm::Triple::EnvironmentType::Library; + SourceLocation entryLoc{}; // Iterate over all shader entry functions and library exports, and for those // that have a body (definiton), run diag scan on each, setting appropriate @@ -2839,6 +2845,17 @@ void DiagnoseHLSLAvailability::RunOnTranslationUnit( // shader entry point if (HLSLShaderAttr *ShaderAttr = FD->getAttr<HLSLShaderAttr>()) { + if (!isLibraryShader && FD->getName() == entryName) { + if (entryLoc.isValid()) { + SemaRef.Diag(FD->getLocation(), + diag::err_hlsl_ambiguous_entry_point) + << entryName; + SemaRef.Diag(entryLoc, diag::note_hlsl_previous_definition_here) + << entryName; + return; + } + entryLoc = FD->getLocation(); + } SetShaderStageContext(ShaderAttr->getType()); RunOnFunction(FD); continue; @@ -2862,6 +2879,12 @@ void DiagnoseHLSLAvailability::RunOnTranslationUnit( } } } + + if (!isLibraryShader && entryLoc.isInvalid()) { + SemaRef.Diag(TU->getLocation(), diag::err_hlsl_missing_entry_point) + << entryName; + return; + } } void DiagnoseHLSLAvailability::RunOnFunction(const FunctionDecl *FD) { diff --git a/clang/test/AST/HLSL/HLSLControlFlowHint.hlsl b/clang/test/AST/HLSL/HLSLControlFlowHint.hlsl index 18263bedbe3ec..0a11c067e23f0 100644 --- a/clang/test/AST/HLSL/HLSLControlFlowHint.hlsl +++ b/clang/test/AST/HLSL/HLSLControlFlowHint.hlsl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-compute -ast-dump %s | FileCheck %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -ast-dump %s | FileCheck %s // CHECK: FunctionDecl {{.*}} used branch 'int (int)' // CHECK: AttributedStmt diff --git a/clang/test/AST/HLSL/matrix-alias.hlsl b/clang/test/AST/HLSL/matrix-alias.hlsl index 2758b6f0d202f..e36d69d75201b 100644 --- a/clang/test/AST/HLSL/matrix-alias.hlsl +++ b/clang/test/AST/HLSL/matrix-alias.hlsl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -ast-dump -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -hlsl-entry entry -ast-dump -o - %s | FileCheck %s // Test that matrix aliases are set up properly for HLSL @@ -20,8 +20,8 @@ // Make sure we got a using directive at the end. // CHECK: UsingDirectiveDecl 0x{{[0-9a-fA-F]+}} <<invalid sloc>> <invalid sloc> Namespace 0x{{[0-9a-fA-F]+}} 'hlsl' -[numthreads(1,1,1)] -int entry() { +[shader("compute"), numthreads(1,1,1)] +void entry() { // Verify that the alias is generated inside the hlsl namespace. hlsl::matrix<float, 2, 2> Mat2x2f; @@ -45,5 +45,5 @@ int entry() { // CHECK: DeclStmt 0x{{[0-9a-fA-F]+}} <line:44:3, col:21> // CHECK-NEXT: VarDecl 0x{{[0-9a-fA-F]+}} <col:3, col:12> col:12 ImpMat4x4 'matrix<>':'matrix<float, 4, 4>' - return 1; + return; } diff --git a/clang/test/AST/HLSL/matrix-constructors.hlsl b/clang/test/AST/HLSL/matrix-constructors.hlsl index ae61ab49f8573..1d3e630e89538 100644 --- a/clang/test/AST/HLSL/matrix-constructors.hlsl +++ b/clang/test/AST/HLSL/matrix-constructors.hlsl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -ast-dump -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -hlsl-entry ok -ast-dump -o - %s | FileCheck %s typedef float float2x1 __attribute__((matrix_type(2,1))); @@ -8,6 +8,7 @@ typedef float float4x4 __attribute__((matrix_type(4,4))); typedef float float2 __attribute__((ext_vector_type(2))); typedef float float4 __attribute__((ext_vector_type(4))); +[shader("compute")] [numthreads(1,1,1)] void ok() { // CHECK: VarDecl 0x{{[0-9a-fA-F]+}} <col:{{[0-9]+}}, col:{{[0-9]+}}> col:{{[0-9]+}} A 'float2x3':'matrix<float, 2, 3>' cinit diff --git a/clang/test/AST/HLSL/matrix-elementexpr-tree-transform.hlsl b/clang/test/AST/HLSL/matrix-elementexpr-tree-transform.hlsl index 137c6395fbde1..b88a781e63f38 100644 --- a/clang/test/AST/HLSL/matrix-elementexpr-tree-transform.hlsl +++ b/clang/test/AST/HLSL/matrix-elementexpr-tree-transform.hlsl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -std=hlsl202x \ +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -std=hlsl202x \ // RUN: -finclude-default-header -ast-dump -ast-dump-filter=get00 %s | FileCheck %s template <typename T> diff --git a/clang/test/AST/HLSL/matrix-general-initializer.hlsl b/clang/test/AST/HLSL/matrix-general-initializer.hlsl index 2c225cbd62539..310991e8c87da 100644 --- a/clang/test/AST/HLSL/matrix-general-initializer.hlsl +++ b/clang/test/AST/HLSL/matrix-general-initializer.hlsl @@ -1,10 +1,10 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -ast-dump -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -hlsl-entry ok -ast-dump -o - %s | FileCheck %s typedef float float4x2 __attribute__((matrix_type(4,2))); typedef float float2x2 __attribute__((matrix_type(2,2))); typedef int int4x4 __attribute__((matrix_type(4,4))); - +[shader("compute")] [numthreads(1,1,1)] void ok() { @@ -257,4 +257,4 @@ float2x2 m2 = {0.xxxx}; // CHECK-NEXT: IntegerLiteral 0x{{[0-9a-fA-F]+}} <col:{{[0-9]+}}> 'int' 1 int4x4 m3 = {m2, m2, m2, m2}; -} \ No newline at end of file +} diff --git a/clang/test/AST/HLSL/matrix-member-access-scalar.hlsl b/clang/test/AST/HLSL/matrix-member-access-scalar.hlsl index 14c18aaffb77e..c89202df03784 100644 --- a/clang/test/AST/HLSL/matrix-member-access-scalar.hlsl +++ b/clang/test/AST/HLSL/matrix-member-access-scalar.hlsl @@ -1,7 +1,8 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -ast-dump -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -hlsl-entry ok -ast-dump -o - %s | FileCheck %s typedef float float3x3 __attribute__((matrix_type(3,3))); +[shader("compute")] [numthreads(1,1,1)] void ok() { float3x3 A; diff --git a/clang/test/AST/HLSL/matrix-member-access-swizzle.hlsl b/clang/test/AST/HLSL/matrix-member-access-swizzle.hlsl index 2d0169e799802..9f9f0caf1be5b 100644 --- a/clang/test/AST/HLSL/matrix-member-access-swizzle.hlsl +++ b/clang/test/AST/HLSL/matrix-member-access-swizzle.hlsl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -ast-dump -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -hlsl-entry ok -ast-dump -o - %s | FileCheck %s typedef float float3x3 __attribute__((matrix_type(3,3))); typedef float float4x4 __attribute__((matrix_type(4,4))); @@ -6,6 +6,7 @@ typedef float float2 __attribute__((ext_vector_type(2))); typedef float float3 __attribute__((ext_vector_type(3))); typedef float float4 __attribute__((ext_vector_type(4))); +[shader("compute")] [numthreads(1,1,1)] void ok() { float3x3 A; diff --git a/clang/test/AST/HLSL/vector-alias.hlsl b/clang/test/AST/HLSL/vector-alias.hlsl index e1f78e6abdca8..c0d48bf4bbf6a 100644 --- a/clang/test/AST/HLSL/vector-alias.hlsl +++ b/clang/test/AST/HLSL/vector-alias.hlsl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -ast-dump -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -hlsl-entry entry -ast-dump -o - %s | FileCheck %s // CHECK: NamespaceDecl {{.*}} implicit hlsl // CHECK: TypeAliasTemplateDecl {{.*}} implicit vector // CHECK-NEXT: TemplateTypeParmDecl {{.*}} class depth 0 index 0 element @@ -17,8 +17,9 @@ // Make sure we got a using directive at the end. // CHECK: UsingDirectiveDecl {{.*}} Namespace {{.*}} 'hlsl' +[shader("compute")] [numthreads(1,1,1)] -int entry() { +void entry() { // Verify that the alias is generated inside the hlsl namespace. hlsl::vector<float, 2> Vec2 = {1.0, 2.0}; @@ -48,5 +49,5 @@ int entry() { // CHECK: DeclStmt // CHECK-NEXT: VarDecl {{.*}} ImpVec4 'vector<>':'vector<float, 4>' cinit - return 1; + return; } diff --git a/clang/test/AST/HLSL/vector-constructors.hlsl b/clang/test/AST/HLSL/vector-constructors.hlsl index ab547554b148d..2473f7f81143a 100644 --- a/clang/test/AST/HLSL/vector-constructors.hlsl +++ b/clang/test/AST/HLSL/vector-constructors.hlsl @@ -1,9 +1,10 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -ast-dump -o - %s | FileCheck %s -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -std=hlsl202x -ast-dump -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -hlsl-entry entry -ast-dump -o - %s | FileCheck %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -std=hlsl202x -hlsl-entry entry -ast-dump -o - %s | FileCheck %s typedef float float2 __attribute__((ext_vector_type(2))); typedef float float3 __attribute__((ext_vector_type(3))); +[shader("compute")] [numthreads(1,1,1)] void entry() { float2 Vec2 = float2(1.0, 2.0); diff --git a/clang/test/AST/HLSL/vk.spec-constant.usage.hlsl b/clang/test/AST/HLSL/vk.spec-constant.usage.hlsl index 5654974b26d2d..a7e8223a325e6 100644 --- a/clang/test/AST/HLSL/vk.spec-constant.usage.hlsl +++ b/clang/test/AST/HLSL/vk.spec-constant.usage.hlsl @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -finclude-default-header -fnative-int16-type -triple spirv-unknown-vulkan-compute -x hlsl -ast-dump -o - %s | FileCheck %s +// RUN: %clang_cc1 -finclude-default-header -fnative-int16-type -triple spirv-unknown-vulkan-library -x hlsl -ast-dump -o - %s | FileCheck %s // CHECK: VarDecl {{.*}} bool_const 'const hlsl_private bool' static cinit // CHECK-NEXT: CallExpr {{.*}} 'bool' diff --git a/clang/test/CodeGenHLSL/BasicFeatures/frem_modulo.hlsl b/clang/test/CodeGenHLSL/BasicFeatures/frem_modulo.hlsl index 393efcc360d08..4dd0070c763ee 100644 --- a/clang/test/CodeGenHLSL/BasicFeatures/frem_modulo.hlsl +++ b/clang/test/CodeGenHLSL/BasicFeatures/frem_modulo.hlsl @@ -1,7 +1,7 @@ // RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.3-library %s \ // RUN: -fnative-half-type -fnative-int16-type -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s -// RUN: %clang_cc1 -finclude-default-header -triple spirv-unknown-vulkan-compute %s \ +// RUN: %clang_cc1 -finclude-default-header -triple spirv-unknown-vulkan-library %s \ // RUN: -fnative-half-type -fnative-int16-type -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s diff --git a/clang/test/CodeGenHLSL/builtins/GroupMemoryBarrierWithGroupSync.hlsl b/clang/test/CodeGenHLSL/builtins/GroupMemoryBarrierWithGroupSync.hlsl index e709ed3616f0d..a0f17835a8367 100644 --- a/clang/test/CodeGenHLSL/builtins/GroupMemoryBarrierWithGroupSync.hlsl +++ b/clang/test/CodeGenHLSL/builtins/GroupMemoryBarrierWithGroupSync.hlsl @@ -3,7 +3,7 @@ // RUN: -emit-llvm -disable-llvm-passes -o - | FileCheck %s \ // RUN: -DTARGET=dx -check-prefixes=CHECK,CHECK-DXIL // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \ -// RUN: spirv-unknown-vulkan-compute %s \ +// RUN: spirv-unknown-vulkan-library %s \ // RUN: -emit-llvm -disable-llvm-passes -o - | FileCheck %s \ // RUN: -DTARGET=spv -check-prefixes=CHECK,CHECK-SPIRV diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveAllEqual.hlsl b/clang/test/CodeGenHLSL/builtins/WaveActiveAllEqual.hlsl index 323aa439984f9..7510d62df58ad 100644 --- a/clang/test/CodeGenHLSL/builtins/WaveActiveAllEqual.hlsl +++ b/clang/test/CodeGenHLSL/builtins/WaveActiveAllEqual.hlsl @@ -1,8 +1,8 @@ // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \ -// RUN: dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,CHECK-DXIL // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \ -// RUN: spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: spirv-pc-vulkan-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV // Test basic lowering to runtime function call. diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl b/clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl index f499fc97f43fc..704149a795066 100644 --- a/clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl +++ b/clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl @@ -1,8 +1,8 @@ // RUN: %clang_cc1 -finclude-default-header -fnative-half-type -fnative-int16-type -triple \ -// RUN: dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,CHECK-DXIL // RUN: %clang_cc1 -finclude-default-header -fnative-half-type -fnative-int16-type -triple \ -// RUN: spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: spirv-pc-vulkan-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV // Test basic lowering to runtime function call for int values. diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl b/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl index 3655cdb443fa9..0de77b04f097d 100644 --- a/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl +++ b/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl @@ -1,8 +1,8 @@ // RUN: %clang_cc1 -finclude-default-header -fnative-half-type -fnative-int16-type -triple \ -// RUN: dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,CHECK-DXIL // RUN: %clang_cc1 -finclude-default-header -fnative-half-type -fnative-int16-type -triple \ -// RUN: spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: spirv-pc-vulkan-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV // Test basic lowering to runtime function call for int values. diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveBallot.hlsl b/clang/test/CodeGenHLSL/builtins/WaveActiveBallot.hlsl index df2d854a64247..283cb3caa2beb 100644 --- a/clang/test/CodeGenHLSL/builtins/WaveActiveBallot.hlsl +++ b/clang/test/CodeGenHLSL/builtins/WaveActiveBallot.hlsl @@ -1,8 +1,8 @@ // RUN: %clang_cc1 -finclude-default-header -fnative-half-type -triple \ -// RUN: dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,CHECK-DXIL // RUN: %clang_cc1 -finclude-default-header -fnative-half-type -triple \ -// RUN: spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: spirv-pc-vulkan-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV // Test basic lowering to runtime function call for int values. diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveBitOr.hlsl b/clang/test/CodeGenHLSL/builtins/WaveActiveBitOr.hlsl index 80364724448fa..04869545e2f00 100644 --- a/clang/test/CodeGenHLSL/builtins/WaveActiveBitOr.hlsl +++ b/clang/test/CodeGenHLSL/builtins/WaveActiveBitOr.hlsl @@ -1,9 +1,9 @@ // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \ -// RUN: dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,DXCHECK -DCALL="call" // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \ -// RUN: spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: spirv-pc-vulkan-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,SPVCHECK -DCALL="call spir_func" // Test basic lowering to runtime function call. diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveBitXor.hlsl b/clang/test/CodeGenHLSL/builtins/WaveActiveBitXor.hlsl index 9c94663390843..e5b14a7a28bb6 100644 --- a/clang/test/CodeGenHLSL/builtins/WaveActiveBitXor.hlsl +++ b/clang/test/CodeGenHLSL/builtins/WaveActiveBitXor.hlsl @@ -1,9 +1,9 @@ // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \ -// RUN: dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,DXCHECK -DCALL="call" // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \ -// RUN: spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: spirv-pc-vulkan-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,SPVCHECK -DCALL="call spir_func" // Test basic lowering to runtime function call. diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveCountBits.hlsl b/clang/test/CodeGenHLSL/builtins/WaveActiveCountBits.hlsl index 086dd295ba938..af30920120612 100755 --- a/clang/test/CodeGenHLSL/builtins/WaveActiveCountBits.hlsl +++ b/clang/test/CodeGenHLSL/builtins/WaveActiveCountBits.hlsl @@ -1,8 +1,8 @@ // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \ -// RUN: dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s -DTARGET=dx // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \ -// RUN: spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: spirv-pc-vulkan-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s -DTARGET=spv // Test basic lowering to runtime function call. diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveMax.hlsl b/clang/test/CodeGenHLSL/builtins/WaveActiveMax.hlsl index be05a17cc3692..dac8a7e4296b7 100644 --- a/clang/test/CodeGenHLSL/builtins/WaveActiveMax.hlsl +++ b/clang/test/CodeGenHLSL/builtins/WaveActiveMax.hlsl @@ -1,8 +1,8 @@ // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \ -// RUN: dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,CHECK-DXIL // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -triple \ -// RUN: spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: spirv-pc-vulkan-library %s -emit-llvm -disable-llvm-passes -o - | \ // RUN: FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV // Test basic lowering to runtime function call. diff... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/184892 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
