<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/160393>160393</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[RISC-V] Assertion `VT.getVectorElementType() == N1VT.getVectorElementType() && "Extract subvector VTs must have the same element type!"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ewlu
</td>
</tr>
</table>
<pre>
Testcase:
```llvm ir
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"
define <2 x i16> @main() #0 {
entry:
%0 = tail call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> zeroinitializer)
%1 = trunc i32 %0 to i16
%2 = call i16 @llvm.vector.reduce.add.v8i16(<8 x i16> zeroinitializer)
%3 = insertelement <2 x i16> zeroinitializer, i16 %2, i64 0
%4 = insertelement <2 x i16> %3, i16 %1, i64 1
ret <2 x i16> %4
}
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.add.v8i32(<8 x i32>) #1
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i16 @llvm.vector.reduce.add.v8i16(<8 x i16>) #1
attributes #0 = { "target-features"="+v" }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
```
Commands/backtrace:
```
$ /scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc reduced.ll
llc: /scratch/ewlu/daily-upstream-build/llvm/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:8023: llvm::SDValue llvm::SelectionDAG::getNode(unsigned int, const llvm::SDLoc&, llvm::EVT, llvm::SDValue, llvm::SDValue, llvm::SDNodeFlags): Assertion `VT.getVectorElementType() == N1VT.getVectorElementType() && "Extract subvector VTs must have the same element type!"' 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: /scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc reduced.ll
1. Running pass 'Function Pass Manager' on module 'reduced.ll'.
2. Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on function '@main'
#0 0x0000599dcc2bb0e2 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1eef0e2)
#1 0x0000599dcc2b7ddf llvm::sys::RunSignalHandlers() (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1eebddf)
#2 0x0000599dcc2b7f2c SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x000071a4c1245330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x000071a4c129eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x000071a4c129eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x000071a4c129eb2c pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x000071a4c124527e raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x000071a4c12288ff abort ./stdlib/abort.c:81:7
#9 0x000071a4c122881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x000071a4c123b517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
#11 0x0000599dcbfd19ff llvm::SelectionDAG::getNode(unsigned int, llvm::SDLoc const&, llvm::EVT, llvm::SDValue, llvm::SDValue, llvm::SDNodeFlags) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1c059ff)
#12 0x0000599dcaaad51d llvm::SelectionDAG::getExtractSubvector(llvm::SDLoc const&, llvm::EVT, llvm::SDValue, unsigned int) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x6e151d)
#13 0x0000599dcab2b2de lowerBUILD_VECTOR(llvm::SDValue, llvm::SelectionDAG&, llvm::RISCVSubtarget const&) RISCVISelLowering.cpp:0:0
#14 0x0000599dcbeddaba (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) LegalizeDAG.cpp:0:0
#15 0x0000599dcbee0330 llvm::SelectionDAG::Legalize() (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1b14330)
#16 0x0000599dcc01b8d3 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1c4f8d3)
#17 0x0000599dcc01f57f llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1c5357f)
#18 0x0000599dcc020ad5 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1c54ad5)
#19 0x0000599dcc00acb7 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x1c3ecb7)
#20 0x0000599dcb0d2c53 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#21 0x0000599dcb77c35e llvm::FPPassManager::runOnFunction(llvm::Function&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x13b035e)
#22 0x0000599dcb77c7a1 llvm::FPPassManager::runOnModule(llvm::Module&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x13b07a1)
#23 0x0000599dcb77d0f2 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x13b10f2)
#24 0x0000599dca90850b compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#25 0x0000599dca8179a7 main (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x44b9a7)
#26 0x000071a4c122a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#27 0x000071a4c122a28b call_init ./csu/../csu/libc-start.c:128:20
#28 0x000071a4c122a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#29 0x0000599dca8fd495 _start (/scratch/ewlu/daily-upstream-build/build-gcv/build-llvm-linux/bin/llc+0x531495)
Aborted
```
Godbolt: https://godbolt.org/z/brrE3WjYP
Found via fuzzer
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUWVtz4yry_zTkhbILgWRJD3lQLp7_VGXOSU3yz9Y-uRAgmzMIuQDlMp9-q5F8kZMzt9rM7k5NEhnBr_vX9IXG3Hu9tkqdo-wCZVdnvA-bzp2rJ9Of1Z18Ob9XPgjuFWIVIhVakOG_MY8t1g6RKnC3VgFLHrjhL10fMGJXGFGqZi1ilZptEasWafw10_uHhBaIVQktZpbRYewOxig9YAant0bt8Jz24nGRznr7xXZPdma07Z9na9sPaxCppGq0hfmXFD9jnSwQu8YoJS3XFgF2iRFlBKP8ApFK2eBeBloYI5qRKChwbbDgxmDNKCwGpvNHJULn5k7JXqg5l3L-WGhGAZRdFiAMSFzjr8p12uqgudFflUO0BHREs2QAd70VAzDIC11UcpRP45RBdLL4tuhkcSR64Pm2aABmEVhbr1xQRrXKhhMbvVp7OahAMxqfFykmO7T0u2gg8ggi2UEkEcKpN-ansIH51bCNiF3gZW9F0J3FVQjOI1Zh24Fpai6-YNs1TilsO_9iBbZdb5-0ldhvlegND7w2Cj9pY5wKvbO4VW3nXhAtbGfVYBephOFO_coej16U_H5df94pprryEJyu-6D8GAYQV_kFxNYQcLNG8dA75SGi2BX8phePiFI87M0UINkD_PvojoL2aQaR6rJrW26lR3QJEoLj4jQZwTNNMaJLLxwPYoPoEjIYokvJtXmZ9VsfnOLtrO61kYAEf2dr8bh_BrMOKQWGIF8sjRF4sLCcG4NIZYyA3f0JOYB69EfXiC4vO6k-KBBwp4yKnnNVfTj5OBdbyJsFoQxERgBWIVbdXT1w06vjkWOUOLJW4Y9OKkSL3sb0LrG2AcJQdNaHCdpNJxBdwLvD6PXD_XRgFPpDgyB5afjag_eyClceMgWEB1qQh_v5WoWH6L3XQ_K4f9mqXXJmV-BSfyTfmQb6Qmqh18_gDgH7vh4iAj_ce9z2PuANf1Q4bBT2vFV4l6hCREmiZ-e44dooOUekur25ru6uAafVAXNc92vs1LZzAZL0JoQtxDWiS0SXax02fT0XXTvd4NnWdX8pERBdau97iKIl5hZsL0wvB22E436D9448vvfB9XELPYhzaus6cLu4ou7XoOFdgPCSfbsdnJ_M8a3r1o63mLt1D-z8TzrnrwVBMsfx3-feWm3XeMs9pIN8nwVvYeATt3wNlSTHncVtJ3so5DQ_gqI58KJ_A_f5493l7AFfVR9miF1fVR_wLQ9BOYs_HsyF974_Cmp2SiCa7wt_PtRgRjB5JoSQrCylELSuiaJHrutf_PBw67QN0d73MdnQ4jDJ8adVN9hxDJsYWeCUxTuYHtEL8pwo1RBF94cJlpwQyaVs3iLyubd3em25-T9upVHO7wPoPXWtpWwOutJTXRsq8EQrRIsxO3m91rbpVgHRCj4_dlrGx3Jc4ce0SOLPIICNAvKEpyKhacagtEWGQ759LharRXp8XIQXYu67-SLqHJccNE6ngKWqqcCr1TZsnOJy9UUbs9LtdsgoPHrbHNGl3QaD6PJ42hzKRQon3nwxgmc_Am7Bz7n5Jmwej887Iyzegj1e802sojzGyk8NSnOFHddeRRAfdwLR5Tx-evFSbSHVbTuvwR_izAhLczjXj6jFFJUWRdNgXkOGjThBDrsVhwatEqA5Li9fLU9qvLJmZTouV7KDSI9A2kaOMNz6teADVpLkoEwZTwosIVM0VmdJ_nM-E5cMPgOAk4isG5mUTfOLJfqkOA8l-_1K9LsmA0GysmkOZpokA865zBL5PTONNf5uV-In6fhXTTQ1-rsaYaGSLJEHG7CJDWpaU6mw6Z6Uu_j_jzdXq4fry_s_P5-wfGsbJ4fHE-5QPR_u-npspA8GKnF89fFOmRuQqe36JKeCjunEnZWUvOZgI247-9J2vceWt8pvY3UsX-tzo9axkxze7D79uT1hNURAzO-7OYej77E-2VQfRSDHf8tv9gq8f8Grk3RfPkDXxaTgkaQuJPsbXWEXhtGxJ6isvG51iDv67oqLtCkkOyienyjeZPnf5bCD4sNoZcwF91pcmE588ZNd3h8Lj33wXWllLMuPck4xpUUJl9l3abne_mk_cbHRVu0YTGi9evcbeKVcZgde5ZQX4aLOv8ELIkK8_PeyY0rUh4JKJ2f1mkgqsuMoOlEQWo4jam9yek1mvuUuzCF08Rt4r9MQnVb5PBcsO27El7ewbtf5_LQ672ZbVhOWqYNt6SmNnCc_QONTbOKmfjIO_Q4KOU8OFNgJBUma41bOHDn7EZmP7fYQ3_8pIglp6IHIpNLykhQZqbHo2q02am9wseEu1slqWuVvbh4-XXY2qOddYjVGvOG3k_LJiyQveY7jifkdqaZpXfKjiD5pUShPBMerFRyrVz5wF1aCG7PaH-SF7183GWMH89ai-QbaBWi22CgxP5VIizrer6-01eFUyPAIyLOIPPQN8VsKujPkaRMTEScc3lL_TWSWQkOSjcDldIcamZYZHiDfc48ylqTlWFMqaLyUPL1XJdWHTtadCYhVpxdhw4t559aILr8CunPX7B9__fN2WLnseivxo-a46b9-Ve5MnjNZspKfqfMkz4rFIiEFPduc51nTlE1R83qRsLQhMs1VUi-yNOGMELk40-eU0IyUUBmygtB5Uda1UEldS5aKIlmglKiWazOP1-OdW5_FO7jzZEFYyc4Mr5Xx8UsuSq16wvEtohRlV2fuPJqo7tcepcRoH_wBJuhg4rdjw4UUyq7-B240z3pnzn_91nI02uM5_VcAAAD__0n8rwo">