blob: 54555c199034290d61f222fcd2d52d235901b11a [file] [log] [blame]
#include <metal_stdlib>
using namespace metal;
#define TINT_ISOLATE_UB(VOLATILE_NAME) \
volatile bool VOLATILE_NAME = true; \
if (VOLATILE_NAME)
struct tint_private_vars_struct {
float2 v2f;
int3 v3i;
uint4 v4u;
bool2 v2b;
};
void foo(thread tint_private_vars_struct* const tint_private_vars) {
TINT_ISOLATE_UB(tint_volatile_true) for(int i = 0; (i < 2); i = as_type<int>((as_type<uint>(i) + as_type<uint>(1)))) {
(*(tint_private_vars)).v2f[i] = 1.0f;
(*(tint_private_vars)).v3i[i] = 1;
(*(tint_private_vars)).v4u[i] = 1u;
(*(tint_private_vars)).v2b[i] = true;
}
}
kernel void tint_symbol() {
thread tint_private_vars_struct tint_private_vars = {};
TINT_ISOLATE_UB(tint_volatile_true_1) for(int i = 0; (i < 2); i = as_type<int>((as_type<uint>(i) + as_type<uint>(1)))) {
foo(&(tint_private_vars));
}
return;
}