SPIRV-Cross/reference/shaders-msl-no-opt/asm/comp/spec-constant-name-aliasing.asm.comp
Hans-Kristian Arntzen 48b5a9069f Handle aliased names in spec constants.
Need to register resource name.
2022-01-18 12:31:28 +01:00

36 lines
1.2 KiB
Plaintext

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct SSBO
{
int values[1];
};
constant int A_tmp [[function_constant(0)]];
constant int A = is_function_constant_defined(A_tmp) ? A_tmp : 0;
constant int A_1_tmp [[function_constant(1)]];
constant int A_1 = is_function_constant_defined(A_1_tmp) ? A_1_tmp : 1;
constant int A_2_tmp [[function_constant(2)]];
constant int A_2 = is_function_constant_defined(A_2_tmp) ? A_2_tmp : 2;
constant int A_3_tmp [[function_constant(3)]];
constant int A_3 = is_function_constant_defined(A_3_tmp) ? A_3_tmp : 3;
constant int A_4_tmp [[function_constant(4)]];
constant int A_4 = is_function_constant_defined(A_4_tmp) ? A_4_tmp : 4;
constant int A_5_tmp [[function_constant(5)]];
constant int A_5 = is_function_constant_defined(A_5_tmp) ? A_5_tmp : 5;
constant int A_6 = (A - A_1);
constant int A_7 = (A_6 - A_2);
constant int A_8 = (A_7 - A_3);
constant int A_9 = (A_8 - A_4);
constant int A_10 = (A_9 - A_5);
constant int A_11 = (A_10 + A_5);
constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u);
kernel void main0(device SSBO& _5 [[buffer(0)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]])
{
_5.values[gl_GlobalInvocationID.x] = A_11;
}