<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/102352>102352</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [RISC-V] rv64g_xsfvcp Assertion `RISCVTargetLowering::getRegClassIDForVecVT(SubVecContainerVT) == InRegClassID && "Unexpected subvector extraction"' failed.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          patrick-rivos
      </td>
    </tr>
</table>

<pre>
    C Godbolt: https://godbolt.org/z/hqP9zj1Mj

Reduced LLVM IR:
```llvm ir
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"

define void @c(<4 x i16> %vec.ind, ptr %0) #0 {
entry:
  br label %vector.body

vector.body: ; preds = %vector.body, %entry
  %1 = sext <4 x i16> %vec.ind to <4 x i64>
  %2 = extractelement <4 x i64> %1, i64 0
 %3 = getelementptr [5 x i16], ptr %0, i64 0, i64 %2
  store i16 0, ptr %3, align 2
  br label %vector.body
}

attributes #0 = { "target-features"="+64bit,+d,+f,+relax,+xsfvcp,+zicsr,+zve32x,+zvl32b,-a,-b,-c,-e,-experimental-smmpm,-experimental-smnpm,-experimental-ssnpm,-experimental-sspm,-experimental-ssqosid,-experimental-supm,-experimental-zacas,-experimental-zalasr,-experimental-zicfilp,-experimental-zicfiss,-h,-m,-shcounterenw,-shgatpa,-shtvala,-shvsatpa,-shvstvala,-shvstvecd,-smaia,-smcdeleg,-smcsrind,-smepmp,-smstateen,-ssaia,-ssccfg,-ssccptr,-sscofpmf,-sscounterenw,-sscsrind,-ssstateen,-ssstrict,-sstc,-sstvala,-sstvecd,-ssu64xl,-svade,-svadu,-svbare,-svinval,-svnapot,-svpbmt,-v,-xcvalu,-xcvbi,-xcvbitmanip,-xcvelw,-xcvmac,-xcvmem,-xcvsimd,-xsfcease,-xsfvfnrclipxfqf,-xsfvfwmaccqqq,-xsfvqmaccdod,-xsfvqmaccqoq,-xsifivecdiscarddlone,-xsifivecflushdlone,-xtheadba,-xtheadbb,-xtheadbs,-xtheadcmo,-xtheadcondmov,-xtheadfmemidx,-xtheadmac,-xtheadmemidx,-xtheadmempair,-xtheadsync,-xtheadvdot,-xventanacondops,-xwchc,-za128rs,-za64rs,-zaamo,-zabha,-zalrsc,-zama16b,-zawrs,-zba,-zbb,-zbc,-zbkb,-zbkc,-zbkx,-zbs,-zca,-zcb,-zcd,-zce,-zcf,-zcmop,-zcmp,-zcmt,-zdinx,-zfa,-zfbfmin,-zfh,-zfhmin,-zfinx,-zhinx,-zhinxmin,-zic64b,-zicbom,-zicbop,-zicboz,-ziccamoa,-ziccif,-zicclsm,-ziccrse,-zicntr,-zicond,-zifencei,-zihintntl,-zihintpause,-zihpm,-zimop,-zk,-zkn,-zknd,-zkne,-zknh,-zkr,-zks,-zksed,-zksh,-zkt,-zmmul,-ztso,-zvbb,-zvbc,-zve32f,-zve64d,-zve64f,-zve64x,-zvfbfmin,-zvfbfwma,-zvfh,-zvfhmin,-zvkb,-zvkg,-zvkn,-zvknc,-zvkned,-zvkng,-zvknha,-zvknhb,-zvks,-zvksc,-zvksed,-zvksg,-zvksh,-zvkt,-zvl1024b,-zvl128b,-zvl16384b,-zvl2048b,-zvl256b,-zvl32768b,-zvl4096b,-zvl512b,-zvl64b,-zvl65536b,-zvl8192b" }
```

Command/backtrace:
```
> /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc reduced.ll
llc: /scratch/tc-testing/tc-compiler-fuzz-trunk/llvm/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp:2264: virtual void llvm::RISCVDAGToDAGISel::Select(llvm::SDNode*): Assertion `RISCVTargetLowering::getRegClassIDForVecVT(SubVecContainerVT) == InRegClassID && "Unexpected subvector extraction"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /scratch/tc-testing/tc-compiler-fuzz-trunk/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 '@c'
 #0 0x00005ed607762450 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1de0450)
 #1 0x00005ed60775f86f llvm::sys::RunSignalHandlers() (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1ddd86f)
 #2 0x00005ed60775f9c5 SignalHandler(int) Signals.cpp:0:0
 #3 0x000072224de42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x000072224de969fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x000072224de969fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x000072224de969fc pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x000072224de42476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x000072224de287f3 abort ./stdlib/abort.c:81:7
 #9 0x000072224de2871b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x000072224de39e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x00005ed60609d332 llvm::RISCVDAGToDAGISel::Select(llvm::SDNode*) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x71b332)
#12 0x00005ed6074e36a4 llvm::SelectionDAGISel::DoInstructionSelection() (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b616a4)
#13 0x00005ed6074f3270 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b71270)
#14 0x00005ed6074f6ac2 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b74ac2)
#15 0x00005ed6074f8297 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b76297)
#16 0x00005ed6074e87c9 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x1b667c9)
#17 0x00005ed60666a367 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#18 0x00005ed606c935bc llvm::FPPassManager::runOnFunction(llvm::Function&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x13115bc)
#19 0x00005ed606c939e9 llvm::FPPassManager::runOnModule(llvm::Module&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x13119e9)
#20 0x00005ed606c928e6 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x13108e6)
#21 0x00005ed605f6dca6 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#22 0x00005ed605eb1ba6 main (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x52fba6)
#23 0x000072224de29d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#24 0x000072224de29e40 call_init ./csu/../csu/libc-start.c:128:20
#25 0x000072224de29e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#26 0x00005ed605f64575 _start (/scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc+0x5e2575)
zsh: IOT instruction (core dumped) /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/build-llvm-linux/bin/llc
```

Godbolt: https://godbolt.org/z/E49ae58jG

Found via fuzzer.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWV1zoziz_jXkRmUXFiDgIhdOPM5J1czZqcmcuXUJIWxNhCCSII5__Sl9gMHxfsy-tXl3aoIeWupWP61GtDBWiu0FpbdBchckmxvc6UMjb1usJSPPC8n6Rt0UTfl2ew8emrJouA6iNTho3aogWgdwG8Dt3nUsG7kP4PYUwO3h5Wt--rn68jMIN0G4dtdvtOwILcHnzz--gMdvRt31otD957yvAZNOqrHcUw1KrDHHb02nQRBtQAAhXdRBtKaLNojWKLaXBRvBCmZBtF7BbCEi6GRPRgbhzKyWrOV0MCmZIj2KF514Fs2rWHAmuuNiL7pRzV1LWjFBQd-wEgRxSAIz2X0MjoCtUBB9AgFMekqWTJQBvAetlkYSBjAHAYxCEKR3zhAVWr6NAQCgkIDjgnJvQDdyaYI-nXsqjtYgiO5AK2mpPIeZGrw3EjeJnyGAycoOVfRoQnnda6Cbsc-E9NNEHVp1etQSE005ranQ88F2EjM5QzEIvWoAk8hq7umgZeOS3CXeg2QzD9ag74GZenBD6UZSo-S6vU5kMOZsLwD8axFNN9PQYq0lKzpNlV8mE9H0zmSGS5dFRbHuJFUmH6KNucI7FBdMB_A-gHelayrXSMrx0cGjqnrSOnxiREkPexrB44B5BIsA3i-wuVhEzIXay7GlkpmgYb5Qdd3WV6TimlRdl14VvjSKle_l3ZXBJ0ywuiLl2JK7EDNSMd5elytr5mAudhp1IE0nNJVUvLr7PdYtdlD3mHvYq7O4V7MO3VNieagaMyetSUk53XuspHs0F6qmbd06pDTWlAp7owY9RUi1H1CrpYdN1dbVgGfeqolxNTOpzF6qHdbEt6PbE6dVh-Ijt7DHJR1A50CBpRcx0WM_TOC2cab7tqgt6s3lSHrMO48KNgJdY8Faf0v5q0c1JgOitUeK1dato6oIxYp63FdCEs7aY_VSjaLXGhPy8vIyCF7MfdmUs_uXxvezihnOTBEsy5I3gk7lFe_U4SzVB4rLAk9wMcHqjEndTG4aUdZNfxZUNa1ZeTwLBsru5rKT1i1m8ixQb2IyvC9d0I-9yWeBzWxN63x5JQc78oRXMJPKQRQPCDsvT7g4YAe4VF6hxitUOPjqxzviJ8f5VLiBxbO_fR7uj651OsTpEDfI5daJUNdUrqmb1oOhtYROJRPOVuWMVEVVM-HgwTejYBh7mIKhlxEUFx4VTT2idkQnjwiuGzxgVg2Iq0GJSJd9J0aEexJPzITcoYoKQpnDBya00Px80-Ju0D203t7A_dldhW9K31LfOrrPbr5n5Rvqhynf7cJW152bVCu3vL1fsd4vmdnwK49QXI7oLHMR7CcBN_i1xh4fhnbs9lnQP-99O8gFGYD3tn8W4xifdgYN-mpoBz016qlBz_PtPeGer0Lo17fnK5iNEEXZKIdhPHbABA0wgika5XGYjx3JCg4QjUZQkkTjiGyVmyEQnF_hQ_U4faPfN3WNzYpuC0yeTcVC35eb_tbWLVtFJNbkEMCtJgtNlWYmZOaGNHXLOJWLqjudFlp24tnY7RgvF3vSj9hUr65yNCKzSFvOCZCu6l1y7ubjnNj67denNBNMGlYEcPvd1icB3H57fLr_MbSPT5Rv1g_fm836YUlaUylDaEtk0DOpO8xdDWtNResgWlu1QcWoO_ET5dS8urLzyKfN_zbm3bQOYG4MrpWiUrNGgACF1ozz6XPzSqVhZLX2VH-j-3uOlXrcbBv5g5If3wOYPXXFD0ruG6ExE1QaWW7qL1OCPYqzCgggCiAyJdn_CVNLEE1LoLrC1XZDWcoaYYuzFFSYcVouXcy_fv60fvpkhtdMAwyKbg8kbRupTcF7cZhh-tAVS9LU85AvWtn8tMHYMqU6UwtuARYlYILwrqRAHyggEqsDGHPOT_-kMXkGZVe3YxKGS2D_fZXNXuIaYLnvTHGk_mZu_O10XHlHvnVCMLEHLVamCk63nbDhBF-N4AsWeE-lCWwjQN2UnTk8wXRiDaaeLfwdiyY3Fj_AZv2wCKJPm_UD-Iq1plKAR6G07Nx0LuPsOtq5qsGPAKbuyJWOB4soBOExDMMwoSUK0xTBOAknSa3elANfJRParsJ3uxVM81ni112jtKS4tjl2D5jQ7sSW_YMLEcC78LgqaRjb8-GZ02rOKakyVF3j9K0TT2wvMP8fLEpOTb2QfZjbZZmhauY2vHQ7JwmYORjAzEfWiZXfmUL7NxqKvKEUQhiXNIYJDD0pt-UdM7RD8fSMbjrIUjVLZN2zKjPn4rnNHOUVAbtdqw-S4nL3zDjfsbp1p1Ns020ZwK1oTSmxnQ5bms07Njtpis72k79i3xwWBOZ_aDm1Hy8m0UDXLE_V_tBcll-YSy-DG6cI7JVdD2vJwQBul_buTZXU1LXbtlHMJILETFFrG6ZBtJ7EIJubhllaRQAXZo-1pnTpls-KnHcrw_hsIX9nYVWAneA73uByVzY1Zm5dmC3xtkZcqz3BztxqlRqX_LKbJymcG4xymqNfSyWrMqaSsTl7PFGYl1EE_-P36Ec8tOmqiCI44zJ_ZmMaIRxPuIxb8YzKppls15Pd-sM2nwKtEI5nRKI5kSqCafinRO6bkj5QsRblp5rpzfrhIzmkK5iGMw7xBQeECfxTDk665vwOK0bueENMMT_JsvE1ThqhtH3BfRTDGJN5uiUXDDOYp3_KUHbiN_EFkwMTdCAzY_iu7wMpIpinM4ro4onKUpL_AcXPdI_J27-fKEIpyWdE09k2iBCO0HQtL3w1NeSE5VV673ktWyz10n49v2LvffVg_MpmfpE8Sgoy8Wv71agO1ewve_SPRzparZKCzCKdXzLKaf4XGH2xNfo8gbzoI9nkdJY3MLxgAzOKJmz45IGY8Hqs2_N28N_mFGZ0VhLAWUmQVKgkGAE_17gM5IClfdmvzRHjTODz5x9fzPGXHofdmXNyNbfh7HWd0GJVYARsUfQBxBNYFXjO-6JSh3mZh2C3MxXUTmks9Y5gzndj2UZU976w9KXrNaXlIYjWia2I0XnW-HJWGofA6jDB9OVEDhrrC2vdVYr2N0I4CW1yzeiMyjUWV41HqSm6k7NtdJEecZImwFn9kIWjMEmTceFOykQVPP72HbDJsdtkaCOp_UhBS_cw_XN-_f6Hu1_4jflTnGOaZD8fpvrbphMl6BkGxjMqlzflbVTmUY5v6O0qhVGYpGEW3RxuaQlzZM5TSZYnGFYoJmlBEcpLWNIKJzfsFoYwDrMwXWVJFkbLvEgTSlIEwwKmOKdBHNIaM740LI1jN_bD0O0qhFECb-zPj8r-sA6hoK_A9gYQBsnmRt7a0BTdXgVxyJnS6mxGM83tL_Luk0mQbIDsUbzfuZ8T_-Wf3G46yW___jc1H73-Fv5_AAAA__89_SIg">