On Thursday, 12 April 2018 at 10:14:55 UTC, rikki cattermole wrote:

Just checked, change int to float and it uses ucomiss (SIMD, ldc -O3).

There may not be an instruction for int's.

Yep logic is much easier with floats and is available on SSE.

It's hard to do logic on ints until SSE4.1 as theres no easy way to jump. (With SSE I think it would require putting the result on the stack and checking it for zeros using 64bit regs)

Even with SSE4.1 it requires at lest one extra instruction as only PTEST sets flags.

That said, is it possible to get the result of PTEST as a bool using core.simd? I was wondering if it would be possible write the example using that.

Normally I just write simple functions like this in yasm and link them in extern(C).

Reply via email to