GMP 6.0.0a on AMD A8-6600K

Marc Glisse marc.glisse at
Sun Apr 12 13:13:50 UTC 2015

On Sun, 12 Apr 2015, Niels Möller wrote:

> Kevin Buckley <kevin.m.buckley at> writes:
>> Program received signal SIGILL, Illegal instruction.
>> 0x000000000040214f in check_onebit () at t-get_d.c:86
>> 86            np[bit/GMP_NUMB_BITS] = CNST_LIMB(1) << (bit % GMP_NUMB_BITS);
>> (gdb) p $pc
>> $1 = (void (*)()) 0x40214f <check_onebit+79>
>> => 0x000000000040214f <+79>:    vmovsd 0x9031(%rip),%xmm2        # 0x40b188
> So this is in code generated by gcc. I have no idea what the vmovsd
> does, or which instruction set extension it belongs to. Hopefully
> someone else does.

It is the most basic AVX instruction, loading a double from memory to a 

> In the mean time, you could try playing with the command line options to
> gcc and see if you can stop it from generating this instruction.

-mno-avx or a -march naming an older architecture.

Marc Glisse

More information about the gmp-bugs mailing list