1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
//TEST(compute):COMPARE_COMPUTE:-shaderobj
//TEST_INPUT:ubuffer(data=[3 7 8 10], stride=4):name=inputBuffer
RWStructuredBuffer<int> inputBuffer;
//TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name=outputBuffer
RWStructuredBuffer<int> outputBuffer;
[numthreads(1,1,1)]
void computeMain()
{
int amount = 1;
outputBuffer[0] = inputBuffer[0] >> amount;
int2 v2 = int2(inputBuffer[0], inputBuffer[1]) >> amount;
outputBuffer[1] = v2[0];
outputBuffer[2] = v2[1];
int3 v3 = int3(inputBuffer[0], inputBuffer[1], inputBuffer[2]) >> amount;
outputBuffer[3] = v3[0];
outputBuffer[4] = v3[1];
outputBuffer[5] = v3[2];
int4 v4 = int4(inputBuffer[0], inputBuffer[1], inputBuffer[2], inputBuffer[3]) >> amount;
outputBuffer[6] = v4[0];
outputBuffer[7] = v4[1];
outputBuffer[8] = v4[2];
outputBuffer[9] = v4[3];
outputBuffer[10] = inputBuffer[0] << amount;
v2 = int2(inputBuffer[0], inputBuffer[1]) << amount;
outputBuffer[11] = v2[0];
outputBuffer[12] = v2[1];
v3 = int3(inputBuffer[0], inputBuffer[1], inputBuffer[2]) << amount;
outputBuffer[13] = v3[0];
outputBuffer[14] = v3[1];
outputBuffer[15] = v3[2];
v4 = int4(inputBuffer[0], inputBuffer[1], inputBuffer[2], inputBuffer[3]) << amount;
outputBuffer[16] = v4[0];
outputBuffer[17] = v4[1];
outputBuffer[18] = v4[2];
outputBuffer[19] = v4[3];
v2 = inputBuffer[0] >> int2(amount);
outputBuffer[20] = v2[0];
outputBuffer[21] = v2[1];
v3 = inputBuffer[1] >> int3(amount);
outputBuffer[22] = v3[0];
outputBuffer[23] = v3[1];
outputBuffer[24] = v3[2];
v4 = inputBuffer[2] >> int4(amount);
outputBuffer[25] = v4[0];
outputBuffer[26] = v4[1];
outputBuffer[27] = v4[2];
outputBuffer[28] = v4[3];
v2 = inputBuffer[0] << int2(amount);
outputBuffer[29] = v2[0];
outputBuffer[30] = v2[1];
v3 = inputBuffer[1] << int3(amount);
outputBuffer[31] = v3[0];
outputBuffer[32] = v3[1];
outputBuffer[33] = v3[2];
v4 = inputBuffer[2] << int4(amount);
outputBuffer[34] = v4[0];
outputBuffer[35] = v4[1];
outputBuffer[36] = v4[2];
outputBuffer[37] = v4[3];
v2 = int2(inputBuffer[0], inputBuffer[1]) >> int2(1, 2);
outputBuffer[38] = v2[0];
outputBuffer[39] = v2[1];
v3 = int3(inputBuffer[0], inputBuffer[1], inputBuffer[2]) >> int3(1, 2, 3);
outputBuffer[40] = v3[0];
outputBuffer[41] = v3[1];
outputBuffer[42] = v3[2];
v4 = int4(inputBuffer[0], inputBuffer[1], inputBuffer[2], inputBuffer[3]) >> int4(1, 2, 3, 4);
outputBuffer[43] = v4[0];
outputBuffer[44] = v4[1];
outputBuffer[45] = v4[2];
outputBuffer[46] = v4[3];
}
|