[PATCH] D139706: [RISCV][VP] expand vp intrinscs if no +v feature

Yingchi Long via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 13 02:15:58 PST 2022


inclyc added a comment.

In D139706#3987299 <https://reviews.llvm.org/D139706#3987299>, @craig.topper wrote:

> Can we test scalable vectors too?

Oops it crashes... (without +v)

  declare i32 @llvm.vp.reduce.add.nxv4i32(i32, <vscale x 4 x i32>, <vscale x 4 x i1>, i32)
  
  define i32 @vpreduce_add_nxv4i32(i32 %s, <vscale x 4 x i32> %v, <vscale x 4 x i1> %m, i32 %evl) {
    %r = call i32 @llvm.vp.reduce.add.nxv4i32(i32 %s, <vscale x 4 x i32> %v, <vscale x 4 x i1> %m, i32 %evl)
    ret i32 %r
  }



  LLVM ERROR: Don't know how to legalize this scalable vector type
  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/bin/llc -mtriple=riscv32 -verify-machineinstrs
  1.      Running pass 'Function Pass Manager' on module '<stdin>'.
  2.      Running pass 'RISCV DAG->DAG Pattern Instruction Selection' on function '@vpreduce_add_nxv4i32'
   #0 0x00007f84946951da llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) <llvm-project>/llvm/lib/Support/Unix/Signals.inc:567:11
   #1 0x00007f849469538b PrintStackTraceSignalHandler(void*) <llvm-project>/llvm/lib/Support/Unix/Signals.inc:641:1
   #2 0x00007f8494693a16 llvm::sys::RunSignalHandlers() <llvm-project>/llvm/lib/Support/Signals.cpp:104:5
   #3 0x00007f8494695a75 SignalHandler(int) <llvm-project>/llvm/lib/Support/Unix/Signals.inc:412:1
   #4 0x00007f8493d94950 (/usr/lib64/libc.so.6+0x37950)
   #5 0x00007f8493de042c (/usr/lib64/libc.so.6+0x8342c)
   #6 0x00007f8493d948b2 raise (/usr/lib64/libc.so.6+0x378b2)
   #7 0x00007f8493d7f471 abort (/usr/lib64/libc.so.6+0x22471)
   #8 0x00007f849451c214 llvm::report_fatal_error(llvm::Twine const&, bool) <llvm-project>/llvm/lib/Support/ErrorHandling.cpp:125:5
   #9 0x00007f849451c082 <llvm-project>/llvm/lib/Support/ErrorHandling.cpp:83:3
  #10 0x00007f8498425ace llvm::TargetLoweringBase::getVectorTypeBreakdown(llvm::LLVMContext&, llvm::EVT, llvm::EVT&, unsigned int&, llvm::MVT&) const <llvm-project>/llvm/lib/CodeGen/TargetLoweringBase.cpp:1595:23
  #11 0x00007f849abac44f llvm::TargetLoweringBase::getVectorTypeBreakdownForCallingConv(llvm::LLVMContext&, unsigned int, llvm::EVT, llvm::EVT&, unsigned int&, llvm::MVT&) const <llvm-project>/llvm/include/llvm/CodeGen/TargetLowering.h:1047:5
  #12 0x00007f8498ac7ae1 getCopyFromPartsVector(llvm::SelectionDAG&, llvm::SDLoc const&, llvm::SDValue const*, unsigned int, llvm::MVT, llvm::EVT, llvm::Value const*, std::optional<unsigned int>) <llvm-project>/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:341:15
  #13 0x00007f8498a7551c getCopyFromParts(llvm::SelectionDAG&, llvm::SDLoc const&, llvm::SDValue const*, unsigned int, llvm::MVT, llvm::EVT, llvm::Value const*, std::optional<unsigned int>, std::optional<llvm::ISD::NodeType>) <llvm-project>/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:172:12
  #14 0x00007f8498ac3e13 llvm::SelectionDAGISel::LowerArguments(llvm::Function const&) <llvm-project>/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10770:29
  #15 0x00007f8498b9925a llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) <llvm-project>/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1401:3
  #16 0x00007f8498b97cdd llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) <llvm-project>/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:479:3
  #17 0x00007f849ab1f3c5 llvm::RISCVDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) <llvm-project>/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h:37:5
  #18 0x00007f8498013e2f llvm::MachineFunctionPass::runOnFunction(llvm::Function&) <llvm-project>/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:8
  #19 0x00007f849528b643 llvm::FPPassManager::runOnFunction(llvm::Function&) <llvm-project>/llvm/lib/IR/LegacyPassManager.cpp:1430:23
  #20 0x00007f8495290462 llvm::FPPassManager::runOnModule(llvm::Module&) <llvm-project>/llvm/lib/IR/LegacyPassManager.cpp:1476:16
  #21 0x00007f849528bf19 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) <llvm-project>/llvm/lib/IR/LegacyPassManager.cpp:1545:23
  #22 0x00007f849528ba8a llvm::legacy::PassManagerImpl::run(llvm::Module&) <llvm-project>/llvm/lib/IR/LegacyPassManager.cpp:535:16
  #23 0x00007f8495290741 llvm::legacy::PassManager::run(llvm::Module&) <llvm-project>/llvm/lib/IR/LegacyPassManager.cpp:1672:3
  #24 0x0000561d7417889a compileModule(char**, llvm::LLVMContext&) <llvm-project>/llvm/tools/llc/llc.cpp:737:41
  #25 0x0000561d74176ca2 main <llvm-project>/llvm/tools/llc/llc.cpp:418:13
  #26 0x00007f8493d8034a (/usr/lib64/libc.so.6+0x2334a)
  #27 0x00007f8493d803fc __libc_start_main (/usr/lib64/libc.so.6+0x233fc)
  #28 0x0000561d741764b1 _start (<llvm-project>/build/bin/llc+0x284b1)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139706/new/

https://reviews.llvm.org/D139706



More information about the llvm-commits mailing list