Mercurial > hg > CbC > CbC_gcc
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) |