ZHCUAQ1F july 2015 – april 2023
使用 __x128_t 容器类型或 __float2_t typedef 或任何涉及 __float2_t 的内在函数时,必须包含 c6x.h。
C/C++ 编译器内在函数 | 说明 |
---|---|
创建 | |
__x128_t _ito128 (unsigned src1, unsigned src2, unsigned src3, unsigned src4); | 根据 (u)int (reg+3, reg+2, reg+1, reg+0) 创建 __x128_t |
__x128_t _fto128 (float src1, float src2, float src3, float src4); | 根据 float (reg+3, reg+2, reg+1, reg+0) 创建 __x128_t |
__x128_t _llto128 (long long src1, long long src2); | 根据两个 long long 创建 __x128_t |
__x128_t _dto128 (double src1, double src2); | 根据两个 double 创建 __x128_t |
__x128_t _f2to128(__float2_t src1, __float2_t src2); | 根据两个 __float2_t 对象创建 __x128_t。这被定义为一个宏命令。必须包含 c6x.h。 |
__x128_t _dup32_128 (int src); | 通过复制 src1 创建 __x128_t |
__float2_t _ftof2(float src1, float src2); | 根据两个 float 创建 __float2_t。这被定义为一个宏命令。必须包含 c6x.h。 |
提取 | |
float _hif (double src); | 从 double 提取高位 float |
float _lof (double src); | 从 double 提取低位 float |
float _hif2(__float2_t src); | 从 __float2_t 提取高位 float。这被定义为一个宏命令。必须包含 c6x.h。 |
float _lof2(__float2_t src); | 从 __float2_t 提取低位 float。这被定义为一个宏命令。必须包含 c6x.h。 |
long long _hi128 (__x128_t src); | 提取四倍寄存器的两个高位寄存器 |
double _hid128 (__x128_t src); | 提取四倍寄存器的两个高位寄存器 |
__float2_t _hif2_128(__x128_t src); | 提取四倍寄存器的两个高位寄存器。这被定义为一个宏命令。必须包含 c6x.h。 |
long long _lo128 (__x128_t src); | 提取四倍寄存器的两个低位寄存器 |
double _lod128 (__x128_t src); | 提取四倍寄存器的两个低位寄存器 |
__float2_t _lof2_128(__x128_t src); | 提取四倍寄存器的两个低位寄存器。这被定义为一个宏命令。必须包含 c6x.h。 |
unsigned _get32_128 (__x128_t src, 0); | 提取四倍寄存器的第一个寄存器 (base reg + 0) |
unsigned _get32_128 (__x128_t src, 1); | 提取四倍寄存器的第二个寄存器 (base reg + 1) |
unsigned _get32_128 (__x128_t src, 2); | 提取四倍寄存器的第三个寄存器 (base reg + 2) |
unsigned _get32_128 (__x128_t src, 3); | 提取四倍寄存器的第四个寄存器 (base reg + 3) |
float _get32f_128 (__x128_t src, 0); | 提取四倍寄存器的第一个寄存器 (base reg + 0) |
float _get32f_128 (__x128_t src, 1); | 提取四倍寄存器的第二个寄存器 (base reg + 1) |
float _get32f_128 (__x128_t src, 2); | 提取四倍寄存器的第三个寄存器 (base reg + 2) |
float _get32f_128 (__x128_t src, 3); | 提取四倍寄存器的第四个寄存器 (base reg + 3) |