| #include <metal_stdlib> |
| #include <simd/simd.h> |
| using namespace metal; |
| struct Uniforms { |
| half4 colorGreen; |
| half4 colorRed; |
| half unknownInput; |
| }; |
| struct Inputs { |
| }; |
| struct Outputs { |
| half4 sk_FragColor [[color(0)]]; |
| }; |
| bool inside_while_loop_b(Uniforms _uniforms) { |
| while (_uniforms.unknownInput == 123.0h) { |
| return false; |
| } |
| return true; |
| } |
| bool inside_infinite_do_loop_b() { |
| do { |
| return true; |
| } while (true); |
| } |
| bool inside_infinite_while_loop_b() { |
| while (true) { |
| return true; |
| } |
| } |
| bool after_do_loop_b() { |
| do { |
| break; |
| } while (true); |
| return true; |
| } |
| bool after_while_loop_b() { |
| while (true) { |
| break; |
| } |
| return true; |
| } |
| bool switch_with_all_returns_b(Uniforms _uniforms) { |
| switch (int(_uniforms.unknownInput)) { |
| case 1: |
| return true; |
| case 2: |
| return false; |
| default: |
| return false; |
| } |
| } |
| bool switch_fallthrough_b(Uniforms _uniforms) { |
| switch (int(_uniforms.unknownInput)) { |
| case 1: |
| return true; |
| case 2: |
| default: |
| return false; |
| } |
| } |
| bool switch_fallthrough_twice_b(Uniforms _uniforms) { |
| switch (int(_uniforms.unknownInput)) { |
| case 1: |
| case 2: |
| default: |
| return true; |
| } |
| } |
| bool switch_with_break_in_loop_b(Uniforms _uniforms) { |
| switch (int(_uniforms.unknownInput)) { |
| case 1: |
| for (int x = 0;x <= 10; ++x) { |
| break; |
| } |
| default: |
| return true; |
| } |
| } |
| bool switch_with_continue_in_loop_b(Uniforms _uniforms) { |
| switch (int(_uniforms.unknownInput)) { |
| case 1: |
| for (int x = 0;x <= 10; ++x) { |
| continue; |
| } |
| default: |
| return true; |
| } |
| } |
| bool switch_with_if_that_returns_b(Uniforms _uniforms) { |
| switch (int(_uniforms.unknownInput)) { |
| case 1: |
| if (_uniforms.unknownInput == 123.0h) return false; else return true; |
| default: |
| return true; |
| } |
| } |
| bool switch_with_one_sided_if_then_fallthrough_b(Uniforms _uniforms) { |
| switch (int(_uniforms.unknownInput)) { |
| case 1: |
| if (_uniforms.unknownInput == 123.0h) return false; |
| default: |
| return true; |
| } |
| } |
| fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { |
| Outputs _out; |
| (void)_out; |
| _out.sk_FragColor = ((((((((((inside_while_loop_b(_uniforms) && inside_infinite_do_loop_b()) && inside_infinite_while_loop_b()) && after_do_loop_b()) && after_while_loop_b()) && switch_with_all_returns_b(_uniforms)) && switch_fallthrough_b(_uniforms)) && switch_fallthrough_twice_b(_uniforms)) && switch_with_break_in_loop_b(_uniforms)) && switch_with_continue_in_loop_b(_uniforms)) && switch_with_if_that_returns_b(_uniforms)) && switch_with_one_sided_if_then_fallthrough_b(_uniforms) ? _uniforms.colorGreen : _uniforms.colorRed; |
| return _out; |
| } |