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
