Issue |
152150
|
Summary |
[DAG][X86] Backend building SelectionDAG failed when hitting new datatype (`v7f16`)
|
Labels |
new issue
|
Assignees |
|
Reporter |
lialan
|
## Problem
Hitting this assertion:
```
third_party/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:772: void getCopyToPartsVector(SelectionDAG &, const SDLoc &, SDValue, SDValue *, unsigned int, MVT, const Value *, std::optional<CallingConv::I
D>): Assertion `NumRegs == NumParts && "Part count doesn't match vector breakdown!"' failed.
Please report issues to https://github.com/iree-org/iree/issues and include the crash backtrace.
Stack dump:
0. Running pass 'Function Pass Manager' on module 'conv2d_accumulate_2_4_128_128_times_3_3_8_dtype_f16_f16_f16_dispatch_0'.
1. Running pass 'X86 DAG->DAG Instruction Selection' on function '@conv2d_accumulate_2_4_128_128_times_3_3_8_dtype_f16_f16_f16_dispatch_0_conv_2d_nchw_fchw_2x8x126x126x4x3x3_f16'
#0 0x000073e658618898 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/nod/iree2/third_party/llvm-project/llvm/lib/Support/Unix/Signals.inc:834:13
#1 0x000073e658616520 llvm::sys::RunSignalHandlers() /home/nod/iree2/third_party/llvm-project/llvm/lib/Support/Signals.cpp:105:18
#2 0x000073e658619621 SignalHandler(int, siginfo_t*, void*) /home/nod/iree2/third_party/llvm-project/llvm/lib/Support/Unix/Signals.inc:426:38
#3 0x000073e650245330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
#4 0x000073e65029eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x000073e65029eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x000073e65029eb2c pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x000073e65024527e raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x000073e6502288ff abort ./stdlib/abort.c:81:7
#9 0x000073e65022881b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x000073e65023b517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
#11 0x000073e65f9c606a getCopyToPartsVector(llvm::SelectionDAG&, llvm::SDLoc const&, llvm::SDValue, llvm::SDValue*, unsigned int, llvm::MVT, llvm::Value const*, std::optional<unsigned int>) /home/nod/iree2/third_party/llvm-project/llvm/lib/CodeGen/Selec
tionDAG/SelectionDAGBuilder.cpp:0:3
#12 0x000073e65f9c606a getCopyToParts(llvm::SelectionDAG&, llvm::SDLoc const&, llvm::SDValue, llvm::SDValue*, unsigned int, llvm::MVT, llvm::Value const*, std::optional<unsigned int>, llvm::ISD::NodeType) /home/nod/iree2/third_party/llvm-project/llvm/li
b/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:518:12
```
Issue started to occur after https://github.com/llvm/llvm-project/pull/151763 , which introduces new data types, one of them is `v7f16`.
## How to reproduce
compile the attached file.
[repro.txt](https://github.com/user-attachments/files/21602292/repro.txt)
## Problem Analysis
>From the surface, the immediate crashing issue is that X86 wants to copy parts in `v7f16` out, but the `getVectorTypeBreakdown` in X86 is not returning the number of parts expected.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs