dawn-cmake/test/var/uses/workgroup.wgsl.expected.msl

67 lines
1.5 KiB
Plaintext

#include <metal_stdlib>
using namespace metal;
void uses_a(threadgroup int* const tint_symbol_3) {
*(tint_symbol_3) = (*(tint_symbol_3) + 1);
}
void uses_b(threadgroup int* const tint_symbol_4) {
*(tint_symbol_4) = (*(tint_symbol_4) * 2);
}
void uses_a_and_b(threadgroup int* const tint_symbol_5, threadgroup int* const tint_symbol_6) {
*(tint_symbol_5) = *(tint_symbol_6);
}
void no_uses() {
}
void outer(threadgroup int* const tint_symbol_7, threadgroup int* const tint_symbol_8) {
*(tint_symbol_7) = 0;
uses_a(tint_symbol_7);
uses_a_and_b(tint_symbol_8, tint_symbol_7);
uses_b(tint_symbol_8);
no_uses();
}
kernel void main1(uint local_invocation_index [[thread_index_in_threadgroup]]) {
threadgroup int tint_symbol_9;
{
tint_symbol_9 = int();
}
threadgroup_barrier(mem_flags::mem_threadgroup);
tint_symbol_9 = 42;
uses_a(&(tint_symbol_9));
return;
}
kernel void main2(uint local_invocation_index_1 [[thread_index_in_threadgroup]]) {
threadgroup int tint_symbol_10;
{
tint_symbol_10 = int();
}
threadgroup_barrier(mem_flags::mem_threadgroup);
tint_symbol_10 = 7;
uses_b(&(tint_symbol_10));
return;
}
kernel void main3(uint local_invocation_index_2 [[thread_index_in_threadgroup]]) {
threadgroup int tint_symbol_11;
threadgroup int tint_symbol_12;
{
tint_symbol_11 = int();
tint_symbol_12 = int();
}
threadgroup_barrier(mem_flags::mem_threadgroup);
outer(&(tint_symbol_11), &(tint_symbol_12));
no_uses();
return;
}
kernel void main4() {
no_uses();
return;
}