blob: a83b2a73d20e875becc72cee024c3da61ff760c1 [file] [log] [blame]
#include <metal_stdlib>
using namespace metal;
struct tint_private_vars_struct {
int a;
int b;
int c;
};
void uses_a(thread tint_private_vars_struct* const tint_private_vars) {
(*(tint_private_vars)).a = as_type<int>((as_type<uint>((*(tint_private_vars)).a) + as_type<uint>(1)));
}
void uses_b(thread tint_private_vars_struct* const tint_private_vars) {
(*(tint_private_vars)).b = as_type<int>((as_type<uint>((*(tint_private_vars)).b) * as_type<uint>(2)));
}
void uses_a_and_b(thread tint_private_vars_struct* const tint_private_vars) {
(*(tint_private_vars)).b = (*(tint_private_vars)).a;
}
void no_uses() {
}
void outer(thread tint_private_vars_struct* const tint_private_vars) {
(*(tint_private_vars)).a = 0;
uses_a(tint_private_vars);
uses_a_and_b(tint_private_vars);
uses_b(tint_private_vars);
no_uses();
}
kernel void main1() {
thread tint_private_vars_struct tint_private_vars = {};
tint_private_vars.a = 42;
uses_a(&(tint_private_vars));
return;
}
kernel void main2() {
thread tint_private_vars_struct tint_private_vars = {};
tint_private_vars.b = 7;
uses_b(&(tint_private_vars));
return;
}
kernel void main3() {
thread tint_private_vars_struct tint_private_vars = {};
outer(&(tint_private_vars));
no_uses();
return;
}
kernel void main4() {
no_uses();
return;
}