| #include <metal_stdlib> |
| |
| using namespace metal; |
| |
| struct modf_result_f32 { |
| float fract; |
| float whole; |
| }; |
| struct frexp_result_f32 { |
| float fract; |
| int exp; |
| }; |
| void deref_modf() { |
| modf_result_f32 a = modf_result_f32{.fract=0.5f, .whole=1.0f}; |
| float fract = a.fract; |
| float whole = a.whole; |
| } |
| |
| void no_deref_modf() { |
| modf_result_f32 a = modf_result_f32{.fract=0.5f, .whole=1.0f}; |
| float fract = a.fract; |
| float whole = a.whole; |
| } |
| |
| void deref_frexp() { |
| frexp_result_f32 a = frexp_result_f32{.fract=0.75f, .exp=1}; |
| float fract = a.fract; |
| int exp = a.exp; |
| } |
| |
| void no_deref_frexp() { |
| frexp_result_f32 a = frexp_result_f32{.fract=0.75f, .exp=1}; |
| float fract = a.fract; |
| int exp = a.exp; |
| } |
| |
| kernel void tint_symbol() { |
| deref_modf(); |
| no_deref_modf(); |
| deref_frexp(); |
| no_deref_frexp(); |
| return; |
| } |
| |