[clang] [HLSL] Add NativeInt16Type langopt to control whether short type is supported. Enabled by default for all but HLSL. (PR #165584)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 29 08:50:53 PDT 2025
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
More information about the cfe-commits
mailing list