mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
Revert "[SLP]Need shrink the load vector after reordering."
This reverts commit 4284afdf9432f7d756f56b0ab21d69191adefa8d. This changes computed values in fused_batchnorm_test_cpu. Not equal to tolerance rtol=1e-06, atol=0.001 Mismatched value: a is different from b. not close where = (array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]), array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]), array([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1]), array([0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5])) not close lhs = [-0.6636615 -0.9804948 -1.148275 -0.68193716 -0.8572368 -0.65046215 -0.6993756 -1.2244141 -1.0938729 -0.50369143 -0.51830524 -0.738452 -0.7214286 -0.48115745 -0.9380924 -0.9341769 -0.5916775 -1.2896856 -0.7264182 -0.9746917 -0.783249 -0.7659018 -0.86214024 -0.47784212] not close rhs = [ 0.44102234 0.12418899 -0.04359123 0.42274666 0.24744703 0.45422167 0.40530816 -0.11973029 0.01081094 0.6009924 0.5863786 0.3662318 0.38325527 0.62352633 0.1665914 0.1705069 0.5130063 -0.18500176 0.37826565 0.12999213 0.3214348 0.338782 0.24254355 0.62684166] not close dif = [1.1046839 1.1046838 1.1046838 1.1046839 1.1046839 1.1046839 1.1046838 1.1046839 1.1046839 1.1046839 1.1046839 1.1046839 1.1046839 1.1046838 1.1046839 1.1046839 1.1046839 1.1046839 1.1046839 1.1046839 1.1046839 1.1046839 1.1046838 1.1046838] not close tol = [0.00100044 0.00100012 0.00100004 0.00100042 0.00100025 0.00100045 0.00100041 0.00100012 0.00100001 0.0010006 0.00100059 0.00100037 0.00100038 0.00100062 0.00100017 0.00100017 0.00100051 0.00100019 0.00100038 0.00100013 0.00100032 0.00100034 0.00100024 0.00100063]
This commit is contained in:
parent
3c6978b84b
commit
0d8c596c50
@ -4260,13 +4260,18 @@ Value *BoUpSLP::vectorizeTree(ArrayRef<Value *> VL) {
|
||||
if (E->isSame(VL)) {
|
||||
Value *V = vectorizeTree(E);
|
||||
if (VL.size() == E->Scalars.size() && !E->ReuseShuffleIndices.empty()) {
|
||||
// Reshuffle to get only unique values.
|
||||
SmallVector<int, 4> UniqueIdxs;
|
||||
SmallSet<int, 4> UsedIdxs;
|
||||
for (int Idx : E->ReuseShuffleIndices)
|
||||
if (UsedIdxs.insert(Idx).second)
|
||||
UniqueIdxs.emplace_back(Idx);
|
||||
V = Builder.CreateShuffleVector(V, UniqueIdxs, "shrink.shuffle");
|
||||
// We need to get the vectorized value but without shuffle.
|
||||
if (auto *SV = dyn_cast<ShuffleVectorInst>(V)) {
|
||||
V = SV->getOperand(0);
|
||||
} else {
|
||||
// Reshuffle to get only unique values.
|
||||
SmallVector<int, 4> UniqueIdxs;
|
||||
SmallSet<int, 4> UsedIdxs;
|
||||
for (int Idx : E->ReuseShuffleIndices)
|
||||
if (UsedIdxs.insert(Idx).second)
|
||||
UniqueIdxs.emplace_back(Idx);
|
||||
V = Builder.CreateShuffleVector(V, UniqueIdxs);
|
||||
}
|
||||
}
|
||||
return V;
|
||||
}
|
||||
|
@ -10,8 +10,7 @@ define void @wombat(i32* %ptr, i32* %ptr1) {
|
||||
; CHECK-NEXT: [[TMP1:%.*]] = load <2 x i32>, <2 x i32>* [[TMP0]], align 8
|
||||
; CHECK-NEXT: [[SHUFFLE:%.*]] = shufflevector <2 x i32> [[TMP1]], <2 x i32> poison, <4 x i32> <i32 1, i32 0, i32 1, i32 0>
|
||||
; CHECK-NEXT: [[TMP27:%.*]] = getelementptr inbounds i32, i32* [[PTR1:%.*]], i32 3
|
||||
; CHECK-NEXT: [[SHRINK_SHUFFLE:%.*]] = shufflevector <4 x i32> [[SHUFFLE]], <4 x i32> poison, <2 x i32> <i32 0, i32 1>
|
||||
; CHECK-NEXT: [[TMP2:%.*]] = add nsw <2 x i32> [[SHRINK_SHUFFLE]], <i32 -1, i32 -1>
|
||||
; CHECK-NEXT: [[TMP2:%.*]] = add nsw <2 x i32> [[TMP1]], <i32 -1, i32 -1>
|
||||
; CHECK-NEXT: [[SHUFFLE1:%.*]] = shufflevector <2 x i32> [[TMP2]], <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1>
|
||||
; CHECK-NEXT: [[TMP34:%.*]] = getelementptr inbounds i32, i32* [[PTR1]], i32 4
|
||||
; CHECK-NEXT: [[TMP40:%.*]] = getelementptr inbounds i32, i32* [[PTR1]], i32 5
|
||||
|
Loading…
Reference in New Issue
Block a user