1#include <metal_stdlib> 2#include <simd/simd.h> 3#ifdef __clang__ 4#pragma clang diagnostic ignored "-Wall" 5#endif 6using namespace metal; 7struct Uniforms { 8 half4 colorGreen; 9 half4 colorRed; 10}; 11struct Inputs { 12}; 13struct Outputs { 14 half4 sk_FragColor [[color(0)]]; 15}; 16bool checkIntrinsicAsFunctionArg_bf3i3(float3 f3, int3 e3) { 17 return all(f3 == float3(0.75)) && all(e3 == int3(3)); 18} 19fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { 20 Outputs _out; 21 (void)_out; 22 int _skTemp0; 23 float _skTemp1; 24 int2 _skTemp2; 25 float2 _skTemp3; 26 int3 _skTemp4; 27 float3 _skTemp5; 28 int4 _skTemp6; 29 float4 _skTemp7; 30 int3 _skTemp8; 31 float3 _skTemp9; 32 float4 value = float4(_uniforms.colorGreen.yyyy * 6.0h); 33 int4 _0_exp; 34 float4 result; 35 bool4 ok; 36 result.x = ((_skTemp1 = frexp(value.x, _skTemp0)), (_0_exp.x = _skTemp0), _skTemp1); 37 ok.x = result.x == 0.75 && _0_exp.x == 3; 38 result.xy = ((_skTemp3 = frexp(value.xy, _skTemp2)), (_0_exp.xy = _skTemp2), _skTemp3); 39 ok.y = result.y == 0.75 && _0_exp.y == 3; 40 result.xyz = ((_skTemp5 = frexp(value.xyz, _skTemp4)), (_0_exp.xyz = _skTemp4), _skTemp5); 41 ok.z = result.z == 0.75 && _0_exp.z == 3; 42 result = ((_skTemp7 = frexp(value, _skTemp6)), (_0_exp = _skTemp6), _skTemp7); 43 ok.w = result.w == 0.75 && _0_exp.w == 3; 44 bool funcOk = checkIntrinsicAsFunctionArg_bf3i3(((_skTemp9 = frexp(value.wzy, _skTemp8)), (_0_exp.zxw = _skTemp8), _skTemp9).yxz, _0_exp.yxz); 45 _out.sk_FragColor = all(ok) && funcOk ? _uniforms.colorGreen : _uniforms.colorRed; 46 return _out; 47} 48