From 4924141ca5be149f370ff384f21743f9fc37b3b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Fri, 23 Dec 2016 18:59:29 -0800 Subject: [PATCH] Fixed VS build. --- include/bx/simd256_ref.inl | 102 ++++++++++++++++++------------------- include/bx/simd_t.h | 10 +++- 2 files changed, 59 insertions(+), 53 deletions(-) diff --git a/include/bx/simd256_ref.inl b/include/bx/simd256_ref.inl index b1bca3f..c3847bd 100644 --- a/include/bx/simd256_ref.inl +++ b/include/bx/simd256_ref.inl @@ -1,51 +1,51 @@ -/* - * Copyright 2010-2016 Branimir Karadzic. All rights reserved. - * License: https://github.com/bkaradzic/bx#license-bsd-2-clause - */ - -#ifndef BX_SIMD256_REF_H_HEADER_GUARD -#define BX_SIMD256_REF_H_HEADER_GUARD - -#include "simd_ni.inl" - -namespace bx -{ - template<> - BX_SIMD_FORCE_INLINE simd256_ref_t simd_ld(const void* _ptr) - { - const simd128_t* ptr = reinterpret_cast(_ptr); - simd256_ref_t result; - result.simd128_0 = simd_ld(&ptr[0]); - result.simd128_1 = simd_ld(&ptr[1]); - return result; - } - - template<> - BX_SIMD_FORCE_INLINE void simd_st(void* _ptr, simd256_ref_t& _a) - { - simd128_t* result = reinterpret_cast(_ptr); - simd_st(&result[0], _a.simd128_0); - simd_st(&result[1], _a.simd128_1); - } - - template<> - BX_SIMD_FORCE_INLINE simd256_ref_t simd_ld(float _x, float _y, float _z, float _w, float _a, float _b, float _c, float _d) - { - simd256_ref_t result; - result.simd128_0 = simd_ld(_x, _y, _z, _w); - result.simd128_1 = simd_ld(_a, _b, _c, _d); - return result; - } - - template<> - BX_SIMD_FORCE_INLINE simd256_ref_t simd_ild(uint32_t _x, uint32_t _y, uint32_t _z, uint32_t _w, uint32_t _a, uint32_t _b, uint32_t _c, uint32_t _d) - { - simd256_ref_t result; - result.simd128_0 = simd_ild(_x, _y, _z, _w); - result.simd128_1 = simd_ild(_a, _b, _c, _d); - return result; - } - -} // namespace bx - -#endif // BX_SIMD256_REF_H_HEADER_GUARD +/* + * Copyright 2010-2016 Branimir Karadzic. All rights reserved. + * License: https://github.com/bkaradzic/bx#license-bsd-2-clause + */ + +#ifndef BX_SIMD256_REF_H_HEADER_GUARD +#define BX_SIMD256_REF_H_HEADER_GUARD + +#include "simd_ni.inl" + +namespace bx +{ + template<> + BX_SIMD_FORCE_INLINE simd256_ref_t simd_ld(const void* _ptr) + { + const simd256_ref_t::type* ptr = reinterpret_cast(_ptr); + simd256_ref_t result; + result.simd128_0 = simd_ld(&ptr[0]); + result.simd128_1 = simd_ld(&ptr[1]); + return result; + } + + template<> + BX_SIMD_FORCE_INLINE void simd_st(void* _ptr, simd256_ref_t& _a) + { + simd256_ref_t* result = reinterpret_cast(_ptr); + simd_st(&result[0], _a.simd128_0); + simd_st(&result[1], _a.simd128_1); + } + + template<> + BX_SIMD_FORCE_INLINE simd256_ref_t simd_ld(float _x, float _y, float _z, float _w, float _a, float _b, float _c, float _d) + { + simd256_ref_t result; + result.simd128_0 = simd_ld(_x, _y, _z, _w); + result.simd128_1 = simd_ld(_a, _b, _c, _d); + return result; + } + + template<> + BX_SIMD_FORCE_INLINE simd256_ref_t simd_ild(uint32_t _x, uint32_t _y, uint32_t _z, uint32_t _w, uint32_t _a, uint32_t _b, uint32_t _c, uint32_t _d) + { + simd256_ref_t result; + result.simd128_0 = simd_ild(_x, _y, _z, _w); + result.simd128_1 = simd_ild(_a, _b, _c, _d); + return result; + } + +} // namespace bx + +#endif // BX_SIMD256_REF_H_HEADER_GUARD diff --git a/include/bx/simd_t.h b/include/bx/simd_t.h index 5e1fa55..ee52c8b 100644 --- a/include/bx/simd_t.h +++ b/include/bx/simd_t.h @@ -402,8 +402,14 @@ namespace bx struct simd256_ref_t { - simd128_t simd128_0; - simd128_t simd128_1; +#if BX_COMPILER_MSVC + typedef simd128_ref_t type; +#else + typedef simd128_t type; +#endif // BX_COMPILER_MSVC + + type simd128_0; + type simd128_1; }; #if !BX_SIMD_AVX