[clang] [llvm] [HLSL] Implement ddx/ddy_fine intrinsics (PR #168874)
Alexander Johnston via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 11 10:54:00 PST 2025
================
@@ -0,0 +1,29 @@
+; RUN: not opt -S -dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-library %s 2>&1 | FileCheck --check-prefixes=CHECK-TYPE %s
+; RUN: not opt -S -dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-compute %s 2>&1 | FileCheck --check-prefixes=CHECK-STAGE %s
+
+; DXIL operation ddx.fine does not support double overload type
+; CHECK-TYPE: in function ddx.fine
+; CHECK-TYPE-SAME: Cannot create DerivFineX operation: Invalid overload type
+
+; Function Attrs: noinline nounwind optnone
+define noundef double @ddx.fine_double(double noundef %a) #0 {
+entry:
+ %a.addr = alloca double, align 8
+ store double %a, ptr %a.addr, align 8
+ %0 = load double, ptr %a.addr, align 8
+ %dx.ddx.fine = call double @llvm.dx.ddx.fine.f64(double %0)
+ ret double %dx.ddx.fine
+}
+
+; DXIL operation ddx.fine does not support compute shader stage
----------------
Alexander-Johnston wrote:
Thank you, I wasn't aware they had been updated to include this. Given there's already 2 other PRs for this group of derivative intrinsics merged would it be worth instead creating a new issue to implement the additional variants added in SM6.6?
The original tickets this PR targets only covered the pixel shader version of the intrinsic, which was also the only version I found listed in https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src//direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md. I'll look more thoroughly through the doc site you posted in future.
https://github.com/llvm/llvm-project/pull/168874
More information about the llvm-commits
mailing list