Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/i386/smmintrin.h @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | 77e2b8dfacca |
children | 04ced10e8804 |
comparison
equal
deleted
inserted
replaced
65:65488c3d617d | 67:f6334be47118 |
---|---|
1 /* Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. | 1 /* Copyright (C) 2007, 2008, 2009, 2010 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 |
437 | 437 |
438 #ifdef __OPTIMIZE__ | 438 #ifdef __OPTIMIZE__ |
439 extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) | 439 extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) |
440 _mm_extract_epi8 (__m128i __X, const int __N) | 440 _mm_extract_epi8 (__m128i __X, const int __N) |
441 { | 441 { |
442 return __builtin_ia32_vec_ext_v16qi ((__v16qi)__X, __N); | 442 return (unsigned char) __builtin_ia32_vec_ext_v16qi ((__v16qi)__X, __N); |
443 } | 443 } |
444 | 444 |
445 extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) | 445 extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) |
446 _mm_extract_epi32 (__m128i __X, const int __N) | 446 _mm_extract_epi32 (__m128i __X, const int __N) |
447 { | 447 { |
455 return __builtin_ia32_vec_ext_v2di ((__v2di)__X, __N); | 455 return __builtin_ia32_vec_ext_v2di ((__v2di)__X, __N); |
456 } | 456 } |
457 #endif | 457 #endif |
458 #else | 458 #else |
459 #define _mm_extract_epi8(X, N) \ | 459 #define _mm_extract_epi8(X, N) \ |
460 ((int) __builtin_ia32_vec_ext_v16qi ((__v16qi)(__m128i)(X), (int)(N))) | 460 ((int) (unsigned char) __builtin_ia32_vec_ext_v16qi ((__v16qi)(__m128i)(X), (int)(N))) |
461 #define _mm_extract_epi32(X, N) \ | 461 #define _mm_extract_epi32(X, N) \ |
462 ((int) __builtin_ia32_vec_ext_v4si ((__v4si)(__m128i)(X), (int)(N))) | 462 ((int) __builtin_ia32_vec_ext_v4si ((__v4si)(__m128i)(X), (int)(N))) |
463 | 463 |
464 #ifdef __x86_64__ | 464 #ifdef __x86_64__ |
465 #define _mm_extract_epi64(X, N) \ | 465 #define _mm_extract_epi64(X, N) \ |