SKIP: FAILED



Validation Failure:
#include <metal_stdlib>

using namespace metal;
void textureNumLevels_e67231() {
  int res = int(arg_0.get_num_mip_levels());
}

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

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

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


tint_qOzNfD.metal:5:17: error: use of undeclared identifier 'arg_0'
  int res = int(arg_0.get_num_mip_levels());
                ^
1 error generated.
