Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/i386/ia32intrin.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) 2009 Free Software Foundation, Inc. | 1 /* Copyright (C) 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 |
176 __bswapq (long long __X) | 176 __bswapq (long long __X) |
177 { | 177 { |
178 return __builtin_bswap64 (__X); | 178 return __builtin_bswap64 (__X); |
179 } | 179 } |
180 | 180 |
181 #ifdef __SSE4_2__ | |
181 /* 64bit accumulate CRC32 (polynomial 0x11EDC6F41) value. */ | 182 /* 64bit accumulate CRC32 (polynomial 0x11EDC6F41) value. */ |
182 extern __inline unsigned long long | 183 extern __inline unsigned long long |
183 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) | 184 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) |
184 __crc32q (unsigned long long __C, unsigned long long __V) | 185 __crc32q (unsigned long long __C, unsigned long long __V) |
185 { | 186 { |
186 return __builtin_ia32_crc32di (__C, __V); | 187 return __builtin_ia32_crc32di (__C, __V); |
187 } | 188 } |
189 #endif | |
188 | 190 |
189 /* 64bit popcnt */ | 191 /* 64bit popcnt */ |
190 extern __inline long long | 192 extern __inline long long |
191 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) | 193 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) |
192 __popcntq (unsigned long long __X) | 194 __popcntq (unsigned long long __X) |