GCC 内建函数
来源:互联网 发布:企业排名优化 编辑:程序博客网 时间:2024/06/04 18:23
__builtin_*形式的gcc内建函数一般是基于不同硬件平台采用专门的硬件指令实现的,因此性能较高。如
int __builtin_popcount (unsigned int x)
Returns the number of 1-bits in x.
int __builtin_popcountl (unsigned long)
Similar to __builtin_popcount, except the argument type is unsigned long.
int __builtin_popcountll (unsigned long long)
Similar to __builtin_popcount, except the argument type is unsigned long long.
在Intel SIMD的sse4_2 中就有 POPCNT and LZCNT 硬件指令,__builtin_popcount就是用POPCNT硬件指令实现的。
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include/popcntintrin.h
/* Calculate a number of bits set to 1. */
extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_popcnt_u32 (unsigned int __X)
{
return __builtin_popcount (__X);
}
调用示例:
#include <stdio.h>
#include <stdlib.h>
#include <x86intrin.h>
int main(int argc, char *argv) {
//int res = __builtin_popcount(123456);
int res = _mm_popcnt_u32(123456);
printf("%d\n", res);
return 0;
}
gcc -o ctest -msse4.2 ctest.c (直接调用__builtin_popcount不需要指定-msse4.2)
0 0
- GCC 内建函数
- GCC内建函数__builtin_constant_p
- gcc的内建函数__builtin_expect
- gcc的内建函数__builtin_expect
- gcc的内建函数__builtin_expect
- GCC编译屏蔽内建函数
- gcc的内建函数__builtin_expect
- Gcc的内建函数 __builtin_constant_p
- gcc的内建函数__builtin_expect
- GCC内建函数 __builtin_return_address实现
- 神奇的一个GCC内建函数
- likely,unlikely宏与GCC内建函数__builtin_expect()
- likely,unlikely宏与GCC内建函数__builtin_expect()
- likely,unlikely宏与GCC内建函数__BUILDIN_EXPECT
- likely,unlikely宏与GCC内建函数__builtin_expect()
- like,unlikely宏和GCC内建函数__builtin_expect()
- likely,unlikely宏与GCC内建函数__builtin_expect()
- likely,unlikely宏与GCC内建函数__builtin_expect()
- 22.搜索大纲及重定向(Search Synonyms and Re-directs)
- 重构之“理想国”?
- NOR flash 与NAND flash
- JavaScript总结
- iOS实现无限后台background的方法
- GCC 内建函数
- 张孝祥整理的一些面试题(EJB/BEAN/WEBSERVICE)
- 十条非常有用的jQuery代码片段
- 集群监控之 —— ipmi操作指南
- android 从相册中获取图片
- iOS crash分析
- Node.js 命令行程序开发教程
- C++中重定义、重写、重载的区别以及隐藏与覆盖的访问
- 那小子超赞个人网站上线