Skip to content

[SDAG][X86] Assertion `C.getZExtValue() != 0 && C.getZExtValue() != maxUIntN(VT.getScalarSizeInBits()) && "Both cases that could cause potential overflows should have " "already been handled."' failed. #111325

@dtcxzyw

Description

@dtcxzyw

Reproducer:

; bin/llc test.ll -o -
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-linux-gnu"

define i64 @test(i64 %conv133.i, i1 %cond) {
entry:
  %mul.i.i = mul i64 %conv133.i, 4294967295
  %conv135.i = and i64 %mul.i.i, 4294967295
  %xor130.1.i = select i1 %cond, i64 %conv135.i, i64 4294967295
  ret i64 %xor130.1.i
}
llc: /home/dtcxzyw/WorkSpace/Projects/compilers/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:48566: llvm::SDValue combineMul(llvm::SDNode*, llvm::SelectionDAG&, llvm::TargetLowering::DAGCombinerInfo&, const llvm::X86Subtarget&): Assertion `C.getZExtValue() != 0 && C.getZExtValue() != maxUIntN(VT.getScalarSizeInBits()) && "Both cases that could cause potential overflows should have " "already been handled."' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: bin/llc reduced.ll
1.      Running pass 'Function Pass Manager' on module 'reduced.ll'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@test'
 #0 0x000070e103213fc2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.20.0git+0x213fc2)
 #1 0x000070e103210e8f llvm::sys::RunSignalHandlers() (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.20.0git+0x210e8f)
 #2 0x000070e103210fd5 SignalHandler(int) Signals.cpp:0:0
 #3 0x000070e102842520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x000070e1028969fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x000070e1028969fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x000070e1028969fc pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x000070e102842476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x000070e1028287f3 abort ./stdlib/abort.c:81:7
 #9 0x000070e10282871b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x000070e102839e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x000070e109e7fcb0 combineMul(llvm::SDNode*, llvm::SelectionDAG&, llvm::TargetLowering::DAGCombinerInfo&, llvm::X86Subtarget const&) X86ISelLowering.cpp:0:0
#12 0x000070e105b5d6ea (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) DAGCombiner.cpp:0:0
#13 0x000070e105b5eff3 (anonymous namespace)::DAGCombiner::Run(llvm::CombineLevel) DAGCombiner.cpp:0:0
#14 0x000070e105b619c7 llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOptLevel) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.20.0git+0x1619c7)
#15 0x000070e105dd2940 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.20.0git+0x3d2940)
#16 0x000070e105dd5fc7 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.20.0git+0x3d5fc7)
#17 0x000070e105dd7779 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.20.0git+0x3d7779)
#18 0x000070e105dcbb2a llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.20.0git+0x3cbb2a)
#19 0x000070e1052401c6 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCodeGen.so.20.0git+0x4401c6)
#20 0x000070e10370a638 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCore.so.20.0git+0x30a638)
#21 0x000070e10370ac51 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCore.so.20.0git+0x30ac51)
#22 0x000070e10370b597 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCore.so.20.0git+0x30b597)
#23 0x000056cf5d581747 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#24 0x000056cf5d574c45 main (bin/llc+0x14c45)
#25 0x000070e102829d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#26 0x000070e102829e40 call_init ./csu/../csu/libc-start.c:128:20
#27 0x000070e102829e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#28 0x000056cf5d575aa5 _start (bin/llc+0x15aa5)
Aborted (core dumped)

llvm version: b672071
Related commit: 1bc87c9
cc @RKSimon

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions