diff options
Diffstat (limited to 'tests/language-feature/types')
| -rw-r--r-- | tests/language-feature/types/intptr.slang | 37 | ||||
| -rw-r--r-- | tests/language-feature/types/intptr.slang.expected.txt | 1 |
2 files changed, 38 insertions, 0 deletions
diff --git a/tests/language-feature/types/intptr.slang b/tests/language-feature/types/intptr.slang new file mode 100644 index 000000000..ea626adad --- /dev/null +++ b/tests/language-feature/types/intptr.slang @@ -0,0 +1,37 @@ +// intptr.slang + +// Test pointer-sized integer types. + +//TEST(compute):COMPARE_COMPUTE_EX:-slang -cpu -compute + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer +RWStructuredBuffer<int> outputBuffer; + +__target_intrinsic(cpp, "sizeof(intptr_t)") +intptr_t getNativeIntPtrSize(); + +__generic<T> +__target_intrinsic(cpp, "sizeof($0)") +intptr_t getSizeOf(T val); + +intptr_t getIntPtrVal() { return 0z; } + +[numthreads(1, 1, 1)] +void computeMain(int3 dispatchThreadID: SV_DispatchThreadID) +{ + let expectedSize = getNativeIntPtrSize(); + intptr_t a = 0z; + var actualSize = getSizeOf(getIntPtrVal()); + int testResult = 1; + if (expectedSize != actualSize) + { + testResult = 0; + } + uintptr_t b = 0uz; + actualSize = getSizeOf(b); + if (expectedSize != actualSize) + { + testResult = 0; + } + outputBuffer[dispatchThreadID.x] = testResult; +} diff --git a/tests/language-feature/types/intptr.slang.expected.txt b/tests/language-feature/types/intptr.slang.expected.txt new file mode 100644 index 000000000..56a6051ca --- /dev/null +++ b/tests/language-feature/types/intptr.slang.expected.txt @@ -0,0 +1 @@ +1
\ No newline at end of file |
