Closed peabody-korg closed 7 years ago
Hi, thanks for the bug report. It turns out the issue has been caused by operator-like API being not synchronized with the function-like API. I have a preliminary fix, will push it if tests pass.
The expected behavior was for the compilation to fail on clang too - this is the same issue as https://github.com/p12tic/libsimdpp/issues/66.
The operator API has been synchronized with the function-like API in 509c4f674c3957d28613e9fea3d6720ee47b73b8. Thanks!
this code doesn't produce an error and compiles dubious looking disassembly on clang
simdpp::mask_int32x4 foo1(simdpp::int32x4 a, simdpp::int32x4 b) { return a >= b; }
Inspiration::foo1(simdpp::arch_ssse3::int32<4u, void>, simdpp::arch_ssse3::int32<4u, void>): 0000000000001280 pushq %rbp 0000000000001281 movq %rsp, %rbp 0000000000001284 movdqa 0x134(%rip), %xmm2 000000000000128c pxor %xmm2, %xmm0 0000000000001290 pxor %xmm2, %xmm1 0000000000001294 movdqa %xmm1, %xmm2 0000000000001298 pcmpgtd %xmm0, %xmm2 000000000000129c pshufd $0xa0, %xmm2, %xmm3 00000000000012a1 pcmpeqd %xmm0, %xmm1 00000000000012a5 pshufd $0xf5, %xmm1, %xmm0 00000000000012aa pand %xmm3, %xmm0 00000000000012ae pshufd $0xf5, %xmm2, %xmm1 00000000000012b3 por %xmm0, %xmm1 00000000000012b7 pcmpeqd %xmm0, %xmm0 00000000000012bb pxor %xmm1, %xmm0 00000000000012bf popq %rbp 00000000000012c0 retq
same code on gcc produces a compilation error