Apple contribution for OSX SSE and iOS NEON optimizations unit tests, thanks to Jordan Hubbard, Ian Ollmann and Hristo Hristov.
For OSX: cd build ./premake_osx xcode4 for iOS: cd build ./ios_build.sh ./ios_run.sh Also integrated the branches/StackAllocation to make it easier to multi-thread collision detection in the near future. It avoids changing the btCollisionObject while performing collision detection. As this is a large patch, some stuff might be temporarily broken, I'll keep an eye out on issues.
This commit is contained in:
70
Test/Source/vector.h
Normal file
70
Test/Source/vector.h
Normal file
@@ -0,0 +1,70 @@
|
||||
//
|
||||
// vector.h
|
||||
// BulletTest
|
||||
//
|
||||
// Copyright (c) 2011 Apple Inc.
|
||||
//
|
||||
|
||||
#ifndef BulletTest_vector_h
|
||||
#define BulletTest_vector_h
|
||||
|
||||
#ifdef __SSE__
|
||||
typedef float float4 __attribute__ ((__vector_size__(16)));
|
||||
#include <xmmintrin.h>
|
||||
#endif
|
||||
|
||||
#ifdef __SSE2__
|
||||
typedef double double2 __attribute__ ((__vector_size__(16)));
|
||||
typedef char char16 __attribute__ ((__vector_size__(16)));
|
||||
typedef unsigned char uchar16 __attribute__ ((__vector_size__(16)));
|
||||
typedef short short8 __attribute__ ((__vector_size__(16)));
|
||||
typedef unsigned short ushort8 __attribute__ ((__vector_size__(16)));
|
||||
typedef int int4 __attribute__ ((__vector_size__(16)));
|
||||
// typedef unsigned int uint4 __attribute__ ((__vector_size__(16)));
|
||||
#ifdef __LP64__
|
||||
typedef long long2 __attribute__ ((__vector_size__(16)));
|
||||
typedef unsigned long ulong2 __attribute__ ((__vector_size__(16)));
|
||||
#else
|
||||
typedef long long long2 __attribute__ ((__vector_size__(16)));
|
||||
typedef unsigned long long ulong2 __attribute__ ((__vector_size__(16)));
|
||||
#endif
|
||||
#include <emmintrin.h>
|
||||
#endif
|
||||
|
||||
#ifdef __SSE3__
|
||||
#include <pmmintrin.h>
|
||||
#endif
|
||||
|
||||
#ifdef __SSSE3__
|
||||
#include <tmmintrin.h>
|
||||
#endif
|
||||
|
||||
#ifdef __SSE4_1__
|
||||
#include <smmintrin.h>
|
||||
#endif
|
||||
|
||||
#ifdef __arm__
|
||||
#include <arm/arch.h>
|
||||
#ifdef _ARM_ARCH_7
|
||||
#define ARM_NEON_GCC_COMPATIBILITY 1
|
||||
#include <arm_neon.h>
|
||||
typedef float float4 __attribute__ ((__vector_size__(16)));
|
||||
typedef double double2 __attribute__ ((__vector_size__(16)));
|
||||
typedef char char16 __attribute__ ((__vector_size__(16)));
|
||||
typedef unsigned char uchar16 __attribute__ ((__vector_size__(16)));
|
||||
typedef short short8 __attribute__ ((__vector_size__(16)));
|
||||
typedef unsigned short ushort8 __attribute__ ((__vector_size__(16)));
|
||||
typedef int int4 __attribute__ ((__vector_size__(16)));
|
||||
typedef unsigned int uint4 __attribute__ ((__vector_size__(16)));
|
||||
#ifdef __LP64__
|
||||
typedef long long2 __attribute__ ((__vector_size__(16)));
|
||||
typedef unsigned long ulong2 __attribute__ ((__vector_size__(16)));
|
||||
#else
|
||||
typedef long long long2 __attribute__ ((__vector_size__(16)));
|
||||
typedef unsigned long long ulong2 __attribute__ ((__vector_size__(16)));
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user