Skip to content

unexpected Neon vector element type when building with Eigen3 #19932

@Marcus-Forte

Description

@Marcus-Forte

Describe the bug

I got an exception trying to build a program that simply includes Eigen3.

The following message was thrown:

unexpected Neon vector element type
UNREACHABLE executed at /tmp/llvm/clang/lib/AST/ItaniumMangle.cpp:4012!
PLEASE submit a bug report to https://github.com/intel/llvm/issues and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /opt/sycl/bin/clang-21 -cc1 -triple spir64-unknown-unknown -aux-triple aarch64-unknown-linux-gnu -fsycl-is-device -fdeclare-spirv-builtins -O2 -mllvm -sycl-opt -fenable-sycl-dae -Wno-sycl-strict -fsycl-int-header=/tmp/failed-header-9953d2.h -fsycl-int-footer=/tmp/failed-footer-ca97a3.h -sycl-std=2020 -ffine-grained-bitfield-accesses -fsycl-unique-prefix=uidc9772056fd4c0499 -D__SYCL_ANY_DEVICE_HAS_ANY_ASPECT__=1 -Wspir-compat -fno-offload-use-alloca-addrspace-for-srets -emit-llvm-bc -emit-llvm-uselists -disable-free -clear-ast-before-backend -main-file-name failed.cc -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -aux-target-cpu generic -aux-target-feature +v8a -aux-target-feature +fp-armv8 -aux-target-feature +neon -debug-info-kind=constructor -dwarf-version=5 -debugger-tuning=gdb -fdebug-compilation-dir=/workspaces/moptim/build -fcoverage-compilation-dir=/workspaces/moptim/build -resource-dir /opt/sycl/lib/clang/21 -dependency-file CMakeFiles/failed.dir/src/failed.cc.o.d -MT CMakeFiles/failed.dir/src/failed.cc.o -sys-header-deps -internal-isystem /opt/sycl/bin/../include/sycl/stl_wrappers -internal-isystem /opt/sycl/bin/../include -internal-isystem /opt/sycl/bin/../include/sycl/stl_wrappers -internal-isystem /opt/sycl/bin/../include -isystem /usr/include/eigen3 -internal-isystem /usr/lib/gcc/aarch64-linux-gnu/13/../../../../include/c++/13 -internal-isystem /usr/lib/gcc/aarch64-linux-gnu/13/../../../../include/aarch64-linux-gnu/c++/13 -internal-isystem /usr/lib/gcc/aarch64-linux-gnu/13/../../../../include/c++/13/backward -internal-isystem /usr/lib/gcc/aarch64-linux-gnu/13/../../../../include/c++/13 -internal-isystem /usr/lib/gcc/aarch64-linux-gnu/13/../../../../include/aarch64-linux-gnu/c++/13 -internal-isystem /usr/lib/gcc/aarch64-linux-gnu/13/../../../../include/c++/13/backward -internal-isystem /opt/sycl/lib/clang/21/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/aarch64-linux-gnu/13/../../../../aarch64-linux-gnu/include -internal-externc-isystem /usr/include/aarch64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -internal-isystem /opt/sycl/lib/clang/21/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/aarch64-linux-gnu/13/../../../../aarch64-linux-gnu/include -internal-externc-isystem /usr/include/aarch64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=gnu++20 -fdeprecated-macro -ferror-limit 19 -fmessage-length=165 -fgpu-rdc -fno-signed-char -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/failed-e57e1e.bc -x c++ /workspaces/moptim/src/failed.cc
1.      /opt/sycl/lib/clang/21/include/arm_neon.h:5074:1 <Spelling=/opt/sycl/lib/clang/21/include/arm_neon.h:126:14>: current parser token 'static'
2.      /opt/sycl/lib/clang/21/include/arm_neon.h:5057:49: LLVM IR generation of declaration 'vaddq_u64'
3.      /opt/sycl/lib/clang/21/include/arm_neon.h:5057:49: Mangling declaration 'vaddq_u64'
 #0 0x0000aaaac90bc5f8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/sycl/bin/clang-21+0x22ec5f8)
 #1 0x0000aaaac90b9ad0 llvm::sys::RunSignalHandlers() (/opt/sycl/bin/clang-21+0x22e9ad0)
 #2 0x0000aaaac90b9c38 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x0000ffffbcb5f7a0 (linux-vdso.so.1+0x7a0)
 #4 0x0000ffffbc617628 (/lib/aarch64-linux-gnu/libc.so.6+0x87628)
 #5 0x0000ffffbc5ccb3c raise (/lib/aarch64-linux-gnu/libc.so.6+0x3cb3c)
 #6 0x0000ffffbc5b7e00 abort (/lib/aarch64-linux-gnu/libc.so.6+0x27e00)
 #7 0x0000aaaac9016a9c (/opt/sycl/bin/clang-21+0x2246a9c)
 #8 0x0000aaaacca4dc08 (anonymous namespace)::CXXNameMangler::mangleType(clang::VectorType const*) ItaniumMangle.cpp:0:0
 #9 0x0000aaaacca4b610 (anonymous namespace)::CXXNameMangler::mangleType(clang::QualType) ItaniumMangle.cpp:0:0
#10 0x0000aaaacca54bb4 (anonymous namespace)::CXXNameMangler::mangleFunctionEncoding(clang::GlobalDecl) ItaniumMangle.cpp:0:0
#11 0x0000aaaacca5e1d8 (anonymous namespace)::ItaniumMangleContextImpl::mangleCXXName(clang::GlobalDecl, llvm::raw_ostream&) ItaniumMangle.cpp:0:0
#12 0x0000aaaac95d37b8 getMangledNameImpl(clang::CodeGen::CodeGenModule&, clang::GlobalDecl, clang::NamedDecl const*, bool) CodeGenModule.cpp:0:0
#13 0x0000aaaac95e10a8 clang::CodeGen::CodeGenModule::getMangledName(clang::GlobalDecl) (/opt/sycl/bin/clang-21+0x28110a8)
#14 0x0000aaaac96056d4 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) (/opt/sycl/bin/clang-21+0x28356d4)
#15 0x0000aaaac960de48 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (.part.0) CodeGenModule.cpp:0:0
#16 0x0000aaaac99c378c (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) ModuleBuilder.cpp:0:0
#17 0x0000aaaac99b3d10 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) (/opt/sycl/bin/clang-21+0x2be3d10)
#18 0x0000aaaacb508150 clang::ParseAST(clang::Sema&, bool, bool) (/opt/sycl/bin/clang-21+0x4738150)
#19 0x0000aaaac99c06f0 clang::CodeGenAction::ExecuteAction() (/opt/sycl/bin/clang-21+0x2bf06f0)
#20 0x0000aaaac9cb137c clang::FrontendAction::Execute() (/opt/sycl/bin/clang-21+0x2ee137c)
#21 0x0000aaaac9c44bb4 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/sycl/bin/clang-21+0x2e74bb4)
#22 0x0000aaaac9d86fec clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/sycl/bin/clang-21+0x2fb6fec)
#23 0x0000aaaac7b01a34 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/sycl/bin/clang-21+0xd31a34)
#24 0x0000aaaac7af8c64 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#25 0x0000aaaac7afbe64 clang_main(int, char**, llvm::ToolContext const&) (/opt/sycl/bin/clang-21+0xd2be64)
#26 0x0000aaaac7a2f250 main (/opt/sycl/bin/clang-21+0xc5f250)
#27 0x0000ffffbc5b84c4 (/lib/aarch64-linux-gnu/libc.so.6+0x284c4)
#28 0x0000ffffbc5b8598 __libc_start_main (/lib/aarch64-linux-gnu/libc.so.6+0x28598)
#29 0x0000aaaac7af8270 _start (/opt/sycl/bin/clang-21+0xd28270)
clang++: error: unable to execute command: Aborted
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 21.0.0git (https://github.com/intel/llvm c7ff66105a7b7dfa2c8a3544f0b132e39ace7594)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/sycl/bin
Build config: +assertions
clang++: note: diagnostic msg: Error generating preprocessed source(s).

To reproduce

  1. Include a code snippet that is as short as possible:
    Source:
#include <Eigen/Dense>

int main() {}
  1. Specify the command which should be used to compile the program:

/opt/sycl/bin/clang++ -isystem /usr/include/eigen3 -g -std=gnu++20 -fsycl -fsycl-targets=native_cpu -MD -MT CMakeFiles/failed.dir/src/failed.cc.o -MF CMakeFiles/failed.dir/src/failed.cc.o.d -o CMakeFiles/failed.dir/src/failed.cc.o -c /workspaces/moptim/src/failed.cc

  1. Specify the command which should be used to launch the program: failed before
  2. Indicate what is wrong and what was expected: failed before

Environment

Platform [#1]:
    Version  : 0.1
    Name     : SYCL_NATIVE_CPU
    Vendor   : tbd
    Devices  : 1
        Device [#0]:
        Type              : cpu
        Version           : 0.1
        Name              : SYCL Native CPU
        Vendor            : Intel(R) Corporation
        Driver            : 0.0.0
        DeviceID          : UNKNOWN
        Num SubDevices    : 0
        Num SubSubDevices : 0
        Aspects           : cpu fp64 online_compiler online_linker queue_profiling usm_device_allocations usm_host_allocations usm_shared_allocations usm_system_allocations usm_atomic_host_allocations usm_atomic_shared_allocations atomic64
        info::device::sub_group_sizes: 1
        Architecture: unknown
default_selector()      : cpu, SYCL_NATIVE_CPU, SYCL Native CPU 0.1 [0.0.0]
accelerator_selector()  : No device of requested type available.
cpu_selector()          : cpu, SYCL_NATIVE_CPU, SYCL Native CPU 0.1 [0.0.0]
gpu_selector()          : No device of requested type available.
custom_selector(gpu)    : No device of requested type available.
custom_selector(cpu)    : cpu, SYCL_NATIVE_CPU, SYCL Native CPU 0.1 [0.0.0]
custom_selector(acc)    : No device of requested type available.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions