Skip to content

LLVM error (simd / LoopVectorization) #724

@korbinian90

Description

@korbinian90

When I compile my project in Ubuntu or Windows, it fails with the following error. It compiles in MacOS though.

- PackageCompiler: compiling nonincremental system image
LLVM ERROR: Cannot select: 0xa6f3080: i32 = X86ISD::BZHI Constant:i32<-1>, 0xba734e0, /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:338 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:338 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:357 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ] ] ]
  0xa6f2ad0: i32 = Constant<-1>
  0xba734e0: i32 = X86ISD::CMOV 0x821ffb38, Constant:i32<8>, TargetConstant:i8<4>, 0x82208c30, /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:356 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ]
    0x821ffb38: i32 = and 0x8280c048, Constant:i32<7>, int.jl:347 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:325 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:325 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:355 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ] ] ] ]
      0x8280c048: i32 = truncate 0x82866580, int.jl:518 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:355 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ] ]
        0x82866580: i64 = AssertZext 0x4a636a10, ValueType:ch:i63, int.jl:518 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:355 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ] ]
          0x4a636a10: i64,ch = CopyFromReg 0x6db47518, Register:i64 %0, int.jl:518 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:355 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ] ]
            0x82a10170: i64 = Register %0
      0x9e97018: i32 = Constant<7>
    0x8286e430: i32 = Constant<8>
    0xba73270: i8 = TargetConstant<4>
    0x82208c30: i32 = X86ISD::CMP 0x821ffb38, Constant:i32<0>, promotion.jl:499 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:356 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ] ]
      0x821ffb38: i32 = and 0x8280c048, Constant:i32<7>, int.jl:347 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:325 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:325 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:355 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ] ] ] ]
        0x8280c048: i32 = truncate 0x82866580, int.jl:518 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:355 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ] ]
          0x82866580: i64 = AssertZext 0x4a636a10, ValueType:ch:i63, int.jl:518 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:355 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ] ]
            0x4a636a10: i64,ch = CopyFromReg 0x6db47518, Register:i64 %0, int.jl:518 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:355 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:350 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:436 @[ /home/runner/.julia/packages/VectorizationBase/z4vAE/src/llvm_intrin/masks.jl:467 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/reconstruct_loopset.jl:955 @[ /home/runner/.julia/packages/LoopVectorization/lCUVJ/src/simdfunctionals/mapreduce.jl:149 ] ] ] ] ] ] ] ]
              0x82a10170: i64 = Register %0
        0x9e97018: i32 = Constant<7>
      0x6b175cf8: i32 = Constant<0>
In function: julia__vreduce_73944

[3036] signal (6): Aborted
in expression starting at none:0
gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
_ZN4llvm18report_fatal_errorERKNS_5TwineEb at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm16SelectionDAGISel15CannotYetSelectEPNS_6SDNodeE at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm16SelectionDAGISel16SelectCodeCommonEPNS_6SDNodeEPKhj at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN12_GLOBAL__N_115X86DAGToDAGISel6SelectEPN4llvm6SDNodeE at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm16SelectionDAGISel22DoInstructionSelectionEv at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm16SelectionDAGISel17CodeGenAndEmitDAGEv at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm16SelectionDAGISel20SelectAllBasicBlocksERKNS_8FunctionE at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm16SelectionDAGISel20runOnMachineFunctionERNS_15MachineFunctionE.part.902 at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN12_GLOBAL__N_115X86DAGToDAGISel20runOnMachineFunctionERN4llvm15MachineFunctionE at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm19MachineFunctionPass13runOnFunctionERNS_8FunctionE at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE at /opt/hostedtoolcache/julia/nightly/x64/bin/../lib/julia/libLLVM-14jl.so (unknown line)
operator() at /cache/build/default-amdci5-5/julialang/julia-master/src/aotcompile.cpp:611
jl_dump_native_impl at /cache/build/default-amdci5-5/julialang/julia-master/src/aotcompile.cpp:623
jl_write_compiler_output at /cache/build/default-amdci5-5/julialang/julia-master/src/precompile.c:94
ijl_atexit_hook at /cache/build/default-amdci5-5/julialang/julia-master/src/init.c:208
jl_repl_entrypoint at /cache/build/default-amdci5-5/julialang/julia-master/src/jlapi.c:712
main at /cache/build/default-amdci5-5/julialang/julia-master/cli/loader_exe.c:59
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x401098)
Allocations: 368420323 (Pool: 368319092; Big: 101231); GC: 482
Compile Test: Error During Test at /home/runner/work/CompileMRI.jl/CompileMRI.jl/test/runtests.jl:5
  Got exception outside of a @test
  LoadError: failed process: Process(`/opt/hostedtoolcache/julia/nightly/x64/bin/julia --color=yes --startup-file=no '--cpu-target=generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)' -O3 --sysimage=/tmp/jl_ehOsh3/sys.ji --project=/home/runner/work/CompileMRI.jl/CompileMRI.jl/App --output-o=/tmp/jl_JC7CpMPqjM.o /tmp/jl_RkDsrKh4PI`, ProcessSignaled(6)) [0]

I'm automatically compiling my fairly large project using github actions for Linux, Window and MacOS. The automatic Linux and Windows compilations started to crash some months ago. Unfortunately, I didn't save the Manifest.toml files of successful runs, because I'm suspecting some dependency updated and is causing this problem.
I tried Ubuntu 20.04 and 22.04, Windows 2019, Windows 2022 and local Windows 10, each with the Julia versions 1.6, 1.7, 1.8 and nightly and all produced the same error.

I don't use LoopVectorization (which seems to be related to the error) directly in my fairly large project, but through a dependency.

Maybe someone can tell from the error message what the problem might be. Otherwise, in case it would help, I can try to provide a minimal example that produces this error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions