summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-04-22 22:48:38 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-04-22 22:48:38 +0000
commitefa3fe14d14e427e56a19a11983f8f68246a8c9d (patch)
treed421ad3e70f463c5d485eea5078ed7cc46b79fd7 /llvm/lib
parent784ec12a3c3d1de370c35ee527f7d5d57b13cd98 (diff)
downloadbcm5719-llvm-efa3fe14d14e427e56a19a11983f8f68246a8c9d.tar.gz
bcm5719-llvm-efa3fe14d14e427e56a19a11983f8f68246a8c9d.zip
AMDGPU: Re-visit nodes in performAndCombine
This fixes test regressions when i64 loads/stores are made promote. llvm-svn: 267240
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
index 92ed678ba8f..4878e5b7a22 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
@@ -2229,6 +2229,11 @@ SDValue AMDGPUTargetLowering::performAndCombine(SDNode *N,
SDValue LoAnd = DAG.getNode(ISD::AND, SL, MVT::i32, Lo, LoRHS);
SDValue HiAnd = DAG.getNode(ISD::AND, SL, MVT::i32, Hi, HiRHS);
+ // Re-visit the ands. It's possible we eliminated one of them and it could
+ // simplify the vector.
+ DCI.AddToWorklist(Lo.getNode());
+ DCI.AddToWorklist(Hi.getNode());
+
SDValue Vec = DAG.getNode(ISD::BUILD_VECTOR, SL, MVT::v2i32, LoAnd, HiAnd);
return DAG.getNode(ISD::BITCAST, SL, MVT::i64, Vec);
}
OpenPOWER on IntegriCloud