From 085d1a603eac69f66b5357276ea07d1978832030 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 12 Jun 2024 13:48:40 -0700 Subject: Fix emit logic for getElementPtr. (#4362) * Fix emit logic for getElementPtr. * Legalize `getElementPtr(vector, id)` for metal. * Fix compiler error. * Fix warnings. * Fix test. * Fix. --- tests/metal/vector-get-element-ptr.slang | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tests/metal/vector-get-element-ptr.slang (limited to 'tests') diff --git a/tests/metal/vector-get-element-ptr.slang b/tests/metal/vector-get-element-ptr.slang new file mode 100644 index 000000000..af2acabbc --- /dev/null +++ b/tests/metal/vector-get-element-ptr.slang @@ -0,0 +1,24 @@ +//TEST:SIMPLE(filecheck=CHECK): -target metal + +//TEST(smoke,compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-slang -compute -mtl + +//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name=outputBuffer +RWStructuredBuffer outputBuffer; + +void modify(inout int v) +{ + v = 2; +} + +[numthreads(1,1,1)] +void computeMain(int3 v : SV_DispatchThreadID) +{ + int3 u = v; + // CHECK: int [[TEMP:[a-zA-Z0-9_]+]] = u{{.*}}.x; + // CHECK: modify{{.*}}(&[[TEMP]]) + // CHECK: u{{.*}}.x = [[TEMP]]; + + modify(u.x); + // BUF: 2 + outputBuffer[0] = u.x + u.y; +} \ No newline at end of file -- cgit v1.2.3