llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.65k stars 11.84k forks source link

Unsupported ARM Neon intrinsics in Target-specific DAG combine function for VLDDUP #37379

Closed llvmbot closed 2 years ago

llvmbot commented 6 years ago
Bugzilla Link 38031
Resolution FIXED
Resolved on May 08, 2020 08:59
Version trunk
OS Linux
Attachments LLVM IR that generates crash-on-invalid
Reporter LLVM Bugzilla Contributor
CC @DMG862,@kosarev,@sjoerdmeijer
Fixed by commit(s) 336325

Extended Description

The new VLDDUP operations inserted in https://reviews.llvm.org/D48439 are not handled in the target-specific DAG combine function.

ARMISelLowering.cpp::11443 - CombineBaseUpdate

How to reproduce: llc -debug < problem-9bb6ba.ll

Combining: t637: ch = TokenFactor t635:3, t636:3

Combining: t636: v4i16,v4i16,v4i16,ch = llvm.arm.neon.vld3lane<(load 24 from %ir.32, align 2)> t634, TargetConstant:i32<1048>, FrameIndex:i32<32>, t635, t635:1, t635:2, Constant:i32<0>, Constant:i32<2>

Combining: t635: v4i16,v4i16,v4i16,ch = llvm.arm.neon.vld3dup<(load 24 from %ir.33, align 2)> t634, TargetConstant:i32<1047>, FrameIndex:i32<33>, Constant:i32<2>

unexpected intrinsic for Neon base update UNREACHABLE executed at /work/bf/LLVM/local/src/lib/Target/ARM/ARMISelLowering.cpp:11483!

kbeyls commented 2 years ago

mentioned in issue llvm/llvm-bugzilla-archive#45824

4c958a03-4ad7-407c-a85b-320d9a7221b0 commented 6 years ago

The tests we have indeed did go green. Thanks for the fix!

kosarev commented 6 years ago

Fixed in r336325. Please confirm. Thanks.

kosarev commented 6 years ago

Here's the fix: https://reviews.llvm.org/D48920

Thanks for reporting.

llvmbot commented 6 years ago

assigned to @kosarev