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

    <tr>
        <th>Summary</th>
        <td>
            [RISCV64] Storing a float vector of size 1 after float arithmetic and branching causes assertion error `Invalid ANY_EXTEND!`
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          HazyFish
      </td>
    </tr>
</table>

<pre>
    ### Description

Storing a float vector of size 1 (`<1 x float>`) following some float operation (`fadd`, `fsub`, `fmul`, `fdiv`, `frem`) and branching causes assertion error `Invalid ANY_EXTEND!`.

Storing a float vector of size greater than 1 or a double vector of any size works without any issues.

RISCV32 does not have the problem.

### Minimal Reproduction

https://godbolt.org/z/3anMWsYKo

```ll
define void @f() {
BB:
  %B = fdiv <1 x float> <float 0.5>, <float 0.5>
  %PTR = alloca <1 x float>
  br label %BB1

BB1:                                              ; preds = %BB
  store <1 x float> %B, <1 x float>* %PTR
  ret void
}
```

### Stack Trace

```
llc: /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5322: llvm::SDValue llvm::SelectionDAG::getNode(unsigned int, const llvm::SDLoc &, llvm::EVT, llvm::SDValue, const llvm::SDNodeFlags): Assertion `VT.isInteger() && Operand.getValueType().isInteger() && "Invalid ANY_EXTEND!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./llvm-project/build-debug/bin/llc -mtriple=riscv64 crash-reports/riscv64/1.1.ll
1.      Running pass 'Function Pass Manager' on module 'crash-reports/riscv64/1.1.ll'.
2.      Running pass 'RISCV DAG->DAG Pattern Instruction Selection' on function '@f'
 #0 0x0000000003adad2a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:11
 #1 0x0000000003adaedb PrintStackTraceSignalHandler(void*) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
 #2 0x0000000003ad9526 llvm::sys::RunSignalHandlers() /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Signals.cpp:103:5
 #3 0x0000000003adb605 SignalHandler(int) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007f6de304a980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #5 0x00007f6de1f3ae87 raise /build/glibc-uZu3wS/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007f6de1f3c7f1 abort /build/glibc-uZu3wS/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00007f6de1f2c3fa __assert_fail_base /build/glibc-uZu3wS/glibc-2.27/assert/assert.c:89:0
 #8 0x00007f6de1f2c472 (/lib/x86_64-linux-gnu/libc.so.6+0x30472)
 #9 0x00000000037db748 llvm::SelectionDAG::getNode(unsigned int, llvm::SDLoc const&, llvm::EVT, llvm::SDValue, llvm::SDNodeFlags) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5323:5
#10 0x00000000037c1b4d llvm::SelectionDAG::getNode(unsigned int, llvm::SDLoc const&, llvm::EVT, llvm::SDValue) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5034:10
#11 0x00000000037c21c2 llvm::SelectionDAG::getAnyExtOrTrunc(llvm::SDValue, llvm::SDLoc const&, llvm::EVT) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1397:5
#12 0x00000000037e57a3 llvm::SelectionDAG::getNode(unsigned int, llvm::SDLoc const&, llvm::EVT, llvm::SDValue, llvm::SDValue, llvm::SDNodeFlags) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:6281:15
#13 0x00000000037c1c50 llvm::SelectionDAG::getNode(unsigned int, llvm::SDLoc const&, llvm::EVT, llvm::SDValue, llvm::SDValue) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5965:10
#14 0x0000000003797e02 getCopyToPartsVector(llvm::SelectionDAG&, llvm::SDLoc const&, llvm::SDValue, llvm::SDValue*, unsigned int, llvm::MVT, llvm::Value const*, llvm::Optional<unsigned int>) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:683:19
#15 0x00000000037467a7 getCopyToParts(llvm::SelectionDAG&, llvm::SDLoc const&, llvm::SDValue, llvm::SDValue*, unsigned int, llvm::MVT, llvm::Value const*, llvm::Optional<unsigned int>, llvm::ISD::NodeType) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:484:5
#16 0x0000000003746235 llvm::RegsForValue::getCopyToRegs(llvm::SDValue, llvm::SelectionDAG&, llvm::SDLoc const&, llvm::SDValue&, llvm::SDValue*, llvm::Value const*, llvm::ISD::NodeType) const /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:928:13
#17 0x000000000375e37b llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(llvm::Value const*, unsigned int, llvm::ISD::NodeType) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10142:3
#18 0x0000000003749bb1 llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(llvm::Value const*) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:2107:1
#19 0x0000000003748c45 llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:1145:7
#20 0x000000000383e848 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/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:678:3
#21 0x000000000383e38b llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1603:11
#22 0x000000000383b936 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:467:3
#23 0x0000000001d768c5 llvm::RISCVDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h:37:5
#24 0x0000000002894c85 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:8
#25 0x0000000002f797d6 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1430:23
#26 0x0000000002f7e602 llvm::FPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1476:16
#27 0x0000000002f7a0a9 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1545:23
#28 0x0000000002f79c1d llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:16
#29 0x0000000002f7e8e1 llvm::legacy::PassManager::run(llvm::Module&) /home/henry/aflplusplus-isel/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1672:3
#30 0x0000000000d2cdbc compileModule(char**, llvm::LLVMContext&) /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:737:41
#31 0x0000000000d2b162 main /home/henry/aflplusplus-isel/llvm-project/llvm/tools/llc/llc.cpp:418:13
#32 0x00007f6de1f1dc87 __libc_start_main /build/glibc-uZu3wS/glibc-2.27/csu/../csu/libc-start.c:344:0
#33 0x0000000000d2a96a _start (./llvm-project/build-debug/bin/llc+0xd2a96a)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzdWltT4zgW_jXhRUXKlu8PPCRcZqhtuinIsjvzkpJtJfG2YqUsG0j_-j1HcmLLDUN6eiZQQ4VEN-uc71x1cSrz7dmIeuZDLrjKqmJTF7IcORcjZ2K-72tZFeWSMLIQktXkkWfQQuSCqOIbJy4Z0XgUOiPv3CXPZszIu8QWmpCFFEI-4eNKrnk7g9zwiiGZ9tEFy3M9_pxgTTVpr7ZuRK-WF4-9WsXXLR1W5iStWJmtkFbGGsUVYUrxStPhVQUsw9jr8pGJIieTz7_NL_87u_x8MaIutI9_APGy4qzmFalXrAT40MNILptU8N5IVm7N6CdZfVXkqahXsql1c6FUw5VF8e76_vzBozANsF3KmqzYIwcCnGwqCROvrdGdym6KslgzQe44jMubbKi7VV1v1MiDJ67gs5R5KkU9ltUSat_g32PlzX_Ub_-S1vQgUv0RwjTkfFGUAE6C4Ea-s0CtgcxH0dT0T6dIQhcJqDSYkpF3QVBXZGAVWDcydcYBWgkqctDUzXM7u9MzMbChjA3n2g1MKyJYyoWmPHX7SLDqwZAf-Rt5UxA6z5UmrefcUVKgW_49JBjS4rDYo5MWw-7xitdahi2H0cVA3C-r-L5m2Vcyq1jGX1SSqQqRIVJQ6Qr8DH94WW3hly3ERjQK_08LxQU0CfG4PgV7-R8Ya1vFnyKF73OZ8194CaV7Lri2p4vJL4PqONtsgFrgUYpE9QRgAN7k_uKBiYb3W_qz6JYlrz8DEbChplTFsuQ5KcoaBZjJUtXWbJ9kBpBC7OyaLx9mdkNL9eUpkNaVYEsFFovMTvYxAWT3MBsX6rqs-ZJXO6NGciH5giGqzMfArZ58tt1wM-K1J0aUvhxcQEg0IgtWCJ63bnz76XJyf0kg0K0LiAkkbZZgHRtZ1aSWZOC0EDmadJzJdU9XtgZNQIGCDoNFmYkmN9Ejq5hakRQsqEYDGu_iG5pU3qw3e7_FAJjcVnJZsTVh1bJZ87JGJsj4e3ppU4j8NOfANtaKUg_JyOm6hvwhODhOVajsMfQNA6cGG3LYtkPJHbvjXYBxkfpdU5YYdTcQtkGa0VVTassht9hww0qmZR4RaFpDsINwC7U3CdCoRU1fIqIDLwHjPAWXhR8gVkNsL8k1GFJlAirZG3FLfbHjDOomHkatj4PDOsR5dnZ_HstZTlnPItVWmcItpJhaa8L4No27QRV7mkugz9m6NX_tIsnP-_d9s0FJQenfZfGMDeCCTKgxWA26dIhO4rodHHcIh-cpGfBu5vgVjE9or9BBjk6OwXDohchwxy8d8JsE4JsviB8MwWJb7b35L2N4x6mJlq7joYA7Tr0Bp2noBGQoyiPp3XciW4x-y1y0CHPuOT5LYofM5xXXOXAOgUrLq539OQ7noX8qirJ5Pl2WjenY1Cuw4Hys5BjWaFPn2aUwC8bhPZmgT8ZdeIzHEakYACK7OIMhECbLTpvfG-_pfl-lY_A6eqU0DiiMMVCBenO-wTjQGJjQ8Ki5Ac4wOuDUY23puDJwOk7CASdZtHAJS6VGehgndW6koZ_SROIBkcgmQjNvwUCqZp06xxQxT9nh2M1z-4Ihmdgk4yFJP6IH6C5DrYVaa6D9iFpaSyzLjfI08uM_mfOH2V4n8B9K-a8l-6OvhXrujXHTzgNR5qZ-_k5COrYsHM_XAa8ThjsQBnUz-pYwJuX28rn-Us0qSLdWenxF-2-I5shScL0ksi3CTk0RDyLmfQi3-WC-FFIdN92e6LyhM2WB85FEd2wPS8Jg4GG-LaEk4g4lIIVzudnO5C2D1fGDPpywPckiFR4unz8WxwTbXxf8zVC4ZtfYUprYfV_0gRSkeO_cmhF32McS-xSTMa929hljqHeTTviBLXw_jFg0EP4_Sez9cdf3F6aA7mZ2ye-jFT_27XAbDpWCy82O8Tu-VFeyMqLbxQyjMOw6IOH8tBJfa58crqYXxW9OQd5DCQksLDH1dVqIbC0E3IvSV4TYTmU6UBPm5EU-FFXdMAFaKVTN7QD2vWxet_8PY6qu4_p4ctYTUzww1iRN3UPFNJOXz7i5Q7O9XnzmPOf5HwrpfVBTt7_JRNCDfYQfZ35wCOjHQhW1hbB_WtM53Ttp1_UxOUd7nNTeCsQej1_dL11Dpd86ZarIpkJmXy28hQBXmBc13qNASvfOh105r2E3aVpKwDCXOp4ra2hPaugpUNYhbsGE0gV9jmMC_r5NDxomgQ_BTiqlOKraUVe7JUEUW_5M3aHKvfi1sDdU-USITut2HtofiR7fxntg3VAfZbmdJ1M6gJsmXvgmXNjXfSlvGF7Z8R0yC-53fe-DF5ZztnKt3YibR2GcWSsLPFOGKWbyQ8CdsQpWNlDQfO1-ka8dj-MV4rN3q9TaUNA48bO4D3LALJ7R92C-iO_v0-MLzOwWJLiTjDtU1kqdLmCflPcN9eoWn93dNRwZz_UdfH3iS5Zte1zsnM73HEyiPTMMB1h46NADsNzouxPb8tqmo-CI9Il92OGIBjiYw5CLmJWy3K5lo0jJ1lxt9C1J0nL8McEFOvX3lRQPDS5z-8eAQs9kyr35rtebLmq8F5rACwaaSoYWF3P3bTDvDsQNI3u5bV_SOTnN8hR3a-tNIfjehLIVq_R6ebDn-vTp4eZcljV__gtScA2rFqWrmflueY50PPa7HGvfxAHPqRtSsmZF-XeQ993BRm5_sdZeJLh5FkdkPse7grmqWVXPd7wccnWRKbxo0Hc2pqg79Tz6GsPzcTffnW_Zt2WAniUhI4YwxorDb6n1nYZ5fn-psX-Z4oSfuWEIodZxfOckP_PyxEvYSV3Ugp-NgqlOnaE_Ci7Im69FsQW-JGQ6WVXUqzWvi-yn31Q6aSpx9udfEQhihwYnq7OQBswPOXMoDdzcy71kwTPGQp7QHLbp3ol-p0Yh6BGlJX8yry3h2wzBxUlxRuFBJ6GRG3m-44x9GkUu4zTyOE9c7o98h4M9iDHygS8cnVRnmiXQhoJO3BWorhPw46ZdyxjnZ029ktXZr-zbFlhfnWjaZ5r3_wMJC-KN">