<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63406>63406</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Assertion `VY != 0 && "This should have been folded"` failed
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:Hexagon,
llvm:crash
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
chfast
</td>
</tr>
</table>
<pre>
```
llc: /root/llvm-project/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp:3256: llvm::SDValue llvm::HexagonTargetLowering::LowerUAddSubO(llvm::SDValue, llvm::SelectionDAG&) const: Assertion `VY != 0 && "This should have been folded"' 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/llc -o /app/output.s -x86-asm-syntax=intel <source>
1. Running pass 'Function Pass Manager' on module '<source>'.
2. Running pass 'Hexagon DAG->DAG Pattern Instruction Selection' on function '@f'
#0 0x000055f73f95645f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x357845f)
#1 0x000055f73f953bb4 SignalHandler(int) Signals.cpp:0:0
#2 0x00007f06d10fc420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x00007f06d0bc900b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
#4 0x00007f06d0ba8859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
#5 0x00007f06d0ba8729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
#6 0x00007f06d0bb9fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#7 0x000055f73d8b44b2 llvm::HexagonTargetLowering::LowerUAddSubO(llvm::SDValue, llvm::SelectionDAG&) const (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x14d64b2)
#8 0x000055f73f61039c (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) (.part.0) LegalizeDAG.cpp:0:0
#9 0x000055f73f61433c llvm::SelectionDAG::Legalize() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x323633c)
#10 0x000055f73f71f23c llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x334123c)
#11 0x000055f73f722a18 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x3344a18)
#12 0x000055f73f724712 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#13 0x000055f73d885f6a llvm::HexagonDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x14a7f6a)
#14 0x000055f73ebe601e llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#15 0x000055f73f17c071 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2d9e071)
#16 0x000055f73f17c2b9 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2d9e2b9)
#17 0x000055f73f17cb32 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-assertions-trunk/bin/llc+0x2d9eb32)
#18 0x000055f73cc66734 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
```
```llvm
target triple = "hexagon-unknown-linux-gnu"
define i64 @f(i64 %x, ptr %p) {
%s = add i64 -9223372036854775808, %x
%c = icmp ugt i64 -9223372036854775808, %s
store i1 %c, ptr %p
ret i64 %s
}
```
https://godbolt.org/z/jsz3Pn3e4
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8WFFv2zgS_jX0C2GDIilKevCDEsfZAuk1uPQK3FNAUZSsDU0KJLV1-usPpOTEcrLb7K1RIIGkkeabb4bD4Yy5c12rpVyD9AqkmwUf_M7Ytdg13PlFZernNWBo-kMbgEqlBCAlBHhrjfEAb5X6Y7_srfldiuNjuHQVwNuv3LYySH-TB94a_Xr36UGqO_Nd2k63K9H3gJQEpyxARwRSAlI-bL5xNcgTyaQ94h71x1fx6T9lXT8M1ReA8zcwAF-fYkslhe-M3pS3ADOACyiMdj4wKJ2TNryDgKFv_4UAJ4BsIILxQwYBxl93nYNuZwZVwx3_Q8JKSg0bo2pZA4wBzmDDOyXr1Ri2-7ub8uEGuqHadx5yWA0ttLI31kNv4M773gVeeAvwtu38bqhWwuxP4jmPcufcIB3AW8h1DTst1FBL6HcSCsvdDlZcPHnLhZzMP3gunmA97EOgRxFaAVTcW9NavofctsNeau-mtTV9sCLMvu-UtEt56JWx0gaZ4rpd8mOE3NLbQT8BvK06HXkKuDQBgvd9ABp8P_iVg8tDzpbc7ZfuWXt-AGTTaS8VBOTamcEKCcjNSCwJxP49aN3pFvbcOQhwth10XC14HwSfueZtoJNBo-He1IOS4asZGM4m5_F7gFMmwU15uwTkZlPewnvuvbQaftLO22E095Imk63myCNYo6gJl2gEAkwQRAeEEErTJiNNkTKaNicp557deHNvO-3jknwNazRLVsu_PxrnreT7mG3XsNM-ZCfA-T9cGICv0IGkWU7TBuDilXdyxptUFYUPXau5-o3rWgX8fKIxit20Z1H8fwHCE1DWIFYnqBEUI_j4aKXzxspH6ycvxupwyNkjo0vV6eGwbPUwvuj9zkper5xZocg4oRSjGV9yagZVokCogpZ3Tn4AXwRkFpEpQaiaIdM5Ms_ztIC8Mh9ifoKMcZ4WM-T0HDl7WdMPY2Z4jsnmmFXR1OzvYRLS1GyGmZ3mQp1XlFb4lxbgSyV6QmtGKzxzLp8lOksQKUSwx7XRz3szOKj5Xro-bsriLc872XLV_ZCTw9PTl_7M23-ZWgJcTrt21XPrQy4X8KixKW_f30DFGUFKiPizmM04xKBdrkhgwggRL7ELNWJe3LKkwX9KLRzuo_Ta1PJW6lLXN_vOx5W-KE9CE3zGc17MMox5kv-U5ygtlbrirhNXyognN1vUl_NnbBLGfL2cF5Qn-cwLfOYFzRL8Uy_soL_oz1zsOi2PhGdevHnH3uboOfTbRA38yLxM5GnD-NsysSlvv5oLUbxMTeBZw_gs0vTUE1lJhpLTjvOMT2g_Tjx514W_DO87eO9HOJ1lQJIJlCUnvLb3QfXYCP1tRpeIJq4LibJkFk12zhpXxQdYf44t3DwRJtGlGeOqmDHOzhlX5HSnKdly8Tz1ba_cP-3714z-Jbwrgme8Z2eZEIxlhMLJxks4xY7beBKV88P37u7b52ujvTwca5lS4p08nM9-Z8IIF0U-tgPQ264PjTjZhBFpN9aA5aCftPmuT7sQfIpXy6bTEnaMwrGjzuMtTg-Bc-9tuO9jNLOr6agMIhcN8bqOqssCY0IyjAjLU5plaY7yoB9xXpVEVOrEvodD63-m6Y6asX-FXRIhZrSmD6wcwV6VQLb5iyCeTXymrozyK2NbgLc_AN7-7n6Qe00kXdRrUhek4Au5TlieYcZoQhe7NW6qNM1oxUSeCCorVNG6YRI1dUNohumiW2OECWIYJQSxlKzyTOBUVISRilBaIECR3PNOrcJCBtuLOFauGaGILRSvpHLxhwGMwzwpdf1a2eOMew0wnnIqjp1BmG4Wdh2n1WpoHaBIdc67VxO-80quLzBhMzRN2IvBqvX_P0FHb_8XAAD___0qG7E">