#version 450
// Elementwise f32 minimum: out[i] = min(a[i], b[i]).
layout(local_size_x = 64) in;
layout(set = 0, binding = 0) readonly buffer A { float a[]; };
layout(set = 0, binding = 1) readonly buffer B { float b[]; };
layout(set = 0, binding = 2) writeonly buffer Out { float o[]; };
layout(push_constant) uniform Pc { uint n; };
void main() {
uint i = gl_GlobalInvocationID.x;
if (i < n) { o[i] = min(a[i], b[i]); }
}