SUMMARY While running my application with valgrind, it crashes with SIGILL - Illegal instruction signal and the following errors. Running without valgrind does not cause any problems. I use CRoaring lib and it fails in roaring_bitmap_or_many function. vex amd64->IR: unhandled instruction bytes: 0x62 0xF1 0x7D 0x8 0xEF 0xC0 0x62 0xF1 0xFD 0x28 vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0 vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 ==15525== valgrind: Unrecognised instruction at address 0x48e884d. ==15525== at 0x48E884D: _mm256_setzero_si256 (avxintrin.h:1237) ==15525== by 0x48E884D: avx2_harley_seal_popcount256 (bitset_util.h:288) ==15525== by 0x48F8661: bitset_container_compute_cardinality (bitset.c:154) ==15525== by 0x4909119: container_repair_after_lazy (containers.h:331) ==15525== by 0x4912D2A: roaring_bitmap_repair_after_lazy (roaring.c:2437) ==15525== by 0x490E1D5: roaring_bitmap_or_many (roaring.c:627) ==15525== by 0x4AE55E: ........................... ==15525== ==15525== Process terminating with default action of signal 4 (SIGILL): dumping core ==15525== at 0x4C635A9: raise (raise.c:46) ==15525== by 0x4F8AEB: ....................................................... ==15525== by 0x4C6372F: ??? (in /lib/x86_64-linux-gnu/libpthread-2.28.so) ==15525== by 0x48E884C: avx2_harley_seal_popcount256 (bitset_util.h:287) ==15525== ==15525== HEAP SUMMARY: ==15525== in use at exit: 168,225,692 bytes in 409 blocks ==15525== total heap usage: 18,662 allocs, 18,253 frees, 5,053,043,543 bytes allocated ==15525== ==15525== LEAK SUMMARY: ==15525== definitely lost: 0 bytes in 0 blocks ==15525== indirectly lost: 0 bytes in 0 blocks ==15525== possibly lost: 0 bytes in 0 blocks ==15525== still reachable: 168,225,692 bytes in 409 blocks ==15525== suppressed: 0 bytes in 0 blocks ==15525== Rerun with --leak-check=full to see details of leaked memory ==15525== ==15525== For lists of detected and suppressed errors, rerun with: -s ==15525== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Illegal instruction Linux 4.15.0-1052-aws #54-Ubuntu SMP Tue Oct 1 15:43:26 UTC 2019 x86_64 GNU/Linux Using Valgrind-3.15.0-608cb11914-20190413
That is an instruction with an EVEX prefix which is part of the AVX512 instruction support that is currently being worked on. *** This bug has been marked as a duplicate of bug 383010 ***