inline float32x2x2_t identity<float32x2x2_t>() { return float32x2x2_t( float32x2_t(1.0f, 0.0f), float32x2_t(0.0f, 1.0f) ); }
inline float32x2x2_t transpose(float32x2x2_t const & m) { return float32x2x2_t( float32x2_t(m.x.x, m.y.x), float32x2_t(m.x.y, m.y.y) ); }
//__attribute__ ((noinline)) inline vector<float, 2> cmin(vector<float, 2> const& v) noexcept { using vector_type = typename vector_traits<float, 2>::vector_type; auto const tmp(float32x2_t(v.data_)); return { vector_type(vpmin_f32(tmp, tmp)) }; }