#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; | |
} | |