blob: 786c230d0b7da32eafdcf10339578a91b1359c79 [file]
#include <metal_stdlib>
using namespace metal;
struct S {
simdgroup_float8x8 l;
simdgroup_float8x8 r;
};
struct S_Nested {
S s;
};
struct tint_array_lengths_struct {
uint tint_array_length_0_0;
};
struct tint_immediate_data_struct {
/* 0x0000 */ uint tint_non_constant_zero;
/* 0x0004 */ array<int8_t, 2044> tint_pad;
/* 0x0800 */ array<uint, 1> tint_storage_buffer_sizes;
};
struct tint_module_vars_struct {
device array<float, 1>* tint_member;
const constant tint_immediate_data_struct* tint_immediate_data;
};
void foo(simdgroup_float8x8 m, array<simdgroup_float8x8, 4> m_array, array<array<simdgroup_float8x8, 4>, 4> m_nested_array, S m_struct, S_Nested m_nested_struct, tint_array_lengths_struct tint_array_lengths, tint_module_vars_struct tint_module_vars) {
bool const v = (456u <= tint_array_lengths.tint_array_length_0_0);
(simdgroup_store(m, (&(*tint_module_vars.tint_member)[select(0u, 0u, v)]), ulong(select(8u, 64u, v)), ulong2(0ul), false));
bool const v_1 = (456u <= tint_array_lengths.tint_array_length_0_0);
(simdgroup_store(m_array[0], (&(*tint_module_vars.tint_member)[select(0u, 0u, v_1)]), ulong(select(8u, 64u, v_1)), ulong2(0ul), false));
bool const v_2 = (456u <= tint_array_lengths.tint_array_length_0_0);
(simdgroup_store(m_nested_array[1][2], (&(*tint_module_vars.tint_member)[select(0u, 0u, v_2)]), ulong(select(8u, 64u, v_2)), ulong2(0ul), false));
bool const v_3 = (456u <= tint_array_lengths.tint_array_length_0_0);
(simdgroup_store(m_struct.l, (&(*tint_module_vars.tint_member)[select(0u, 0u, v_3)]), ulong(select(8u, 64u, v_3)), ulong2(0ul), false));
bool const v_4 = (456u <= tint_array_lengths.tint_array_length_0_0);
(simdgroup_store(m_nested_struct.s.r, (&(*tint_module_vars.tint_member)[select(0u, 0u, v_4)]), ulong(select(8u, 64u, v_4)), ulong2(0ul), false));
}
[[max_total_threads_per_threadgroup(64)]]
kernel void v_5(device array<float, 1>* v_6 [[buffer(0)]], const constant tint_immediate_data_struct* tint_immediate_data [[buffer(30)]]) {
tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.tint_member=v_6, .tint_immediate_data=tint_immediate_data};
tint_array_lengths_struct const v_7 = tint_array_lengths_struct{.tint_array_length_0_0=((*tint_module_vars.tint_immediate_data).tint_storage_buffer_sizes[0u] / 4u)};
simdgroup_float8x8 m = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
array<simdgroup_float8x8, 4> m_array = {};
array<array<simdgroup_float8x8, 4>, 4> m_nested_array = {};
S m_struct = {};
S_Nested m_nested_struct = {};
(foo(m, m_array, m_nested_array, m_struct, m_nested_struct, v_7, tint_module_vars));
}