SKIP: FAILED



Validation Failure:
#include <metal_stdlib>

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

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

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

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


tint_8I50aH.metal:5:19: error: use of undeclared identifier 'arg_0'
  int3 res = int3(arg_0.get_width(1), arg_0.get_height(1), arg_0.get_height(1));
                  ^
tint_8I50aH.metal:5:39: error: use of undeclared identifier 'arg_0'
  int3 res = int3(arg_0.get_width(1), arg_0.get_height(1), arg_0.get_height(1));
                                      ^
tint_8I50aH.metal:5:60: error: use of undeclared identifier 'arg_0'
  int3 res = int3(arg_0.get_width(1), arg_0.get_height(1), arg_0.get_height(1));
                                                           ^
3 errors generated.
