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) \