A preferência do SIMD é sempre se livrar da ramificaçã
Se você estiver escrevendo algum código SIMD que será executado por outro programa, é sempre favorável livrar-se da ramificação para aumentar o desempenho? Ouvi dizer que mesmo fazendo operações extras apenas para evitarif/else
instruções, etc, ainda é muito mais rápid
Eu pergunto isso porque eu tenho algumas ramificações que eu faço, basicamente assim:
// axis; x=0, y=1, z=2
float p, q;
if (axis == 0)
{
p = point.y;
q = point.z;
}
else if (axis == 1)
{
p = point.x;
q = point.z;
}
else if (axis == 2)
{
p = point.x;
q = point.y;
}
Posso evitar esse tipo de ramificação com algum truque inteligente?