dawn-cmake/test/tint/var/uses/private.wgsl.expected.msl

59 lines
1.3 KiB
Plaintext

#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;
}