Remove DAG combiner patch to fold vector splats. Instcombiner does it now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117720 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bob Wilson 2010-10-29 22:03:02 +00:00
parent 4cac5facc3
commit 46455096be
2 changed files with 0 additions and 21 deletions

View File

@ -6362,11 +6362,6 @@ SDValue DAGCombiner::visitVECTOR_SHUFFLE(SDNode *N) {
V = ConvInput.getNode();
}
// Fold a splat of a splat.
ShuffleVectorSDNode *SVV = dyn_cast<ShuffleVectorSDNode>(V);
if (SVV && SVV->isSplat())
return N0;
if (V->getOpcode() == ISD::BUILD_VECTOR) {
assert(V->getNumOperands() == NumElts &&
"BUILD_VECTOR has wrong number of operands");

View File

@ -213,19 +213,3 @@ entry:
%4 = add <2 x i64> %arg0_uint64x2_t, %3
ret <2 x i64> %4
}
; Redundant vector splats should be removed. Radar 8597790.
define void @fold_splat(<4 x i32>* %a, <4 x i32>* %b, <4 x i32>* %c) nounwind {
; CHECK: fold_splat
; CHECK-NOT: vdup
; CHECK: vmla.i32
%tmp1 = load <4 x i32>* %a, align 16
%tmp3 = load <4 x i32>* %b, align 16
%tmp5 = load <4 x i32>* %c, align 16
%tmp6 = shufflevector <4 x i32> %tmp5, <4 x i32> undef, <4 x i32> <i32 1, i32 undef, i32 undef, i32 undef>
%tmp7 = shufflevector <4 x i32> %tmp6, <4 x i32> undef, <4 x i32> zeroinitializer
%tmp8 = mul <4 x i32> %tmp3, %tmp7
%tmp9 = add <4 x i32> %tmp1, %tmp8
store <4 x i32> %tmp9, <4 x i32>* %a, align 16
ret void
}