From 7751963f14544fdb6d606a8017f58d131c852ad2 Mon Sep 17 00:00:00 2001 From: venkataram-nv Date: Thu, 27 Jun 2024 07:18:02 -0700 Subject: Implement `uint2` variant of `asdouble` intrinsic (#4488) * Implement asdouble2 intrinsic and tests Fixes #4437 Adds a new asdouble2 intrinsic for all platforms except Metal. Extends the test for asdouble to test asdouble2 as well. --- source/slang/hlsl.meta.slang | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'source') diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index d9e7b9d66..909bebb0d 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -5695,6 +5695,20 @@ double asdouble(uint lowbits, uint highbits) } } +__glsl_extension(GL_ARB_gpu_shader5) +[__readNone] +[require(cpp_cuda_glsl_hlsl_spirv, shader5_sm_5_0)] +double2 asdouble(uint2 lowbits, uint2 highbits) +{ + __target_switch + { + case hlsl: + __intrinsic_asm "asdouble($0, $1)"; + default: + return double2(asdouble(lowbits.x, highbits.x), asdouble(lowbits.y, highbits.y)); + } +} + // Reinterpret bits as a float (HLSL SM 4.0) [__readNone] -- cgit v1.2.3