SKIP: FAILED



Validation Failure:
#include <metal_stdlib>

using namespace metal;
void textureDimensions_9c9c57() {
  int2 res = int2(arg_0.get_width(1), arg_0.get_height(1));
}

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

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

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


tint_NYnjny.metal:5:19: error: use of undeclared identifier 'arg_0'
  int2 res = int2(arg_0.get_width(1), arg_0.get_height(1));
                  ^
tint_NYnjny.metal:5:39: error: use of undeclared identifier 'arg_0'
  int2 res = int2(arg_0.get_width(1), arg_0.get_height(1));
                                      ^
2 errors generated.
