| Issue |
171032
|
| Summary |
[AArch64] Assertion `N1.getValueType().bitsLE(VT) && "The input must be the same size or smaller than the result."' failed.
|
| Labels |
backend:AArch64,
crash-on-valid
|
| Assignees |
|
| Reporter |
XChy
|
Reproducer: https://godbolt.org/z/nbv9q9M3v
Reduced testcase:
```llvm
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
target triple = "aarch64-unknown-linux-musl"
define <64 x i1> @func_20(<2 x i1> %0) {
entry:
%.splat = shufflevector <2 x i1> %0, <2 x i1> zeroinitializer, <64 x i32> <i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 1, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>
ret <64 x i1> %.splat
}
```
Dump:
```
llc: /root/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6646: llvm::SDValue llvm::SelectionDAG::getNode(unsigned int, const llvm::SDLoc&, llvm::EVT, llvm::SDValue, llvm::SDNodeFlags): Assertion `N1.getValueType().bitsLE(VT) && "The input must be the same size or smaller than the result."' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0. Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/llc -o /app/output.s -x86-asm-syntax=intel <source>
1. Running pass 'Function Pass Manager' on module '<source>'.
2. Running pass 'AArch64 Instruction Selection' on function '@func_20'
#0 0x0000000004210fd8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x4210fd8)
#1 0x000000000420de84 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x000075c5bb842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x000075c5bb8969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
#4 0x000075c5bb842476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#5 0x000075c5bb8287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#6 0x000075c5bb82871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#7 0x000075c5bb839e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#8 0x0000000003f6a711 llvm::SelectionDAG::getNode(unsigned int, llvm::SDLoc const&, llvm::EVT, llvm::SDValue, llvm::SDNodeFlags) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3f6a711)
#9 0x00000000040f5448 llvm::DAGTypeLegalizer::PromoteIntRes_EXTEND_VECTOR_INREG(llvm::SDNode*) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x40f5448)
#10 0x00000000040fc0d5 llvm::DAGTypeLegalizer::PromoteIntegerResult(llvm::SDNode*, unsigned int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x40fc0d5)
#11 0x0000000004040e73 llvm::DAGTypeLegalizer::run() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x4040e73)
#12 0x0000000004041ce9 llvm::SelectionDAG::LegalizeTypes() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x4041ce9)
#13 0x0000000003fa5ecb llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3fa5ecb)
#14 0x0000000003fa97c8 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3fa97c8)
#15 0x0000000003fab24c llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3fab24c)
#16 0x0000000003f96a4f llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3f96a4f)
#17 0x00000000030f16b9 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#18 0x000000000374a2f6 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x374a2f6)
#19 0x000000000374a6a1 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x374a6a1)
#20 0x000000000374af0f llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x374af0f)
#21 0x00000000008fdee4 compileModule(char**, llvm::LLVMContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&) llc.cpp:0:0
#22 0x00000000007c7c49 main (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x7c7c49)
#23 0x000075c5bb829d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#24 0x000075c5bb829e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#25 0x00000000008f30e5 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x8f30e5)
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs