SPIRV-Cross/reference/shaders-msl-no-opt/comp/int16min-literal.comp
Hans-Kristian Arntzen f72bb3c6f5 Improve handling of INT_MIN/INT64_MIN literals.
We cannot naively convert these to decimal literals. C/C++ (and thus
MSL) has extremely awkward literal promotion rules.
2021-09-30 16:29:30 +02:00

25 lines
373 B
Plaintext

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct UBO
{
half b;
};
struct SSBO
{
half a;
};
constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u);
kernel void main0(constant UBO& _12 [[buffer(0)]], device SSBO& _24 [[buffer(1)]])
{
short v = as_type<short>(_12.b);
v ^= short(-32768);
_24.a = as_type<half>(v);
}