comparison gcc/config/i386/mmintrin.h @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 /* Copyright (C) 2002-2018 Free Software Foundation, Inc. 1 /* Copyright (C) 2002-2020 Free Software Foundation, Inc.
2 2
3 This file is part of GCC. 3 This file is part of GCC.
4 4
5 GCC is free software; you can redistribute it and/or modify 5 GCC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
27 #ifndef _MMINTRIN_H_INCLUDED 27 #ifndef _MMINTRIN_H_INCLUDED
28 #define _MMINTRIN_H_INCLUDED 28 #define _MMINTRIN_H_INCLUDED
29 29
30 #if defined __x86_64__ && !defined __SSE__ || !defined __MMX__ 30 #if defined __x86_64__ && !defined __SSE__ || !defined __MMX__
31 #pragma GCC push_options 31 #pragma GCC push_options
32 #ifdef __x86_64__ 32 #ifdef __MMX_WITH_SSE__
33 #pragma GCC target("sse2")
34 #elif defined __x86_64__
33 #pragma GCC target("sse,mmx") 35 #pragma GCC target("sse,mmx")
34 #else 36 #else
35 #pragma GCC target("mmx") 37 #pragma GCC target("mmx")
36 #endif 38 #endif
37 #define __DISABLE_MMX__ 39 #define __DISABLE_MMX__
313 } 315 }
314 316
315 /* Add the 64-bit values in M1 to the 64-bit values in M2. */ 317 /* Add the 64-bit values in M1 to the 64-bit values in M2. */
316 #ifndef __SSE2__ 318 #ifndef __SSE2__
317 #pragma GCC push_options 319 #pragma GCC push_options
320 #ifdef __MMX_WITH_SSE__
321 #pragma GCC target("sse2")
322 #else
318 #pragma GCC target("sse2,mmx") 323 #pragma GCC target("sse2,mmx")
324 #endif
319 #define __DISABLE_SSE2__ 325 #define __DISABLE_SSE2__
320 #endif /* __SSE2__ */ 326 #endif /* __SSE2__ */
321 327
322 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 328 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
323 _mm_add_si64 (__m64 __m1, __m64 __m2) 329 _mm_add_si64 (__m64 __m1, __m64 __m2)
425 } 431 }
426 432
427 /* Add the 64-bit values in M1 to the 64-bit values in M2. */ 433 /* Add the 64-bit values in M1 to the 64-bit values in M2. */
428 #ifndef __SSE2__ 434 #ifndef __SSE2__
429 #pragma GCC push_options 435 #pragma GCC push_options
436 #ifdef __MMX_WITH_SSE__
437 #pragma GCC target("sse2")
438 #else
430 #pragma GCC target("sse2,mmx") 439 #pragma GCC target("sse2,mmx")
440 #endif
431 #define __DISABLE_SSE2__ 441 #define __DISABLE_SSE2__
432 #endif /* __SSE2__ */ 442 #endif /* __SSE2__ */
433 443
434 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 444 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
435 _mm_sub_si64 (__m64 __m1, __m64 __m2) 445 _mm_sub_si64 (__m64 __m1, __m64 __m2)