Просмотр исходного кода

Revert "Report error for unsupported types of SV semantics (#3043)" (#3532)

This reverts commit bece3d4fafe4d7d50f5d0df59597a467d4f89f85.

Revert system value type checking code due to regressions.
Will re-merge once it's fully verified fixed.
Tex Riddell 4 лет назад
Родитель
Сommit
5bdf3574bc
31 измененных файлов с 35 добавлено и 915 удалено
  1. 2 36
      include/dxc/DXIL/DxilSemantic.h
  2. 33 158
      lib/DXIL/DxilSemantic.cpp
  3. 0 50
      lib/HLSL/HLSignatureLower.cpp
  4. 0 3
      lib/HLSL/HLSignatureLower.h
  5. 0 44
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_cs_input_semantics.hlsl
  6. 0 20
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_barycentric.hlsl
  7. 0 13
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_clipdistance.hlsl
  8. 0 17
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_coverage.hlsl
  9. 0 13
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_culldistance.hlsl
  10. 0 26
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_cullprimitive.hlsl
  11. 0 21
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_depth.hlsl
  12. 0 21
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_depthgreaterequal.hlsl
  13. 0 21
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_depthlessequal.hlsl
  14. 0 33
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_domainlocation.hlsl
  15. 0 39
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_gsinstanceid.hlsl
  16. 0 15
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_innercoverage.hlsl
  17. 0 37
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_insidetessfactor.hlsl
  18. 0 15
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_instanceid.hlsl
  19. 0 17
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_isfrontface.hlsl
  20. 0 48
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_outputcontrolid.hlsl
  21. 0 12
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_position.hlsl
  22. 0 39
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_primitiveid.hlsl
  23. 0 39
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_rendertargetarrayindex.hlsl
  24. 0 15
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_sampleindex.hlsl
  25. 0 19
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_shadingrate.hlsl
  26. 0 25
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_stencilref.hlsl
  27. 0 18
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_target.hlsl
  28. 0 36
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_tessfactor.hlsl
  29. 0 15
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_vertexid.hlsl
  30. 0 12
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_viewid.hlsl
  31. 0 38
      tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_viewportarrayindex.hlsl

+ 2 - 36
include/dxc/DXIL/DxilSemantic.h

@@ -12,7 +12,6 @@
 #pragma once
 
 #include "llvm/ADT/StringRef.h"
-#include "llvm/IR/Type.h"
 
 #include "DxilConstants.h"
 #include "DxilShaderModel.h"
@@ -24,33 +23,6 @@ class Semantic {
 public:
   using Kind = DXIL::SemanticKind;
 
-  enum class CompTy {
-    BoolTy             = 1 << 0,
-    HalfTy             = 1 << 1,
-    Int16Ty            = 1 << 2,
-    FloatTy            = 1 << 3,
-    Int32Ty            = 1 << 4,
-    DoubleTy           = 1 << 5,
-    Int64Ty            = 1 << 6,
-    HalfOrFloatTy      = HalfTy | FloatTy,
-    BoolOrInt32Ty      = BoolTy | Int32Ty,
-    BoolOrInt16Or32Ty  = BoolTy | Int16Ty | Int32Ty,
-    FloatOrInt32Ty     = FloatTy | Int32Ty,
-    Int16Or32Ty        = Int16Ty | Int32Ty,
-    AnyIntTy           = BoolTy | Int16Ty | Int32Ty | Int64Ty,
-    AnyFloatTy         = HalfTy | FloatTy | DoubleTy,
-    AnyTy              = AnyIntTy | AnyFloatTy,
-  };
-
-  enum class SizeClass {
-    Unknown,
-    Scalar,
-    Vec2,
-    Vec3,
-    Vec4,
-    Other
-  };
-
   static const int kUndefinedRow = -1;
   static const int kUndefinedCol = -1;
 
@@ -69,19 +41,13 @@ public:
   const char *GetName() const;
   bool IsArbitrary() const;
   bool IsInvalid() const;
-  bool IsSupportedType(llvm::Type *semTy) const;
-  CompTy GetCompType(llvm::Type* ty) const;
-  SizeClass GetCompCount(llvm::Type* ty) const;
 
 private:
   Kind m_Kind;                   // Semantic kind.
-  const char *m_pszName;         // Canonical name (for system semantics).
-  CompTy m_allowedTys;           // Types allowed for the semantic
-  SizeClass m_minCompCount;      // Minimum component count that is allowed for a semantic
-  SizeClass m_maxCompCount;      // Maximum component count that is allowed for a semantic
+  const char *m_pszName;              // Canonical name (for system semantics).
 
   Semantic() = delete;
-  Semantic(Kind Kind, const char *pszName, CompTy allowedTys, SizeClass minCompCount, SizeClass maxCompCount);
+  Semantic(Kind Kind, const char *pszName);
 
   // Table of all semantic properties.
   static const unsigned kNumSemanticRecords = (unsigned)Kind::Invalid + 1;

+ 33 - 158
lib/DXIL/DxilSemantic.cpp

@@ -11,7 +11,6 @@
 #include "dxc/DXIL/DxilSemantic.h"
 #include "dxc/DXIL/DxilSignature.h"
 #include "dxc/DXIL/DxilShaderModel.h"
-#include "dxc/DXIL/DxilUtil.h"
 #include "dxc/Support/Global.h"
 
 #include <string>
@@ -25,15 +24,9 @@ namespace hlsl {
 // Semantic class methods.
 //
 Semantic::Semantic(Kind Kind,
-                   const char *pszName,
-                   CompTy allowedTys,
-                   SizeClass minCompCount,
-                   SizeClass maxCompCount)
+                   const char *pszName)
 : m_Kind(Kind)
 , m_pszName(pszName)
-, m_allowedTys(allowedTys)
-, m_minCompCount(minCompCount)
-, m_maxCompCount(maxCompCount)
 {
 }
 
@@ -120,159 +113,41 @@ bool Semantic::IsInvalid() const {
   return m_Kind == Kind::Invalid;
 }
 
-Semantic::SizeClass Semantic::GetCompCount(llvm::Type* ty) const {
-
-  if (!ty->isVectorTy() && !dxilutil::IsIntegerOrFloatingPointType(ty))
-    return SizeClass::Unknown;
-
-  if (ty->isVectorTy()) {
-    if (ty->getVectorNumElements() == 1) {
-      return SizeClass::Scalar;
-    }
-    else if (ty->getVectorNumElements() == 2) {
-      return SizeClass::Vec2;
-    }
-    else if (ty->getVectorNumElements() == 3) {
-      return SizeClass::Vec3;
-    }
-    else if (ty->getVectorNumElements() == 4) {
-      return SizeClass::Vec4;
-    }
-    else {
-      DXASSERT(false, "Unexpected number of vector elements.");
-      return SizeClass::Unknown;
-    }
-  }
-
-  return SizeClass::Scalar;
-}
-
-Semantic::CompTy Semantic::GetCompType(llvm::Type* ty) const {
-
-  if (!ty->isVectorTy() && !dxilutil::IsIntegerOrFloatingPointType(ty))
-    return CompTy::AnyTy;
-
-  if (ty->isVectorTy())
-    ty = ty->getScalarType();
-
-  // must be an integer or a floating point type here
-  DXASSERT_NOMSG(dxilutil::IsIntegerOrFloatingPointType(ty));
-  if (ty->getScalarType()->isIntegerTy()) {
-    if (ty->getScalarSizeInBits() == 1) {
-      return CompTy::BoolTy;
-    } else if (ty->getScalarSizeInBits() == 16) {
-      return CompTy::Int16Ty;
-    } else if (ty->getScalarSizeInBits() == 32) {
-      return CompTy::Int32Ty;
-    } else {
-      return CompTy::Int64Ty;
-    }
-  } else {
-    if (ty->isHalfTy()) {
-      return CompTy::HalfTy;
-    } else if (ty->isFloatTy()) {
-      return CompTy::FloatTy;
-    } else {
-      DXASSERT_NOMSG(ty->isDoubleTy());
-      return CompTy::DoubleTy;
-    }
-  }
-}
-
-static bool IsScalarOrVectorTy(llvm::Type* ty) {
-  if (dxilutil::IsIntegerOrFloatingPointType(ty))
-    return true;
-  if (ty->isVectorTy() &&
-    dxilutil::IsIntegerOrFloatingPointType(ty->getVectorElementType()))
-    return true;
-  return false;
-}
-
-bool Semantic::IsSupportedType(llvm::Type* semTy) const {
-
-  if (m_Kind == Kind::Invalid)
-    return false;
-
-  // Skip type checking for Arbitrary kind
-  if (m_Kind == Kind::Arbitrary)
-    return true;
-
-  if (!IsScalarOrVectorTy(semTy)) {
-    // We only allow scalar or vector types as a valid semantic type except in some cases
-    // such as Clip/Cull or Tessfactor.
-    if (m_minCompCount == SizeClass::Other) {
-      if (semTy->isArrayTy()) {
-        semTy = semTy->getArrayElementType();
-        // TessFactor or InsideTessFactor must either be float[2] or float
-        if ((m_Kind == Kind::TessFactor ||
-             m_Kind == Kind::InsideTessFactor) &&
-          !dxilutil::IsIntegerOrFloatingPointType(semTy)) {
-          return false;
-        }
-        // Clip/Cull can be array of scalar or vector
-        if ((m_Kind == Kind::ClipDistance ||
-          m_Kind == Kind::CullDistance) &&
-          !IsScalarOrVectorTy(semTy)) {
-          return false;
-        }
-      }
-      else {
-        // Do not support other types such as matrix.
-        return false;
-      }
-    }
-    else {
-      return false;
-    }
-  }
-
-  if (((unsigned)m_allowedTys & (unsigned)GetCompType(semTy)) == 0)
-    return false;
-
-  // Skip type-shape validation for semantics marked as Other
-  if (m_minCompCount == SizeClass::Other)
-    return true;
-
-  SizeClass compSzClass = GetCompCount(semTy);
-  return compSzClass >= m_minCompCount &&
-    compSzClass <= m_maxCompCount;
-}
-
 typedef Semantic SP;
 const Semantic Semantic::ms_SemanticTable[kNumSemanticRecords] = {
   // Kind                         Name
-  SP(Kind::Arbitrary,             nullptr,                     CompTy::AnyTy,              SizeClass::Other,  SizeClass::Other),
-  SP(Kind::VertexID,              "SV_VertexID",               CompTy::Int16Or32Ty,        SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::InstanceID,            "SV_InstanceID",             CompTy::Int16Or32Ty,        SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::Position,              "SV_Position",               CompTy::HalfOrFloatTy,      SizeClass::Vec4,   SizeClass::Vec4),
-  SP(Kind::RenderTargetArrayIndex,"SV_RenderTargetArrayIndex", CompTy::Int16Or32Ty,        SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::ViewPortArrayIndex,    "SV_ViewportArrayIndex",     CompTy::Int16Or32Ty,        SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::ClipDistance,          "SV_ClipDistance",           CompTy::HalfOrFloatTy,      SizeClass::Other,  SizeClass::Other),
-  SP(Kind::CullDistance,          "SV_CullDistance",           CompTy::HalfOrFloatTy,      SizeClass::Other,  SizeClass::Other),
-  SP(Kind::OutputControlPointID,  "SV_OutputControlPointID",   CompTy::Int32Ty,            SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::DomainLocation,        "SV_DomainLocation",         CompTy::FloatTy,            SizeClass::Scalar, SizeClass::Vec3),
-  SP(Kind::PrimitiveID,           "SV_PrimitiveID",            CompTy::Int32Ty,            SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::GSInstanceID,          "SV_GSInstanceID",           CompTy::Int32Ty,            SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::SampleIndex,           "SV_SampleIndex",            CompTy::Int32Ty,            SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::IsFrontFace,           "SV_IsFrontFace",            CompTy::BoolOrInt32Ty,      SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::Coverage,              "SV_Coverage",               CompTy::Int32Ty,            SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::InnerCoverage,         "SV_InnerCoverage",          CompTy::Int32Ty,            SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::Target,                "SV_Target",                 CompTy::AnyTy,              SizeClass::Scalar, SizeClass::Vec4),
-  SP(Kind::Depth,                 "SV_Depth",                  CompTy::HalfOrFloatTy,      SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::DepthLessEqual,        "SV_DepthLessEqual",         CompTy::HalfOrFloatTy,      SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::DepthGreaterEqual,     "SV_DepthGreaterEqual",      CompTy::HalfOrFloatTy,      SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::StencilRef,            "SV_StencilRef",             CompTy::Int16Or32Ty,        SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::DispatchThreadID,      "SV_DispatchThreadID",       CompTy::Int16Or32Ty,        SizeClass::Scalar, SizeClass::Vec3),
-  SP(Kind::GroupID,               "SV_GroupID",                CompTy::Int16Or32Ty,        SizeClass::Scalar, SizeClass::Vec3),
-  SP(Kind::GroupIndex,            "SV_GroupIndex",             CompTy::Int16Or32Ty,        SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::GroupThreadID,         "SV_GroupThreadID",          CompTy::Int16Or32Ty,        SizeClass::Scalar, SizeClass::Vec3),
-  SP(Kind::TessFactor,            "SV_TessFactor",             CompTy::HalfOrFloatTy,      SizeClass::Other,  SizeClass::Other),
-  SP(Kind::InsideTessFactor,      "SV_InsideTessFactor",       CompTy::HalfOrFloatTy,      SizeClass::Other,  SizeClass::Other),
-  SP(Kind::ViewID,                "SV_ViewID",                 CompTy::Int32Ty,            SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::Barycentrics,          "SV_Barycentrics",           CompTy::HalfOrFloatTy,      SizeClass::Vec3,   SizeClass::Vec3),
-  SP(Kind::ShadingRate,           "SV_ShadingRate",            CompTy::Int16Or32Ty,        SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::CullPrimitive,         "SV_CullPrimitive",          CompTy::BoolOrInt16Or32Ty,  SizeClass::Scalar, SizeClass::Scalar),
-  SP(Kind::Invalid,               nullptr,                     CompTy::AnyTy,              SizeClass::Other,  SizeClass::Other),
+  SP(Kind::Arbitrary,             nullptr),
+  SP(Kind::VertexID,              "SV_VertexID"),
+  SP(Kind::InstanceID,            "SV_InstanceID"),
+  SP(Kind::Position,              "SV_Position"),
+  SP(Kind::RenderTargetArrayIndex,"SV_RenderTargetArrayIndex"),
+  SP(Kind::ViewPortArrayIndex,    "SV_ViewportArrayIndex"),
+  SP(Kind::ClipDistance,          "SV_ClipDistance"),
+  SP(Kind::CullDistance,          "SV_CullDistance"),
+  SP(Kind::OutputControlPointID,  "SV_OutputControlPointID"),
+  SP(Kind::DomainLocation,        "SV_DomainLocation"),
+  SP(Kind::PrimitiveID,           "SV_PrimitiveID"),
+  SP(Kind::GSInstanceID,          "SV_GSInstanceID"),
+  SP(Kind::SampleIndex,           "SV_SampleIndex"),
+  SP(Kind::IsFrontFace,           "SV_IsFrontFace"),
+  SP(Kind::Coverage,              "SV_Coverage"),
+  SP(Kind::InnerCoverage,         "SV_InnerCoverage"),
+  SP(Kind::Target,                "SV_Target"),
+  SP(Kind::Depth,                 "SV_Depth"),
+  SP(Kind::DepthLessEqual,        "SV_DepthLessEqual"),
+  SP(Kind::DepthGreaterEqual,     "SV_DepthGreaterEqual"),
+  SP(Kind::StencilRef,            "SV_StencilRef"),
+  SP(Kind::DispatchThreadID,      "SV_DispatchThreadID"),
+  SP(Kind::GroupID,               "SV_GroupID"),
+  SP(Kind::GroupIndex,            "SV_GroupIndex"),
+  SP(Kind::GroupThreadID,         "SV_GroupThreadID"),
+  SP(Kind::TessFactor,            "SV_TessFactor"),
+  SP(Kind::InsideTessFactor,      "SV_InsideTessFactor"),
+  SP(Kind::ViewID,                "SV_ViewID"),
+  SP(Kind::Barycentrics,          "SV_Barycentrics"),
+  SP(Kind::ShadingRate,           "SV_ShadingRate"),
+  SP(Kind::CullPrimitive,         "SV_CullPrimitive"),
+  SP(Kind::Invalid,               nullptr),
 };
 
 } // namespace hlsl

+ 0 - 50
lib/HLSL/HLSignatureLower.cpp

@@ -1210,50 +1210,6 @@ void HLSignatureLower::GenerateDxilInputsOutputs(DXIL::SignatureKind SK) {
   }
 }
 
-bool HLSignatureLower::ValidateSemanticType(llvm::Function* F) {
-  bool result = true;
-  DxilFunctionAnnotation* funcAnnotation = HLM.GetFunctionAnnotation(F);
-  if (!funcAnnotation) {
-    return result;
-  }
-  for (Argument& arg : F->args()) {
-    DxilParameterAnnotation &paramAnnotation =
-      funcAnnotation->GetParameterAnnotation(arg.getArgNo());
-    llvm::StringRef semanticStr = paramAnnotation.GetSemanticString();
-    if (semanticStr.empty()) {
-      continue;
-    }
-    unsigned index;
-    StringRef baseSemanticStr;
-    Semantic::DecomposeNameAndIndex(semanticStr, &baseSemanticStr, &index);
-    const Semantic* semantic = Semantic::GetByName(baseSemanticStr);
-    Type* argTy = arg.getType();
-
-    if (argTy->isPointerTy())
-      argTy = cast<PointerType>(argTy)->getPointerElementType();
-
-    if (argTy->isArrayTy()) {
-      // Array type for arguments with specific qualifiers are expected.
-      // In this case, we do validation on array's element type.
-      DxilParamInputQual inputQual = paramAnnotation.GetParamInputQual();
-      if (inputQual == DxilParamInputQual::InputPatch ||
-        inputQual == DxilParamInputQual::InputPrimitive ||
-        inputQual == DxilParamInputQual::OutIndices ||
-        inputQual == DxilParamInputQual::OutPrimitives ||
-        inputQual == DxilParamInputQual::OutputPatch ||
-        inputQual == DxilParamInputQual::OutVertices) {
-        argTy = cast<ArrayType>(argTy)->getArrayElementType();
-      }
-    }
-
-    if (!semantic->IsSupportedType(argTy)) {
-      dxilutil::EmitErrorOnFunction(F->getContext(), F, "invalid type used for \'"+ semanticStr.str() + "\' semantic.");
-      result = false;
-    }
-  }
-  return result;
-}
-
 void HLSignatureLower::GenerateDxilCSInputs() {
   OP *hlslOP = HLM.GetOP();
 
@@ -1765,12 +1721,6 @@ void HLSignatureLower::GenerateGetMeshPayloadOperation() {
 }
 // Lower signatures.
 void HLSignatureLower::Run() {
-
-  // Generate error and exit if semantic type
-  // is not one of the allowed types
-  if (!ValidateSemanticType(Entry))
-    return;
-
   DxilFunctionProps &props = HLM.GetDxilFunctionProps(Entry);
   if (props.IsGraphics()) {
     if (props.IsMS()) {

+ 0 - 3
lib/HLSL/HLSignatureLower.h

@@ -13,8 +13,6 @@
 #include <unordered_set>
 #include <unordered_map>
 #include "dxc/DXIL/DxilConstants.h"
-#include "llvm/IR/Function.h"
-#include "llvm/IR/Argument.h"
 
 namespace llvm {
 class Value;
@@ -55,7 +53,6 @@ private:
   void GenerateDxilPrimOutputs();
   void GenerateDxilInputsOutputs(DXIL::SignatureKind SK);
   void GenerateDxilCSInputs();
-  bool ValidateSemanticType(llvm::Function* F);
   void GenerateDxilPatchConstantLdSt();
   void GenerateDxilPatchConstantFunctionInputs();
   void GenerateClipPlanesForVS(llvm::Value *outPosition);

+ 0 - 44
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_cs_input_semantics.hlsl

@@ -1,44 +0,0 @@
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint2 -DGI_TY=uint -DGID_TY=uint2 -DGTID_TY=uint2 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint -DGI_TY=uint -DGID_TY=uint -DGTID_TY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=min16uint3 -DGI_TY=min16uint -DGID_TY=min16uint3 -DGTID_TY=min16uint3 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=min16uint2 -DGI_TY=min16uint -DGID_TY=min16uint2 -DGTID_TY=min16uint2 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=min16uint -DGI_TY=min16uint -DGID_TY=min16uint -DGTID_TY=min16uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T cs_6_2 -enable-16bit-types -DTID_TY=uint16_t3 -DGI_TY=uint16_t -DGID_TY=uint16_t3 -DGTID_TY=uint16_t3 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T cs_6_2 -enable-16bit-types -DTID_TY=uint16_t2 -DGI_TY=uint16_t -DGID_TY=uint16_t2 -DGTID_TY=uint16_t2 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T cs_6_2 -enable-16bit-types -DTID_TY=uint16_t -DGI_TY=uint16_t -DGID_TY=uint16_t -DGTID_TY=uint16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=float3 -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_TID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=float1x1 -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_TID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=float -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_TID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=bool -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_TID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=min16float -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_TID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=float3 -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_GI_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=float1x1 -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_GI_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=float -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_GI_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=bool -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_GI_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=min16float -DGID_TY=uint3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_GI_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=float3 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_GID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=float1x1 -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_GID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=float -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_GID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=bool -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_GID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=min16float -DGTID_TY=uint3 %s | FileCheck %s -check-prefix=CHK_GID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=float3 %s | FileCheck %s -check-prefix=CHK_GTID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=float1x1 %s | FileCheck %s -check-prefix=CHK_GTID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=float %s | FileCheck %s -check-prefix=CHK_GTID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=bool %s | FileCheck %s -check-prefix=CHK_GTID_TY_ERR
-// RUN: %dxc -E main -T cs_6_0 -DTID_TY=uint3 -DGI_TY=uint -DGID_TY=uint3 -DGTID_TY=min16float %s | FileCheck %s -check-prefix=CHK_GTID_TY_ERR
-
-// Verify error gets reported for non-integer types on CS input semantics on integeral types
-
-// CHK_NO_ERR: define void @main
-// CHK_TID_TY_ERR: error: invalid type used for 'SV_DispatchThreadID' semantic
-// CHK_GI_TY_ERR: error: invalid type used for 'SV_GroupIndex' semantic
-// CHK_GID_TY_ERR: error: invalid type used for 'SV_GroupID' semantic
-// CHK_GTID_TY_ERR: error: invalid type used for 'SV_GroupThreadID' semantic
-
-
-[numthreads(1, 1, 1)]
-void main(TID_TY tid : SV_DispatchThreadID, 
-GI_TY gi : SV_GroupIndex, 
-GID_TY gid : SV_GroupID, 
-GTID_TY gtid : SV_GroupThreadID ) {}

+ 0 - 20
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_barycentric.hlsl

@@ -1,20 +0,0 @@
-// RUN: %dxc -E main -T ps_6_4 -DTY=float3 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=min16float3 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -enable-16bit-types -DTY=float16_t3 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float4 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint3 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=int2x1 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint4 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_Barycentrics' semantic
-
-float4 main(TY a : SV_Barycentrics) : SV_Target
-{
-  return 0;
-}

+ 0 - 13
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_clipdistance.hlsl

@@ -1,13 +0,0 @@
-// RUN: %dxc -E main -T vs_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=float16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=min16float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_ClipDistance' semantic
-
-void main(TY id : SV_ClipDistance) {}

+ 0 - 17
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_coverage.hlsl

@@ -1,17 +0,0 @@
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool2 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_Coverage' semantic
-
-void main(inout TY c: SV_Coverage)
-{
-   c=0;
-}

+ 0 - 13
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_culldistance.hlsl

@@ -1,13 +0,0 @@
-// RUN: %dxc -E main -T vs_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=float16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=min16float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_CullDistance' semantic
-
-void main(TY id : SV_CullDistance) {}

+ 0 - 26
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_cullprimitive.hlsl

@@ -1,26 +0,0 @@
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16int %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16int1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=int16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=int16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=uint16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint4 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_CullPrimitive' semantic
-
-uint main(TY b : SV_CullPrimitive) : SV_Target {
-  return b;
-}

+ 0 - 21
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_depth.hlsl

@@ -1,21 +0,0 @@
-// RUN: %dxc -E main -T ps_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=float16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16float1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=float16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_Depth' semantic
-
-TY main(out TY d : SV_Depth) : SV_Target
-{
-  d = 2 * d;
-  return 0;
-}

+ 0 - 21
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_depthgreaterequal.hlsl

@@ -1,21 +0,0 @@
-// RUN: %dxc -E main -T ps_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=float16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16float1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=float16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_DepthGreaterEqual' semantic
-
-TY main(out TY d : SV_DepthGreaterEqual) : SV_Target
-{
-  d = 2 * d;
-  return 0;
-}

+ 0 - 21
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_depthlessequal.hlsl

@@ -1,21 +0,0 @@
-// RUN: %dxc -E main -T ps_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=float16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=float16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16float1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_DepthLessEqual' semantic
-
-TY main(out TY d : SV_DepthLessEqual) : SV_Target
-{
-  d = 2 * d;
-  return 0;
-}

+ 0 - 33
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_domainlocation.hlsl

@@ -1,33 +0,0 @@
-// RUN: %dxc -E main -T ds_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=float3 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=float4 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=bool2 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_DomainLocation' semantic
-
-
-struct DSFoo
-{
-    float Edges[4]  : SV_TessFactor;
-    float Inside[2] : SV_InsideTessFactor;
-    float4 a : AAA;
-    float3 b[3] : BBB;
-};
-
-struct HSFoo
-{
-    float3 pos : AAA_HSFoo;
-};
-
-uint g_Idx1;
-
-[domain("quad")]
-float4 main(OutputPatch<HSFoo, 16> p, DSFoo input, TY UV : SV_DomainLocation) : SV_Position
-{
-    return 0;
-}

+ 0 - 39
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_gsinstanceid.hlsl

@@ -1,39 +0,0 @@
-// RUN: %dxc -E main -T gs_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T gs_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T gs_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T gs_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T gs_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T gs_6_2 -DTY=bool2 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_GSInstanceID' semantic
-
-
-struct VSOut {
-  float2 uv : TEXCOORD0;
-};
-
-struct VSOutGSIn {
-  float3 posSize : POSSIZE;
-  float4 clr : COLOR;
-};
-
-struct VSOutGSArrayIn {
-  float3 posSize : POSSIZE;
-  float2 clr[2] : COLOR;
-};
-
-struct VSOutGSMatIn {
-  float3 posSize : POSSIZE;
-  float2x2 clr[2] : COLOR;
-};
-
-cbuffer b : register(b0) {
-  float2 invViewportSize;
-};
-
-// geometry shader that outputs 3 vertices from a point
-[maxvertexcount(3)] 
-[instance(24)]
-void main(point VSOutGSIn points[1], inout TriangleStream<VSOut> stream, TY InstanceID : SV_GSInstanceID) {  
-}

+ 0 - 15
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_innercoverage.hlsl

@@ -1,15 +0,0 @@
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool2 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_InnerCoverage' semantic
-
-void main(in TY c: SV_InnerCoverage)
-{
-}

+ 0 - 37
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_insidetessfactor.hlsl

@@ -1,37 +0,0 @@
-// RUN: %dxc -E main -T ds_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=min16float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -enable-16bit-types -DTY=float16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=bool3 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=uint2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_ERR
-
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_InsideTessFactor' semantic
-
-// HS PCF output
-struct HsPcfOut {
-  float  outTessFactor[4]   : SV_TessFactor;
-  TY     inTessFactor[2]    : SV_InsideTessFactor;
-  uint   index              : SV_RenderTargetArrayIndex;
-};
-
-// Per-vertex input structs
-struct DsCpIn {
-  uint   index              : SV_RenderTargetArrayIndex;
-};
-
-// Per-vertex output structs
-struct DsCpOut {
-  uint   index              : SV_RenderTargetArrayIndex;
-};
-
-[domain("quad")]
-DsCpOut main(OutputPatch<DsCpIn, 3> patch, HsPcfOut pcfData) {
-  DsCpOut dsOut;
-  dsOut = (DsCpOut)0;
-  return dsOut;
-}

+ 0 - 15
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_instanceid.hlsl

@@ -1,15 +0,0 @@
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=uint16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=min16uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=uint2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_InstanceID' semantic
-
-void main(TY id : SV_InstanceID) {}

+ 0 - 17
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_isfrontface.hlsl

@@ -1,17 +0,0 @@
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool2 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_IsFrontFace' semantic
-
-void main(in TY c: SV_IsFrontFace)
-{
-}

+ 0 - 48
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_outputcontrolid.hlsl

@@ -1,48 +0,0 @@
-// RUN: %dxc -E main -T hs_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T hs_6_2 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T hs_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T hs_6_2 -DTY=float3 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T hs_6_2 -DTY=float4 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T hs_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T hs_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T hs_6_2 -DTY=bool2 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_OutputControlPointID' semantic
-
-
-struct MatStruct {
-  int2 uv : TEXCOORD0;
-  float3x4  m_ObjectToWorld : TEXCOORD1;
-};
-
-struct Output {
-  float edges[3] : SV_TessFactor;
-  float inside : SV_InsideTessFactor;
-};
-
-Output Patch(InputPatch<MatStruct, 3> inputs)
-{
-  Output ret;
-  int i = inputs[0].uv.x;
-  int j = inputs[0].uv.y;
-
-  ret.edges[0] = inputs[0].m_ObjectToWorld[0][0];
-  ret.edges[1] = inputs[0].m_ObjectToWorld[0][1];
-  ret.edges[2] = inputs[0].m_ObjectToWorld[0][2];
-  ret.inside = 1.0f;
-  return ret;
-}
-
-
-
-[domain("tri")]
-[partitioning("fractional_odd")]
-[outputtopology("triangle_cw")]
-[patchconstantfunc("Patch")]
-[outputcontrolpoints(3)]
-[shader("hull")]
-float4 main(InputPatch<MatStruct, 3> input, TY id : SV_OutputControlPointID) : SV_Position
-{
-  return 0;
-}

+ 0 - 12
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_position.hlsl

@@ -1,12 +0,0 @@
-// RUN: %dxc -E main -T vs_6_2 -DTY=float4 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=float16_t4 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=min16float4 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=uint2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_Position' semantic
-
-void main(TY id : SV_Position) {}

+ 0 - 39
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_primitiveid.hlsl

@@ -1,39 +0,0 @@
-// RUN: %dxc -E main -T gs_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T gs_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T gs_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T gs_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T gs_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T gs_6_2 -DTY=bool2 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_PrimitiveID' semantic
-
-
-struct VSOut {
-  float2 uv : TEXCOORD0;
-};
-
-struct VSOutGSIn {
-  float3 posSize : POSSIZE;
-  float4 clr : COLOR;
-};
-
-struct VSOutGSArrayIn {
-  float3 posSize : POSSIZE;
-  float2 clr[2] : COLOR;
-};
-
-struct VSOutGSMatIn {
-  float3 posSize : POSSIZE;
-  float2x2 clr[2] : COLOR;
-};
-
-cbuffer b : register(b0) {
-  float2 invViewportSize;
-};
-
-// geometry shader that outputs 3 vertices from a point
-[maxvertexcount(3)] 
-[instance(24)]
-void main(point VSOutGSIn points[1], inout TriangleStream<VSOut> stream, TY PrimID : SV_PrimitiveID) {  
-}

+ 0 - 39
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_rendertargetarrayindex.hlsl

@@ -1,39 +0,0 @@
-// RUN: %dxc -E main -T ds_6_2 -enable-16bit-types -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -enable-16bit-types -DTY=uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -enable-16bit-types -DTY=uint16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=min16uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=bool3 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=uint2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=min16float %s | FileCheck %s -check-prefix=CHK_ERR
-
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_RenderTargetArrayIndex' semantic
-
-// HS PCF output
-struct HsPcfOut {
-  float  outTessFactor[4]   : SV_TessFactor;
-  float  inTessFactor[2]    : SV_InsideTessFactor;
-  TY   index              : SV_RenderTargetArrayIndex;
-};
-
-// Per-vertex input structs
-struct DsCpIn {
-  uint   index              : SV_RenderTargetArrayIndex;
-};
-
-// Per-vertex output structs
-struct DsCpOut {
-  uint   index              : SV_RenderTargetArrayIndex;
-};
-
-[domain("quad")]
-DsCpOut main(OutputPatch<DsCpIn, 3> patch, HsPcfOut pcfData) {
-  DsCpOut dsOut;
-  dsOut = (DsCpOut)0;
-  return dsOut;
-}

+ 0 - 15
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_sampleindex.hlsl

@@ -1,15 +0,0 @@
-// RUN: %dxc -E main -T ps_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_2 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_2 -DTY=bool2 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_SampleIndex' semantic
-
-void main(in TY c: SV_SampleIndex)
-{
-}

+ 0 - 19
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_shadingrate.hlsl

@@ -1,19 +0,0 @@
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=min16uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -enable-16bit-types -DTY=uint16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint3 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=int2x1 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint4 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_ShadingRate' semantic
-
-float2 main(TY r : SV_ShadingRate) : SV_Target {
-  return 2 * r;
-}

+ 0 - 25
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_stencilref.hlsl

@@ -1,25 +0,0 @@
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=min16uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -enable-16bit-types -DTY=uint16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float4 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=bool2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint3 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=int2x1 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint4 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_StencilRef' semantic
-
-void main(out TY a : SV_StencilRef
-         ,out float4 b : SV_Target)
-{
-    a = 0;
-    b = 0;
-}

+ 0 - 18
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_target.hlsl

@@ -1,18 +0,0 @@
-// RUN: %dxc -E main -T ps_6_4 -DTY=float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float3 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=float4 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint2 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint3 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=uint4 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ps_6_4 -DTY=int2x1 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_Target' semantic
-
-TY main() : SV_Target
-{
-  return 0;
-}

+ 0 - 36
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_tessfactor.hlsl

@@ -1,36 +0,0 @@
-// RUN: %dxc -E main -T ds_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=min16float %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -enable-16bit-types -DTY=float16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=bool3 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=uint2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_ERR
-
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_TessFactor' semantic
-
-// HS PCF output
-struct HsPcfOut {
-  TY  outTessFactor[4]   : SV_TessFactor;
-  float  inTessFactor[2]    : SV_InsideTessFactor;
-  uint   index              : SV_RenderTargetArrayIndex;
-};
-
-// Per-vertex input structs
-struct DsCpIn {
-  uint   index              : SV_RenderTargetArrayIndex;
-};
-
-// Per-vertex output structs
-struct DsCpOut {
-  uint   index              : SV_RenderTargetArrayIndex;
-};
-
-[domain("quad")]
-DsCpOut main(OutputPatch<DsCpIn, 3> patch, HsPcfOut pcfData) {
-  DsCpOut dsOut;
-  dsOut = (DsCpOut)0;
-  return dsOut;
-}

+ 0 - 15
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_vertexid.hlsl

@@ -1,15 +0,0 @@
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -enable-16bit-types -DTY=uint16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=min16uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=uint2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_VertexID' semantic
-
-void main(TY id : SV_VertexID) {}

+ 0 - 12
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_viewid.hlsl

@@ -1,12 +0,0 @@
-// RUN: %dxc -E main -T vs_6_2 -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T vs_6_2 -DTY=bool %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_ViewID' semantic
-
-void main(TY id : SV_ViewID) {}

+ 0 - 38
tools/clang/test/HLSLFileCheck/hlsl/diagnostics/errors/semantics_type_checking/unsupported_types_sv_viewportarrayindex.hlsl

@@ -1,38 +0,0 @@
-// RUN: %dxc -E main -T ds_6_2 -enable-16bit-types -DTY=uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -enable-16bit-types -DTY=uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -enable-16bit-types -DTY=uint16_t %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -enable-16bit-types -DTY=uint16_t1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=min16uint %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=min16uint1 %s | FileCheck %s -check-prefix=CHK_NO_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=float %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=float2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=float3 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=float4 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=int2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=int2x2 %s | FileCheck %s -check-prefix=CHK_ERR
-// RUN: %dxc -E main -T ds_6_2 -DTY=bool2 %s | FileCheck %s -check-prefix=CHK_ERR
-
-// CHK_NO_ERR: define void @main
-// CHK_ERR: error: invalid type used for 'SV_ViewportArrayIndex' semantic
-
-
-struct DSFoo
-{
-    float Edges[4]  : SV_TessFactor;
-    float Inside[2] : SV_InsideTessFactor;
-    float4 a : AAA;
-    float3 b[3] : BBB;
-};
-
-struct HSFoo
-{
-    float3 pos : AAA_HSFoo;
-};
-
-uint g_Idx1;
-
-[domain("quad")]
-float4 main(OutputPatch<HSFoo, 16> p, DSFoo input, TY UV : SV_ViewportArrayIndex) : SV_Position
-{
-    return 0;
-}