SPIRV-Cross/reference/opt/shaders-msl/comp/int64.invalid.msl22.comp

54 lines
1014 B
Plaintext
Raw Normal View History

2019-06-11 08:45:22 +00:00
#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct M0
{
long v;
long2 b[2];
ulong c;
ulong d[5];
};
struct SSBO0
{
long4 a;
M0 m0;
};
struct SSBO1
{
ulong4 b;
M0 m0;
};
struct SSBO2
{
long a[4];
long2 b[4];
};
struct SSBO3
{
long a[4];
long2 b[4];
};
kernel void main0(device SSBO0& ssbo_0 [[buffer(0)]], device SSBO1& ssbo_1 [[buffer(1)]], device SSBO2& ssbo_2 [[buffer(2)]], device SSBO3& ssbo_3 [[buffer(3)]])
{
ssbo_0.a += long4(10l, 20l, 30l, 40l);
ssbo_1.b += ulong4(999999999999999999ul, 8888888888888888ul, 77777777777777777ul, 6666666666666666ul);
ssbo_0.a += long4(20l);
ssbo_0.a = abs(ssbo_0.a + long4(ssbo_1.b));
ssbo_0.a += long4(1l);
ssbo_1.b += ulong4(long4(1l));
ssbo_0.a -= long4(1l);
ssbo_1.b -= ulong4(long4(1l));
ssbo_1.b = as_type<ulong4>(as_type<double4>(ssbo_0.a));
ssbo_0.a = as_type<long4>(as_type<double4>(ssbo_1.b));
ssbo_2.a[0] += 1l;
ssbo_3.a[0] += 2l;
}