SKIP: FAILED



Validation Failure:
#include <metal_stdlib>

using namespace metal;
void textureStore_7cec8d() {
  arg_0.write(int4(), int2(), 1);
}

vertex void vertex_main() {
  textureStore_7cec8d();
  return;
}

fragment void fragment_main() {
  textureStore_7cec8d();
  return;
}

kernel void compute_main() {
  textureStore_7cec8d();
  return;
}


tint_YM1K5G.metal:5:3: error: use of undeclared identifier 'arg_0'
  arg_0.write(int4(), int2(), 1);
  ^
1 error generated.
