blob: 8538400d9e46ac0323c8982162505b82e49f3e18 [file] [log] [blame]
#include <metal_stdlib>
using namespace metal;
struct tint_symbol_6 {
float3x2 w;
};
void tint_zero_workgroup_memory(uint local_idx, threadgroup float3x2* const tint_symbol) {
if ((local_idx < 1u)) {
*(tint_symbol) = float3x2(float2(0.0f), float2(0.0f), float2(0.0f));
}
threadgroup_barrier(mem_flags::mem_threadgroup);
}
void f_inner(uint local_invocation_index, threadgroup float3x2* const tint_symbol_1, const constant float3x2* const tint_symbol_2) {
tint_zero_workgroup_memory(local_invocation_index, tint_symbol_1);
*(tint_symbol_1) = *(tint_symbol_2);
(*(tint_symbol_1))[1] = (*(tint_symbol_2))[0];
(*(tint_symbol_1))[1] = (*(tint_symbol_2))[0].yx;
(*(tint_symbol_1))[0][1] = (*(tint_symbol_2))[1][0];
}
kernel void f(const constant float3x2* tint_symbol_5 [[buffer(0)]], threadgroup tint_symbol_6* tint_symbol_4 [[threadgroup(0)]], uint local_invocation_index [[thread_index_in_threadgroup]]) {
threadgroup float3x2* const tint_symbol_3 = &((*(tint_symbol_4)).w);
f_inner(local_invocation_index, tint_symbol_3, tint_symbol_5);
return;
}