I have been using Mojo for a while and the past few months about ever 2 to 5 days I upgrade to the latest nightly release.
Since somewhere middle of May 2026 I have been unable to use the nightly release. The stable v1.0.0b1 works without any issues. With nightly I cannot even run the command “mojo --version” (while being in the pixi shell) as I just get a output: “Illegal instruction (core dumped)”
I am using a old laptop from Intel from the year 2011 (Intel i3-2330M).
Using Claude code to try and figure out the issue it indicate that there is certain instructions being used that is not compatible with this older version of intel. Specifically talking about BMI2 instruction set.
Will it be the case that Mojo will only work on newer hardware or is this unexpected? Or is there perhaps something else wrong on my side as to why it isn’t working.
Here is some of the output of the commands I used on the issue.
(test_new_mojo) wouks@wouks-VPCEH26EG:~/Documents/MojoProjects/test_new_mojo$ grep -m1 "model name" /proc/cpuinfo
model name : Intel(R) Core(TM) i3-2330M CPU @ 2.20GHz
(test_new_mojo) wouks@wouks-VPCEH26EG:~/Documents/MojoProjects/test_new_mojo$ grep -m1 "flags" /proc/cpuinfo | tr ' ' '\n' | grep -E "avx|sse4"
sse4_1
sse4_2
avx
(test_new_mojo) wouks@wouks-VPCEH26EG:~/Documents/MojoProjects/test_new_mojo$ objdump -d $(which mojo) | grep -i "vmovdqu\|vperm\|vpcmp" | head -20
3e37ce2: c5 fe 7f 45 88 vmovdqu %ymm0,-0x78(%rbp)
3e380e2: c5 fa 6f 85 d0 fe ff vmovdqu -0x130(%rbp),%xmm0
3e381fb: c5 fe 7f 45 88 vmovdqu %ymm0,-0x78(%rbp)
3e3ead3: c4 83 7d 06 44 4e a0 vperm2f128 $0x20,-0x60(%r14,%r9,2),%ymm0,%ymm0
3e3eae3: c4 83 6d 06 54 4e 20 vperm2f128 $0x20,0x20(%r14,%r9,2),%ymm2,%ymm2
3e3eda3: c4 c3 7d 06 44 76 a0 vperm2f128 $0x20,-0x60(%r14,%rsi,2),%ymm0,%ymm0
3e3edb3: c4 c3 6d 06 54 76 20 vperm2f128 $0x20,0x20(%r14,%rsi,2),%ymm2,%ymm2
3e3eec3: c4 c3 7d 06 44 76 a0 vperm2f128 $0x20,-0x60(%r14,%rsi,2),%ymm0,%ymm0
3e3eed3: c4 c3 6d 06 54 76 20 vperm2f128 $0x20,0x20(%r14,%rsi,2),%ymm2,%ymm2
3e3f02f: c4 e3 7d 06 44 78 a0 vperm2f128 $0x20,-0x60(%rax,%rdi,2),%ymm0,%ymm0
3e3f03f: c4 e3 6d 06 54 78 20 vperm2f128 $0x20,0x20(%rax,%rdi,2),%ymm2,%ymm2
3e42084: c5 fe 6f 45 90 vmovdqu -0x70(%rbp),%ymm0
3e42094: c5 fe 7f 04 24 vmovdqu %ymm0,(%rsp)
3e42113: c5 fa 6f 40 e8 vmovdqu -0x18(%rax),%xmm0
3e42145: c5 fa 7f 85 b0 f8 ff vmovdqu %xmm0,-0x750(%rbp)
3e42316: c4 c1 7a 7f 04 24 vmovdqu %xmm0,(%r12)
3e42395: c5 fe 6f 85 20 fc ff vmovdqu -0x3e0(%rbp),%ymm0
3e423ab: c5 fe 7f 04 24 vmovdqu %ymm0,(%rsp)
3e42570: c5 fe 6f 85 20 fc ff vmovdqu -0x3e0(%rbp),%ymm0
3e42586: c5 fe 7f 04 24 vmovdqu %ymm0,(%rsp)
wouks@wouks-VPCEH26EG:~/Documents/MojoProjects/test_new_mojo$ gdb -ex "set follow-fork-mode child" \
-ex "catch signal SIGILL" \
-ex "run --version" \
-ex "x/5i \$rip" \
-ex "bt" \
--args $(pixi run which mojo)
GNU gdb (Ubuntu 12.1-0ubuntu1~22.04.2) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/mojo...
(No debugging symbols found in /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/mojo)
Catchpoint 1 (signal SIGILL)
Starting program: /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/mojo --version
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Catchpoint 1 (signal SIGILL), 0x00007ffff72599f1 in ?? () from /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/../lib/libAsyncRTRuntimeGlobals.so
=> 0x7ffff72599f1: shlx %r15,%r8,%rcx
0x7ffff72599f6: mov %r15d,%edx
0x7ffff72599f9: shr $0x6,%edx
0x7ffff72599fc: or %rcx,-0x160(%rbp,%rdx,8)
0x7ffff7259a04: lea 0x1(%r15),%ecx
#0 0x00007ffff72599f1 in ?? () from /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/../lib/libAsyncRTRuntimeGlobals.so
#1 0x00007ffff7259b83 in ?? () from /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/../lib/libAsyncRTRuntimeGlobals.so
#2 0x00007ffff71ea2b5 in ?? () from /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/../lib/libAsyncRTRuntimeGlobals.so
#3 0x00007ffff7251811 in ?? () from /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/../lib/libAsyncRTRuntimeGlobals.so
#4 0x00007ffff724e263 in ?? () from /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/../lib/libAsyncRTRuntimeGlobals.so
#5 0x00007ffff724e4b7 in ?? () from /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/../lib/libAsyncRTRuntimeGlobals.so
#6 0x00007ffff720df6c in ?? () from /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/../lib/libAsyncRTRuntimeGlobals.so
#7 0x00007ffff71e9c15 in ?? () from /home/wouks/Documents/MojoProjects/test_new_mojo/.pixi/envs/default/bin/../lib/libAsyncRTRuntimeGlobals.so
#8 0x00007ffff7fc947e in call_init (l=<optimized out>, argc=argc@entry=2, argv=argv@entry=0x7fffffffdcf8, env=env@entry=0x7fffffffdd10) at ./elf/dl-init.c:70
#9 0x00007ffff7fc9568 in call_init (env=0x7fffffffdd10, argv=0x7fffffffdcf8, argc=2, l=<optimized out>) at ./elf/dl-init.c:33
#10 _dl_init (main_map=0x7ffff7ffe2e0, argc=2, argv=0x7fffffffdcf8, env=0x7fffffffdd10) at ./elf/dl-init.c:117
#11 0x00007ffff7fe32ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#12 0x0000000000000002 in ?? ()
#13 0x00007fffffffe0a8 in ?? ()
#14 0x00007fffffffe0f5 in ?? ()
#15 0x0000000000000000 in ?? ()
(gdb) quit
wouks@wouks-VPCEH26EG:~/Documents/MojoProjects/test_new_mojo$ objdump -d $(pixi run which mojo) | grep -E \
"vpbroadcast|vinserti128|vextracti128|vpgatherd|vpgatherq|\
vpcmpeq[bdwq].*%ymm|vpadd[bdwq].*%ymm|vpsub[bdwq].*%ymm|\
vpmull.*%ymm|vpand.*%ymm|vpor.*%ymm|vpxor.*%ymm|vpermd|vpermq" \
| head -30
3e37c76: c4 e2 7d 59 c0 vpbroadcastq %xmm0,%ymm0
3e37c7b: c5 fd d4 05 9d 41 77 vpaddq -0x388be63(%rip),%ymm0,%ymm0 # 5abe20 <_ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag@@Base-0x5cf0>
3e38196: c4 e2 7d 59 c0 vpbroadcastq %xmm0,%ymm0
3e3819b: c5 fd d4 05 7d 3c 77 vpaddq -0x388c383(%rip),%ymm0,%ymm0 # 5abe20 <_ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag@@Base-0x5cf0>
3e4d4bb: c4 e2 7d 59 c0 vpbroadcastq %xmm0,%ymm0
3e4d4c0: c5 fd d4 05 58 15 76 vpaddq -0x389eaa8(%rip),%ymm0,%ymm0 # 5aea20 <_ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag@@Base-0x30f0>
3e61b94: c4 e3 55 38 e4 01 vinserti128 $0x1,%xmm4,%ymm5,%ymm4
3e61b9a: c5 dd d4 c0 vpaddq %ymm0,%ymm4,%ymm0
3e61bb2: c4 e3 55 38 e4 01 vinserti128 $0x1,%xmm4,%ymm5,%ymm4
3e61bb8: c5 dd d4 c9 vpaddq %ymm1,%ymm4,%ymm1
3e61bd4: c4 e3 55 38 e4 01 vinserti128 $0x1,%xmm4,%ymm5,%ymm4
3e61bda: c5 dd d4 d2 vpaddq %ymm2,%ymm4,%ymm2
3e61bf5: c4 e3 55 38 e4 01 vinserti128 $0x1,%xmm4,%ymm5,%ymm4
3e61bfb: c5 dd d4 db vpaddq %ymm3,%ymm4,%ymm3
3e61c13: c5 f5 d4 c0 vpaddq %ymm0,%ymm1,%ymm0
3e61c17: c5 ed d4 c0 vpaddq %ymm0,%ymm2,%ymm0
3e61c1b: c5 e5 d4 c0 vpaddq %ymm0,%ymm3,%ymm0
3e61c1f: c4 e3 7d 39 c1 01 vextracti128 $0x1,%ymm0,%xmm1
3e61c97: c4 e3 6d 38 c9 01 vinserti128 $0x1,%xmm1,%ymm2,%ymm1
3e61c9d: c5 f5 d4 c0 vpaddq %ymm0,%ymm1,%ymm0
3e61cab: c4 e3 7d 39 c1 01 vextracti128 $0x1,%ymm0,%xmm1
3e73073: c4 e2 7d 58 c8 vpbroadcastd %xmm0,%ymm1
3e73080: c4 a1 75 fe 54 ca 20 vpaddd 0x20(%rdx,%r9,8),%ymm1,%ymm2
3e73087: c4 a1 75 fe 1c ca vpaddd (%rdx,%r9,8),%ymm1,%ymm3
3e7309a: c4 a1 75 fe 54 ca 60 vpaddd 0x60(%rdx,%r9,8),%ymm1,%ymm2
3e730a1: c4 a1 75 fe 5c ca 40 vpaddd 0x40(%rdx,%r9,8),%ymm1,%ymm3
3e730d9: c4 e2 7d 58 c8 vpbroadcastd %xmm0,%ymm1
3e730e0: c4 a1 75 fe 14 c2 vpaddd (%rdx,%r8,8),%ymm1,%ymm2
3e730fe: c4 e2 79 58 c0 vpbroadcastd %xmm0,%xmm0
3e73182: c4 e2 7d 58 c8 vpbroadcastd %xmm0,%ymm1
wouks@wouks-VPCEH26EG:~/Documents/MojoProjects/test_new_mojo$ # Confirm which nightly version is installed
pixi list | grep -E "mojo|max"
# Check the .so directly for BMI2
objdump -d $(pixi run which mojo | xargs dirname)/../lib/libAsyncRTRuntimeGlobals.so \
| grep -E "shlx|shrx|sarx|bzhi|mulx|pdep|pext" | head -20
mblack 26.4.0.dev2026052506 release 131.86 KiB conda https://conda.modular.com/max-nightly
mojo 1.0.0b2.dev2026052506 release 91.72 MiB conda https://conda.modular.com/max-nightly
mojo-compiler 1.0.0b2.dev2026052506 release 87.24 MiB conda https://conda.modular.com/max-nightly
mojo-python 1.0.0b2.dev2026052506 release 22.65 KiB conda https://conda.modular.com/max-nightly
26bb3: c4 e2 7b f7 c1 shrx %eax,%ecx,%eax
27601: c4 e2 f3 f6 c0 mulx %rax,%rcx,%rax
27768: c4 e2 eb f6 c9 mulx %rcx,%rdx,%rcx
277e8: c4 e2 f3 f6 c0 mulx %rax,%rcx,%rax
27913: c4 c2 b3 f6 d4 mulx %r12,%r9,%rdx
27931: c4 c2 f3 f6 d4 mulx %r12,%rcx,%rdx
2793d: c4 c2 f3 f6 d4 mulx %r12,%rcx,%rdx
27949: c4 c2 f3 f6 d4 mulx %r12,%rcx,%rdx
27955: c4 c2 f3 f6 d4 mulx %r12,%rcx,%rdx
27983: c4 c2 b3 f6 d4 mulx %r12,%r9,%rdx
279a1: c4 c2 f3 f6 d4 mulx %r12,%rcx,%rdx
279b0: c4 c2 f3 f6 d4 mulx %r12,%rcx,%rdx
279bf: c4 c2 f3 f6 d4 mulx %r12,%rcx,%rdx
279ce: c4 c2 eb f6 cc mulx %r12,%rdx,%rcx
27df3: c4 42 c1 f7 c0 shlx %rdi,%r8,%r8
2c420: c4 c2 f9 f7 c0 shlx %rax,%r8,%rax
2c8c8: c4 e2 f3 f6 c1 mulx %rcx,%rcx,%rax
2c8fd: c4 e2 b3 f6 c9 mulx %rcx,%r9,%rcx
2c919: c4 e2 eb f6 c0 mulx %rax,%rdx,%rax
2ced4: c4 c2 f1 f7 d5 shlx %rcx,%r13,%rdx