summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM
diff options
context:
space:
mode:
authorIvan A. Kosarev <ikosarev@accesssoftek.com>2018-07-05 08:59:49 +0000
committerIvan A. Kosarev <ikosarev@accesssoftek.com>2018-07-05 08:59:49 +0000
commit466037900c34e2d2727e8688088f8d2b9eef81bd (patch)
treefa8d8c38959474444797b7b87dbb56dd7413b56f /llvm/lib/Target/ARM
parent097ab704c9c43a85e918d6c2c9366e08b677b91d (diff)
downloadbcm5719-llvm-466037900c34e2d2727e8688088f8d2b9eef81bd.tar.gz
bcm5719-llvm-466037900c34e2d2727e8688088f8d2b9eef81bd.zip
[NEON] Fix combining of vldx_dup intrinsics with updating of base addresses
Resolves: Unsupported ARM Neon intrinsics in Target-specific DAG combine function for VLDDUP https://bugs.llvm.org/show_bug.cgi?id=38031 Related diff: D48439 Differential Revision: https://reviews.llvm.org/D48920 llvm-svn: 336325
Diffstat (limited to 'llvm/lib/Target/ARM')
-rw-r--r--llvm/lib/Target/ARM/ARMISelLowering.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index 6e5942fb6ed..9b143dcff73 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -11488,6 +11488,12 @@ static SDValue CombineBaseUpdate(SDNode *N,
NumVecs = 3; break;
case Intrinsic::arm_neon_vld4: NewOpc = ARMISD::VLD4_UPD;
NumVecs = 4; break;
+ case Intrinsic::arm_neon_vld2dup:
+ case Intrinsic::arm_neon_vld3dup:
+ case Intrinsic::arm_neon_vld4dup:
+ // TODO: Support updating VLDxDUP nodes. For now, we just skip
+ // combining base updates for such intrinsics.
+ continue;
case Intrinsic::arm_neon_vld2lane: NewOpc = ARMISD::VLD2LN_UPD;
NumVecs = 2; isLaneOp = true; break;
case Intrinsic::arm_neon_vld3lane: NewOpc = ARMISD::VLD3LN_UPD;
OpenPOWER on IntegriCloud