diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2020-01-30 16:28:50 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-30 16:28:50 -0500 |
| commit | 5942ff81d9a63ee1e37ba81172ea579646be774e (patch) | |
| tree | 2a4cdb5851348f11a8fcde1605e81c29c1227727 /tests | |
| parent | 415409fc10cfd0d6b2eb805df8f37bdabc4f2405 (diff) | |
Support for 64 bit integer types (#1191)
* * For integer literals add postfix, and use unsigned/signed output appropriately
* Extend GLSL extension handling by type, and for adding 64 bit int extensions
* Added tests for int/uint64 types
* Add explicit Int/UInt64 emit functions to avoid ambiguity.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/hlsl-intrinsic/scalar-int64.slang | 21 | ||||
| -rw-r--r-- | tests/hlsl-intrinsic/scalar-int64.slang.expected.txt | 4 | ||||
| -rw-r--r-- | tests/hlsl-intrinsic/scalar-uint64.slang | 24 | ||||
| -rw-r--r-- | tests/hlsl-intrinsic/scalar-uint64.slang.expected.txt | 4 |
4 files changed, 53 insertions, 0 deletions
diff --git a/tests/hlsl-intrinsic/scalar-int64.slang b/tests/hlsl-intrinsic/scalar-int64.slang new file mode 100644 index 000000000..4da2a553e --- /dev/null +++ b/tests/hlsl-intrinsic/scalar-int64.slang @@ -0,0 +1,21 @@ +//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute +// No support for int64_t on dx11 +//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute +// No support for int64_t on HLSL +//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 +//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -use-dxil +//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute +//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cuda -compute + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer +RWStructuredBuffer<int> outputBuffer; + +[numthreads(4, 1, 1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + uint idx = dispatchThreadID.x; + + int64_t v = int64_t(idx) * 0x400010035435435ll; + + outputBuffer[idx] = int(v) ^ int(((v >> 32) & 0xffffffff)); +}
\ No newline at end of file diff --git a/tests/hlsl-intrinsic/scalar-int64.slang.expected.txt b/tests/hlsl-intrinsic/scalar-int64.slang.expected.txt new file mode 100644 index 000000000..c0bb016cd --- /dev/null +++ b/tests/hlsl-intrinsic/scalar-int64.slang.expected.txt @@ -0,0 +1,4 @@ +0 +31435535 +6286AA6A +93C9FF9F diff --git a/tests/hlsl-intrinsic/scalar-uint64.slang b/tests/hlsl-intrinsic/scalar-uint64.slang new file mode 100644 index 000000000..a990ccc22 --- /dev/null +++ b/tests/hlsl-intrinsic/scalar-uint64.slang @@ -0,0 +1,24 @@ +//TEST(compute):COMPARE_COMPUTE_EX:-cpu -compute +// No support for uint64_t on DX11 +//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute +// No support for uint64_t on fxc - we need SM6.0 and dxil +// https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/hlsl-shader-model-6-0-features-for-direct3d-12 +//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 +//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile cs_6_3 -use-dxil +//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute +//TEST(compute, vulkan):COMPARE_COMPUTE_EX:-cuda -compute + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer +RWStructuredBuffer<int> outputBuffer; + +[numthreads(4, 1, 1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + uint idx = dispatchThreadID.x; + + uint64_t v = uint64_t(idx) * 0x8000100354354354ull; + // Let's check all the bits make it + v |= 0x8000000000000000ull; + + outputBuffer[idx] = int(v) ^ int(v >> 32); +}
\ No newline at end of file diff --git a/tests/hlsl-intrinsic/scalar-uint64.slang.expected.txt b/tests/hlsl-intrinsic/scalar-uint64.slang.expected.txt new file mode 100644 index 000000000..b8be0469a --- /dev/null +++ b/tests/hlsl-intrinsic/scalar-uint64.slang.expected.txt @@ -0,0 +1,4 @@ +80000000 +D4355357 +286AA6AE +7C9FF9F5 |
