<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64645>64645</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
RISCV asserts on v2f64 argument for some ABI options
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:RISC-V
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
arsenm
</td>
</tr>
</table>
<pre>
```
; RUN: llc -mtriple=riscv32 -mattr=+zdinx \
; RUN: -verify-machineinstrs -target-abi=ilp32 < %s
define <2 x double> @v2f64(<2 x double> %x) {
ret <2 x double> %x
}
```
```
llc: /home/matt/src/llvm-project/llvm/lib/Target/RISCV/RISCVISelLowering.cpp:15121: bool llvm::RISCV::CC_RISCV(const DataLayout &, RISCVABI::ABI, unsigned int, MVT, MVT, CCValAssign::LocInfo, ISD::ArgFlagsTy, CCState &, bool, bool, Type *, const RISCVTargetLowering &, std::optional<unsigned int>): Assertion `!ArgFlags.isSplit() && PendingLocs.empty() && "Can't lower f64 if it is split"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/matt/src/llvm-project/build_release/bin/llc -mtriple=riscv32 -mattr=+zdinx -verify-machineinstrs -target-abi=ilp32
1. Running pass 'Function Pass Manager' on module '<stdin>'.
2. Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on function '@v2f64'
#0 0x0000000005f8c928 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/matt/src/llvm-project/build_release/bin/llc+0x5f8c928)
#1 0x0000000005f8a65e llvm::sys::RunSignalHandlers() (/home/matt/src/llvm-project/build_release/bin/llc+0x5f8a65e)
#2 0x0000000005f8cfb8 SignalHandler(int) Signals.cpp:0:0
#3 0x00007fc7e94cf520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007fc7e9523a7c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x00007fc7e9523a7c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x00007fc7e9523a7c pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x00007fc7e94cf476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#8 0x00007fc7e94b57f3 abort ./stdlib/abort.c:81:7
#9 0x00007fc7e94b571b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007fc7e94c6e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x000000000483d811 llvm::RISCV::CC_RISCV(llvm::DataLayout const&, llvm::RISCVABI::ABI, unsigned int, llvm::MVT, llvm::MVT, llvm::CCValAssign::LocInfo, llvm::ISD::ArgFlagsTy, llvm::CCState&, bool, bool, llvm::Type*, llvm::RISCVTargetLowering const&, std::optional<unsigned int>) RISCVISelLowering.cpp:0:0
#12 0x000000000483df0f llvm::RISCVTargetLowering::analyzeInputArgs(llvm::MachineFunction&, llvm::CCState&, llvm::SmallVectorImpl<llvm::ISD::InputArg> const&, bool, bool (*)(llvm::DataLayout const&, llvm::RISCVABI::ABI, unsigned int, llvm::MVT, llvm::MVT, llvm::CCValAssign::LocInfo, llvm::ISD::ArgFlagsTy, llvm::CCState&, bool, bool, llvm::Type*, llvm::RISCVTargetLowering const&, std::optional<unsigned int>)) const RISCVISelLowering.cpp:0:0
#13 0x000000000483f70e llvm::RISCVTargetLowering::LowerFormalArguments(llvm::SDValue, unsigned int, bool, llvm::SmallVectorImpl<llvm::ISD::InputArg> const&, llvm::SDLoc const&, llvm::SelectionDAG&, llvm::SmallVectorImpl<llvm::SDValue>&) const RISCVISelLowering.cpp:0:0
#14 0x0000000005d39c66 llvm::SelectionDAGISel::LowerArguments(llvm::Function const&) (/home/matt/src/llvm-project/build_release/bin/llc+0x5d39c66)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWEtz4yoW_jV4Q9klgZ4LLxQ76nFVeioVZ7J1IQnJTCNQAcq176-fAsm27Dw6Pd3L29WJJB7f-c45H3AI0Zo1gtIlCO9AuJ6R3uylWhKlqWhnhayOSxB5439vDbwM4Dv49J9_A5xBzks4b41iHacArxXT5StGcN4SYxTAa4Du_q6YOEAQrt5MhnD-ShWrj_OWlHsmKBPaKA3nhqiGmjkpGMBrxjuMIMArCFCoRxD3u6I1E9R2IXiAlewLS-IegsB7RXUUAJS87UPhAaAUgvhuAIFQUfMOhh032IrXU6O3sbj-5Ly0ngGU72VLAcptIADKtSoByjl_beedkv-lpRk_7YMVAOXPzmeA8qfNdvVyem62lD_Iv6hiolmUXQdw5oc-8q2RQkoOHQbOAM6Gee51tdqNKEkphTZwTQx5IEfZGwhQBNAKuv7sbjNMsC9oBXvhpFBBJoz9_v7yPHmsVi-EZ04tw6wHWW5ELW3fZrsekVSTc9Lo5-MwZWuIoSejlvH0-XzsbF9m3weijtYQipPbp8naVIMJ2RkmBeEAr64I43uAUhuYTGuq7Bho84L8E6cF09uOM2N1YSVgcSP4SEXFRPMgS72gbWeO190AoRURAMUGcssI1lEAWQ2ZgUxDPeAhgGJYE8ZptRiE8Phwn23voe6LlhlIYNE3UNFOKgONhHtjOm29QTlAecPMvi8WpWwnoriWCtO6pxqgHBJhvS15X1Fo9hSWiug9LEj5wyhS0tH81pDyB6z61ipmaPIWwEsflWwUaSFRTd9SYfTX1Vr0jFc7RTkl2o4tmHCDvrgBfHmpD2x9y_apF8IqoCNaQ4DivBely-ujbfhOBGmosqGXAray6rlVUwzwSpuKCSeIeAwIeg_Pqm3-AtfZtznA9-vsG3wkxlAl4MbS6wdjW8qpexst1ScW1tZ5q4nH7QQg7EHv4J3-hXVSpiiZLFR91MPLo2LCuEw929QBlFwGKfLXTmqjKGlH_bs1aWWZ_Ga-ALrzDiMtu2LOvP0b3iQK6Xu8n3qxZY0g_F9EVJwqfV4xf4qatXxFDd2GtC4SeEUCoGSM0NCsx-3Scz9nIDwCxXUZ0zQo6xB5I_FhHz4k0S4K5pyJ_jBvRD90lAstF5GjF6AQeVfkgivMEGESl3C368xeUVLtfjDOd6ztOLUrjjjpLADKRWc4QPl02MKeHkEAcBZHF_zwK_jC6pbwT5HjxJ4fk2hE7yFPp30Kl6Q3cPFtcIM4go12-XBIwytA-cJ9HXVFO7urdVKzA0C5IkxTh22XcTaJQXINXYRxjSEp7H7qoEw1pM81DezsITlZlekbBL-AO8F3XJJqV8mWsCEvTDh3bXOrm5IMcL4fW0pj2u1q8W68jWga_ZqUcErT6Cwli3m1BIMEV4nv__SMv_RPznl3no5bxw3Az479y_Dx5P-k4bOi4DLqg_JgCuMKhQ_qhMs4WzGMBcONUzdFw9T9r1UO8KOCa7KD2BSh2xTVXv05maGDCMKPf9ON6HqTqUZfJe77cCqeDrg3ebuOz6V92xLOX2hppNq0nXXsnaCfTNq6dhqXaZgH4WZWjP8I6s8IympqUtX-XFn4Rll17NGvKMt95VK1hGfnum6axe36hfCevpeatxH5LUlNbT7I8qO-U0W1zr79kqRPjtj4Rr8c3-CqiKhwWkbRB6ws2CS474f1XI5evPxzRdBA73I4XN82Z9USVylOyYwu_Sj1kyCMk3i2X5a4SsOCRh72iwpHPknCNExr4qOKksQvZ2yJPIS9xEc-9tIgXhAc4jJJvTKmSUEqAgKPtoTxheW7kKqZucvHMgqiIJxxUlCu3d8KELK3DiqqUZvzF3sRCtcztXSuFn2jQeBxpo2-gBlmOF26jEHiLmraFtWuij5fS2AtFdSypTC728BhlelZr_jy_785Of7_CwAA___5LRMz">