mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-18 04:53:06 +01:00
Removed macro usage from SIMD.
This commit is contained in:
@@ -7,38 +7,6 @@
|
||||
# error "Must be included from bx/simd_t.h!"
|
||||
#endif // BX_SIMD_T_H_HEADER_GUARD
|
||||
|
||||
#define simd_rcp simd_rcp_ni
|
||||
#define simd_orx simd_orx_ni
|
||||
#define simd_orc simd_orc_ni
|
||||
#define simd_neg simd_neg_ni
|
||||
#define simd_madd simd_madd_ni
|
||||
#define simd_nmsub simd_nmsub_ni
|
||||
#define simd_div_nr simd_div_nr_ni
|
||||
#define simd_selb simd_selb_ni
|
||||
#define simd_sels simd_sels_ni
|
||||
#define simd_not simd_not_ni
|
||||
#define simd_abs simd_abs_ni
|
||||
#define simd_clamp simd_clamp_ni
|
||||
#define simd_lerp simd_lerp_ni
|
||||
#define simd_rcp_est simd_rcp_ni
|
||||
#define simd_rsqrt simd_rsqrt_ni
|
||||
#define simd_rsqrt_nr simd_rsqrt_nr_ni
|
||||
#define simd_rsqrt_carmack simd_rsqrt_carmack_ni
|
||||
#define simd_sqrt_nr simd_sqrt_nr_ni
|
||||
#define simd_log2 simd_log2_ni
|
||||
#define simd_exp2 simd_exp2_ni
|
||||
#define simd_pow simd_pow_ni
|
||||
#define simd_cross3 simd_cross3_ni
|
||||
#define simd_normalize3 simd_normalize3_ni
|
||||
#define simd_dot3 simd_dot3_ni
|
||||
#define simd_dot simd_dot_ni
|
||||
#define simd_ceil simd_ceil_ni
|
||||
#define simd_floor simd_floor_ni
|
||||
#define simd_min simd_min_ni
|
||||
#define simd_max simd_max_ni
|
||||
#define simd_imin simd_imin_ni
|
||||
#define simd_imax simd_imax_ni
|
||||
|
||||
namespace bx
|
||||
{
|
||||
#define ELEMx 0
|
||||
@@ -507,6 +475,192 @@ BX_SIMD128_IMPLEMENT_TEST(xyzw , 0xf);
|
||||
return result;
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_rcp(simd128_langext_t _a)
|
||||
{
|
||||
return simd_rcp_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_orx(simd128_langext_t _a)
|
||||
{
|
||||
return simd_orx_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_orc(simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_orc_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_neg(simd128_langext_t _a)
|
||||
{
|
||||
return simd_neg_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_madd(simd128_langext_t _a, simd128_langext_t _b, simd128_langext_t _c)
|
||||
{
|
||||
return simd_madd_ni(_a, _b, _c);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_nmsub(simd128_langext_t _a, simd128_langext_t _b, simd128_langext_t _c)
|
||||
{
|
||||
return simd_nmsub_ni(_a, _b, _c);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_div_nr(simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_div_nr_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_selb(simd128_langext_t _mask, simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_selb_ni(_mask, _a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_sels(simd128_langext_t _test, simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_sels_ni(_test, _a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_not(simd128_langext_t _a)
|
||||
{
|
||||
return simd_not_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_abs(simd128_langext_t _a)
|
||||
{
|
||||
return simd_abs_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_clamp(simd128_langext_t _a, simd128_langext_t _min, simd128_langext_t _max)
|
||||
{
|
||||
return simd_clamp_ni(_a, _min, _max);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_lerp(simd128_langext_t _a, simd128_langext_t _b, simd128_langext_t _s)
|
||||
{
|
||||
return simd_lerp_ni(_a, _b, _s);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_rcp_est(simd128_langext_t _a)
|
||||
{
|
||||
return simd_rcp_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_rsqrt(simd128_langext_t _a)
|
||||
{
|
||||
return simd_rsqrt_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_rsqrt_nr(simd128_langext_t _a)
|
||||
{
|
||||
return simd_rsqrt_nr_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_rsqrt_carmack(simd128_langext_t _a)
|
||||
{
|
||||
return simd_rsqrt_carmack_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_sqrt_nr(simd128_langext_t _a)
|
||||
{
|
||||
return simd_sqrt_nr_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_log2(simd128_langext_t _a)
|
||||
{
|
||||
return simd_log2_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_exp2(simd128_langext_t _a)
|
||||
{
|
||||
return simd_exp2_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_pow(simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_pow_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_cross3(simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_cross3_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_normalize3(simd128_langext_t _a)
|
||||
{
|
||||
return simd_normalize3_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_dot3(simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_dot3_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_dot(simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_dot_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_ceil(simd128_langext_t _a)
|
||||
{
|
||||
return simd_ceil_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_floor(simd128_langext_t _a)
|
||||
{
|
||||
return simd_floor_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_min(simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_min_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_max(simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_max_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_imin(simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_imin_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_imax(simd128_langext_t _a, simd128_langext_t _b)
|
||||
{
|
||||
return simd_imax_ni(_a, _b);
|
||||
}
|
||||
|
||||
typedef simd128_langext_t simd128_t;
|
||||
|
||||
} // namespace bx
|
||||
|
||||
@@ -7,35 +7,6 @@
|
||||
# error "Must be included from bx/simd_t.h!"
|
||||
#endif // BX_SIMD_T_H_HEADER_GUARD
|
||||
|
||||
#define simd_rcp simd_rcp_ni
|
||||
#define simd_orx simd_orx_ni
|
||||
#define simd_orc simd_orc_ni
|
||||
#define simd_neg simd_neg_ni
|
||||
#define simd_madd simd_madd_ni
|
||||
#define simd_nmsub simd_nmsub_ni
|
||||
#define simd_div_nr simd_div_nr_ni
|
||||
#define simd_div simd_div_nr_ni
|
||||
#define simd_selb simd_selb_ni
|
||||
#define simd_sels simd_sels_ni
|
||||
#define simd_not simd_not_ni
|
||||
#define simd_abs simd_abs_ni
|
||||
#define simd_clamp simd_clamp_ni
|
||||
#define simd_lerp simd_lerp_ni
|
||||
#define simd_rsqrt simd_rsqrt_ni
|
||||
#define simd_rsqrt_nr simd_rsqrt_nr_ni
|
||||
#define simd_rsqrt_carmack simd_rsqrt_carmack_ni
|
||||
#define simd_sqrt_nr simd_sqrt_nr_ni
|
||||
#define simd_sqrt simd_sqrt_nr_ni
|
||||
#define simd_log2 simd_log2_ni
|
||||
#define simd_exp2 simd_exp2_ni
|
||||
#define simd_pow simd_pow_ni
|
||||
#define simd_cross3 simd_cross3_ni
|
||||
#define simd_normalize3 simd_normalize3_ni
|
||||
#define simd_dot3 simd_dot3_ni
|
||||
#define simd_dot simd_dot_ni
|
||||
#define simd_ceil simd_ceil_ni
|
||||
#define simd_floor simd_floor_ni
|
||||
|
||||
namespace bx
|
||||
{
|
||||
#define ELEMx 0
|
||||
@@ -554,6 +525,168 @@ BX_SIMD128_IMPLEMENT_TEST(yzw, yzww);
|
||||
return simd_shuf_yBwD_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_orx(simd128_neon_t _a)
|
||||
{
|
||||
return simd_orx_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_orc(simd128_neon_t _a, simd128_neon_t _b)
|
||||
{
|
||||
return simd_orc_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_neg(simd128_neon_t _a)
|
||||
{
|
||||
return simd_neg_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_madd(simd128_neon_t _a, simd128_neon_t _b, simd128_neon_t _c)
|
||||
{
|
||||
return simd_madd_ni(_a, _b, _c);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_nmsub(simd128_neon_t _a, simd128_neon_t _b, simd128_neon_t _b)
|
||||
{
|
||||
return simd_nmsub_ni(_a, _b, _c);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_div_nr(simd128_neon_t _a, simd128_neon_t _b)
|
||||
{
|
||||
return simd_div_nr_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_div(simd128_neon_t _a, simd128_neon_t _b)
|
||||
{
|
||||
return simd_div_nr_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_selb(simd128_neon_t _mask, simd128_neon_t _a, simd128_neon_t _b)
|
||||
{
|
||||
return simd_selb_ni(_mask, _a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_sels(simd128_neon_t _test, simd128_neon_t _a, simd128_neon_t _b)
|
||||
{
|
||||
return simd_sels_ni(_test, _a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_not(simd128_neon_t _a)
|
||||
{
|
||||
return simd_not_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_abs(simd128_neon_t _a)
|
||||
{
|
||||
return simd_abs_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_clamp(simd128_neon_t _a, simd128_neon_t _min, simd128_neon_t _max)
|
||||
{
|
||||
return simd_clamp_ni(_a, _min, _max);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_lerp(simd128_neon_t _a, simd128_neon_t _b, simd128_neon_t _s)
|
||||
{
|
||||
return simd_lerp_ni(_a, _b, _s);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_rsqrt(simd128_neon_t _a)
|
||||
{
|
||||
return simd_rsqrt_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_rsqrt_n(simd128_neon_t _a)
|
||||
{
|
||||
return simd_rsqrt_nr_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_rsqrt_carma(simd128_neon_t _a)
|
||||
{
|
||||
return simd_rsqrt_carmack_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_sqrt_n(simd128_neon_t _a)
|
||||
{
|
||||
return simd_sqrt_nr_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_sqrt(simd128_neon_t _a)
|
||||
{
|
||||
return simd_sqrt_nr_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_log2(simd128_neon_t _a)
|
||||
{
|
||||
return simd_log2_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_exp2(simd128_neon_t _a)
|
||||
{
|
||||
return simd_exp2_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_pow(simd128_neon_t _a, simd128_neon_t _b)
|
||||
{
|
||||
return simd_pow_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_cross3(simd128_neon_t _a, simd128_neon_t _b)
|
||||
{
|
||||
return simd_cross3_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_normalize3(simd128_neon_t _a, simd128_neon_t _b)
|
||||
{
|
||||
return simd_normalize3_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_dot3(simd128_neon_t _a, simd128_neon_t _b)
|
||||
{
|
||||
return simd_dot3_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_dot(simd128_neon_t _a, simd128_neon_t _b)
|
||||
{
|
||||
return simd_dot_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_ceil(simd128_neon_t _a)
|
||||
{
|
||||
return simd_ceil_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_neon_t simd_floor(simd128_neon_t _a)
|
||||
{
|
||||
return simd_floor_ni(_a);
|
||||
}
|
||||
|
||||
typedef simd128_neon_t simd128_t;
|
||||
|
||||
} // namespace bx
|
||||
|
||||
@@ -7,35 +7,6 @@
|
||||
# error "Must be included from bx/simd_t.h!"
|
||||
#endif // BX_SIMD_T_H_HEADER_GUARD
|
||||
|
||||
#define simd_shuf_xAzC simd_shuf_xAzC_ni
|
||||
#define simd_shuf_yBwD simd_shuf_yBwD_ni
|
||||
#define simd_rcp simd_rcp_ni
|
||||
#define simd_orx simd_orx_ni
|
||||
#define simd_orc simd_orc_ni
|
||||
#define simd_neg simd_neg_ni
|
||||
#define simd_madd simd_madd_ni
|
||||
#define simd_nmsub simd_nmsub_ni
|
||||
#define simd_div_nr simd_div_nr_ni
|
||||
#define simd_selb simd_selb_ni
|
||||
#define simd_sels simd_sels_ni
|
||||
#define simd_not simd_not_ni
|
||||
#define simd_abs simd_abs_ni
|
||||
#define simd_clamp simd_clamp_ni
|
||||
#define simd_lerp simd_lerp_ni
|
||||
#define simd_rsqrt simd_rsqrt_ni
|
||||
#define simd_rsqrt_nr simd_rsqrt_nr_ni
|
||||
#define simd_rsqrt_carmack simd_rsqrt_carmack_ni
|
||||
#define simd_sqrt_nr simd_sqrt_nr_ni
|
||||
#define simd_log2 simd_log2_ni
|
||||
#define simd_exp2 simd_exp2_ni
|
||||
#define simd_pow simd_pow_ni
|
||||
#define simd_cross3 simd_cross3_ni
|
||||
#define simd_normalize3 simd_normalize3_ni
|
||||
#define simd_dot3 simd_dot3_ni
|
||||
#define simd_dot simd_dot_ni
|
||||
#define simd_ceil simd_ceil_ni
|
||||
#define simd_floor simd_floor_ni
|
||||
|
||||
namespace bx
|
||||
{
|
||||
#define ELEMx 0
|
||||
@@ -677,4 +648,172 @@ BX_SIMD128_IMPLEMENT_TEST(xyzw , 0xf);
|
||||
return simd_isplat<simd128_t>(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_shuf_xAzC(simd128_ref_t _a, simd128_ref_t _b)
|
||||
{
|
||||
return simd_shuf_xAzC_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_shuf_yBwD(simd128_ref_t _a, simd128_ref_t _b)
|
||||
{
|
||||
return simd_shuf_yBwD_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_rcp(simd128_ref_t _a)
|
||||
{
|
||||
return simd_rcp_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_orx(simd128_ref_t _a)
|
||||
{
|
||||
return simd_orx_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_orc(simd128_ref_t _a, simd128_ref_t _b)
|
||||
{
|
||||
return simd_orc_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_neg(simd128_ref_t _a)
|
||||
{
|
||||
return simd_neg_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_madd(simd128_ref_t _a, simd128_ref_t _b, simd128_ref_t _c)
|
||||
{
|
||||
return simd_madd_ni(_a, _b, _c);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_nmsub(simd128_ref_t _a, simd128_ref_t _b, simd128_ref_t _c)
|
||||
{
|
||||
return simd_nmsub_ni(_a, _b, _c);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_div_nr(simd128_ref_t _a, simd128_ref_t _b)
|
||||
{
|
||||
return simd_div_nr_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_selb(simd128_ref_t _mask, simd128_ref_t _a, simd128_ref_t _b)
|
||||
{
|
||||
return simd_selb_ni(_mask, _a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_sels(simd128_ref_t _test, simd128_ref_t _a, simd128_ref_t _b)
|
||||
{
|
||||
return simd_sels_ni(_test, _a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_not(simd128_ref_t _a)
|
||||
{
|
||||
return simd_not_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_abs(simd128_ref_t _a)
|
||||
{
|
||||
return simd_abs_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_clamp(simd128_ref_t _a, simd128_ref_t _min, simd128_ref_t _max)
|
||||
{
|
||||
return simd_clamp_ni(_a, _min, _max);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_lerp(simd128_ref_t _a, simd128_ref_t _b, simd128_ref_t _s)
|
||||
{
|
||||
return simd_lerp_ni(_a, _b, _s);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_rsqrt(simd128_ref_t _a)
|
||||
{
|
||||
return simd_rsqrt_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_rsqrt_nr(simd128_ref_t _a)
|
||||
{
|
||||
return simd_rsqrt_nr_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_rsqrt_carmack(simd128_ref_t _a)
|
||||
{
|
||||
return simd_rsqrt_carmack_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_sqrt_nr(simd128_ref_t _a)
|
||||
{
|
||||
return simd_sqrt_nr_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_log2(simd128_ref_t _a)
|
||||
{
|
||||
return simd_log2_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_exp2(simd128_ref_t _a)
|
||||
{
|
||||
return simd_exp2_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_pow(simd128_ref_t _a, simd128_ref_t _b)
|
||||
{
|
||||
return simd_pow_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_cross3(simd128_ref_t _a, simd128_ref_t _b)
|
||||
{
|
||||
return simd_cross3_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_normalize3(simd128_ref_t _a)
|
||||
{
|
||||
return simd_normalize3_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_dot3(simd128_ref_t _a, simd128_ref_t _b)
|
||||
{
|
||||
return simd_dot3_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_dot(simd128_ref_t _a, simd128_ref_t _b)
|
||||
{
|
||||
return simd_dot_ni(_a, _b);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_ceil(simd128_ref_t _a)
|
||||
{
|
||||
return simd_ceil_ni(_a);
|
||||
}
|
||||
|
||||
template<>
|
||||
BX_SIMD_FORCE_INLINE simd128_ref_t simd_floor(simd128_ref_t _a)
|
||||
{
|
||||
return simd_floor_ni(_a);
|
||||
}
|
||||
|
||||
} // namespace bx
|
||||
|
||||
Reference in New Issue
Block a user