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

    <tr>
        <th>Summary</th>
        <td>
            [RISCV] "Invalid size request on a scalable vector" for llvm.vp.scatter operation
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          steven-johnson
      </td>
    </tr>
</table>

<pre>
    The enclosed file uses an `llvm.vp.scatter` call that looks legal to me (and passes `verifyFunction`), but fails at codegen time with the error below:

```
$ ~/llvm-17-install/bin/llc /tmp/scatter.ll -o /tmp/scatter.o
LLVM ERROR: Invalid size request on a scalable vector.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /usr/local/google/home/srj/llvm-17-install/bin/llc /tmp/scatter.ll -o /tmp/sss
1.      Running pass 'Function Pass Manager' on module '/tmp/scatter.ll'.
2.      Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on function '@stride_fn'
 #0 0x0000562a4f88241b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x2a9541b)
 #1 0x0000562a4f87fdab llvm::sys::RunSignalHandlers() (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x2a92dab)
 #2 0x0000562a4f87fed5 SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f14ae97bf90 (/lib/x86_64-linux-gnu/libc.so.6+0x3bf90)
 #4 0x00007f14ae9caccc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x00007f14ae97bef2 raise ./signal/../sysdeps/posix/raise.c:27:6
 #6 0x00007f14ae966472 abort ./stdlib/abort.c:81:7
 #7 0x0000562a4d498bbd (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x6abbbd)
 #8 0x0000562a4f7e0b3a (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x29f3b3a)
 #9 0x0000562a4f82dde8 (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x2a40de8)
#10 0x0000562a4f82de0c llvm::TypeSize::operator unsigned long() const (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x2a40e0c)
#11 0x0000562a4f5ce7a0 getUniformBase(llvm::Value const*, llvm::SDValue&, llvm::SDValue&, llvm::ISD::MemIndexType&, llvm::SDValue&, llvm::SelectionDAGBuilder*, llvm::BasicBlock const*, unsigned long) (.constprop.0) SelectionDAGBuilder.cpp:0:0
#12 0x0000562a4f5cf5c6 llvm::SelectionDAGBuilder::visitVPScatter(llvm::VPIntrinsic const&, llvm::SmallVectorImpl<llvm::SDValue> const&) (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x27e25c6)
#13 0x0000562a4f5d0f2b llvm::SelectionDAGBuilder::visitVectorPredicationIntrinsic(llvm::VPIntrinsic const&) (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x27e3f2b)
#14 0x0000562a4f59d653 llvm::SelectionDAGBuilder::visitIntrinsicCall(llvm::CallInst const&, unsigned int) (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x27b0653)
#15 0x0000562a4f5d2c9f llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x27e5c9f)
#16 0x0000562a4f658f87 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&) (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x286bf87)
#17 0x0000562a4f65a560 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x286d560)
#18 0x0000562a4f65bf57 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (.part.0) SelectionDAGISel.cpp:0:0
#19 0x0000562a4eb16dff llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#20 0x0000562a4f0b2729 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x22c5729)
#21 0x0000562a4f0b2861 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x22c5861)
#22 0x0000562a4f0b3177 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x22c6177)
#23 0x0000562a4d54701c compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#24 0x0000562a4d49d9b7 main (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x6b09b7)
#25 0x00007f14ae96718a __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#26 0x00007f14ae967245 call_init ./csu/../csu/libc-start.c:128:20
#27 0x00007f14ae967245 __libc_start_main ./csu/../csu/libc-start.c:368:5
#28 0x0000562a4d53d871 _start (/usr/local/google/home/srj/llvm-17-install/bin/llc+0x750871)
Aborted
```

[scatter.ll.zip](https://github.com/llvm/llvm-project/files/11841283/scatter.ll.zip)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMWF1vIysS_TXkBcWi6e-HPDhxPBtpohvFs3m1-GqbCYZeoDPJPOxvX0E7tnG8O7l7PauVZpw2NKfOqSrKFMQ5udJCXIHyGpSzCzL4tbFXzosXoS-_m7V2Rl9Qw9-uvq0FFJop4wSHnVQCDk44SDQEFVLqZTN56SeOEe-FBRWCjCgF_Zp4qIx5dlCJFVHQG7gREOCGaA574gIEqNCLsLJ7mw-aeWk0qBDALcA3kA4edkQqB4mHzHCxEhp6uRHwh_Rr6AMna42FVCjzA-RTgGYAvX9WaPtv_IoL-E-A54HrZVZfSu08UQrgOZU6jjMI8NxveoDnWyETpeCl-ThsRsivX5_u4e3j4x-PIJ_CO_1ClOTQyZ8CWvGPQTgPjYYEOkYUoUrAF8G8sZNx9cPX2-niFrqBbqSHBNJhBa3ojfXBTWvvexcU4TnA85X064FOmNlsFbwL6a35LpgHeC6dG4QDeA6Db6VmauAiuohZ4taQEvbsLWFia37hCXuGfNj0O7-hCUDtgzUrSzaQ2NWwEdoHEsEDg7PBqGEk-GxlzEoJgOdrswl_nP3-V33r3MgiCyweB62lXsUcgQDX77kBH8LAPdFkJSzAdXDwxvBBhayqT9gAuN4KxqdwH-8WN5dPcDb9cgny29n0C3yIKzW8087bYTS6EEqMqTla7N7ZBJsFct5KLpZdmB5tQYBzBNErQgiVFSZF1zS4yCiMscunIJ-6Nzc-PFipfYzGtxAegJv9S5b8WBrnrSAbgKuwJaT2ALdhC_31mAB8jV4xacsio2HH7ahnKfW64-Qk9cdBL-RKE_U3orkS1kVaZ2aHOUnZ4WN2gpcw4QFws_XTOOwmrA9pjuL_HVC-Baq7rCCirWnXoi13JSnA89emWlbFpZJ6eL1c6WGcYBNnJlWkl4clCbkixWSEMQaXy96vrSB8-SyVWspNr0TYWyQm0QTgue59EH_42oSBfFoUIJ_W1R6_POYsOgwtkU5EHBf1AjyfxG9vjos-FIXeOPkK8Dy-GZFxDfLpAXCVAldVUWNIaChHEcrz0SdxKCI0WeC2R6gP48KLtqGUnzEVKkIp5YmzmyQTaoFoTs6ZfG2X05wkJts0-TDnojlrvheIi2ZnMmxGdGxSIHawG7-99WIhf4rxm-mFJd5YOOj4286hMnq13ZfMaOfPzFYglrBNa0fJRE0QXAn_dy07YzfXxKUl7omoQYzMAJ6GErefW8zi7Lb0_Xr8bjEbH-7F5k5z8Rp88-nVuyo_m365HqTioZAcMbomTrJrZdhzQvnI2bECTuILvTX9BMVS9BH-Y1kKHsRHHuxKVv2CZpx4kU76p4fF9hCWOPnhTnsrtZPsnfex-A1R6imeT-42vQL5zUeH5bcHi89a5WuBS1YleZSnXuCow_TzXohCHqzgksUiu5P_CbecWVneYZooK1JlLa_K_NPKdoRvorkDMWEgHFqSAO8S8_znhpqiqswTZeVRzDBru08rS8Qcnr5-W2RK1nYJ_yrhX5VN19T_hv_dQqjD0X1hSHRIJZ1fSj8W5WRXjVNceCK3SNpwsTR9sOCSVw-8EYLqbaheN7AjysWHFyM5yG-TsfjSOPZ_Rocao84fzqaiXVMn4ayPwknKCn0ynFOl9hF1SUh3rchvysum4mWFEiHNkRDalb_OSzvoP_Q9YWupxa61PhTyYe5dyaQn1n_80QrQp3-xkkORoFnFu8N9f2QotHAHFE9y-4-kTuCd5IXTkxOiuMbtAa_5Q1j63kz-aUbnCjhmZY3bw4Dj7Jh4U2WfIH4fO-E0yNuh30C6qbKEND4inWf1YZYqsSLsbdvz7umPp42thP8R9Sqrk0qBk8MGL4saZeFEsOmlEjunsjUZD4RHZ8KvX5_ub4z24vW9GijFTidkcdQi8ZbWcEOkPmefRFFLU3lHTWNVZw2By2XoZZfOE-uXjCi1jERCs8fc8LGF3LaopxZN1qETDK1qvjd63FDWuCjjteBSaumP7YyPAfwygscOM8NN6FQPHFifAk2UnBJxEjyvAni5x27SJMh5U2dwRD1jeOoSNfV-40xDOy346SvL8bO83l9nTX7KHpQzgJs_fUHYSRXvB7OsKTLc5Mk1WcR953TBr3Le5i25EFdZ1dRFXZe4uVhfMcSaLmtrQpDIeYsb1vCKko5VtEBtiS7kFUY4RxXGOC9KXE-6usxaSmlZEspyWoICiQ2RahKvjI1dXcR7y6sqL8r2QhEqlIu30Rhr8QPGSYAxKGcX9ioKosPKgQKF04rbo3jpVbzGfrxb3DyBcgYBxp--kQUYw85YeHSPDcdmWhp9MVh19d9fyUZ1_woAAP__Kmsg0Q">