[clang] [HLSL][Doc] Add doc about expected differences (PR #82395)

2024-02-20 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -0,0 +1,107 @@ + +Expected Differences vs DXC and FXC +=== + +.. contents:: + :local: + +Introduction + + +HLSL currently has two reference compilers, the `DirectX Shader Compiler (DXC) +

[clang] [HLSL][Doc] Add doc about expected differences (PR #82395)

2024-02-20 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy edited https://github.com/llvm/llvm-project/pull/82395 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL] Implement `rsqrt` intrinsic (PR #84820)

2024-03-14 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy approved this pull request. https://github.com/llvm/llvm-project/pull/84820 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][Doc] Add doc about expected differences (PR #82395)

2024-02-21 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy approved this pull request. https://github.com/llvm/llvm-project/pull/82395 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL] Implementation of the frac intrinsic (PR #83315)

2024-02-29 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -5246,6 +5246,23 @@ bool CheckVectorElementCallArgs(Sema *S, CallExpr *TheCall) { return true; } +bool CheckAllArgsAreFloatRepresentation(Sema *S, CallExpr *TheCall) { bharadwajy wrote: Consider changing the function name to either `CheckAllArgsAreFloat

[clang] [llvm] [HLSL][DXIL] Implementation of round intrinsic (PR #83570)

2024-03-01 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy approved this pull request. A few simple suggestions. Otherwise looks good. https://github.com/llvm/llvm-project/pull/83570 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/lis

[clang] [llvm] [HLSL][DXIL] Implementation of round intrinsic (PR #83570)

2024-03-01 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy edited https://github.com/llvm/llvm-project/pull/83570 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL][DXIL] Implementation of round intrinsic (PR #83570)

2024-03-01 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -0,0 +1,43 @@ +; RUN: opt -S -dxil-op-lower < %s | FileCheck %s + +; Make sure dxil operation function calls for round are generated for float and half. +; CHECK:call float @dx.op.unary.f32(i32 26, float %{{.*}}) +; CHECK:call half @dx.op.unary.f16(i32 26, half %{{.*}}) + +tar

[clang] [llvm] [HLSL][DXIL] Implementation of round intrinsic (PR #83570)

2024-03-01 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -831,6 +831,40 @@ uint64_t3 reversebits(uint64_t3); _HLSL_BUILTIN_ALIAS(__builtin_elementwise_bitreverse) uint64_t4 reversebits(uint64_t4); +//===--===// +// frac builtins +//===

[clang] [llvm] [HLSL][DXIL] Implementation of round intrinsic (PR #83570)

2024-03-01 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -220,6 +220,9 @@ def Sin : DXILOpMapping<13, unary, int_sin, "Returns sine(theta) for theta in radians.">; def UMax : DXILOpMapping<39, binary, int_umax, "Unsigned integer maximum. UMax(a,b) = a > b ? a : b">; +def Round :

[clang] [llvm] [HLSL][DXIL] Implementation of round intrinsic (PR #83570)

2024-03-01 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -0,0 +1,43 @@ +; RUN: opt -S -dxil-op-lower < %s | FileCheck %s + +; Make sure dxil operation function calls for round are generated for float and half. +; CHECK:call float @dx.op.unary.f32(i32 26, float %{{.*}}) +; CHECK:call half @dx.op.unary.f16(i32 26, half %{{.*}}) + +tar

[clang] [llvm] [HLSL][DXIL] Implementation of round intrinsic (PR #83570)

2024-03-01 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -0,0 +1,43 @@ +; RUN: opt -S -dxil-op-lower < %s | FileCheck %s + +; Make sure dxil operation function calls for round are generated for float and half. +; CHECK:call float @dx.op.unary.f32(i32 26, float %{{.*}}) +; CHECK:call half @dx.op.unary.f16(i32 26, half %{{.*}}) + +tar

[clang] [llvm] [HLSL][DXIL] Implementation of round intrinsic (PR #83570)

2024-03-01 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -0,0 +1,43 @@ +; RUN: opt -S -dxil-op-lower < %s | FileCheck %s + +; Make sure dxil operation function calls for round are generated for float and half. +; CHECK:call float @dx.op.unary.f32(i32 26, float %{{.*}}) +; CHECK:call half @dx.op.unary.f16(i32 26, half %{{.*}}) + +tar

[clang] [llvm] [DXIL] Add Float `Dot` Intrinsic Lowering (PR #86071)

2024-03-25 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -295,6 +295,15 @@ def IMad : DXILOpMapping<48, tertiary, int_dx_imad, "Signed integer arithmetic multiply/add operation. imad(m,a,b) = m * a + b.">; def UMad : DXILOpMapping<49, tertiary, int_dx_umad, "Unsigned integer arith

[clang] [llvm] [DXIL] Add Float `Dot` Intrinsic Lowering (PR #86071)

2024-03-25 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy approved this pull request. https://github.com/llvm/llvm-project/pull/86071 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL][DXIL] HLSL's `round` should follow `roundeven` behavior (PR #87078)

2024-03-29 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy approved this pull request. https://github.com/llvm/llvm-project/pull/87078 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL] implement `mad` intrinsic (PR #83826)

2024-03-04 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -0,0 +1,67 @@ +; RUN: opt -S -dxil-op-lower < %s | FileCheck %s + +; Make sure dxil operation function calls for round are generated for float and half. +; CHECK:call half @dx.op.tertiary.f16(i32 46, half %{{.*}}, half %{{.*}}, half %{{.*}}) +; CHECK:call float @dx.op.tertiar

[clang] [llvm] [HLSL] implement `mad` intrinsic (PR #83826)

2024-03-04 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy approved this pull request. https://github.com/llvm/llvm-project/pull/83826 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [HLSL] implement `mad` intrinsic (PR #83826)

2024-03-04 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy edited https://github.com/llvm/llvm-project/pull/83826 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL][docs] Document hlsl.h in the HLSL docs (PR #84081)

2024-03-05 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy approved this pull request. Consider consistent spelling of the term "built in" consistently - whichever is preferred. https://github.com/llvm/llvm-project/pull/84081 ___ cfe-commits mailing list cfe-commits@lists.llvm.or

[clang] [HLSL][docs] Document hlsl.h in the HLSL docs (PR #84081)

2024-03-05 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -114,6 +114,44 @@ not re-targetable, we want to share the Clang CodeGen implementation for HLSL with other GPU graphics targets like SPIR-V and possibly other GPU and even CPU targets. +hlsl.h +-- + +HLSL has an extensive library of functionality. This is similar to Op

[clang] [HLSL][docs] Document hlsl.h in the HLSL docs (PR #84081)

2024-03-05 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -114,6 +114,44 @@ not re-targetable, we want to share the Clang CodeGen implementation for HLSL with other GPU graphics targets like SPIR-V and possibly other GPU and even CPU targets. +hlsl.h +-- + +HLSL has an extensive library of functionality. This is similar to Op

[clang] [HLSL][docs] Document hlsl.h in the HLSL docs (PR #84081)

2024-03-05 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -114,6 +114,44 @@ not re-targetable, we want to share the Clang CodeGen implementation for HLSL with other GPU graphics targets like SPIR-V and possibly other GPU and even CPU targets. +hlsl.h +-- + +HLSL has an extensive library of functionality. This is similar to Op

[clang] [NFC][HLSL][DX] Update invalid environment tests (PR #81052)

2024-02-07 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy approved this pull request. Works! LGTM! https://github.com/llvm/llvm-project/pull/81052 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-04-24 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -68,25 +68,25 @@ TEST(DxcModeTest, TargetProfileValidation) { IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer); - validateTargetProfile("-Tvs_6_0", "dxil--shadermodel6.0-vertex", + validateTargetProfile("

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-04-24 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy edited https://github.com/llvm/llvm-project/pull/89823 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-04-24 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy edited https://github.com/llvm/llvm-project/pull/89823 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-04-24 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -68,25 +68,25 @@ TEST(DxcModeTest, TargetProfileValidation) { IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer); - validateTargetProfile("-Tvs_6_0", "dxil--shadermodel6.0-vertex", + validateTargetProfile("

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-04-24 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -68,25 +68,25 @@ TEST(DxcModeTest, TargetProfileValidation) { IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer); - validateTargetProfile("-Tvs_6_0", "dxil--shadermodel6.0-vertex", + validateTargetProfile("

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-04-26 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -2,39 +2,45 @@ // Supported targets // -// RUN: %clang -target dxil--shadermodel6.2-pixel %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-VALID %s -// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-V

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-04-26 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -98,9 +103,47 @@ std::optional tryParseProfile(StringRef Profile) { else if (llvm::getAsUnsignedInteger(Parts[2], 0, Minor)) return std::nullopt; - // dxil-unknown-shadermodel-hull + // Determine DXIL version number using the minor version number of Shader + // Mo

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-04-26 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -2,39 +2,45 @@ // Supported targets // -// RUN: %clang -target dxil--shadermodel6.2-pixel %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-VALID %s -// RUN: %clang -target dxil-unknown-shadermodel6.2-pixel %s -S -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-V

[clang] [llvm] [DXIL] Add tan intrinsic part 2 (PR #90277)

2024-04-30 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy approved this pull request. https://github.com/llvm/llvm-project/pull/90277 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Shore up floating point conversions (PR #90222)

2024-05-01 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -2616,6 +2617,13 @@ bool Sema::IsFloatingPointPromotion(QualType FromType, QualType ToType) { ToBuiltin->getKind() == BuiltinType::Ibm128)) return true; + // In HLSL, `half` promotes to `float` or `double`, regardless of whether + // or not nat

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-01 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy created https://github.com/llvm/llvm-project/pull/90809 An earlier commit provided a way to decouple DXIL version from Shader Model version by representing the DXIL version as `SubArch` in the DXIL Target Triple and adding corresponding valid DXIL Arch types. Th

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-04-23 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -68,25 +68,25 @@ TEST(DxcModeTest, TargetProfileValidation) { IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagConsumer); - validateTargetProfile("-Tvs_6_0", "dxil--shadermodel6.0-vertex", + validateTargetProfile("

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-04-23 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -98,9 +100,47 @@ std::optional tryParseProfile(StringRef Profile) { else if (llvm::getAsUnsignedInteger(Parts[2], 0, Minor)) return std::nullopt; - // dxil-unknown-shadermodel-hull + // Determine DXIL version number using the minor version number of Shader + // Mo

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-02 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -115,6 +115,30 @@ StringRef Triple::getArchName(ArchType Kind, SubArchType SubArch) { if (SubArch == AArch64SubArch_arm64e) return "arm64e"; break; + case Triple::dxil: +switch (SubArch) { +case Triple::NoSubArch: +case Triple::DXILSubArch_v1_0: +

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-02 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -760,7 +760,7 @@ using namespace clang::targets; TargetInfo * TargetInfo::CreateTargetInfo(DiagnosticsEngine &Diags, const std::shared_ptr &Opts) { - llvm::Triple Triple(Opts->Triple); + llvm::Triple Triple(llvm::Triple::normalize(Opts->Triple)

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-02 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -115,6 +115,30 @@ StringRef Triple::getArchName(ArchType Kind, SubArchType SubArch) { if (SubArch == AArch64SubArch_arm64e) return "arm64e"; break; + case Triple::dxil: +switch (SubArch) { +case Triple::NoSubArch: bharadwajy wrote: >

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-02 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -4675,7 +4676,7 @@ bool CompilerInvocation::CreateFromArgsImpl( // FIXME: We shouldn't have to pass the DashX option around here InputKind DashX = Res.getFrontendOpts().DashX; ParseTargetArgs(Res.getTargetOpts(), Args, Diags); - llvm::Triple T(Res.getTargetOpts().Trip

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-05-02 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy edited https://github.com/llvm/llvm-project/pull/89823 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy updated https://github.com/llvm/llvm-project/pull/90809 >From 1b6bb5bf115c9f72adde27b6d77d957edbc49321 Mon Sep 17 00:00:00 2001 From: Bharadwaj Yadavalli Date: Wed, 1 May 2024 14:42:42 -0400 Subject: [PATCH 1/2] Set DXIL Version in DXIL target triple based on shade

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -1200,6 +1224,27 @@ std::string Triple::normalize(StringRef Str) { } } + // Normalize DXIL triple if it does not include DXIL version number. + // Determine DXIL version number using the minor version number of Shader + // Model version specified in target triple,

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -1200,6 +1224,27 @@ std::string Triple::normalize(StringRef Str) { } } + // Normalize DXIL triple if it does not include DXIL version number. + // Determine DXIL version number using the minor version number of Shader + // Model version specified in target triple,

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy edited https://github.com/llvm/llvm-project/pull/90809 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy updated https://github.com/llvm/llvm-project/pull/90809 >From 1b6bb5bf115c9f72adde27b6d77d957edbc49321 Mon Sep 17 00:00:00 2001 From: Bharadwaj Yadavalli Date: Wed, 1 May 2024 14:42:42 -0400 Subject: [PATCH 1/3] Set DXIL Version in DXIL target triple based on shade

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -4675,7 +4676,7 @@ bool CompilerInvocation::CreateFromArgsImpl( // FIXME: We shouldn't have to pass the DashX option around here InputKind DashX = Res.getFrontendOpts().DashX; ParseTargetArgs(Res.getTargetOpts(), Args, Diags); - llvm::Triple T(Res.getTargetOpts().Trip

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy updated https://github.com/llvm/llvm-project/pull/90809 >From 1b6bb5bf115c9f72adde27b6d77d957edbc49321 Mon Sep 17 00:00:00 2001 From: Bharadwaj Yadavalli Date: Wed, 1 May 2024 14:42:42 -0400 Subject: [PATCH 1/4] Set DXIL Version in DXIL target triple based on shade

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -744,7 +744,7 @@ void codegen::setFunctionAttributes(StringRef CPU, StringRef Features, Expected> codegen::createTargetMachineForTriple(StringRef TargetTriple, CodeGenOptLevel OptLevel) { - Triple TheTriple(TargetTriple); + Triple The

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy updated https://github.com/llvm/llvm-project/pull/90809 >From 1b6bb5bf115c9f72adde27b6d77d957edbc49321 Mon Sep 17 00:00:00 2001 From: Bharadwaj Yadavalli Date: Wed, 1 May 2024 14:42:42 -0400 Subject: [PATCH 1/5] Set DXIL Version in DXIL target triple based on shade

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -630,7 +630,7 @@ extern "C" int optMain( } } - Triple ModuleTriple(M->getTargetTriple()); + Triple ModuleTriple(Triple::normalize(M->getTargetTriple())); bharadwajy wrote: > Similarly to my concern about updating `createTargetMachineForTriple`, I

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy updated https://github.com/llvm/llvm-project/pull/90809 >From 1b6bb5bf115c9f72adde27b6d77d957edbc49321 Mon Sep 17 00:00:00 2001 From: Bharadwaj Yadavalli Date: Wed, 1 May 2024 14:42:42 -0400 Subject: [PATCH 1/6] Set DXIL Version in DXIL target triple based on shade

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -744,7 +744,7 @@ void codegen::setFunctionAttributes(StringRef CPU, StringRef Features, Expected> codegen::createTargetMachineForTriple(StringRef TargetTriple, CodeGenOptLevel OptLevel) { - Triple TheTriple(TargetTriple); + Triple The

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -115,6 +115,30 @@ StringRef Triple::getArchName(ArchType Kind, SubArchType SubArch) { if (SubArch == AArch64SubArch_arm64e) return "arm64e"; break; + case Triple::dxil: +switch (SubArch) { +case Triple::NoSubArch: +case Triple::DXILSubArch_v1_0: +

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -2454,4 +2454,19 @@ TEST(TripleTest, isArmMClass) { EXPECT_TRUE(T.isArmMClass()); } } + +TEST(TripleTest, DXILNormaizeWithVersion) { + EXPECT_EQ("dxilv1.0-unknown-shadermodel6.0", +Triple::normalize("dxilv1.0--shadermodel6.0")); bharadwajy

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy edited https://github.com/llvm/llvm-project/pull/90809 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -2454,4 +2454,19 @@ TEST(TripleTest, isArmMClass) { EXPECT_TRUE(T.isArmMClass()); } } + +TEST(TripleTest, DXILNormaizeWithVersion) { + EXPECT_EQ("dxilv1.0-unknown-shadermodel6.0", +Triple::normalize("dxilv1.0--shadermodel6.0")); bharadwajy

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -2454,4 +2454,19 @@ TEST(TripleTest, isArmMClass) { EXPECT_TRUE(T.isArmMClass()); } } + +TEST(TripleTest, DXILNormaizeWithVersion) { + EXPECT_EQ("dxilv1.0-unknown-shadermodel6.0", +Triple::normalize("dxilv1.0--shadermodel6.0")); bharadwajy

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy updated https://github.com/llvm/llvm-project/pull/90809 >From 3b74e41492aeb916487105b05316f8db255c57c3 Mon Sep 17 00:00:00 2001 From: Bharadwaj Yadavalli Date: Wed, 1 May 2024 14:42:42 -0400 Subject: [PATCH 1/6] Set DXIL Version in DXIL target triple based on shade

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy updated https://github.com/llvm/llvm-project/pull/90809 >From 3b74e41492aeb916487105b05316f8db255c57c3 Mon Sep 17 00:00:00 2001 From: Bharadwaj Yadavalli Date: Wed, 1 May 2024 14:42:42 -0400 Subject: [PATCH 1/7] Set DXIL Version in DXIL target triple based on shade

[clang] [llvm] [DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #90809)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy closed https://github.com/llvm/llvm-project/pull/90809 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy closed https://github.com/llvm/llvm-project/pull/89823 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [DirectX] Set DXIL Version using shader model version in compilation target profile (PR #89823)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
bharadwajy wrote: > Now the #90809 has landed, is this PR still relevant? No. I was just about to close it. Thanks! Closing as an expanded implementation has been merged. https://github.com/llvm/llvm-project/pull/89823 ___ cfe-commits mailing list cf

[clang] [llvm] Revert "[DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version" (PR #91290)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy created https://github.com/llvm/llvm-project/pull/91290 Reverts llvm/llvm-project#90809 Need to investigate ASAN failures. >From 3be739599982371e6151561758928007d4dc2762 Mon Sep 17 00:00:00 2001 From: "S. Bharadwaj Yadavalli" Date: Mon, 6 May 2024 22:16:35 -0400

[clang] [llvm] Revert "[DirectX][DXIL] Set DXIL Version in DXIL target triple based on shader model version" (PR #91290)

2024-05-06 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy closed https://github.com/llvm/llvm-project/pull/91290 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #91407)

2024-05-07 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy created https://github.com/llvm/llvm-project/pull/91407 This change set restores the PR #90809 that was reverted to address ASAN failures and includes a fix for the ASAN failures. Following is the description of the change: An earlier commit provided a way to de

[clang] [llvm] [DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #91407)

2024-05-08 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy edited https://github.com/llvm/llvm-project/pull/91407 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #91407)

2024-05-08 Thread S. Bharadwaj Yadavalli via cfe-commits
bharadwajy wrote: > It would be nice to mention in the description what the sanitizer fix was > compared to the original PR. Thanks! The fix to address ASAN failure is in commit 8522e3609869d72b7b457a4752149a802be4662d of this PR. Updated the description as well. https://github.com/llvm/llvm

[clang] [llvm] [DXIL] Set DXIL Version in DXIL target triple based on shader model version (PR #91407)

2024-05-08 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy closed https://github.com/llvm/llvm-project/pull/91407 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Change default linkage of HLSL functions and `groupshared` variables (PR #93336)

2024-06-07 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -108,3 +108,16 @@ behavior between Clang and DXC. Some examples include: diagnostic notifying the user of the conversion rather than silently altering precision relative to the other overloads (as FXC does) or generating code that will fail validation (as DXC does). +

[clang] [llvm] Add normalize builtins and normalize HLSL function to DirectX and SPIR-V backend (PR #102683)

2024-08-13 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -229,6 +230,75 @@ static bool expandLog10Intrinsic(CallInst *Orig) { return expandLogIntrinsic(Orig, numbers::ln2f / numbers::ln10f); } +static bool expandNormalizeIntrinsic(CallInst *Orig) { + Value *X = Orig->getOperand(0); + Type *Ty = Orig->getType(); + Type *EltTy

[clang] [llvm] [HLSL] Implement support for HLSL intrinsic - saturate (PR #104619)

2024-08-16 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy created https://github.com/llvm/llvm-project/pull/104619 Implement support for HLSL intrinsic saturate. Implement DXIL codegen for the intrinsic saturate by lowering it to DXIL Op dx.saturate. Implement SPIRV codegen by transforming saturate(x) to clamp(x, 0.0f, 1.

[clang] [llvm] [HLSL] Implement support for HLSL intrinsic - saturate (PR #104619)

2024-08-19 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -362,6 +364,34 @@ static bool expandClampIntrinsic(CallInst *Orig, Intrinsic::ID ClampIntrinsic) { return true; } +static bool expandSaturateIntrinsic(CallInst *SaturateCall) { + FunctionType *FT = SaturateCall->getFunctionType(); + Type *FTRetTy = FT->getReturnType();

[clang] [llvm] [HLSL] Implement support for HLSL intrinsic - saturate (PR #104619)

2024-08-19 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -1285,6 +1289,34 @@ static unsigned getBoolCmpOpcode(unsigned PredNum) { } } +static APFloat getZeroFP(const Type *LLVMFloatTy) { bharadwajy wrote: > Why did this move? The intent was to co-locate it with the other `static` functions in the vicinity wh

[clang] [llvm] [HLSL] Implement support for HLSL intrinsic - saturate (PR #104619)

2024-08-19 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy updated https://github.com/llvm/llvm-project/pull/104619 >From 7f338f8843ed815641541664ce2eff72278aacab Mon Sep 17 00:00:00 2001 From: Bharadwaj Yadavalli Date: Thu, 1 Aug 2024 02:46:05 + Subject: [PATCH 1/2] Implement support to compile HLSL intrinsic "saturat

[clang] [llvm] [HLSL] Implement support for HLSL intrinsic - saturate (PR #104619)

2024-08-19 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -18666,6 +18666,15 @@ case Builtin::BI__builtin_hlsl_elementwise_isinf: { /*ReturnType=*/Op0->getType(), CGM.getHLSLRuntime().getRsqrtIntrinsic(), ArrayRef{Op0}, nullptr, "hlsl.rsqrt"); } + case Builtin::BI__builtin_hlsl_elementwise_saturate: { +Value

[clang] [llvm] [HLSL] Implement support for HLSL intrinsic - saturate (PR #104619)

2024-08-19 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -0,0 +1,54 @@ +// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple \ +// RUN: dxil-pc-shadermodel6.3-library %s -fnative-half-type \ +// RUN: -emit-llvm -disable-llvm-passes -o - | FileCheck %s \ +// RUN: --check-prefixes=CHECK,NATIVE_HALF +// RUN: %

[clang] [llvm] [HLSL] Implement support for HLSL intrinsic - saturate (PR #104619)

2024-08-19 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy updated https://github.com/llvm/llvm-project/pull/104619 >From e9fd01be8d43b2eb7ccd4894022ecec4c596d957 Mon Sep 17 00:00:00 2001 From: Bharadwaj Yadavalli Date: Thu, 1 Aug 2024 02:46:05 + Subject: [PATCH 1/3] Implement support to compile HLSL intrinsic "saturat

[clang] [llvm] [HLSL] Implement support for HLSL intrinsic - saturate (PR #104619)

2024-08-19 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -362,6 +364,34 @@ static bool expandClampIntrinsic(CallInst *Orig, Intrinsic::ID ClampIntrinsic) { return true; } +static bool expandSaturateIntrinsic(CallInst *SaturateCall) { + FunctionType *FT = SaturateCall->getFunctionType(); + Type *FTRetTy = FT->getReturnType();

[clang] [llvm] [HLSL] Implement support for HLSL intrinsic - saturate (PR #104619)

2024-08-19 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy updated https://github.com/llvm/llvm-project/pull/104619 >From e9fd01be8d43b2eb7ccd4894022ecec4c596d957 Mon Sep 17 00:00:00 2001 From: Bharadwaj Yadavalli Date: Thu, 1 Aug 2024 02:46:05 + Subject: [PATCH 1/4] Implement support to compile HLSL intrinsic "saturat

[clang] [llvm] [HLSL] Implement support for HLSL intrinsic - saturate (PR #104619)

2024-08-20 Thread S. Bharadwaj Yadavalli via cfe-commits
https://github.com/bharadwajy closed https://github.com/llvm/llvm-project/pull/104619 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [HLSL] Implement support for HLSL intrinsic - select (PR #107129)

2024-09-03 Thread S. Bharadwaj Yadavalli via cfe-commits
@@ -1545,6 +1605,30 @@ bool SemaHLSL::CheckBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) { break; } case Builtin::BI__builtin_hlsl_elementwise_saturate: + case Builtin::BI__builtin_hlsl_select: { bharadwajy wrote: This addition splits th