From a6032446c6bf7f64d1e201bf438a4c7605a3dbb4 Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 15 Sep 2022 14:22:59 -0700 Subject: Language feature: pointer sized int types. (#2401) * Language feature: pointer sized int types. * Fix. * small change to test. * Fix stdlib. * Fix. * Fix. * Add typedef for `size_t` in stdlib. * Fix test. * Add `intptr_t::size` constant. Co-authored-by: Yong He --- tests/language-feature/types/intptr.slang | 37 ++++++++++++++++++++++ .../types/intptr.slang.expected.txt | 1 + 2 files changed, 38 insertions(+) create mode 100644 tests/language-feature/types/intptr.slang create mode 100644 tests/language-feature/types/intptr.slang.expected.txt (limited to 'tests/language-feature') 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 outputBuffer; + +__target_intrinsic(cpp, "sizeof(intptr_t)") +intptr_t getNativeIntPtrSize(); + +__generic +__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 -- cgit v1.2.3