blob: 246534df65e40209b25843444e6cb7ce263b5399 [file] [log] [blame]
#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};
thread modf_result_f32* const p = (&a);
float fract = (*p).fract;
float whole = (*p).whole;
}
void no_deref_modf() {
modf_result_f32 a = modf_result_f32{.fract=0.5f, .whole=1.0f};
thread modf_result_f32* const p = (&a);
float fract = (*p).fract;
float whole = (*p).whole;
}
void deref_frexp() {
frexp_result_f32 a = frexp_result_f32{.fract=0.75f, .exp=1};
thread frexp_result_f32* const p = (&a);
float fract = (*p).fract;
int exp = (*p).exp;
}
void no_deref_frexp() {
frexp_result_f32 a = frexp_result_f32{.fract=0.75f, .exp=1};
thread frexp_result_f32* const p = (&a);
float fract = (*p).fract;
int exp = (*p).exp;
}
kernel void tint_symbol() {
deref_modf();
no_deref_modf();
deref_frexp();
no_deref_frexp();
}