parent
							
								
									60053dd2a5
								
							
						
					
					
						commit
						157643c8d7
					
				| 
						 | 
					@ -28,6 +28,8 @@
 | 
				
			||||||
#error "MMX instruction set not enabled"
 | 
					#error "MMX instruction set not enabled"
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <mmintrin.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef float __m128 __attribute__((__vector_size__(16)));
 | 
					typedef float __m128 __attribute__((__vector_size__(16)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline __m128 __attribute__((__always_inline__)) _mm_add_ss(__m128 a, __m128 b)
 | 
					static inline __m128 __attribute__((__always_inline__)) _mm_add_ss(__m128 a, __m128 b)
 | 
				
			||||||
| 
						 | 
					@ -320,6 +322,51 @@ static inline int __attribute__((__always_inline__)) _mm_ucomineq_ss(__m128 a, _
 | 
				
			||||||
  return __builtin_ia32_ucomineq(a, b);
 | 
					  return __builtin_ia32_ucomineq(a, b);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline int __attribute__((__always_inline__)) _mm_cvtss_si32(__m128 a)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return __builtin_ia32_cvtss2si(a);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline long long __attribute__((__always_inline__)) _mm_cvtss_si64(__m128 a)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return __builtin_ia32_cvtss2si64(a);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline __m64 __attribute__((__always_inline__)) _mm_cvtps_pi32(__m128 a)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return (__m64)__builtin_ia32_cvtps2pi(a);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline int __attribute__((__always_inline__)) _mm_cvttss_si32(__m128 a)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return __builtin_ia32_cvttss2si(a);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline long long __attribute__((__always_inline__)) _mm_cvttss_si64(__m128 a)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return __builtin_ia32_cvttss2si64(a);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline __m64 __attribute__((__always_inline__)) _mm_cvttps_pi32(__m128 a)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return (__m64)__builtin_ia32_cvttps2pi(a);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline __m128 __attribute__((__always_inline__)) _mm_cvtsi32_ss(__m128 a, int b)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return __builtin_ia32_cvtsi2ss(a, b);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline __m128 __attribute__((__always_inline__)) _mm_cvtsi64_ss(__m128 a, long long b)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return __builtin_ia32_cvtsi642ss(a, b);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline __m128 __attribute__((__always_inline__)) _mm_cvtpi32_ps(__m128 a, __m64 b)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return __builtin_ia32_cvtpi2ps(a, (__v2si)b);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* __SSE__ */
 | 
					#endif /* __SSE__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* __XMMINTRIN_H */
 | 
					#endif /* __XMMINTRIN_H */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue