<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64420>64420</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Crash when trying to compile SIMD type with VE backend
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
lenawanel
</td>
</tr>
</table>
<pre>
compiling the following code with llc:
```llvm
; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "adler.707c2e002c6e23cc-cgu.0"
target datalayout = "e-m:e-i64:64-n32:64-S128-v64:64:64-v128:64:64-v256:64:64-v512:64:64-v1024:64:64-v2048:64:64-v4096:64:64-v8192:64:64-v16384:64:64"
target triple = "ve-unknown-linux-gnu"
define dso_local void @_ZN5adler4algo5U32X44from17heee8ff6a15a219acE(ptr %_0) unnamed_addr #0 {
start:
br i1 poison, label %bb7, label %panic3
bb7: ; preds = %start
store <4 x i32> zeroinitializer, ptr %_0, align 4
ret void
panic3: ; preds = %start
unreachable
}
attributes #0 = { "target-features"="+vpu" }
!llvm.ident = !{!0}
!0 = !{!"rustc version 1.73.0-dev"}
```
crashes with
```
Do not know how to custom type legalize this operation!
UNREACHABLE executed at /home/lena/GitClone/llvm-project/llvm/lib/Target/VE/VEISelLowering.cpp:1963!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
```
<details>
<summary><strong>backtrace</strong></summary>
<p>
```
Stack dump:
0. Program arguments: ./build/bin/llc /home/lena/test.ll
1. Running pass 'Function Pass Manager' on module '/home/lena/test.ll'.
2. Running pass 'VE DAG->DAG Pattern Instruction Selection' on function '@_ZN5adler4algo5U32X44from17heee8ff6a15a219acE'
#0 0x000055ea921280ce llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/lena/GitClone/llvm-project/llvm/lib/Support/Unix/Signals.inc:602:22
#1 0x000055ea9212849f PrintStackTraceSignalHandler(void*) /home/lena/GitClone/llvm-project/llvm/lib/Support/Unix/Signals.inc:675:1
#2 0x000055ea92125b5f llvm::sys::RunSignalHandlers() /home/lena/GitClone/llvm-project/llvm/lib/Support/Signals.cpp:104:20
#3 0x000055ea92127a33 SignalHandler(int) /home/lena/GitClone/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
#4 0x00007f6437a4fab0 (/usr/lib/libc.so.6+0x39ab0)
#5 0x00007f6437a9f26c (/usr/lib/libc.so.6+0x8926c)
#6 0x00007f6437a4fa08 raise (/usr/lib/libc.so.6+0x39a08)
#7 0x00007f6437a38538 abort (/usr/lib/libc.so.6+0x22538)
#8 0x000055ea9206c7aa bindingsErrorHandler(void*, char const*, bool) /home/lena/GitClone/llvm-project/llvm/lib/Support/ErrorHandling.cpp:221:55
#9 0x000055ea90738f2f llvm::VETargetLowering::ReplaceNodeResults(llvm::SDNode*, llvm::SmallVectorImpl<llvm::SDValue>&, llvm::SelectionDAG&) const /home/lena/GitClone/llvm-project/llvm/lib/Target/VE/VEISelLowering.cpp:1960:5
#10 0x000055ea91f68ab5 llvm::DAGTypeLegalizer::CustomLowerNode(llvm::SDNode*, llvm::EVT, bool) /home/lena/GitClone/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:931:27
#11 0x000055ea91f86603 llvm::DAGTypeLegalizer::SplitVectorResult(llvm::SDNode*, unsigned int) /home/lena/GitClone/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp:972:3
#12 0x000055ea91f653ef llvm::DAGTypeLegalizer::run() /home/lena/GitClone/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:283:17
#13 0x000055ea91f69a58 llvm::SelectionDAG::LegalizeTypes() /home/lena/GitClone/llvm-project/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:1059:37
#14 0x000055ea91ed11d8 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/lena/GitClone/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:807:36
#15 0x000055ea91ed06b2 llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, bool&) /home/lena/GitClone/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:702:1
#16 0x000055ea91ed63b2 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/lena/GitClone/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1705:33
#17 0x000055ea91ecf0df llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/lena/GitClone/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:483:7
#18 0x000055ea90726e1a (anonymous namespace)::VEDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/lena/GitClone/llvm-project/llvm/lib/Target/VE/VEISelDAGToDAG.cpp:46:3
#19 0x000055ea90f96169 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/lena/GitClone/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:33
#20 0x000055ea917742d8 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/lena/GitClone/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1435:20
#21 0x000055ea917745aa llvm::FPPassManager::runOnModule(llvm::Module&) /home/lena/GitClone/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1481:13
#22 0x000055ea917749ff (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/lena/GitClone/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1550:20
#23 0x000055ea9176f608 llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/lena/GitClone/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:13
#24 0x000055ea917752d1 llvm::legacy::PassManager::run(llvm::Module&) /home/lena/GitClone/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1678:1
#25 0x000055ea9016cb4e compileModule(char**, llvm::LLVMContext&) /home/lena/GitClone/llvm-project/llvm/tools/llc/llc.cpp:754:66
#26 0x000055ea9016a37a main /home/lena/GitClone/llvm-project/llvm/tools/llc/llc.cpp:416:35
#27 0x00007f6437a39850 (/usr/lib/libc.so.6+0x23850)
#28 0x00007f6437a3990a __libc_start_main (/usr/lib/libc.so.6+0x2390a)
#29 0x000055ea90168f25 _start (./build/bin/llc+0x592f25)
[1] 1802379 IOT instruction (core dumped) ./build/bin/llc ~/test.ll
```
</p>
</details>
this issue was encountered while trying to port rust to the NEC Vector Engine and doesn't occur when using [SX-Aurora TSUBASA Research's llvm fork](https://github.com/sx-aurora-dev/llvm-project).
this requires llvm to be built with the VE backend enabled. (-DLLVM_TARGETS_TO_BUILD="X86;VE")
tested on commit 16a0fc2bb81f1d66ff66f08053e45d8857afd66d.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWVtv27iz_zTMC2GDInV9yIOv2QBpt0jSYHFeDEoa2TylSR-SymUfzmf_g5QcS276z17a7gKBY43FmfnNnSS3VmwVwCVK5ihZXvDW7bS5lKD4E1cgL0pdv1xWen8QUqgtdjvAjZZSP_mnSteAn4TbYSkrxGaILBGZoZR0f1I-7nsSm-MPum4lXC8xYkuMaFa224MWyk0M1G0F9cSK_UGKRkA9LStEs26p1a2pYNMIr9Me-tWU1xLMNCNZRYEQWqVAWVVNqm07JYjSbq3jZgsO19xxyV90646rYbJHbAYTkcaIzdJ4ohjtvtxFNJ889uSO9BjRfPhIk3T4mER09DKho8WUxKPVMSlGy_OoGK9PWT5gcI7FGXGQr1Z4hEmrvij9pCZSqPZ5slXt64rus4ZGKMC11RupKy7xoxY1RjHZ_M_HJFgx5nKrk8-M_hbHjdH7KNsBQN40KY8STqOCVytE84MzGNFkQxAtcKu8M-oNr2tPZQSjbN47zHHjXoMB49JgEeGDFlYrRBdY8hKk51SW2ej5wJWo2FB3_wabYR89BwO17WEnnYiev3XaeIMsYvyMhffjCv8ORgslnOBS_A7Gixmov8Bciq3C8ZGFARfMMpTda_Oe-FYZ4NWOlxL61dlyyIY7Z0TZOrC9mTyLbO6d13l00gB3rQHr_caW_pPOHw_ejfiMF6KRT6mpqEEdQznydqcR-fpVMn4DUWpa6yr8CMYKrXA0zdiUTGp49DJflx-Tt3usDLc7sF2SjwSM31tqrLTDPhTxTj9hp3HVWqf32L0cAEvYBk9gtxMW6wMY7oQPh6hb_vnj7Wq2-GU2v1lheIaqdVBj7jCi653eA6Jrn_2Irq-EW0itAkU-7icHo_8XKtc_-n-iRHR9H0yL6PphFT6u70De6CcwQm2n1eGA2CwqUvYq_9PNana3wrYt98Jhjst2iw0ctHEeyc65g_URTdeIrrfC7dpyWun9QOpYF2Ft6x26xlzVWKhKtjWE2hnsiUtefXGGVzB905iILWpwXEiL2OqVZNv9npsXT2IL64xWW8RWr6wQWyC6fqX3j6c1RzaH08Nbsu8cr77gut0fXlOYTBEpPhm9NXyPudm2e1DO2wNPEV2XrZC1_y9UMET1tdMcWDeVsuMWeW63rVK-gRy49XmRrVtV-YDAnzzhA1d867M2w1rhfegb_q1vMqZZb0j6FvOHFV7OriaIrZazK_yJOwdG4WtlnWk7qXcgoeoCMohsjup4oX-6UvaNq8t38kwIIUkCvKARzUkFOMQMmyE2sy-2-_LJCOWC6e-DL2l-esnwp422zgDfI5r66iWU8zX4rybHXXvwkY3o-rMSz54gtopLOxXKN_GU-H50bCIeRXSOIi4afKZyx-MXrrydEM1DOaWzH6lnlvg0PqlJz9RMyqR5y9i3rRppaxHNv4-eRwX7CkN8C6fkpCE70zDjjOFzy_1Y78YRG1st7nXKmjRmGY8bXhIcLLJurXllK0VZTa2epojOyTMreOnngBObZMymaGhavcsmL2hajdikX2lDcmy4sPBHdCL5iFk2ZsbyhOWYl76qv8eM0oSNmeUj35G0yjjHpVC1UFu7MkabN4J_gasdN7jSyrqeUGotv49_T0JPXY3SCLFZkpz0LoZ6k4zlDR1mxcOq65XH7tinCBwkr-CjruEWbCudHZWku6X_pQc0IO-5lA9QOW2u9weJ2GK45IHLFnzz6YrY4Kdj9V3OrsKPRWewH9z9iTfUcVpi0ahUR02a8zIZKLmcXd2_HOCmH2RMR12EGSfw7izyvpFWD_ffIwwWuoYr8C13bL71UUOv7bESFcxHxbExebTRGG2epoS9i_buIIXr_NtFxbfxtirsK-u_26vehdmpMwKb-f7FTljpmWcTBs27WE2r_mZb-FMeonkoywMPsTOtC57k30qaQBmx_Zm6RyQpvMUHyscj5aGOovpbyvvk7JOpEzpT9WovXJD3Y0Cci-9x5MTvNll6gpGcwSBpSd-F0VHn3IpqLnX1ZZQkQgrrNsL5DZA2owrZ_dQN_h1F6Ro2-uAl2NGrg9nVJ5szLfj_DZc2fAn9x1faAS281NH-Zep0pTD9ma7OwowbnTydnnk6ZX_Y0zMpT84e98nXbU0_APxUjFFG_IDMBpUwG6OsGlI376I0rfpVfeDVTig4Ahqh_Oq3nwozDpVzUHvy8cBDU4i4n_e40uplr1uLFd-DPYR9VnGcgnwX0P8k7reGlqNSR6jpuLGNR7umSKO0wN_Uz2-tB8jehPTdffiGDsc2HY2Dk44HsCyL6ahnrD_5xcejgZ-D4_q2b3nVy0D4Mb9ilgz2dx5CdA4h4fwPQOhOxsex1ZN-pPq590A08AA9V79omvcy58O_ClOSkDOXjMeoLG1SMowqGTj1hzAnft325TQH_kwQSQiroV_iM78ktI7ex_BP6R-lWT5qrnQ0RpEorcoYcHenBK9x4jfKYfNwtl-6uXn4sNDKwfNfb6BOa2m708nu8zgGJOGS5TTx0fRMVc4yjvdcqO8oNY5CHT_tPen5QUWRJ--fwVCWJ6czGM8mP2dTEI43G79sE-4sNj2S9xgXhI8YF2dWyRua4I6l5_bmMXBglRS0ocmJVzKPULLEGOMoJ5RlBb7-9R6LwVGsjwRtIJxAQ-3d_Y1T5v8_P1g-P0Q_Hngjuj4MD8ARXX91ut7dsO2ExeHoHj9xi0FVulUODNT4aSckYGdewh2oxuFmwLQ2XA-4HeCPqwXutqJ4pbZCQTj5rzVYhWjmsK6q1uCnHSjcWs8EJfO73yaz1mjD8f3d5_nsboZvwQI31Q7RzIYUwI02X1CyRDT_L5cQ9nnCA6PuMucsHIvpVyAN_F8rDPQynMYlYG9h193zeEAPq3BLAarGoHgpoZ5630yWPh8397Pbq9X93eb-18388_XNsru4-i1PEZv7-YWeXN5JBeugxmES3u-Fw1HKSVPRssyjJqrTtGnStCE5SRjESZ3nScabOk290AGbi_qS1QUr-AVcRmkRRUmR59nF7jIqqzRPkqyIyjpKClrUFWdlTMvYl5sqvRCXlFBGchJHMctJNKU5FHESl2XdRFEaZSgmsOdCTsMNmzbbixAJl2kcU3IR7ihtuCSnVMFTFyYeZ7K8MJfB4GW7tSgmfttkT1yccBIuF-HaJ7j_FER9BcR31x-W3TVZsP7J8hetkZd__fIpqP6fAAAA__8G6J91">