#version 310 es
precision mediump float;

struct SB_RW {
  int arg_0;
};

layout(binding = 0) buffer SB_RW_1 {
  int arg_0;
} sb_rw;

void atomicOr_8d96a0() {
  int res = atomicOr(sb_rw.arg_0, 1);
}

void fragment_main() {
  atomicOr_8d96a0();
  return;
}
void main() {
  fragment_main();
}


#version 310 es
precision mediump float;

struct SB_RW {
  int arg_0;
};

layout(binding = 0) buffer SB_RW_1 {
  int arg_0;
} sb_rw;

void atomicOr_8d96a0() {
  int res = atomicOr(sb_rw.arg_0, 1);
}

layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void compute_main() {
  atomicOr_8d96a0();
  return;
}
void main() {
  compute_main();
}


