summaryrefslogtreecommitdiff
path: root/tests/metal/vector-get-element-ptr.slang
blob: 1c616b37e6429e7bcf6d6f9fcec1638270b4e9c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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<int> 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_]+]] = [[OUT:[a-zA-Z0-9_]+]].x;
    // CHECK: modify{{.*}}(&[[TEMP]])
    // CHECK: [[OUT]].x = [[TEMP]];

    modify(u.x);
    // BUF: 2
    outputBuffer[0] = u.x + u.y;
}