Issue |
127296
|
Summary |
Assertion `llvm::isUIntN(BitWidth, val) && "Value is not an N-bit unsigned value"` when using `@llvm.usub.with.overflow` on Hexagon
|
Labels |
backend:Hexagon,
regression,
crash-on-valid
|
Assignees |
|
Reporter |
alexrp
|
```llvm
target datalayout = "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32:32-i16:16:16-i1:8:8-f32:32:32-f64:64:64-v32:32:32-v64:64:64-v512:512:512-v1024:1024:1024-v2048:2048:2048"
target triple = "hexagon-unknown-linux4.19.0-musl"
define fastcc void @os.linux.tls.initStatic() {
%1 = call { i32, i1 } @llvm.usub.with.overflow.i32(i32 0, i32 1)
br label %2
2: ; preds = %0
%3 = extractvalue { i32, i1 } %1, 0
ret void
}
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i32, i1 } @llvm.usub.with.overflow.i32(i32, i32) #0
attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
```
```
❯ llc reduced.ll -march hexagon -O0
llc: /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/APInt.h:127: llvm::APInt::APInt(unsigned int, uint64_t, bool, bool): Assertion `llvm::isUIntN(BitWidth, val) && "Value is not an N-bit unsigned value"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llc reduced.ll -march hexagon -O0
1. Running pass 'Function Pass Manager' on module 'reduced.ll'.
2. Running pass 'Hexagon DAG->DAG Pattern Instruction Selection' on function '@os.linux.tls.initStatic'
#0 0x0000771d51b80ed2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/alexrp/Source/llvm-project/llvm/lib/Support/Unix/Signals.inc:802:3
#1 0x0000771d51b7e87f llvm::sys::RunSignalHandlers() /home/alexrp/Source/llvm-project/llvm/lib/Support/Signals.cpp:105:20
#2 0x0000771d51b7ec0d SignalHandler(int) /home/alexrp/Source/llvm-project/llvm/lib/Support/Unix/Signals.inc:415:1
#3 0x0000771d50445330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x0000771d5049eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x0000771d5049eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x0000771d5049eb2c pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x0000771d5044527e raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x0000771d504288ff abort ./stdlib/abort.c:81:7
#9 0x0000771d5042881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x0000771d5043b517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
#11 0x0000771d51a220b9 llvm::maxIntN(long) /home/alexrp/Source/llvm-project/llvm/include/llvm/Support/MathExtras.h:252:35
#12 0x0000771d51a220b9 llvm::isIntN(unsigned int, long) /home/alexrp/Source/llvm-project/llvm/include/llvm/Support/MathExtras.h:262:53
#13 0x0000771d51a220b9 llvm::APInt::APInt(unsigned int, unsigned long, bool, bool) /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/APInt.h:120:11
#14 0x0000771d5277f3f6 llvm::SelectionDAG::getConstant(llvm::APInt const&, llvm::SDLoc const&, llvm::EVT, bool, bool) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1674:39
#15 0x0000771d5277f3f6 llvm::SelectionDAG::getConstant(unsigned long, llvm::SDLoc const&, llvm::EVT, bool, bool) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1668:21
#16 0x0000771d555f5de6 llvm::HexagonTargetLowering::LowerUAddSubO(llvm::SDValue, llvm::SelectionDAG&) const /home/alexrp/Source/llvm-project/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp:3275:32
#17 0x0000771d525da658 (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1316:43
#18 0x0000771d525dbb18 llvm::SelectionDAG::Legalize() /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:5842:28
#19 0x0000771d527bbb69 llvm::TimeRegion::~TimeRegion() /home/alexrp/Source/llvm-project/llvm/include/llvm/Support/Timer.h:160:9
#20 0x0000771d527bbb69 llvm::NamedRegionTimer::~NamedRegionTimer() /home/alexrp/Source/llvm-project/llvm/include/llvm/Support/Timer.h:168:8
#21 0x0000771d527bbb69 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1079:3
#22 0x0000771d527c0235 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1904:33
#23 0x0000771d527c18f9 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:616:22
#24 0x0000771d555cd384 llvm::HexagonDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h:47:17
#25 0x0000771d527b2227 llvm::OptLevelChanger::~OptLevelChanger() /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:269:11
#26 0x0000771d527b2227 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:376:1
#27 0x0000771d527b2227 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:347:6
#28 0x0000771d520fa4bf llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) /home/alexrp/Source/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:94:33
#29 0x0000771d51d45424 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1416:7
#30 0x0000771d51d45641 llvm::ilist_detail::node_base_prevnext<llvm::ilist_node_base<true, void>, true>::getNext() const /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/ilist_node_base.h:42:38
#31 0x0000771d51d45641 llvm::ilist_node_impl<llvm::ilist_detail::node_options<llvm::Function, true, false, void, false, void>>::getNext() /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/ilist_node.h:117:66
#32 0x0000771d51d45641 llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, true, false, void, false, void>, false, false>::operator++() /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/ilist_iterator.h:187:25
#33 0x0000771d51d45641 llvm::FPPassManager::runOnModule(llvm::Module&) /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1451:22
#34 0x0000771d51d45e8d runOnModule /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1528:7
#35 0x0000771d51d45e8d llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/alexrp/Source/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:55
#36 0x000058a5a81e89df compileModule(char**, llvm::LLVMContext&) /home/alexrp/Source/llvm-project/llvm/tools/llc/llc.cpp:753:34
#37 0x000058a5a81dd057 main /home/alexrp/Source/llvm-project/llvm/tools/llc/llc.cpp:411:35
#38 0x0000771d5042a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#39 0x0000771d5042a28b call_init ./csu/../csu/libc-start.c:128:20
#40 0x0000771d5042a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#41 0x000058a5a81ddde5 _start (/opt/llvm-20/bin/llc+0x12de5)
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs