#include <metal_stdlib>
using namespace metal;

struct tint_module_vars_struct {
  array<texture2d<float, access::sample>, 4> sampled_textures;
};

void do_texture_load(texture2d<float, access::sample> t) {
  uint const v = min(0u, (t.get_num_mip_levels() - 1u));
  float4 const texture_load = t.read(min(uint2(0u), (uint2(t.get_width(v), t.get_height(v)) - uint2(1u))), v);
}

fragment void fs(array<texture2d<float, access::sample>, 4> sampled_textures [[texture(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sampled_textures=sampled_textures};
  (do_texture_load(tint_module_vars.sampled_textures[0]));
}
