struct Foo { int x; };
Foo foo;


void construct_struct_from_float2x2()   { Foo x = Foo(float2x2(0)); }
void construct_float_from_struct()      { float x = float(foo); }
void construct_float2_from_struct()     { float2 x = float2(foo); }
void construct_float2x2_from_struct()   { float2x2 x = float2x2(foo); }
void construct_float2x2_from_type()     { float2x2 x = float2x2(int); }
void construct_float2x2_from_function() { float2x2 x = float2x2(sqrt); }
