blob: 1cedc91c133add7ef945045de3eb2c54e1ebae34 [file] [log] [blame]
#include <metal_stdlib>
using namespace metal;
void deref() {
int3 a = 0;
thread int3* const p = (&a);
(*p).x = as_type<int>((as_type<uint>((*p).x) + as_type<uint>(42)));
}
void no_deref() {
int3 a = 0;
thread int3* const p = (&a);
(*p).x = as_type<int>((as_type<uint>((*p).x) + as_type<uint>(42)));
}
void deref_inc() {
int3 a = 0;
thread int3* const p = (&a);
(*p).x = as_type<int>((as_type<uint>((*p).x) + as_type<uint>(1)));
}
void no_deref_inc() {
int3 a = 0;
thread int3* const p = (&a);
(*p).x = as_type<int>((as_type<uint>((*p).x) + as_type<uint>(1)));
}
[[max_total_threads_per_threadgroup(1)]]
kernel void v() {
deref();
no_deref();
deref_inc();
no_deref_inc();
}