yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
9a23a9aab
master
1// vector-comparison.slang 2 3//TEST:SIMPLE(filecheck=CHECK):-target spirv-assembly -entry main -stage fragment -Wno-use-of-non-short-circuiting-operator 4 5// This test ensures that we cross-compile vector comparison operators 6// correctly to GLSL 7 8// CHECK: OpFOrdEqual %v4bool 9// CHECK: OpFOrdLessThan %v4bool 10// CHECK: OpFOrdGreaterThan %v4bool 11// CHECK: OpFOrdLessThanEqual %v4bool 12// CHECK: OpFOrdGreaterThanEqual %v4bool 13// CHECK: OpFUnordNotEqual %v4bool 14 15struct Param 16{ 17 float4 a, b; 18}; 19ParameterBlock<Param> params; 20float4 main() : SV_Target 21{ 22 float4 v0 = params.a; 23 float4 v1 = params.b; 24 float4 result = v0 == v1 ? float4(2.0f) : float4(3.0f); 25 result += v0 < v1 ? float4(2.0f) : float4(3.0f); 26 result += v0 > v1 ? float4(2.0f) : float4(3.0f); 27 result += v0 <= v1 ? float4(2.0f) : float4(3.0f); 28 result += v0 >= v1 ? float4(2.0f) : float4(3.0f); 29 result += v0 != v1 ? float4(2.0f) : float4(3.0f); 30 return result; 31}