fn f(x : i32) -> i32 { if (x == 10) { discard; } return x; } [[stage(fragment)]] fn main([[location(1)]] x: vec3) -> [[location(2)]] i32 { var y = x.x; loop { let r = f(y); if (r == 0) { break; } } return y; }