#include <metal_stdlib>
using namespace metal;

struct tint_module_vars_struct {
  texture2d<float, access::sample> tex;
  texture2d<float, access::read_write> store;
};

fragment void v(texture2d<float, access::sample> tex [[texture(0)]], texture2d<float, access::read_write> store [[texture(1)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.tex=tex, .store=store};
  uint const v_1 = min(uint(0), (tint_module_vars.tex.get_num_mip_levels() - 1u));
  uint2 const v_2 = (uint2(tint_module_vars.tex.get_width(v_1), tint_module_vars.tex.get_height(v_1)) - uint2(1u));
  float4 res = tint_module_vars.tex.read(min(uint2(int2(1)), v_2), v_1);
  float4 const v_3 = res;
  (const_cast<texture2d<float, access::read_write>thread &>(tint_module_vars.store).fence());
  (tint_module_vars.store.write(v_3, uint2(int2(0))));
  (const_cast<texture2d<float, access::read_write>thread &>(tint_module_vars.store).fence());
}
