<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/128775>128775</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Assertion `VT.getSizeInBits() == Operand.getValueSizeInBits() && "Cannot BITCAST between types of different sizes!"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
backend:Hexagon
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
iajbar
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
androm3da
</td>
</tr>
</table>
<pre>
The `./reduced_matrix_types.ll` test case below asserts at O2. This case was reduced from https://github.com/llvm/llvm-test-suite/blob/589a966491ac5edc64c6f915d7301351e309db65/SingleSource/UnitTests/matrix-types-spec.cpp
```
target datalayout = "e-m:e-p:32:32:32-a:0-n16:32-i64:64:64-i32:32:32-i16:16:16-i1:8:8-f32:32:32-f64:64:64-v32:32:32-v64:64:64-v512:512:512-v1024:1024:1024-v2048:2048:2048"
target triple = "hexagon-unknown-linux-musl"
define void @_Z13testTransposeIjLj8ELj7EEvv(<56 x i32> %matins.7.6.i, ptr %ResSpec) #0 {
entry:
%split = shufflevector <56 x i32> %matins.7.6.i, <56 x i32> zeroinitializer, <7 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6>
store <7 x i32> %split, ptr %ResSpec, align 32
ret void
}
attributes #0 = { "target-features"="+hvx-ieee-fp,+hvx-length128b,+hvxv68,+v68,-long-calls" }
```
Test build:
```
./bin/llc -O2 --mtriple=hexagon ./reduced_matrix_types.ll
[44/44] Linking CXX executable bin/llc
llc: /local/mnt/workspace/upstream/toolchain_for_hexagon/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:5444: SDValue llvm::SelectionDAG::getNode(unsigned int, const SDLoc &, EVT, SDValue, const SDNodeFlags): Assertion `VT.getSizeInBits() == Operand.getValueSizeInBits() && "Cannot BITCAST between types of different sizes!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: ./bin/llc -O2 --mtriple=hexagon ./reduced_matrix_types.ll
1. Running pass 'Function Pass Manager' on module './reduced_matrix_types.ll'.
2. Running pass 'Hexagon DAG->DAG Pattern Instruction Selection' on function '@_Z13testTransposeIjLj8ELj7EEvv'
#0 0x0000557da88ed474 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./bin/llc+0x24e9474)
#1 0x0000557da88eb14e llvm::sys::RunSignalHandlers() (./bin/llc+0x24e714e)
#2 0x0000557da88ed93a SignalHandler(int) Signals.cpp:0:0
#3 0x00007f35d0ec1520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007f35d0f159fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x00007f35d0f159fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#6 0x00007f35d0f159fc pthread_kill ./nptl/pthread_kill.c:89:10
#7 0x00007f35d0ec1476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#8 0x00007f35d0ea77f3 abort ./stdlib/abort.c:81:7
#9 0x00007f35d0ea771b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007f35d0eb8e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x0000557da8617cc9 llvm::SelectionDAG::getNode(unsigned int, llvm::SDLoc const&, llvm::EVT, llvm::SDValue, llvm::SDNodeFlags) (./bin/llc+0x2213cc9)
#12 0x0000557da8607907 llvm::SelectionDAG::getBitcast(llvm::EVT, llvm::SDValue) (./bin/llc+0x2203907)
#13 0x0000557da759a738 llvm::HexagonTargetLowering::extractHvxSubvectorReg(llvm::SDValue, llvm::SDValue, llvm::SDValue, llvm::SDLoc const&, llvm::MVT, llvm::SelectionDAG&) const HexagonISelLoweringHVX.cpp:0:0
#14 0x0000557da759f48c llvm::HexagonTargetLowering::LowerHvxExtractSubvector(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLoweringHVX.cpp:0:0
#15 0x0000557da75a9b50 llvm::HexagonTargetLowering::LowerHvxOperation(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLoweringHVX.cpp:0:0
#16 0x0000557da758cd87 llvm::HexagonTargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&) const HexagonISelLowering.cpp:0:0
#17 0x0000557da870f9c8 (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) LegalizeDAG.cpp:0:0
#18 0x0000557da870eb96 llvm::SelectionDAG::Legalize() (./bin/llc+0x230ab96)
#19 0x0000557da865588f llvm::SelectionDAGISel::CodeGenAndEmitDAG() (./bin/llc+0x225188f)
#20 0x0000557da8653abc llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (./bin/llc+0x224fabc)
#21 0x0000557da864fefd llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (./bin/llc+0x224befd)
#22 0x0000557da768e4e4 llvm::HexagonDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) HexagonISelDAGToDAG.cpp:0:0
#23 0x0000557da7b786e3 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (./bin/llc+0x17746e3)
#24 0x0000557da806a6d2 llvm::FPPassManager::runOnFunction(llvm::Function&) (./bin/llc+0x1c666d2)
#25 0x0000557da8072b32 llvm::FPPassManager::runOnModule(llvm::Module&) (./bin/llc+0x1c6eb32)
#26 0x0000557da806b227 llvm::legacy::PassManagerImpl::run(llvm::Module&) (./bin/llc+0x1c67227)
#27 0x0000557da7534936 main (./bin/llc+0x1130936)
#28 0x00007f35d0ea8d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#29 0x00007f35d0ea8e40 call_init ./csu/../csu/libc-start.c:128:20
#30 0x00007f35d0ea8e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#31 0x0000557da752f465 _start (./bin/llc+0x112b465)
Aborted (core dumped)
```
I have bisected this failure to d9ed93da86a3ffd663f6b19481551855d5cc86be.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMWV1vnDq3_jXOjcXI2IDhIhfkY9pI6WnV5FRb52ZkzIJxwxiEzWTSX39kw2SGyUfTd-8tvVLLGH886_Hy8uOFI4xRtQY4R_EFolSJn4XoEaUovjoTg123_bnQZd9uWCnOirZ8Or9fA0YJWSC67KEcJJSrjbC92q3sUwdm0TQoIdiCsVgKA7iApn3EwhjorcHC4q90gfH9Wpmx_VEYPAHhqm83eG1tZxDLEV0iuqyVXQ_FQrYbRJdNs93_BM5CYAZlAdFl0bQFoss4zUSWJFEWChlDKZNIJlUWxiVnJGRxCIxkZZHEiC7vlK4buGuHXjqA_9XK3oOxBtHlOJ3ATycwHciF7DpEcvcvIdM_klvR12BxKaxoxFM7WIzYFUaUQrBBLIegQyxn9PAIBGI5CXSYjK8qiRDLp0egZl2V7zQ9AhUilqfuf1DNulUziO2sbTtvi0NX__wMtiGhru3oJ9hSEjkzxz-UHuZqe9U1sJ_nGnaibnUw6AfdPuqgUXrYBZvBNOMgRPISKqUBb1tVYhSR1f-FzK3bfS-06VoDNz9vf6bXtz_59fV2i2iK2GWc4B32zrjGiMYbYZU2C75IFgrRS9zZ3lV_B3PXgUQ0w4gyghG_QCQHbfsnFzokx66X6Ro1LotZD1XVwBakbXv8ezMnPX5B3yqtrBKN-gX91IMfQbBLxSgmrsUVwn2B7gtsX4j2hXhfSBC79pSNbXs4RZ6m8drkL7FoVK0xo354D9a72vmeX40rIKztVTFYMJOj3NrxC7d-46IGFQg79GDcorEr96QX6-0uUAAQVB2il1NFA7q265CmxXPdNknH8lgImlbXgRRN49DwROJozyCSu12Gi0E15bhQx81OVAql_RaXOPhKcRBsxqBD7GqKN_yO9GAHGF9EEaLLKELxFb5V-kHpGl_-9ReGHcjBiqIB_GwFkdw9WY7deytF4xRAW0SXj23_YDrh9WHojO1BOPWxbdvItVB6VbX9aiK1V6Wub3-CtEdapZwwXbYlfALX6w4akFa1-ir_dPLqZYblcRS5DYnvrn6IZgDsgViOWD4b62tqsP_TloBoOmgv5CVW2oeKbLWx-O7qtpUY0cRVXf-4dz8T7nEnh7FsRG0QzZzp3Ku1arVT-h_3ixrsnfoFN_pCOYVM_bZjVy6WvnbQC126Lh72ZT9nPHHxdim0bi2-uLm_zO_ucQH2EUBjv3a4rXCpqgp60BYb9cvFY-iDkeNKqAbKBSL5t9vr_O4am6HYKIsFLoYa99C1vcW2_ejJcVgjZczgDC2x0M5zshlKwHYNWPbCrHEh5IPthQRn-84K-YDLYdONgUsWiGTf-rbuxQaLvh42oK0zj_92GCOShw79-6C1C95OGLd9-XLQfv3xN1fxRWhROzHiuNV405aD02bK3wN2rSSnr4F_nnhd5Z8CxK6v8k_4m7AWeo1vtLH9MJp-DsLJbrXnhCj_gMRzp1ReiciOEELimJciTaGMeHQU6ubJjIVvvdLWu_6-91sxPXTqxeOq3e9LH-I--F3MpbM1QPSC7GgEWcQjF-IjhfCEQhFG8BqF74O-U7UWzWehywb6Q2S_boWHERys0NOJZkzgGR6i6cR7rDaTEBD_f0RhEwqvWFwSkGFMCfY8JoXZpckqiaYzuNbD2CAXpl0knlhEY0oOtKIZYBXGWSXxatXZdQ-iXD2oplmpTdeAi2rhF9hNVnfWCeRxt4VTTy9ZPJnA44-AaxdaonkXlqc-NZlgk9dgj8e8i5Vmx1j81KERT3Bt_AJ4mLGI6HLh355MCZ2Tiq41aud2mFAGPDDlLsWacNM5ruC8YlgUTqE8ji3H9fJVIy-X3O23RfZieFjglW5WTSvKVdluhBoXQmk_S1e9MbUUI1YYckfGLbILcDJHK1LIkj-LGpZBloxR4wDnWyYJuZTZf3hAHY3yh5Q_i6ZtfGibzqzjzs-n13Hl8Qn2xsakIZMyO8xlvjETwjPCfzeXC2WlcDTTj1B8kwlhGeEHJuyYCY8zwVl6hDcJ871P127bR-iVrscm2LnjyX7e7u6GYkxuv0M9o_eGwz5e-fbifHkx81ly4-JmSjGmKdzcQbOfwOcff53onHNFdOKKKkrlx1zh3z5vd9ejS5798QFn_G3W8Zy1yIqY_Blrn0aNp-q_TzeZ001lmfI_oPsvcX2FKJ9tUU6qTKZuTwnd6qdNOxisxQamHD17afIWav_BNpGf3r52J8RHhcodu32fQzp-zCc94QNFlrwrGc8E3ssYGBHFschmc2GK4zSt3rDi_DfWTl8YuS6vN8p6d79jksZhmlbPJik5MclEIX9rcqzNm-ZCGCUvmlY-mJlnn9PVg3y8SSiqRCEPhE4OmqiCqvwtoX7QX_UXIddKw972jNCLtncZFVCVB0az44InKUQQvdw0V_mn-_afIHW0QfaYLwOSzk-OgqcJMPwmtPtqOCL1KpuP-CbkPEqAHXwzU-2UJCIp6RGN5Tdnef-58k8QkEmSlPRAIJ4T4LRgHyHwxX8zzVdjqnrXOBTsyHhyMvuC0mM5baAW8mn6mjnQuNl0hwj5cwqc0kMGQflc0VmUsQT7XPH18SEjGTtIDj3NWtMyI3i1crngyljR25UUTbN6zj6lGV5mxlPi_dqgxRqxPE7HK83R5Gmmm0JEsB-gtLKnVsaigw489Jjt0vGWckRk5DXE2SRe4_8qMuPuNIkn4HDuXVpFSYxHyLf8S4soiUf_5i7Th9L1lG0P_gYB9sLy4nrsBq_FFnChDEg3yq6V8RcgQw_YtrjM3Bek00TBqqpMElYlRZhFaRjHYRrHZSxlmhSwOCvPWZmxTJzBecgj4lp5eLY-z8KizOICOE9YxICzKmO8DMuqpAwqFp2pc0poTCiNaehOikWayULKimYsJbQChiICG6GahYvZRdvXZ_4i5TykKefxWSMKaMz0F4ViqP0tzqUrC_kAujyo5fSHhv7c38sUQ21QRBplrDlAW2UbOP8vupE6G_rm_D-_apqctD2n_x8AAP__ADKVXA">