<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Justin,<div class=""><br class=""></div><div class="">Sorry for the delay - the tests were added in <span style="font-family: 'Helvetica Neue';" class="">rL234015</span></div><div class=""><font face="Helvetica Neue" class=""><br class=""></font></div><div class=""><font face="Helvetica Neue" class="">Simon.<br class=""></font><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 31 Mar 2015, at 01:14, Justin Bogner <<a href="mailto:mail@justinbogner.com" class="">mail@justinbogner.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">Simon Pilgrim <<a href="mailto:llvm-dev@redking.me.uk" class="">llvm-dev@redking.me.uk</a>> writes:<br class=""><blockquote type="cite" class="">Author: rksimon<br class="">Date: Sat Mar 28 13:31:31 2015<br class="">New Revision: 233482<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=233482&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=233482&view=rev</a><br class="">Log:<br class="">[DAGCombiner] Fixed incorrect test for buildvector of constant integers.<br class=""><br class="">DAGCombiner::ReassociateOps was correctly testing for an constant<br class="">integer scalar but failed to correctly test for constant integer<br class="">vectors (it was testing for any constant vector).<br class=""></blockquote><br class="">Test case?<br class=""><br class=""><blockquote type="cite" class="">Modified:<br class="">    llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp<br class=""><br class="">Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp<br class="">URL:<br class=""><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=233482&r1=233481&r2=233482&view=diff" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=233482&r1=233481&r2=233482&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)<br class="">+++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Sat Mar 28 13:31:31 2015<br class="">@@ -705,16 +705,8 @@ static bool isConstantSplatVector(SDNode<br class="">           EltVT.getSizeInBits() >= SplatBitSize);<br class=""> }<br class=""><br class="">-// \brief Returns the SDNode if it is a constant BuildVector or constant.<br class="">-static SDNode *isConstantBuildVectorOrConstantInt(SDValue N) {<br class="">-  if (isa<ConstantSDNode>(N))<br class="">-    return N.getNode();<br class="">-  BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N);<br class="">-  if (BV && BV->isConstant())<br class="">-    return BV;<br class="">-  return nullptr;<br class="">-}<br class="">-<br class="">+// \brief Returns the SDNode if it is a constant integer BuildVector<br class="">+// or constant integer.<br class=""> static SDNode *isConstantIntBuildVectorOrConstantInt(SDValue N) {<br class="">   if (isa<ConstantSDNode>(N))<br class="">     return N.getNode();<br class="">@@ -723,6 +715,8 @@ static SDNode *isConstantIntBuildVectorO<br class="">   return nullptr;<br class=""> }<br class=""><br class="">+// \brief Returns the SDNode if it is a constant float BuildVector<br class="">+// or constant float.<br class=""> static SDNode *isConstantFPBuildVectorOrConstantFP(SDValue N) {<br class="">   if (isa<ConstantFPSDNode>(N))<br class="">     return N.getNode();<br class="">@@ -773,8 +767,8 @@ SDValue DAGCombiner::ReassociateOps(unsi<br class="">                                     SDValue N0, SDValue N1) {<br class="">   EVT VT = N0.getValueType();<br class="">   if (N0.getOpcode() == Opc) {<br class="">-    if (SDNode *L = isConstantBuildVectorOrConstantInt(N0.getOperand(1))) {<br class="">-      if (SDNode *R = isConstantBuildVectorOrConstantInt(N1)) {<br class="">+    if (SDNode *L = isConstantIntBuildVectorOrConstantInt(N0.getOperand(1))) {<br class="">+      if (SDNode *R = isConstantIntBuildVectorOrConstantInt(N1)) {<br class="">         // reassoc. (op (op x, c1), c2) -> (op x, (op c1, c2))<br class="">         if (SDValue OpNode = DAG.FoldConstantArithmetic(Opc, VT, L, R))<br class="">           return DAG.getNode(Opc, DL, VT, N0.getOperand(0), OpNode);<br class="">@@ -793,8 +787,8 @@ SDValue DAGCombiner::ReassociateOps(unsi<br class="">   }<br class=""><br class="">   if (N1.getOpcode() == Opc) {<br class="">-    if (SDNode *R = isConstantBuildVectorOrConstantInt(N1.getOperand(1))) {<br class="">-      if (SDNode *L = isConstantBuildVectorOrConstantInt(N0)) {<br class="">+    if (SDNode *R = isConstantIntBuildVectorOrConstantInt(N1.getOperand(1))) {<br class="">+      if (SDNode *L = isConstantIntBuildVectorOrConstantInt(N0)) {<br class="">         // reassoc. (op c2, (op x, c1)) -> (op x, (op c1, c2))<br class="">         if (SDValue OpNode = DAG.FoldConstantArithmetic(Opc, VT, R, L))<br class="">           return DAG.getNode(Opc, DL, VT, N1.getOperand(0), OpNode);<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class="">llvm-commits@cs.uiuc.edu<br class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits<br class=""></blockquote></div></blockquote></div><br class=""></div></div></body></html>