-
Notifications
You must be signed in to change notification settings - Fork 14.6k
Closed
Closed
Copy link
Labels
Description
Bisected to 777d6b5 (#146350)
Confirmed still present as of 01c97b4
https://godbolt.org/z/7qhKaavjs
https://godbolt.org/z/EdP1T5nxM
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-unknown"
define i64 @_Z2akv(<4 x i64> %call.i.i) {
entry:
%0 = bitcast <4 x i64> %call.i.i to <8 x i32>
%insert.i.i = shufflevector <8 x i32> %0, <8 x i32> zeroinitializer, <8 x i32> <i32 8, i32 9, i32 10, i32 11, i32 4, i32 5, i32 6, i32 7>
%bc3.i = bitcast <8 x i32> %insert.i.i to <4 x i64>
%1 = extractelement <4 x i64> zeroinitializer, i64 0
%2 = extractelement <4 x i64> %bc3.i, i64 1
%add.1.i.i = or i64 %2, %1
ret i64 %add.1.i.i
}
opt: /root/llvm-project/llvm/include/llvm/Support/Casting.h:578: decltype(auto) llvm::cast(From*) [with To = llvm::ExtractElementInst; From = llvm::Value]: Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/opt -o /app/output.s -S -passes=vector-combine <source>
1. Running pass "function(vector-combine)" on module "<source>"
2. Running pass "vector-combine" on function "_Z2akv"
#0 0x000000000560a898 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x560a898)
#1 0x0000000005607774 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x000073ae71e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x000073ae71e969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#4 0x000073ae71e42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#5 0x000073ae71e287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#6 0x000073ae71e2871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#7 0x000073ae71e39e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#8 0x0000000003563e41 (anonymous namespace)::VectorCombine::foldExtractExtract(llvm::Instruction&) (.part.0) VectorCombine.cpp:0:0
#9 0x000000000357e963 (anonymous namespace)::VectorCombine::run()::'lambda'(llvm::Instruction&)::operator()(llvm::Instruction&) const (.isra.0) VectorCombine.cpp:0:0
#10 0x000000000357f65b llvm::VectorCombinePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x357f65b)
#11 0x0000000002d6387e llvm::detail::PassModel<llvm::Function, llvm::VectorCombinePass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x2d6387e)
#12 0x0000000005402ba1 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x5402ba1)
#13 0x0000000000ea794e llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xea794e)
#14 0x0000000005403074 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x5403074)
#15 0x0000000000ea677e llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0xea677e)
#16 0x0000000005400c41 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x5400c41)
#17 0x0000000000961fda llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x961fda)
#18 0x000000000095576c optMain (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x95576c)
#19 0x000073ae71e29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#20 0x000073ae71e29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#21 0x000000000094d355 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/opt+0x94d355)
Program terminated with signal: SIGSEGV
Compiler returned: 139