Skip to content

aarch64 llvm 14 regression with vectors: assertion `TmpVec.size() > 1' failed #56397

@andrewrk

Description

@andrewrk

Does not affect LLVM 13.0.1.
Tested with LLVM 14.0.6. Have not yet confirmed whether it affects trunk.

Reduced LLVM IR:

define internal fastcc i16 @test2.doTheTest.S.doTheTest() {
Block10:
  %0 = call fastcc i16 undef(<3 x i32> zeroinitializer, <3 x i32> zeroinitializer)
  ret i16 0
}

Reproduction:

$ ~/local/llvm14-debug/bin/clang -c reduced.ll -target aarch64-linux-unknown
warning: overriding the module target triple with aarch64-unknown-linux-unknown [-Woverride-module]
clang: /home/andy/Downloads/llvm-project-14/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp:656: llvm::MachineInstrBuilder llvm::MachineIRBuilder::buildUnmerge(llvm::ArrayRef<llvm::Register>, const llvm::SrcOp&): Assertion `TmpVec.size() > 1' failed.

Downstream issue: ziglang/zig#12012

Apologies for not catching this during the RC phase.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions