14. SIMD 内部函数
本节介绍仅在设备代码中支持的SIMD内置函数。
要使用这些函数,您无需在程序中包含任何额外的头文件。
Functions
- __device__ unsigned int __vabs2(unsigned int a)
-
计算每个半字的绝对值:|a|。
- __device__ unsigned int __vabs4(unsigned int a)
-
计算每个字节的绝对值:|a|。
- __device__ unsigned int __vabsdiffs2(unsigned int a, unsigned int b)
-
计算每个半字的带符号整数绝对差值:|a - b|。
- __device__ unsigned int __vabsdiffs4(unsigned int a, unsigned int b)
-
计算有符号整数的逐字节绝对差值:|a - b|。
- __device__ unsigned int __vabsdiffu2(unsigned int a, unsigned int b)
-
计算无符号整数的每半字绝对差值:|a - b|。
- __device__ unsigned int __vabsdiffu4(unsigned int a, unsigned int b)
-
计算无符号整数的逐字节绝对差值:|a - b|。
- __device__ unsigned int __vabsss2(unsigned int a)
-
计算每个半字的绝对值,带符号饱和:|a|。
- __device__ unsigned int __vabsss4(unsigned int a)
-
计算每个字节的绝对值,带符号饱和处理:|a|。
- __device__ unsigned int __vadd2(unsigned int a, unsigned int b)
-
执行每半字(无)符号加法,带环绕:a + b。
- __device__ unsigned int __vadd4(unsigned int a, unsigned int b)
-
执行逐字节(无)符号加法:a + b。
- __device__ unsigned int __vaddss2(unsigned int a, unsigned int b)
-
执行带符号饱和的半字加法运算:a + b。
- __device__ unsigned int __vaddss4(unsigned int a, unsigned int b)
-
执行带符号饱和的逐字节加法运算:a + b。
- __device__ unsigned int __vaddus2(unsigned int a, unsigned int b)
-
执行带无符号饱和的半字加法:a + b。
- __device__ unsigned int __vaddus4(unsigned int a, unsigned int b)
-
执行带无符号饱和的逐字节加法运算:a + b。
- __device__ unsigned int __vavgs2(unsigned int a, unsigned int b)
-
执行每半字有符号舍入平均计算。
- __device__ unsigned int __vavgs4(unsigned int a, unsigned int b)
-
计算每字节的有符号四舍五入平均值。
- __device__ unsigned int __vavgu2(unsigned int a, unsigned int b)
-
执行每半字无符号舍入平均计算。
- __device__ unsigned int __vavgu4(unsigned int a, unsigned int b)
-
执行逐字节无符号舍入平均值计算。
- __device__ unsigned int __vcmpeq2(unsigned int a, unsigned int b)
-
执行每半字(无)符号比较:a == b ? 0xffff : 0。
- __device__ unsigned int __vcmpeq4(unsigned int a, unsigned int b)
-
执行逐字节(无)符号比较:a == b ? 0xff : 0。
- __device__ unsigned int __vcmpges2(unsigned int a, unsigned int b)
-
执行半字有符号比较:a >= b ? 0xffff : 0。
- __device__ unsigned int __vcmpges4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:a >= b ? 0xff : 0。
- __device__ unsigned int __vcmpgeu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:a >= b ? 0xffff : 0。
- __device__ unsigned int __vcmpgeu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:a >= b ? 0xff : 0。
- __device__ unsigned int __vcmpgts2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:a > b ? 0xffff : 0。
- __device__ unsigned int __vcmpgts4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:a > b ? 0xff : 0。
- __device__ unsigned int __vcmpgtu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:a > b ? 0xffff : 0。
- __device__ unsigned int __vcmpgtu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:a > b ? 0xff : 0。
- __device__ unsigned int __vcmples2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:a <= b ? 0xffff : 0。
- __device__ unsigned int __vcmples4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:a <= b ? 0xff : 0。
- __device__ unsigned int __vcmpleu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:a <= b ? 0xffff : 0。
- __device__ unsigned int __vcmpleu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:a <= b ? 0xff : 0。
- __device__ unsigned int __vcmplts2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:a < b ? 0xffff : 0。
- __device__ unsigned int __vcmplts4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:a < b ? 0xff : 0。
- __device__ unsigned int __vcmpltu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:a < b ? 0xffff : 0。
- __device__ unsigned int __vcmpltu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:a < b ? 0xff : 0。
- __device__ unsigned int __vcmpne2(unsigned int a, unsigned int b)
-
执行每半字(无)符号比较:a != b ? 0xffff : 0。
- __device__ unsigned int __vcmpne4(unsigned int a, unsigned int b)
-
执行逐字节(无)符号比较:a != b ? 0xff : 0。
- __device__ unsigned int __vhaddu2(unsigned int a, unsigned int b)
-
执行每半字无符号平均计算。
- __device__ unsigned int __vhaddu4(unsigned int a, unsigned int b)
-
计算每字节的无符号平均值。
- __host__ __device__ unsigned int __viaddmax_s16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的 max(a + b, c) 运算
- __host__ __device__ unsigned int __viaddmax_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c)
-
对每个半字执行 max(max(a + b, c), 0)
- __host__ __device__ int __viaddmax_s32(const int a, const int b, const int c)
-
计算 max(a + b, c)
- __host__ __device__ int __viaddmax_s32_relu(const int a, const int b, const int c)
-
计算 max(max(a + b, c), 0)
- __host__ __device__ unsigned int __viaddmax_u16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的 max(a + b, c) 运算
- __host__ __device__ unsigned int __viaddmax_u32(const unsigned int a, const unsigned int b, const unsigned int c)
-
计算 max(a + b, c)
- __host__ __device__ unsigned int __viaddmin_s16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每半字 min(a + b, c)
- __host__ __device__ unsigned int __viaddmin_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每半字最大值(最小值(a + b, c), 0)
- __host__ __device__ int __viaddmin_s32(const int a, const int b, const int c)
-
计算 min(a + b, c)
- __host__ __device__ int __viaddmin_s32_relu(const int a, const int b, const int c)
-
计算 max(min(a + b, c), 0)
- __host__ __device__ unsigned int __viaddmin_u16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
对每个半字执行 min(a + b, c) 运算
- __host__ __device__ unsigned int __viaddmin_u32(const unsigned int a, const unsigned int b, const unsigned int c)
-
计算 min(a + b, c)
- __host__ __device__ unsigned int __vibmax_s16x2(const unsigned int a, const unsigned int b, bool *const pred_hi, bool *const pred_lo)
-
执行每个半字的最大值(a, b),同时将pred_hi和pred_lo指针指向的值设置为每个半字的(a >= b)比较结果。
- __host__ __device__ int __vibmax_s32(const int a, const int b, bool *const pred)
-
计算max(a, b),同时将pred指向的值设置为(a >= b)。
- __host__ __device__ unsigned int __vibmax_u16x2(const unsigned int a, const unsigned int b, bool *const pred_hi, bool *const pred_lo)
-
执行每个半字的最大值(a, b),同时将pred_hi和pred_lo指针指向的值设置为每个半字的(a >= b)比较结果。
- __host__ __device__ unsigned int __vibmax_u32(const unsigned int a, const unsigned int b, bool *const pred)
-
计算max(a, b),同时将pred指针指向的值设为(a >= b)。
- __host__ __device__ unsigned int __vibmin_s16x2(const unsigned int a, const unsigned int b, bool *const pred_hi, bool *const pred_lo)
-
执行每个半字的最小值(a, b),同时将pred_hi和pred_lo指针指向的值设置为每个半字的(a <= b)比较结果。
- __host__ __device__ int __vibmin_s32(const int a, const int b, bool *const pred)
-
计算min(a, b),同时将pred指向的值设置为(a <= b)。
- __host__ __device__ unsigned int __vibmin_u16x2(const unsigned int a, const unsigned int b, bool *const pred_hi, bool *const pred_lo)
-
执行每个半字的最小值(a, b),同时将pred_hi和pred_lo指针指向的值设置为(a <= b)的每个半字结果。
- __host__ __device__ unsigned int __vibmin_u32(const unsigned int a, const unsigned int b, bool *const pred)
-
计算min(a, b),同时将pred指针指向的值设为(a <= b)。
- __host__ __device__ unsigned int __vimax3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
对每个半字执行 max(max(a, b), c) 运算
- __host__ __device__ unsigned int __vimax3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c)
-
对每个半字执行 max(max(max(a, b), c), 0)
- __host__ __device__ int __vimax3_s32(const int a, const int b, const int c)
-
计算 max(max(a, b), c)
- __host__ __device__ int __vimax3_s32_relu(const int a, const int b, const int c)
-
计算 max(max(max(a, b), c), 0)
- __host__ __device__ unsigned int __vimax3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
对每个半字执行 max(max(a, b), c) 运算
- __host__ __device__ unsigned int __vimax3_u32(const unsigned int a, const unsigned int b, const unsigned int c)
-
计算 max(max(a, b), c)
- __host__ __device__ unsigned int __vimax_s16x2_relu(const unsigned int a, const unsigned int b)
-
对每个半字执行 max(max(a, b), 0)
- __host__ __device__ int __vimax_s32_relu(const int a, const int b)
-
计算 max(max(a, b), 0)
- __host__ __device__ unsigned int __vimin3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
对每个半字执行 min(min(a, b), c) 运算
- __host__ __device__ unsigned int __vimin3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c)
-
对每个半字执行 max(min(min(a, b), c), 0)
- __host__ __device__ int __vimin3_s32(const int a, const int b, const int c)
-
计算 min(min(a, b), c)
- __host__ __device__ int __vimin3_s32_relu(const int a, const int b, const int c)
-
计算 max(min(min(a, b), c), 0)
- __host__ __device__ unsigned int __vimin3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
对每个半字执行 min(min(a, b), c) 运算
- __host__ __device__ unsigned int __vimin3_u32(const unsigned int a, const unsigned int b, const unsigned int c)
-
计算 min(min(a, b), c)
- __host__ __device__ unsigned int __vimin_s16x2_relu(const unsigned int a, const unsigned int b)
-
对每个半字执行 max(min(a, b), 0)
- __host__ __device__ int __vimin_s32_relu(const int a, const int b)
-
计算 max(min(a, b), 0)
- __device__ unsigned int __vmaxs2(unsigned int a, unsigned int b)
-
执行每半字有符号最大值计算。
- __device__ unsigned int __vmaxs4(unsigned int a, unsigned int b)
-
计算每字节的有符号最大值。
- __device__ unsigned int __vmaxu2(unsigned int a, unsigned int b)
-
执行每半字无符号最大值计算。
- __device__ unsigned int __vmaxu4(unsigned int a, unsigned int b)
-
计算每字节的无符号最大值。
- __device__ unsigned int __vmins2(unsigned int a, unsigned int b)
-
执行每半字有符号最小值计算。
- __device__ unsigned int __vmins4(unsigned int a, unsigned int b)
-
计算每字节的有符号最小值。
- __device__ unsigned int __vminu2(unsigned int a, unsigned int b)
-
执行每半字无符号最小值计算。
- __device__ unsigned int __vminu4(unsigned int a, unsigned int b)
-
计算每字节的无符号最小值。
- __device__ unsigned int __vneg2(unsigned int a)
-
计算每个半字的取反。
- __device__ unsigned int __vneg4(unsigned int a)
-
执行逐字节取反操作。
- __device__ unsigned int __vnegss2(unsigned int a)
-
计算带符号饱和的每半字取反。
- __device__ unsigned int __vnegss4(unsigned int a)
-
执行带符号饱和的逐字节取反操作。
- __device__ unsigned int __vsads2(unsigned int a, unsigned int b)
-
执行有符号半字绝对差值的求和。
- __device__ unsigned int __vsads4(unsigned int a, unsigned int b)
-
计算有符号数的逐字节绝对差之和。
- __device__ unsigned int __vsadu2(unsigned int a, unsigned int b)
-
计算无符号半字绝对差之和。
- __device__ unsigned int __vsadu4(unsigned int a, unsigned int b)
-
计算无符号字节的绝对差值的逐字节总和。
- __device__ unsigned int __vseteq2(unsigned int a, unsigned int b)
-
执行每半字(无)符号比较:如果两部分比较相等则返回1。
- __device__ unsigned int __vseteq4(unsigned int a, unsigned int b)
-
执行逐字节(无)符号比较:如果所有4对比较结果相等,则返回1。
- __device__ unsigned int __vsetges2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:如果两部分比较结果均大于或等于,则返回1。
- __device__ unsigned int __vsetges4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:如果所有4对比较结果均大于或等于,则返回1。
- __device__ unsigned int __vsetgeu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:如果两部分比较结果均大于或等于,则返回1。
- __device__ unsigned int __vsetgeu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:如果所有4对比较结果均大于或等于,则返回1。
- __device__ unsigned int __vsetgts2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:如果两部分比较结果都大于,则返回1。
- __device__ unsigned int __vsetgts4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:如果所有4对比较结果都大于,则返回1。
- __device__ unsigned int __vsetgtu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:如果两部分比较结果都大于,则返回1。
- __device__ unsigned int __vsetgtu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:如果所有4对比较结果都大于,则返回1。
- __device__ unsigned int __vsetles2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:如果两部分比较结果均小于或等于,则返回1。
- __device__ unsigned int __vsetles4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:如果所有4对比较结果均小于或等于,则返回1。
- __device__ unsigned int __vsetleu2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:如果两部分比较结果均小于或等于,则返回1。
- __device__ unsigned int __vsetleu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:如果所有4对比较结果均小于或等于,则返回1。
- __device__ unsigned int __vsetlts2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:如果两部分都小于比较值,则返回1。
- __device__ unsigned int __vsetlts4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:如果所有4对比较结果都小于,则返回1。
- __device__ unsigned int __vsetltu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:如果两部分比较结果均小于,则返回1。
- __device__ unsigned int __vsetltu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:如果所有4对比较结果都小于,则返回1。
- __device__ unsigned int __vsetne2(unsigned int a, unsigned int b)
-
执行每半字(无)符号比较:如果两部分比较不相等,则返回1。
- __device__ unsigned int __vsetne4(unsigned int a, unsigned int b)
-
执行逐字节(无)符号比较:如果所有4对比较结果都不相等,则返回1。
- __device__ unsigned int __vsub2(unsigned int a, unsigned int b)
-
执行每半字(无)符号减法,带环绕:a - b。
- __device__ unsigned int __vsub4(unsigned int a, unsigned int b)
-
执行逐字节减法运算:a - b。
- __device__ unsigned int __vsubss2(unsigned int a, unsigned int b)
-
执行每半字(无)符号减法,带符号饱和:a - b。
- __device__ unsigned int __vsubss4(unsigned int a, unsigned int b)
-
执行带符号饱和的逐字节减法运算:a - b。
- __device__ unsigned int __vsubus2(unsigned int a, unsigned int b)
-
执行带无符号饱和度的半字减法运算:a - b。
- __device__ unsigned int __vsubus4(unsigned int a, unsigned int b)
-
执行带无符号饱和的逐字节减法运算:a - b。
14.1. 函数
-
__device__ unsigned int __vabs2(unsigned int a)
-
计算每个半字的绝对值:|a|。
将4字节的参数分成两部分,每部分包含2字节,然后计算每部分的绝对值。部分结果重新组合并以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vabs4(unsigned int a)
-
计算每个字节的绝对值:|a|。
按字节分割参数。计算每个字节的绝对值。部分结果重新组合并以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vabsdiffs2(unsigned int a, unsigned int b)
-
计算每个半字的带符号整数绝对差值:|a - b|。
将每个4字节数据分割为2部分,每部分包含2字节。函数计算对应部分的绝对差值。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vabsdiffs4(unsigned int a, unsigned int b)
-
计算有符号整数的逐字节绝对差值:|a - b|。
将每个4字节分割为4部分,每部分包含1字节。函数计算对应部分的绝对差值。部分结果重新组合并以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vabsdiffu2(unsigned int a, unsigned int b)
-
计算无符号整数的每半字绝对差值:|a - b|。
将每个参数的4个字节分割为2部分,每部分包含2个字节。函数计算对应部分的绝对差值。部分结果会被重新组合并以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vabsdiffu4(unsigned int a, unsigned int b)
-
计算无符号整数的逐字节绝对差值:|a - b|。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数计算对应部分的绝对差值。部分结果会被重新组合并以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vabsss2(unsigned int a)
-
计算每个半字的绝对值,带符号饱和:|a|。
将4字节参数分割为2部分,每部分包含2字节,然后对每个部分计算带符号饱和的绝对值。部分结果重新组合并以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vabsss4(unsigned int a)
-
计算每个字节的绝对值,带符号饱和处理:|a|。
将4字节的参数分割为4个部分,每个部分包含1字节,然后对每个部分计算带符号饱和的绝对值。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vadd2(unsigned int a, unsigned int b)
-
执行每半字(无)符号加法,带环绕:a + b。
将每个参数的4字节拆分为2部分,每部分由2字节组成,然后对相应部分执行无符号加法运算。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vadd4(unsigned int a, unsigned int b)
-
执行逐字节(无)符号加法:a + b。
将‘a’拆分为4个字节,然后对每个字节与‘b’中对应的字节执行无符号加法运算(忽略溢出)。部分结果会被重新组合并以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vaddss2(unsigned int a, unsigned int b)
-
执行带符号饱和的半字加法运算:a + b。
将每个参数的4字节拆分为2部分,每部分由2字节组成,然后对相应部分执行带符号饱和加法。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vaddss4(unsigned int a, unsigned int b)
-
执行带符号饱和的逐字节加法运算:a + b。
将每个参数的4字节分割为4部分,每部分1字节,然后对相应部分执行带符号饱和加法。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vaddus2(unsigned int a, unsigned int b)
-
执行带无符号饱和度的半字加法:a + b。
将每个参数的4字节分成2部分,每部分由2字节组成,然后对相应部分执行无符号饱和加法。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vaddus4(unsigned int a, unsigned int b)
-
执行带无符号饱和的逐字节加法运算:a + b。
将每个参数的4字节分割为4部分,每部分包含1字节,然后对相应部分执行无符号饱和加法。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vavgs2(unsigned int a, unsigned int b)
-
执行每半字有符号舍入平均计算。
将每个参数的4字节分割为2部分,每部分由2字节组成,然后计算对应部分的有符号舍入平均值。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vavgs4(unsigned int a, unsigned int b)
-
计算每字节的有符号四舍五入平均值。
将每个参数的4个字节分割成4部分,每部分包含1个字节。然后计算对应部分的有符号舍入平均值。部分结果会被重新组合并以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vavgu2(unsigned int a, unsigned int b)
-
执行每半字无符号舍入平均计算。
将每个参数的4字节分割为2部分,每部分由2字节组成,然后计算对应部分的无符号舍入平均值。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vavgu4(unsigned int a, unsigned int b)
-
执行逐字节无符号舍入平均值计算。
将每个参数的4个字节分割为4部分,每部分包含1个字节。然后计算对应部分的无符号舍入平均值。部分结果会被重新组合并以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vcmpeq2(unsigned int a, unsigned int b)
-
执行每半字(无)符号比较:a == b ? 0xffff : 0。
将每个参数的4字节分割为2部分,每部分包含2字节。如果对应部分相等则结果为ffff,否则为0000。例如__vcmpeq2(0x1234aba5, 0x1234aba6)返回0xffff0000。
- Returns
-
返回0xffff计算值。
-
__device__ unsigned int __vcmpeq4(unsigned int a, unsigned int b)
-
执行逐字节(无)符号比较:a == b ? 0xff : 0。
将每个参数的4个字节分割为4部分,每部分包含1个字节。对于对应的部分,如果它们相等则结果为ff,否则为00。例如__vcmpeq4(0x1234aba5, 0x1234aba6)返回0xffffff00。
- Returns
-
如果a等于b则返回0xff,否则返回0。
-
__device__ unsigned int __vcmpges2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:a >= b ? 0xffff : 0。
将每个参数的4字节分割为2部分,每部分包含2字节。对于对应部分,如果'a'部分大于等于'b'部分则结果为ffff,否则为0000。例如__vcmpges2(0x1234aba5, 0x1234aba6)返回0xffff0000。
- Returns
-
如果a >= b则返回0xffff,否则返回0。
-
__device__ unsigned int __vcmpges4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:a >= b ? 0xff : 0。
将每个参数的4个字节分割为4部分,每部分包含1个字节。对于对应的部分,如果'a'部分大于等于'b'部分则结果为ff,否则为00。例如__vcmpges4(0x1234aba5, 0x1234aba6)返回0xffffff00。
- Returns
-
如果a >= b则返回0xff,否则返回0。
-
__device__ unsigned int __vcmpgeu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:a >= b ? 0xffff : 0。
将每个参数的4个字节分成2部分,每部分由2个字节组成。对于对应的部分,如果'a'部分 >= 'b'部分则结果为ffff,否则为0000。例如__vcmpgeu2(0x1234aba5, 0x1234aba6)返回0xffff0000。
- Returns
-
如果a >= b则返回0xffff,否则返回0。
-
__device__ unsigned int __vcmpgeu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:a >= b ? 0xff : 0。
将每个参数的4个字节分割为4部分,每部分包含1个字节。对于对应的部分,如果'a'部分大于等于'b'部分,则结果为ff,否则为00。例如__vcmpgeu4(0x1234aba5, 0x1234aba6)返回0xffffff00。
- Returns
-
如果a >= b则返回0xff,否则返回0。
-
__device__ unsigned int __vcmpgts2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:a > b ? 0xffff : 0。
将每个参数的4个字节分成2部分,每部分由2个字节组成。对于对应的部分,如果'a'部分大于'b'部分,则结果为ffff,否则为0000。例如__vcmpgts2(0x1234aba5, 0x1234aba6)返回0x00000000。
- Returns
-
如果a大于b则返回0xffff,否则返回0。
-
__device__ unsigned int __vcmpgts4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:a > b ? 0xff : 0。
将每个参数的4个字节分割为4部分,每部分包含1个字节。对于对应的部分,如果'a'部分大于'b'部分则结果为ff,否则为00。例如__vcmpgts4(0x1234aba5, 0x1234aba6)返回0x00000000。
- Returns
-
如果a大于b则返回0xff,否则返回0。
-
__device__ unsigned int __vcmpgtu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:a > b ? 0xffff : 0。
将每个参数的4字节分割为2部分,每部分包含2字节。对于对应部分,如果'a'部分大于'b'部分则结果为ffff,否则为0000。例如__vcmpgtu2(0x1234aba5, 0x1234aba6)返回0x00000000。
- Returns
-
如果a大于b则返回0xffff,否则返回0。
-
__device__ unsigned int __vcmpgtu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:a > b ? 0xff : 0。
将每个参数的4个字节分割为4部分,每部分包含1个字节。对于对应的部分,如果'a'部分大于'b'部分,则结果为ff,否则为00。例如__vcmpgtu4(0x1234aba5, 0x1234aba6)返回0x00000000。
- Returns
-
如果a大于b则返回0xff,否则返回0。
-
__device__ unsigned int __vcmples2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:a <= b ? 0xffff : 0。
将每个参数的4字节分割为2部分,每部分包含2字节。对于对应部分,如果'a'部分小于等于'b'部分则结果为ffff,否则为0000。例如__vcmples2(0x1234aba5, 0x1234aba6)返回0xffffffff。
- Returns
-
如果a <= b则返回0xffff,否则返回0。
-
__device__ unsigned int __vcmples4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:a <= b ? 0xff : 0。
将每个参数的4字节分割为4部分,每部分包含1字节。对于对应的部分,如果'a'部分 ≤ 'b'部分则结果为ff,否则为00。例如__vcmples4(0x1234aba5, 0x1234aba6)返回0xffffffff。
- Returns
-
如果a <= b则返回0xff,否则返回0。
-
__device__ unsigned int __vcmpleu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:a <= b ? 0xffff : 0。
将每个参数的4字节分割为2部分,每部分包含2字节。对于对应部分,如果'a'部分小于等于'b'部分则结果为ffff,否则为0000。例如__vcmpleu2(0x1234aba5, 0x1234aba6)返回0xffffffff。
- Returns
-
如果a <= b则返回0xffff,否则返回0。
-
__device__ unsigned int __vcmpleu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:a <= b ? 0xff : 0。
将每个参数的4个字节分割为4部分,每部分包含1个字节。对于对应的部分,如果'a'部分小于等于'b'部分,则结果为ff,否则为00。例如__vcmpleu4(0x1234aba5, 0x1234aba6)返回0xffffffff。
- Returns
-
如果a <= b则返回0xff,否则返回0。
-
__device__ unsigned int __vcmplts2(unsigned int a, unsigned int b)
-
执行半字有符号比较:若 a < b 则返回 0xffff,否则返回 0。
将每个参数的4字节分割为2部分,每部分包含2字节。对于对应部分,如果'a'部分小于'b'部分则结果为ffff,否则为0000。例如__vcmplts2(0x1234aba5, 0x1234aba6)返回0x0000ffff。
- Returns
-
如果a小于b则返回0xffff,否则返回0。
-
__device__ unsigned int __vcmplts4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:a < b ? 0xff : 0。
将每个参数的4个字节分割为4部分,每部分包含1个字节。对于对应的部分,如果'a'部分小于'b'部分则结果为ff,否则为00。例如__vcmplts4(0x1234aba5, 0x1234aba6)返回0x000000ff。
- Returns
-
如果a小于b则返回0xff,否则返回0。
-
__device__ unsigned int __vcmpltu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:a < b ? 0xffff : 0。
将每个参数的4字节分割为2部分,每部分包含2字节。对于对应部分,如果'a'部分小于'b'部分则结果为ffff,否则为0000。例如__vcmpltu2(0x1234aba5, 0x1234aba6)返回0x0000ffff。
- Returns
-
如果a小于b则返回0xffff,否则返回0。
-
__device__ unsigned int __vcmpltu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:如果a小于b则返回0xff,否则返回0。
将每个参数的4个字节分割为4部分,每部分包含1个字节。对于对应的部分,如果'a'部分小于'b'部分则结果为ff,否则为00。例如__vcmpltu4(0x1234aba5, 0x1234aba6)返回0x000000ff。
- Returns
-
如果a小于b则返回0xff,否则返回0。
-
__device__ unsigned int __vcmpne2(unsigned int a, unsigned int b)
-
执行每半字(无)符号比较:a != b ? 0xffff : 0。
将每个参数的4字节分割为2部分,每部分包含2字节。对于对应部分,如果'a'部分不等于'b'部分则结果为ffff,否则为0000。例如__vcmplts2(0x1234aba5, 0x1234aba6)返回0x0000ffff。
- Returns
-
如果a不等于b则返回0xffff,否则返回0。
-
__device__ unsigned int __vcmpne4(unsigned int a, unsigned int b)
-
执行逐字节(无)符号比较:a != b ? 0xff : 0。
将每个参数的4字节分割为4部分,每部分1字节。对于对应部分,如果'a'部分不等于'b'部分则结果为ff,否则为00。例如__vcmplts4(0x1234aba5, 0x1234aba6)返回0x000000ff。
- Returns
-
如果a不等于b则返回0xff,否则返回0。
-
__device__ unsigned int __vhaddu2(unsigned int a, unsigned int b)
-
执行每半字无符号平均计算。
将每个参数的4字节分割为2部分,每部分由2字节组成,然后计算对应部分的无符号平均值。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vhaddu4(unsigned int a, unsigned int b)
-
计算每字节的无符号平均值。
将每个参数的4字节分割为4部分,每部分包含1字节。然后计算对应部分的无符号平均值。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __viaddmax_s16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的 max(a + b, c) 运算
将每个参数的4字节分割为2部分,每部分由2字节组成。这2字节部分被解释为有符号短整型。对于对应的部分,函数执行加法并比较:max(a_part + b_part, c_part)。部分结果重新组合后作为无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __viaddmax_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的最大值计算:max(max(a + b, c), 0)
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为有符号短整型。对于对应的部分,函数执行加法运算,然后进行带relu的最大值运算:max(max(a_part + b_part), c_part), 0)。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ int __viaddmax_s32(const int a, const int b, const int c)
-
计算 max(a + b, c)
计算有符号整数
a和b的和,并与c取最大值。- Returns
-
返回计算后的值。
-
__host__ __device__ int __viaddmax_s32_relu(const int a, const int b, const int c)
-
计算 max(max(a + b, c), 0)
计算有符号整数
a和b的和并与c取最大值。如果结果小于0则返回0。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __viaddmax_u16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的 max(a + b, c) 运算
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为无符号短整型。函数对相应部分执行加法并比较:max(a部分 + b部分, c部分)。部分结果会被重新组合并以无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __viaddmax_u32(const unsigned int a, const unsigned int b, const unsigned int c)
-
计算 max(a + b, c)
计算无符号整数
a和b的和,并与c取最大值。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __viaddmin_s16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的 min(a + b, c) 运算
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为有符号短整型。函数对相应部分执行加法比较操作:min(a_part + b_part, c_part)。部分结果会被重新组合并以无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __viaddmin_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每半字最大值计算:max(min(a + b, c), 0)
将每个参数的4字节分割为2部分,每部分由2字节组成。这2字节部分被解释为有符号短整型。对于对应的部分,函数执行加法运算,然后进行带ReLU的最小值运算:max(min(a_part + b_part, c_part), 0)。部分结果被重新组合并以无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ int __viaddmin_s32(const int a, const int b, const int c)
-
计算 min(a + b, c)
计算有符号整数
a和b的和,并与c取最小值。- Returns
-
返回计算后的值。
-
__host__ __device__ int __viaddmin_s32_relu(const int a, const int b, const int c)
-
计算 max(min(a + b, c), 0)
计算有符号整数
a和b的和并与c取最小值。如果结果小于0则返回0。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __viaddmin_u16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的最小值计算 min(a + b, c)
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为无符号短整型。函数对相应部分执行加法并比较:min(a_part + b_part, c_part)。部分结果会被重新组合并以无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __viaddmin_u32(const unsigned int a, const unsigned int b, const unsigned int c)
-
计算 min(a + b, c)
计算无符号整数
a和b的和,并与c取最小值。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vibmax_s16x2(const unsigned int a, const unsigned int b, bool *const pred_hi, bool *const pred_lo)
-
执行每个半字的最大值(a, b)操作,同时将pred_hi和pred_lo指针指向的值设置为每个半字的(a >= b)比较结果。
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为有符号短整型。函数对相应部分执行最大值运算(= max(a_part, b_part))。部分结果重新组合后作为无符号整型返回。将
pred_hi指向的值设置为(a_high_part >= b_high_part)。将pred_lo指向的值设置为(a_low_part >= b_low_part)。- Returns
-
返回计算后的值。
-
__host__ __device__ int __vibmax_s32(const int a, const int b, bool *const pred)
-
计算max(a, b),同时将pred指针指向的值设为(a >= b)。
计算两个有符号整数
a和b的最大值。同时将pred指针指向的值设置为(a >= b)的结果。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vibmax_u16x2(const unsigned int a, const unsigned int b, bool *const pred_hi, bool *const pred_lo)
-
执行每个半字的最大值比较(a, b),同时将pred_hi和pred_lo指针指向的值设置为每个半字的(a >= b)比较结果。
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为无符号短整型。函数对相应部分执行最大值运算(= max(a_part, b_part))。部分结果重新组合后作为无符号整型返回。将
pred_hi指向的值设置为(a_high_part >= b_high_part)。将pred_lo指向的值设置为(a_low_part >= b_low_part)。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vibmax_u32(const unsigned int a, const unsigned int b, bool *const pred)
-
计算max(a, b),同时将pred指针指向的值设为(a >= b)。
计算两个无符号整数
a和b的最大值。同时将pred指向的值设置为(a >= b)的结果。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vibmin_s16x2(const unsigned int a, const unsigned int b, bool *const pred_hi, bool *const pred_lo)
-
执行每个半字的最小值(a, b),同时将pred_hi和pred_lo指针指向的值设置为每个半字的(a <= b)比较结果。
将每个参数的4字节分割为2部分,每部分由2字节组成。这2字节部分被解释为有符号短整型。函数对相应部分执行最大值运算(= max(a_part, b_part))。部分结果重新组合后作为无符号整型返回。将
pred_hi指向的值设为(a_high_part <= b_high_part)的结果。将pred_lo指向的值设为(a_low_part <= b_low_part)的结果。- Returns
-
返回计算后的值。
-
__host__ __device__ int __vibmin_s32(const int a, const int b, bool *const pred)
-
计算min(a, b),同时将pred指针指向的值设为(a <= b)。
计算两个有符号整数
a和b中的最小值。同时将pred指向的值设置为(a <= b)的结果。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vibmin_u16x2(const unsigned int a, const unsigned int b, bool *const pred_hi, bool *const pred_lo)
-
执行每个半字的最小值(a, b),同时将pred_hi和pred_lo指针指向的值设置为(a <= b)的每个半字比较结果。
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为无符号短整型。函数对相应部分执行最大值运算(= max(a_part, b_part))。部分结果重新组合后作为无符号整型返回。将
pred_hi指向的值设置为(a_high_part <= b_high_part)。将pred_lo指向的值设置为(a_low_part <= b_low_part)。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vibmin_u32(const unsigned int a, const unsigned int b, bool *const pred)
-
计算min(a, b),同时将pred指向的值设置为(a <= b)。
计算两个无符号整数
a和b的最小值。同时将pred指向的值设置为(a <= b)的结果。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vimax3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的max(max(a, b), c)运算
将每个参数的4字节拆分为2部分,每部分由2字节组成。这2字节部分被解释为有符号短整型。函数对相应部分执行三路最大值计算(= max(max(a_part, b_part), c_part))。部分结果重新组合后作为无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vimax3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每半字最大值计算:max(max(max(a, b), c), 0)
将每个参数的4字节分割为2部分,每部分由2字节组成。这2字节部分被解释为有符号短整型。对于对应的部分,函数执行带relu的三向最大值运算(= max(a_part, b_part, c_part, 0))。部分结果重新组合后作为无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ int __vimax3_s32(const int a, const int b, const int c)
-
计算 max(max(a, b), c)
计算有符号整数
a、b和c的三元最大值。- Returns
-
返回计算后的值。
-
__host__ __device__ int __vimax3_s32_relu(const int a, const int b, const int c)
-
计算 max(max(max(a, b), c), 0)
计算三个有符号整数的最大值,如果结果小于
0则返回0。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vimax3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的最大值计算:max(max(a, b), c)
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为无符号短整型。对于对应的部分,函数执行3路最大值计算(= max(max(a_part, b_part), c_part))。部分结果重新组合后作为无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vimax3_u32(const unsigned int a, const unsigned int b, const unsigned int c)
-
计算 max(max(a, b), c)
计算无符号整数
a、b和c的三元最大值。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vimax_s16x2_relu(const unsigned int a, const unsigned int b)
-
执行每个半字的max(max(a, b), 0)运算
将每个参数的4字节分割为2部分,每部分由2字节组成。这2字节部分被解释为有符号短整型。函数对相应部分执行带ReLU的最大值运算(= max(a_part, b_part, 0))。部分结果重新组合后作为无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ int __vimax_s32_relu(const int a, const int b)
-
计算 max(max(a, b), 0)
计算两个有符号整数
a和b的最大值,如果结果小于0则返回0。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vimin3_s16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的最小值计算:min(min(a, b), c)
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为有符号短整型。函数对对应部分执行三路最小值运算(= min(min(a_part, b_part), c_part))。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vimin3_s16x2_relu(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的最大(最小(最小(a, b), c), 0)运算
将每个参数的4字节分割为2部分,每部分由2字节组成。这2字节部分被解释为有符号短整型。对于对应的部分,函数执行带ReLU的三向最小值运算(= max(min(a_part, b_part, c_part), 0))。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ int __vimin3_s32(const int a, const int b, const int c)
-
计算 min(min(a, b), c)
计算有符号整数
a、b和c的三者最小值。- Returns
-
返回计算后的值。
-
__host__ __device__ int __vimin3_s32_relu(const int a, const int b, const int c)
-
计算 max(min(min(a, b), c), 0)
计算三个有符号整数的最小值,如果结果小于
0则返回0。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vimin3_u16x2(const unsigned int a, const unsigned int b, const unsigned int c)
-
执行每个半字的最小值计算 min(min(a, b), c)
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为无符号短整型。函数对对应部分执行三路最小值运算(= min(min(a_part, b_part), c_part))。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vimin3_u32(const unsigned int a, const unsigned int b, const unsigned int c)
-
计算 min(min(a, b), c)
计算无符号整数
a、b和c的三者最小值。- Returns
-
返回计算后的值。
-
__host__ __device__ unsigned int __vimin_s16x2_relu(const unsigned int a, const unsigned int b)
-
对每个半字执行 max(min(a, b), 0) 运算
将每个参数的4字节分割为2部分,每部分包含2字节。这2字节部分被解释为有符号短整型。函数对对应部分执行带ReLU的最小值运算(即 max(min(a_part, b_part), 0))。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__host__ __device__ int __vimin_s32_relu(const int a, const int b)
-
计算 max(min(a, b), 0)
计算两个有符号整数
a和b中的最小值,如果结果小于0则返回0。- Returns
-
返回计算后的值。
-
__device__ unsigned int __vmaxs2(unsigned int a, unsigned int b)
-
执行每半字有符号最大值计算。
将每个参数的4字节分割为2部分,每部分包含2字节。函数计算对应部分的有符号最大值。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vmaxs4(unsigned int a, unsigned int b)
-
计算每字节的有符号最大值。
将每个参数的4字节分割为4部分,每部分1字节。函数计算对应部分的有符号最大值。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vmaxu2(unsigned int a, unsigned int b)
-
执行每半字无符号最大值计算。
将每个参数的4字节分割为2部分,每部分包含2字节。函数计算对应部分的无符号最大值。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vmaxu4(unsigned int a, unsigned int b)
-
计算每字节的无符号最大值。
将每个参数的4字节分割为4部分,每部分包含1字节。函数计算对应部分的无符号最大值。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vmins2(unsigned int a, unsigned int b)
-
执行每半字有符号最小值计算。
将每个参数的4字节分割为2部分,每部分由2字节组成。函数计算对应部分的有符号最小值。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vmins4(unsigned int a, unsigned int b)
-
计算每字节的有符号最小值。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数计算对应部分的有符号最小值。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vminu2(unsigned int a, unsigned int b)
-
执行每半字无符号最小值计算。
将每个参数的4字节分割为2部分,每部分包含2字节。函数计算对应部分的无符号最小值。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vminu4(unsigned int a, unsigned int b)
-
计算每字节的无符号最小值。
将每个参数的4字节分割为4部分,每部分包含1字节。函数计算对应部分的无符号最小值。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vneg2(unsigned int a)
-
计算每个半字的取反。
将4字节的参数分成2部分,每部分包含2字节。函数对每个部分计算取反。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vneg4(unsigned int a)
-
执行逐字节取反操作。
将4字节的参数分割为4部分,每部分1字节。对每个部分计算其否定值。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vnegss2(unsigned int a)
-
计算带符号饱和的每半字取反。
将4字节的参数分成2部分,每部分包含2字节。对每个部分计算取反操作。部分结果重新组合后作为无符号整数返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vnegss4(unsigned int a)
-
执行带符号饱和的逐字节取反操作。
将4字节的参数分割为4部分,每部分1字节。对每个部分计算取反操作。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vsads2(unsigned int a, unsigned int b)
-
执行有符号半字绝对差值的求和运算。
将每个参数的4字节分割为2部分,每部分包含2字节。函数计算对应部分的绝对差值并求和。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vsads4(unsigned int a, unsigned int b)
-
计算有符号数每字节绝对差之和。
将每个参数的4字节分割为4部分,每部分包含1字节。函数计算对应部分的绝对差值并求和。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vsadu2(unsigned int a, unsigned int b)
-
计算无符号半字绝对差之和。
将每个参数的4个字节分成2部分,每部分由2个字节组成。函数计算对应部分的绝对差值并返回这些差值的总和。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vsadu4(unsigned int a, unsigned int b)
-
计算无符号字节的绝对差值的逐字节总和。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数计算对应部分的绝对差值,并返回这些差值的总和。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vseteq2(unsigned int a, unsigned int b)
-
执行每半字(无)符号比较:如果两部分比较相等则返回1。
将每个参数的4个字节分成2部分,每部分由2个字节组成。对于对应的部分,函数执行比较‘a’部分 == ‘b’部分。如果两个等式都满足,函数返回1。
- Returns
-
如果a等于b则返回1,否则返回0。
-
__device__ unsigned int __vseteq4(unsigned int a, unsigned int b)
-
执行逐字节(无)符号比较:如果所有4对比较结果相等,则返回1。
将每个参数的4个字节分割为4部分,每部分包含1个字节。对于对应的部分,函数执行比较'a'部分 == 'b'部分。如果两个等式都满足,函数返回1。
- Returns
-
如果a等于b则返回1,否则返回0。
-
__device__ unsigned int __vsetges2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:如果两部分比较结果均大于或等于则返回1。
将每个参数的4个字节分成2部分,每部分由2个字节组成。对于对应的部分,函数执行比较'a'部分 >= 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a大于等于b则返回1,否则返回0。
-
__device__ unsigned int __vsetges4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:如果所有4对比较结果均大于或等于,则返回1。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数对相应部分执行比较,判断'a'部分是否大于等于'b'部分。如果两个不等式都成立,则函数返回1。
- Returns
-
如果a >= b则返回1,否则返回0。
-
__device__ unsigned int __vsetgeu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:如果两部分比较结果均大于或等于,则返回1。
将每个参数的4个字节分成2部分,每部分包含2个字节。对于对应的部分,函数执行比较'a'部分 >= 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a >= b则返回1,否则返回0。
-
__device__ unsigned int __vsetgeu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:如果所有4对比较结果均大于或等于,则返回1。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数对相应部分执行比较'a'部分 >= 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a >= b则返回1,否则返回0。
-
__device__ unsigned int __vsetgts2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:如果两部分比较结果均大于,则返回1。
将每个参数的4个字节分成2部分,每部分由2个字节组成。对于对应的部分,函数执行比较'a'部分 > 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a大于b则返回1,否则返回0。
-
__device__ unsigned int __vsetgts4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:如果所有4对比较结果都大于,则返回1。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数对相应部分执行比较 'a'部分 > 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a大于b则返回1,否则返回0。
-
__device__ unsigned int __vsetgtu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:如果两部分比较结果都大于,则返回1。
将每个参数的4个字节分成2部分,每部分包含2个字节。对于对应的部分,函数执行比较'a'部分是否大于'b'部分。如果两个不等式都成立,函数返回1。
- Returns
-
如果a大于b则返回1,否则返回0。
-
__device__ unsigned int __vsetgtu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:如果所有4对比较结果都大于,则返回1。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数对对应部分执行比较 'a' 部分 > 'b' 部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a大于b则返回1,否则返回0。
-
__device__ unsigned int __vsetles2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:如果两部分比较结果均小于或等于,则返回1。
将每个参数的4个字节分成2部分,每部分由2个字节组成。对于对应的部分,函数执行比较'a'部分 <= 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a <= b则返回1,否则返回0。
-
__device__ unsigned int __vsetles4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:如果所有4对比较结果均小于或等于,则返回1。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数对相应部分执行比较'a'部分 <= 'b'部分。如果两个不等式都成立,函数返回1。
- Returns
-
如果a <= b则返回1,否则返回0。
-
__device__ unsigned int __vsetleu2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:如果两部分比较结果均小于或等于,则返回1。
将每个参数的4个字节分成2部分,每部分包含2个字节。对于对应的部分,函数执行比较'a'部分 <= 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a <= b则返回1,否则返回0。
-
__device__ unsigned int __vsetleu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:如果所有4对比较结果均小于或等于,则返回1。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数对相应部分执行比较 'a'部分 <= 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a <= b则返回1,否则返回0。
-
__device__ unsigned int __vsetlts2(unsigned int a, unsigned int b)
-
执行每半字有符号比较:如果两部分都小于比较值,则返回1。
将每个参数的4个字节分成2部分,每部分由2个字节组成。对于对应的部分,函数执行比较'a'部分 <= 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a小于b则返回1,否则返回0。
-
__device__ unsigned int __vsetlts4(unsigned int a, unsigned int b)
-
执行逐字节有符号比较:如果所有4对比较结果都小于,则返回1。
将每个参数的4个字节分割为4部分,每部分包含1个字节。对于对应的部分,函数执行比较'a'部分 <= 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a小于b则返回1,否则返回0。
-
__device__ unsigned int __vsetltu2(unsigned int a, unsigned int b)
-
执行每半字无符号比较:如果两部分比较结果均小于,则返回1。
将每个参数的4个字节分成2部分,每部分由2个字节组成。对于对应的部分,函数执行比较'a'部分 <= 'b'部分。如果两个不等式都满足,函数返回1。
- Returns
-
如果a小于b则返回1,否则返回0。
-
__device__ unsigned int __vsetltu4(unsigned int a, unsigned int b)
-
执行逐字节无符号比较:如果所有4对比较结果都小于,则返回1。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数对相应部分执行比较'a'部分 <= 'b'部分。如果两个不等式都成立,函数返回1。
- Returns
-
如果a小于b则返回1,否则返回0。
-
__device__ unsigned int __vsetne2(unsigned int a, unsigned int b)
-
执行每半字(无)符号比较:如果两部分比较结果不相等,则返回1。
将每个参数的4个字节分成2部分,每部分由2个字节组成。对于对应的部分,函数执行比较'a'部分 != 'b'部分。如果两个条件都满足,函数返回1。
- Returns
-
如果a不等于b则返回1,否则返回0。
-
__device__ unsigned int __vsetne4(unsigned int a, unsigned int b)
-
执行逐字节(无)符号比较:如果所有4对比较结果都不相等,则返回1。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数对相应部分执行比较'a'部分 != 'b'部分。如果两个条件都满足,函数返回1。
- Returns
-
如果a不等于b则返回1,否则返回0。
-
__device__ unsigned int __vsub2(unsigned int a, unsigned int b)
-
执行每半字(无)符号减法,带环绕:a - b。
将每个参数的4个字节分割为2部分,每部分包含2个字节。函数对相应部分执行减法运算。部分结果会被重新组合并以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vsub4(unsigned int a, unsigned int b)
-
执行逐字节减法运算:a - b。
将每个参数的4字节分割为4部分,每部分包含1字节。函数对相应部分执行减法运算。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vsubss2(unsigned int a, unsigned int b)
-
执行每半字(无)符号减法,带符号饱和:a - b。
将每个参数的4字节分割为2部分,每部分包含2字节。函数对相应部分执行带符号饱和减法运算。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vsubss4(unsigned int a, unsigned int b)
-
执行带符号饱和的逐字节减法运算:a - b。
将每个参数的4字节拆分为4部分,每部分包含1字节。函数对相应部分执行带符号饱和减法运算。部分结果重新组合后以无符号整数形式返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vsubus2(unsigned int a, unsigned int b)
-
执行带无符号饱和度的半字减法运算:a - b。
将每个参数的4字节分割为2部分,每部分包含2字节。函数对相应部分执行无符号饱和减法运算。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。
-
__device__ unsigned int __vsubus4(unsigned int a, unsigned int b)
-
执行逐字节无符号饱和减法运算:a - b。
将每个参数的4个字节分割为4部分,每部分包含1个字节。函数对相应部分执行无符号饱和减法运算。部分结果重新组合后以无符号整型返回。
- Returns
-
返回计算后的值。