【发布时间】:2016-04-18 03:25:29
【问题描述】:
我正在寻找一种基于 AVX2 值的特定条件来选择 AVX2 常量的无分支方式。
我现在正在做的伪代码:
condition = _mm256_cmp_gt(value, limit);
result = _mm256_or(_mm256_and(condition, constant_a),
_mm256_andnot(condition, constant_b));
还有比这更有效的吗?
【问题讨论】:
-
尝试用
g++ -S -O2 -mavx编译#include<x86intrin.h> __m256 f(__m256 x,__m256 y,__m256 z,__m256 t){return(x<y)?z:t;}(或者改成与__m256不同的类型,我不知道_mm256_cmp_gt是什么),你就会得到你问题的答案。
标签: x86 simd intrinsics avx avx2