[require]
shader model >= 6.0
wave-ops
format r32g32b32a32-sint uav-load

[uav 0]
format r32g32b32a32-sint
size (buffer, 4)

-3 1 -4 2
 3 1 -4 2
 0 5 -3 2
-1 1 -1 2

[uav 1]
format r32g32b32a32-sint
size (buffer, 4)

0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

[compute shader]
RWBuffer<int4> u0;
RWBuffer<int4> u1;

    [numthreads(4, 1, 1)]
void main(uint id : SV_GroupIndex)
{
    u1[id] = WaveActiveMin(u0[id]);
}

[test]
dispatch 4 1 1
probe uav 1 (0) rgbai (-3, 1, -4, 2)
probe uav 1 (1) rgbai (-3, 1, -4, 2)
probe uav 1 (2) rgbai (-3, 1, -4, 2)
probe uav 1 (3) rgbai (-3, 1, -4, 2)


[compute shader]
RWBuffer<int4> u0;
RWBuffer<int4> u1;

    [numthreads(4, 1, 1)]
void main(uint id : SV_GroupIndex)
{
    u1[id] = WaveActiveMax(u0[id]);
}

[test]
dispatch 4 1 1
probe uav 1 (0) rgbai (3, 5, -1, 2)
probe uav 1 (1) rgbai (3, 5, -1, 2)
probe uav 1 (2) rgbai (3, 5, -1, 2)
probe uav 1 (3) rgbai (3, 5, -1, 2)