From 6cf15f4ea1fe044d8227440dcc30ac712334568e Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 27 Feb 2025 10:32:14 -0800 Subject: Allow `.member` syntax on vector and scalars. (#6424) * Allow `.member` syntax on vector and scalars. * Fix. * fix. * Fix. * update comment. * Fix tests. * Fix warning. * Add more tests. --- tests/front-end/matrix-member.slang | 17 +++++++++++++++++ tests/front-end/scalar-member.slang | 17 +++++++++++++++++ tests/front-end/vector-member.slang | 17 +++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 tests/front-end/matrix-member.slang create mode 100644 tests/front-end/scalar-member.slang create mode 100644 tests/front-end/vector-member.slang (limited to 'tests/front-end') diff --git a/tests/front-end/matrix-member.slang b/tests/front-end/matrix-member.slang new file mode 100644 index 000000000..447fe715f --- /dev/null +++ b/tests/front-end/matrix-member.slang @@ -0,0 +1,17 @@ +//TEST:COMPARE_COMPUTE(filecheck-buffer=CHECK):-output-using-type + +extension float2x2 +{ + float sum() { return this[0][0] + this[1][1]; } +} + +//TEST_INPUT: set outputBuffer = out ubuffer(data=[0 0 0 0], stride = 4) +RWStructuredBuffer outputBuffer; + +[numthreads(1,1,1)] +void computeMain() +{ + float2x2 v = {1,2,3,4}; + // CHECK: 5 + outputBuffer[0] = v.sum(); +} \ No newline at end of file diff --git a/tests/front-end/scalar-member.slang b/tests/front-end/scalar-member.slang new file mode 100644 index 000000000..b85b8772c --- /dev/null +++ b/tests/front-end/scalar-member.slang @@ -0,0 +1,17 @@ +//TEST:COMPARE_COMPUTE(filecheck-buffer=CHECK):-output-using-type + +extension float +{ + float sum() { return this + 1; } +} + +//TEST_INPUT: set outputBuffer = out ubuffer(data=[0 0 0 0], stride = 4) +RWStructuredBuffer outputBuffer; + +[numthreads(1,1,1)] +void computeMain() +{ + float v = 10.0; + // CHECK: 11 + outputBuffer[0] = v.sum(); +} \ No newline at end of file diff --git a/tests/front-end/vector-member.slang b/tests/front-end/vector-member.slang new file mode 100644 index 000000000..adced39e4 --- /dev/null +++ b/tests/front-end/vector-member.slang @@ -0,0 +1,17 @@ +//TEST:COMPARE_COMPUTE(filecheck-buffer=CHECK):-output-using-type + +extension float3 +{ + float sum() { return this.x + this.y + this.z; } +} + +//TEST_INPUT: set outputBuffer = out ubuffer(data=[0 0 0 0], stride = 4) +RWStructuredBuffer outputBuffer; + +[numthreads(1,1,1)] +void computeMain() +{ + float3 v = { 1, 2, 3 }; + // CHECK: 6 + outputBuffer[0] = v.sum(); +} \ No newline at end of file -- cgit v1.2.3