AVX SIMD指令编写的疑问。

要求使用 AVX SIMD 指令重写以下代码,并通过使用内部函数进行比较和选择来确保它不包含分支,请教各位大老这个要怎么写。

float a[8], b[8], c[8], e[8];
for (unsigned int i = 0; i < 8; i++)
{
if (a[i] == b[i]) {
e[i] = b[i];
} elseif (a[i] > c[i]) {
e[i] = a[i];
} else {
[i] = c[i];
}
}