llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang-driver

Author: Sarah Spall (spall)

<details>
<summary>Changes</summary>

Add a new langopt NativeInt16Type to control support for 16 bit integers. 
Enable by default for all languages but HLSL. 
Update failing tests. 
Add new test.
Closes #<!-- -->81779 

---

Patch is 139.49 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/165584.diff


157 Files Affected:

- (modified) clang/include/clang/Basic/LangOptions.def (+1) 
- (modified) clang/include/clang/Driver/Options.td (+5-1) 
- (modified) clang/lib/Driver/ToolChains/Clang.cpp (+1) 
- (modified) clang/lib/Driver/ToolChains/HLSL.cpp (+9) 
- (modified) clang/lib/Frontend/CompilerInvocation.cpp (+8-3) 
- (modified) clang/lib/Frontend/InitPreprocessor.cpp (+1-1) 
- (modified) clang/lib/Parse/ParseDecl.cpp (+7) 
- (modified) clang/test/AST/HLSL/packoffset.hlsl (+1-1) 
- (modified) clang/test/AST/HLSL/vk.spec-constant.usage.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/BasicFeatures/StructElementwiseCast.hlsl 
(+1-1) 
- (modified) clang/test/CodeGenHLSL/BasicFeatures/frem_modulo.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/HLSLControlFlowHint.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/Operators/logical-not.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/basic_types.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/WaveReadLaneAt.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/abs.hlsl (+1-1) 
- (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 (+4-4) 
- (modified) clang/test/CodeGenHLSL/builtins/asfloat.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/asin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/asint.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/asint16.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/asuint.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/asuint16.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/atan.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/atan2.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/ceil.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/clamp-builtin.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-builtin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/clip.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/cos.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/cosh.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/countbits.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/cross.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/degrees-builtin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/degrees.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/distance.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/dot-builtin.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/dst.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/exp.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/exp2.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/faceforward.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/firstbithigh.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/firstbitlow.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/floor.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/fmod.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/frac-builtin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/frac.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/ldexp.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/length.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/lerp-builtin.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/lit.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/log.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/log10.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/log2.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/mad.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/max-overloads.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/max.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/min-overloads.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/min.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/normalize-builtin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/normalize.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/pow.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/radians-builtin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/radians.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/rcp-builtin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/rcp.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/reflect.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/refract.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/reversebits.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/round.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/rsqrt-builtin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/rsqrt.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/saturate-builtin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/saturate.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/sign.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/sin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/sinh.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/smoothstep.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/splitdouble.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/sqrt.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/step.hlsl (+2-2) 
- (modified) clang/test/CodeGenHLSL/builtins/tan.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/tanh.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/transpose-builtin.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/builtins/trunc.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/enable-16bit-types.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/float3.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/no_int_promotion.hlsl (+1-1) 
- (modified) 
clang/test/CodeGenHLSL/resources/RasterizerOrderedStructuredBuffer-elementtype.hlsl
 (+1-1) 
- (modified) 
clang/test/CodeGenHLSL/resources/StructuredBuffers-elementtype.hlsl (+8-8) 
- (modified) clang/test/CodeGenHLSL/resources/TypedBuffers-elementtype.hlsl 
(+4-4) 
- (modified) clang/test/CodeGenHLSL/resources/cbuffer.hlsl (+1-1) 
- (modified) clang/test/CodeGenHLSL/vk-features/vk.spec-constant.hlsl (+1-1) 
- (modified) clang/test/Preprocessor/predefined-macros-hlsl.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/AddUint64-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/all-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/any-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/asfloat-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/asint-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/asint16-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/asuint-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/asuint16-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/clamp-errors-16bit.hlsl (+3-3) 
- (modified) clang/test/SemaHLSL/BuiltIns/clamp-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/clip-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/countbits-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/cross-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/distance-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/dot-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/dot2add-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/exp-errors.hlsl (+3-3) 
- (modified) clang/test/SemaHLSL/BuiltIns/faceforward-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/firstbithigh-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/firstbitlow-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/fmod-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/frac-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/half-float-only-errors.hlsl (+22-22) 
- (modified) clang/test/SemaHLSL/BuiltIns/half-float-only-errors2.hlsl (+3-3) 
- (modified) clang/test/SemaHLSL/BuiltIns/isinf-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/isnan-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/ldexp-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/length-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/lerp-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/mad-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/matrix-basic_types-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/max-errors-16bit.hlsl (+3-3) 
- (modified) clang/test/SemaHLSL/BuiltIns/min-errors-16bit.hlsl (+3-3) 
- (modified) clang/test/SemaHLSL/BuiltIns/normalize-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/radians-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/rcp-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/reflect-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/refract-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/reversebits-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/round-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/rsqrt-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/saturate-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/sign-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/smoothstep-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/splitdouble-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/BuiltIns/step-errors.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/Operators/logical-not.hlsl (+1-1) 
- (modified) clang/test/SemaHLSL/Types/Arithmetic/half_size.hlsl (+2-2) 
- (added) clang/test/SemaHLSL/Types/short-errors.hlsl (+21) 
- (modified) clang/test/SemaHLSL/Types/typedefs.hlsl (+2-2) 
- (modified) clang/test/SemaHLSL/VectorOverloadResolution.hlsl (+2-2) 


``````````diff
diff --git a/clang/include/clang/Basic/LangOptions.def 
b/clang/include/clang/Basic/LangOptions.def
index 8d6b8a14740ce..d3cca82b4bdff 100644
--- a/clang/include/clang/Basic/LangOptions.def
+++ b/clang/include/clang/Basic/LangOptions.def
@@ -216,6 +216,7 @@ LANGOPT(OpenCLGenericAddressSpace, 1, 0, NotCompatible, 
"OpenCL generic keyword"
 LANGOPT(OpenCLPipes              , 1, 0, NotCompatible, "OpenCL pipes language 
constructs and built-ins")
 LANGOPT(NativeHalfType    , 1, 0, NotCompatible, "Native half type support")
 LANGOPT(NativeHalfArgsAndReturns, 1, 0, NotCompatible, "Native half args and 
returns")
+LANGOPT(NativeInt16Type   , 1, 1, NotCompatible, "Native int 16 type support")
 LANGOPT(CUDA              , 1, 0, NotCompatible, "CUDA")
 LANGOPT(HIP               , 1, 0, NotCompatible, "HIP")
 LANGOPT(OpenMP            , 32, 0, NotCompatible, "OpenMP support and version 
of OpenMP (31, 40 or 45)")
diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index cb5cb888c6da7..bb6fc7db4dc36 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -8628,6 +8628,10 @@ def fobjc_subscripting_legacy_runtime : Flag<["-"], 
"fobjc-subscripting-legacy-r
 def vtordisp_mode_EQ : Joined<["-"], "vtordisp-mode=">,
   HelpText<"Control vtordisp placement on win32 targets">,
   MarshallingInfoInt<LangOpts<"VtorDispMode">, "1">;
+def fnative_int16_type : Flag<["-"], "fnative-int16-type">,
+  HelpText<"Use 16 bit integer types">,
+  ImpliedByAnyOf<[!strconcat("!", hlsl.KeyPath)]>,
+  MarshallingInfoFlag<LangOpts<"NativeInt16Type">>;
 def fnative_half_type: Flag<["-"], "fnative-half-type">,
   HelpText<"Use the native half type for __fp16 instead of promoting to 
float">,
   MarshallingInfoFlag<LangOpts<"NativeHalfType">>,
@@ -9520,7 +9524,7 @@ def emit_pristine_llvm : DXCFlag<"emit-pristine-llvm">,
   HelpText<"Emit pristine LLVM IR from the frontend by not running any LLVM 
passes at all."
            "Same as -S + -emit-llvm + -disable-llvm-passes.">;
 def fcgl : DXCFlag<"fcgl">, Alias<emit_pristine_llvm>;
-def enable_16bit_types : DXCFlag<"enable-16bit-types">, 
Alias<fnative_half_type>,
+def enable_16bit_types : DXCFlag<"enable-16bit-types">,
   HelpText<"Enable 16-bit types and disable min precision types."
            "Available in HLSL 2018 and shader model 6.2.">;
 def fdx_rootsignature_version :
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 4e8f63ea49480..d3ab6f1261ad6 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -3708,6 +3708,7 @@ static void RenderHLSLOptions(const ArgList &Args, 
ArgStringList &CmdArgs,
       options::OPT_emit_obj,
       options::OPT_disable_llvm_passes,
       options::OPT_fnative_half_type,
+      options::OPT_fnative_int16_type,
       options::OPT_hlsl_entrypoint,
       options::OPT_fdx_rootsignature_define,
       options::OPT_fdx_rootsignature_version,
diff --git a/clang/lib/Driver/ToolChains/HLSL.cpp 
b/clang/lib/Driver/ToolChains/HLSL.cpp
index 20a320ea233d4..8d3fba7137c7c 100644
--- a/clang/lib/Driver/ToolChains/HLSL.cpp
+++ b/clang/lib/Driver/ToolChains/HLSL.cpp
@@ -498,6 +498,15 @@ HLSLToolChain::TranslateArgs(const DerivedArgList &Args, 
StringRef BoundArch,
       continue;
     }
 
+    if (A->getOption().getID() == options::OPT_enable_16bit_types) {
+      // Translate -enable-16bit-types into -fnative-half-type and
+      // -fnative-int16-type
+      DAL->AddFlagArg(nullptr, Opts.getOption(options::OPT_fnative_half_type));
+      DAL->AddFlagArg(nullptr, 
Opts.getOption(options::OPT_fnative_int16_type));
+      A->claim();
+      continue;
+    }
+
     DAL->append(A);
   }
 
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp 
b/clang/lib/Frontend/CompilerInvocation.cpp
index bd36eb4ecf9da..1951e7f747487 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -4600,7 +4600,8 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, 
ArgList &Args,
         // Validate that if fnative-half-type is given, that
         // the language standard is at least hlsl2018, and that
         // the target shader model is at least 6.2.
-        if (Args.getLastArg(OPT_fnative_half_type)) {
+        if (Args.getLastArg(OPT_fnative_half_type) ||
+            Args.getLastArg(OPT_fnative_int16_type)) {
           const LangStandard &Std =
               LangStandard::getLangStandardForKind(Opts.LangStd);
           if (!(Opts.LangStd >= LangStandard::lang_hlsl2018 &&
@@ -4614,12 +4615,16 @@ bool CompilerInvocation::ParseLangArgs(LangOptions 
&Opts, ArgList &Args,
           Diags.Report(diag::err_drv_hlsl_bad_shader_unsupported)
               << VulkanEnv << T.getOSName() << T.str();
         }
-        if (Args.getLastArg(OPT_fnative_half_type)) {
+        if (Args.getLastArg(OPT_fnative_half_type) ||
+            Args.getLastArg(OPT_fnative_int16_type)) {
+          const char *Str = Args.getLastArg(OPT_fnative_half_type)
+                                ? "-fnative-half-type"
+                                : "-fnative-int16-type";
           const LangStandard &Std =
               LangStandard::getLangStandardForKind(Opts.LangStd);
           if (!(Opts.LangStd >= LangStandard::lang_hlsl2018))
             Diags.Report(diag::err_drv_hlsl_16bit_types_unsupported)
-                << "-fnative-half-type" << false << Std.getName();
+                << Str << false << Std.getName();
         }
       } else {
         llvm_unreachable("expected DXIL or SPIR-V target");
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp 
b/clang/lib/Frontend/InitPreprocessor.cpp
index 47f1d5a6b636c..8602be1d8a173 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -399,7 +399,7 @@ static void InitializeStandardPredefinedMacros(const 
TargetInfo &TI,
     Builder.defineMacro("__HLSL_202y",
                         Twine((unsigned)LangOptions::HLSLLangStd::HLSL_202y));
 
-    if (LangOpts.NativeHalfType)
+    if (LangOpts.NativeHalfType && LangOpts.NativeInt16Type)
       Builder.defineMacro("__HLSL_ENABLE_16_BIT", "1");
 
     // Shader target information
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index e4b158e4a6248..7e4a164e34eda 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -4248,6 +4248,13 @@ void Parser::ParseDeclarationSpecifiers(
 
     // type-specifier
     case tok::kw_short:
+      if (!getLangOpts().NativeInt16Type) {
+        Diag(Tok, diag::err_unknown_typename) << Tok.getName();
+        DS.SetTypeSpecError();
+        DS.SetRangeEnd(Tok.getLocation());
+        ConsumeToken();
+        goto DoneWithDeclSpec;
+      }
       isInvalid = DS.SetTypeSpecWidth(TypeSpecifierWidth::Short, Loc, PrevSpec,
                                       DiagID, Policy);
       break;
diff --git a/clang/test/AST/HLSL/packoffset.hlsl 
b/clang/test/AST/HLSL/packoffset.hlsl
index 4d18a9ca631f1..05b927279e198 100644
--- a/clang/test/AST/HLSL/packoffset.hlsl
+++ b/clang/test/AST/HLSL/packoffset.hlsl
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -triple dxil-unknown-shadermodel6.3-library -S 
-finclude-default-header -fnative-half-type -ast-dump  -x hlsl %s | FileCheck %s
+// RUN: %clang_cc1 -triple dxil-unknown-shadermodel6.3-library -S 
-finclude-default-header -fnative-half-type -fnative-int16-type -ast-dump  -x 
hlsl %s | FileCheck %s
 
 
 // CHECK: HLSLBufferDecl {{.*}} cbuffer A
diff --git a/clang/test/AST/HLSL/vk.spec-constant.usage.hlsl 
b/clang/test/AST/HLSL/vk.spec-constant.usage.hlsl
index 733c4e2ee5a36..5654974b26d2d 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 -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-compute -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/StructElementwiseCast.hlsl 
b/clang/test/CodeGenHLSL/BasicFeatures/StructElementwiseCast.hlsl
index 4e29994afd27e..bd9a62f4db359 100644
--- a/clang/test/CodeGenHLSL/BasicFeatures/StructElementwiseCast.hlsl
+++ b/clang/test/CodeGenHLSL/BasicFeatures/StructElementwiseCast.hlsl
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -finclude-default-header -fnative-half-type -triple 
dxil-pc-shadermodel6.3-library -x hlsl -emit-llvm -disable-llvm-passes -o - %s 
| FileCheck %s
+// RUN: %clang_cc1 -finclude-default-header -fnative-half-type 
-fnative-int16-type -triple dxil-pc-shadermodel6.3-library -x hlsl -emit-llvm 
-disable-llvm-passes -o - %s | FileCheck %s
 
 struct S {
   int X;
diff --git a/clang/test/CodeGenHLSL/BasicFeatures/frem_modulo.hlsl 
b/clang/test/CodeGenHLSL/BasicFeatures/frem_modulo.hlsl
index edc28c5c80b51..393efcc360d08 100644
--- a/clang/test/CodeGenHLSL/BasicFeatures/frem_modulo.hlsl
+++ b/clang/test/CodeGenHLSL/BasicFeatures/frem_modulo.hlsl
@@ -1,8 +1,8 @@
 // RUN: %clang_cc1 -finclude-default-header -triple 
dxil-pc-shadermodel6.3-library %s \
-// RUN:  -fnative-half-type -emit-llvm -disable-llvm-passes -o - | \
+// 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:  -fnative-half-type -emit-llvm -disable-llvm-passes -o - | \
+// RUN:  -fnative-half-type -fnative-int16-type -emit-llvm 
-disable-llvm-passes -o - | \
 // RUN:  FileCheck %s
 
  half2 half_vec_mod_by_int(half2 p1) {
diff --git a/clang/test/CodeGenHLSL/HLSLControlFlowHint.hlsl 
b/clang/test/CodeGenHLSL/HLSLControlFlowHint.hlsl
index aa13b27581850..6737cd3ee78ba 100644
--- a/clang/test/CodeGenHLSL/HLSLControlFlowHint.hlsl
+++ b/clang/test/CodeGenHLSL/HLSLControlFlowHint.hlsl
@@ -1,5 +1,5 @@
-// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple 
dxil-pc-shadermodel6.3-library %s -fnative-half-type -emit-llvm -o - | 
FileCheck %s
-// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple 
spirv-vulkan-library %s -fnative-half-type -emit-llvm -o - | FileCheck %s
+// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple 
dxil-pc-shadermodel6.3-library %s -fnative-half-type -fnative-int16-type 
-emit-llvm -o - | FileCheck %s
+// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple 
spirv-vulkan-library %s -fnative-half-type -fnative-int16-type -emit-llvm -o - 
| FileCheck %s
 
 // CHECK: define {{.*}} i32 {{.*}}test_branch{{.*}}(i32 {{.*}} [[VALD:%.*]])
 // CHECK: [[PARAM:%.*]] = load i32, ptr [[VALD]].addr, align 4
diff --git a/clang/test/CodeGenHLSL/Operators/logical-not.hlsl 
b/clang/test/CodeGenHLSL/Operators/logical-not.hlsl
index 0f9d0677d8610..d5130ab88ea64 100644
--- a/clang/test/CodeGenHLSL/Operators/logical-not.hlsl
+++ b/clang/test/CodeGenHLSL/Operators/logical-not.hlsl
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.6-library -disable-llvm-passes 
-emit-llvm -finclude-default-header -fnative-half-type -o - %s | FileCheck %s
+// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.6-library -disable-llvm-passes 
-emit-llvm -finclude-default-header -fnative-half-type -fnative-int16-type -o - 
%s | FileCheck %s
 
 // CHECK-LABEL: case1
 // CHECK: [[ToBool:%.*]] = icmp ne <2 x i32> {{.*}}, zeroinitializer
diff --git a/clang/test/CodeGenHLSL/basic_types.hlsl 
b/clang/test/CodeGenHLSL/basic_types.hlsl
index 37fb5195e9768..8836126934957 100644
--- a/clang/test/CodeGenHLSL/basic_types.hlsl
+++ b/clang/test/CodeGenHLSL/basic_types.hlsl
@@ -1,8 +1,8 @@
 // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple \
-// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type \
+// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type 
-fnative-int16-type \
 // RUN:   -emit-llvm -disable-llvm-passes -o - | FileCheck %s
 // RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple \
-// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type \
+// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type 
-fnative-int16-type \
 // RUN:   -emit-llvm -disable-llvm-passes -o - -DNAMESPACED| FileCheck %s
 
 
diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl 
b/clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl
index df530a9cee561..f499fc97f43fc 100644
--- a/clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl
+++ b/clang/test/CodeGenHLSL/builtins/WaveActiveAllTrue.hlsl
@@ -1,7 +1,7 @@
-// RUN: %clang_cc1 -finclude-default-header -fnative-half-type -triple \
+// 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:   FileCheck %s --check-prefixes=CHECK,CHECK-DXIL
-// RUN: %clang_cc1 -finclude-default-header -fnative-half-type -triple \
+// 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:   FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV
 
diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl 
b/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl
index 87bb1dee01905..3655cdb443fa9 100644
--- a/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl
+++ b/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl
@@ -1,7 +1,7 @@
-// RUN: %clang_cc1 -finclude-default-header -fnative-half-type -triple \
+// 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:   FileCheck %s --check-prefixes=CHECK,CHECK-DXIL
-// RUN: %clang_cc1 -finclude-default-header -fnative-half-type -triple \
+// 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:   FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV
 
diff --git a/clang/test/CodeGenHLSL/builtins/WaveReadLaneAt.hlsl 
b/clang/test/CodeGenHLSL/builtins/WaveReadLaneAt.hlsl
index 8c787a42618ac..da6cbc40a79bb 100644
--- a/clang/test/CodeGenHLSL/builtins/WaveReadLaneAt.hlsl
+++ b/clang/test/CodeGenHLSL/builtins/WaveReadLaneAt.hlsl
@@ -1,7 +1,7 @@
-// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -fnative-half-type 
-triple \
+// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -fnative-half-type 
-fnative-int16-type -triple \
 // RUN:   dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o 
- | \
 // RUN:   FileCheck %s --check-prefixes=CHECK,CHECK-DXIL
-// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -fnative-half-type 
-triple \
+// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -fnative-half-type 
-fnative-int16-type -triple \
 // RUN:   spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \
 // RUN:   FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV
 
diff --git a/clang/test/CodeGenHLSL/builtins/abs.hlsl 
b/clang/test/CodeGenHLSL/builtins/abs.hlsl
index 6abe2f816c844..45cc907c0ada9 100644
--- a/clang/test/CodeGenHLSL/builtins/abs.hlsl
+++ b/clang/test/CodeGenHLSL/builtins/abs.hlsl
@@ -1,5 +1,5 @@
 // RUN: %clang_cc1 -finclude-default-header -triple 
dxil-pc-shadermodel6.3-library %s \
-// RUN:  -fnative-half-type -emit-llvm -disable-llvm-passes -o - | \
+// RUN:  -fnative-half-type -fnative-int16-type -emit-llvm 
-disable-llvm-passes -o - | \
 // RUN:  FileCheck %s --check-prefixes=CHECK,NATIVE_HALF
 // RUN: %clang_cc1 -finclude-default-header -triple 
dxil-pc-shadermodel6.3-library %s \
 // RUN:  -emit-llvm -disable-llvm-passes -o - | \
diff --git a/clang/test/CodeGenHLSL/builtins/acos.hlsl 
b/clang/test/CodeGenHLSL/builtins/acos.hlsl
index 8152339a34e87..f710d1f738a48 100644
--- a/clang/test/CodeGenHLSL/builtins/acos.hlsl
+++ b/clang/test/CodeGenHLSL/builtins/acos.hlsl
@@ -1,5 +1,5 @@
 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
-// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type \
+// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type 
-fnative-int16-type \
 // RUN:   -emit-llvm -disable-llvm-passes -o - | FileCheck %s \ 
 // RUN:   --check-prefixes=CHECK,NATIVE_HALF
 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
diff --git a/clang/test/CodeGenHLSL/builtins/all.hlsl 
b/clang/test/CodeGenHLSL/builtins/all.hlsl
index 391fad0ef33f5..bfa3b903d66a8 100644
--- a/clang/test/CodeGenHLSL/builtins/all.hlsl
+++ b/clang/test/CodeGenHLSL/builtins/all.hlsl
@@ -1,5 +1,5 @@
 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
-// RUN:   spirv-unknown-vulkan-compute %s -fnative-half-type \
+// RUN:   spirv-unknown-vulkan-compute %s -fnative-half-type 
-fnative-int16-type \
 // RUN:   -emit-llvm -disable-llvm-passes -o - | FileCheck %s \ 
 // RUN:   --check-prefixes=CHECK,NATIVE_HALF \
 // RUN:   -DFNATTRS="hidden spir_func noundef" -DTARGET=spv
@@ -8,7 +8,7 @@
 // RUN:   -o - | FileCheck %s --check-prefixes=CHECK \
 // RUN:   -DFNATTRS="hidden spir_func noundef" -DTARGET=spv
 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
-// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type \
+// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type 
-fnative-int16-type \
 // RUN:   -emit-llvm -disable-llvm-passes -o - | FileCheck %s \ 
 // RUN:   --check-prefixes=CHECK,NATIVE_HALF \
 // RUN:   -DFNATTRS="hidden noundef" -DTARGET=dx
diff --git a/clang/test/CodeGenHLSL/builtins/any.hlsl 
b/clang/test/CodeGenHLSL/builtins/any.hlsl
index e4837876e2693..fa2cd2698b392 100644
--- a/clang/test/CodeGenHLSL/builtins/any.hlsl
+++ b/clang/test/CodeGenHLSL/builtins/any.hlsl
@@ -1,19 +1,19 @@
 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
-// RUN:   spirv-unknown-vulkan-compute %s -fnative-half-type \
+// RUN:   spirv-unknown-vulkan-compute %s -fnative-half-type 
-fnative-int16-type \
 // RUN:   -emit-llvm -disable-llvm-passes -o - | FileCheck %s \ 
 // RUN:   --check-prefixes=CHECK,NATIVE_HALF \
 // RUN:   -DFNATTRS="hidden spir_func noundef" -DTARGET=spv
 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
-// RUN:   spirv-unknown-vulkan-compute %s -emit-llvm -disable-llvm-passes \
+// RUN:   spirv-unknown-vulkan-compute %s -fnative-int16-type -emit-llvm 
-disable-llvm-passes \
 // RUN:   -o - | FileCheck %s --check-prefixes=CHECK \
 // RUN:   -DFNATTRS="hidden spir_func noundef" -DTARGET=spv
 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
-// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type \
+// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type 
-fnative-int16-type \
 // RUN:   -emit-llvm -disable-llvm-passes -o - | FileCheck %s \ 
 // RUN:   --check-prefixes=CHECK,NATIVE_HALF \
 // RUN:   -DFNATTRS="hidden noundef" -DTARGET=dx
 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
-// RUN:   dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes \
+// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-int16-type -emit-llvm 
-disable-llvm-passes \
 // RUN:   -o - | FileCheck %s --check-prefixes=CHECK \
 // RUN:   -DFNATTRS="hidden noundef" -DTARGET=dx
 
diff --git a/clang/test/CodeGenHLSL/builtins/asfloat.hlsl 
b/clang/test/CodeGenHLSL/builtins/asfloat.hlsl
index 59fc15fa60b1e..72802e8ef09be 100644
--- a/clang/test/CodeGenHLSL/builtins/asfloat.hlsl
+++ b/clang/test/CodeGenHLSL/builtins/asfloat.hlsl
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple 
dxil-pc-shadermodel6.3-library %s -fnative-half-type -emit-llvm -O1 -o - | 
FileCheck %s
+// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple 
dxil-pc-shadermodel6.3-library %s -fnative-half-type -fnative-int16-type 
-emit-llvm -O1 -o - | FileCheck %s
 
 // CHECK: define {{.*}}test_uint{{.*}}(i32 {{.*}} [[VAL:%.*]]){{.*}} 
 // CHECK: bitcast i32 [[VAL]] to float
diff --git a/clang/test/CodeGenHLSL/builtins/asin.hlsl 
b/clang/test/CodeGenHLSL/builtins/asin.hlsl
index 16efbba79670e..ccf704834116c 100644
--- a/clang/test/CodeGenHLSL/builtins/asin.hlsl
+++ b/clang/test/CodeGenHLSL/builtins/asin.hlsl
@@ -1,5 +1,5 @@
 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
-// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-t...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/165584
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to