blob: e092b7d66ccf15a95e2086a76ccca5d7ef77f4ec [file] [log] [blame]
#include <metal_stdlib>
using namespace metal;
struct PixelLocal {
uint a;
int b;
float c;
};
struct tint_private_vars_struct {
PixelLocal P;
};
struct f_res {
uint output_0;
int output_1;
float output_2;
float4 output_3;
float4 output_4;
float4 output_5;
};
struct tint_symbol_1 {
uint a [[color(1)]];
float c [[color(3)]];
int b [[color(6)]];
};
struct tint_symbol_2 {
float4 output_3 [[color(0)]];
uint output_0 [[color(1)]];
float4 output_4 [[color(2)]];
float output_2 [[color(3)]];
float4 output_5 [[color(4)]];
int output_1 [[color(6)]];
};
struct Out {
float4 x;
float4 y;
float4 z;
};
void f0(thread tint_private_vars_struct* const tint_private_vars) {
(*(tint_private_vars)).P.a = ((*(tint_private_vars)).P.a + 9u);
}
void f1(thread tint_private_vars_struct* const tint_private_vars) {
f0(tint_private_vars);
(*(tint_private_vars)).P.a = ((*(tint_private_vars)).P.a + 8u);
}
void f2(thread tint_private_vars_struct* const tint_private_vars) {
(*(tint_private_vars)).P.a = ((*(tint_private_vars)).P.a + 7u);
f1(tint_private_vars);
}
Out f_inner(thread tint_private_vars_struct* const tint_private_vars) {
f2(tint_private_vars);
Out const tint_symbol_5 = Out{.x=float4(10.0f), .y=float4(20.0f), .z=float4(30.0f)};
return tint_symbol_5;
}
f_res f_inner_1(PixelLocal pixel_local_1, thread tint_private_vars_struct* const tint_private_vars) {
(*(tint_private_vars)).P = pixel_local_1;
Out const result = f_inner(tint_private_vars);
f_res const tint_symbol_4 = {.output_0=(*(tint_private_vars)).P.a, .output_1=(*(tint_private_vars)).P.b, .output_2=(*(tint_private_vars)).P.c, .output_3=result.x, .output_4=result.y, .output_5=result.z};
return tint_symbol_4;
}
fragment tint_symbol_2 f(tint_symbol_1 tint_symbol [[stage_in]]) {
thread tint_private_vars_struct tint_private_vars = {};
PixelLocal const tint_symbol_3 = {.a=tint_symbol.a, .b=tint_symbol.b, .c=tint_symbol.c};
f_res const inner_result = f_inner_1(tint_symbol_3, &(tint_private_vars));
tint_symbol_2 wrapper_result = {};
wrapper_result.output_0 = inner_result.output_0;
wrapper_result.output_1 = inner_result.output_1;
wrapper_result.output_2 = inner_result.output_2;
wrapper_result.output_3 = inner_result.output_3;
wrapper_result.output_4 = inner_result.output_4;
wrapper_result.output_5 = inner_result.output_5;
return wrapper_result;
}