Skip to content

Commit 6923420

Browse files
committed
!fixup use getAddExpr taking 2 SCEVs.
1 parent 9a6bedb commit 6923420

File tree

3 files changed

+12
-14
lines changed

3 files changed

+12
-14
lines changed

llvm/lib/Analysis/ScalarEvolution.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1800,9 +1800,9 @@ const SCEV *ScalarEvolution::getZeroExtendExprImpl(const SCEV *Op, Type *Ty,
18001800
// zext (C + A)<nsw> -> (sext(C) + sext(A))<nsw> if zext (C + A)<nsw> >=s 0.
18011801
if (SA->hasNoSignedWrap() && isKnownNonNegative(SA) &&
18021802
match(SA, m_scev_Add(m_SCEVConstant(C), m_SCEV(A)))) {
1803-
SmallVector<const SCEV *, 4> Ops = {getSignExtendExpr(C, Ty, Depth + 1),
1804-
getSignExtendExpr(A, Ty, Depth + 1)};
1805-
return getAddExpr(Ops, SCEV::FlagNSW, Depth + 1);
1803+
return getAddExpr(getSignExtendExpr(C, Ty, Depth + 1),
1804+
getSignExtendExpr(A, Ty, Depth + 1), SCEV::FlagNSW,
1805+
Depth + 1);
18061806
}
18071807

18081808
// zext(C + x + y + ...) --> (zext(D) + zext((C - D) + x + y + ...))

llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ define void @test_predicated_load_cast_hint(ptr %dst.1, ptr %dst.2, ptr %src, i8
4747
; CHECK-NEXT: [[TMP18:%.*]] = shl i64 [[OFF]], 3
4848
; CHECK-NEXT: [[SCEVGEP6:%.*]] = getelementptr i8, ptr [[DST_1]], i64 [[TMP18]]
4949
; CHECK-NEXT: [[SMAX7:%.*]] = call i32 @llvm.smax.i32(i32 [[N_SUB]], i32 4)
50-
; CHECK-NEXT: [[TMP19:%.*]] = add nsw i32 [[SMAX7]], -1
51-
; CHECK-NEXT: [[TMP20:%.*]] = zext nneg i32 [[TMP19]] to i64
50+
; CHECK-NEXT: [[TMP19:%.*]] = zext nneg i32 [[SMAX7]] to i64
51+
; CHECK-NEXT: [[TMP20:%.*]] = add nsw i64 [[TMP19]], -1
5252
; CHECK-NEXT: [[TMP21:%.*]] = lshr i64 [[TMP20]], 2
5353
; CHECK-NEXT: [[TMP22:%.*]] = shl nuw nsw i64 [[TMP21]], 9
5454
; CHECK-NEXT: [[TMP23:%.*]] = add i64 [[TMP22]], [[TMP18]]

llvm/test/Transforms/LoopVectorize/runtime-check.ll

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -492,14 +492,12 @@ define void @test_scev_check_mul_add_expansion(ptr %out, ptr %in, i32 %len, i32
492492
; CHECK-NEXT: br i1 [[MIN_ITERS_CHECK]], label [[SCALAR_PH:%.*]], label [[VECTOR_MEMCHECK:%.*]]
493493
; CHECK: vector.memcheck:
494494
; CHECK-NEXT: [[SCEVGEP:%.*]] = getelementptr i8, ptr [[OUT:%.*]], i64 12
495-
; CHECK-NEXT: [[TMP1:%.*]] = add nsw i32 [[LEN]], -7
496-
; CHECK-NEXT: [[TMP2:%.*]] = zext nneg i32 [[TMP1]] to i64
497-
; CHECK-NEXT: [[TMP3:%.*]] = shl nuw nsw i64 [[TMP2]], 1
495+
; CHECK-NEXT: [[TMP1:%.*]] = shl nuw i32 [[LEN]], 1
496+
; CHECK-NEXT: [[TMP3:%.*]] = zext i32 [[TMP1]] to i64
498497
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr i8, ptr [[OUT]], i64 [[TMP3]]
499-
; CHECK-NEXT: [[SCEVGEP1:%.*]] = getelementptr i8, ptr [[TMP4]], i64 14
500498
; CHECK-NEXT: [[SCEVGEP2:%.*]] = getelementptr i8, ptr [[IN:%.*]], i64 4
501499
; CHECK-NEXT: [[BOUND0:%.*]] = icmp ult ptr [[SCEVGEP]], [[SCEVGEP2]]
502-
; CHECK-NEXT: [[BOUND1:%.*]] = icmp ult ptr [[IN]], [[SCEVGEP1]]
500+
; CHECK-NEXT: [[BOUND1:%.*]] = icmp ult ptr [[IN]], [[TMP4]]
503501
; CHECK-NEXT: [[FOUND_CONFLICT:%.*]] = and i1 [[BOUND0]], [[BOUND1]]
504502
; CHECK-NEXT: br i1 [[FOUND_CONFLICT]], label [[SCALAR_PH]], label [[VECTOR_PH:%.*]]
505503
; CHECK: vector.ph:
@@ -511,11 +509,11 @@ define void @test_scev_check_mul_add_expansion(ptr %out, ptr %in, i32 %len, i32
511509
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i32 [[INDEX]], 6
512510
; CHECK-NEXT: [[TMP6:%.*]] = sext i32 [[OFFSET_IDX]] to i64
513511
; CHECK-NEXT: [[TMP7:%.*]] = getelementptr i16, ptr [[OUT]], i64 [[TMP6]]
514-
; CHECK-NEXT: store <4 x i16> zeroinitializer, ptr [[TMP7]], align 2, !alias.scope [[META42:![0-9]+]], !noalias [[META45:![0-9]+]]
515-
; CHECK-NEXT: store i32 0, ptr [[IN]], align 4, !alias.scope [[META45]]
512+
; CHECK-NEXT: store <4 x i16> zeroinitializer, ptr [[TMP7]], align 2, !alias.scope [[META37:![0-9]+]], !noalias [[META40:![0-9]+]]
513+
; CHECK-NEXT: store i32 0, ptr [[IN]], align 4, !alias.scope [[META40]]
516514
; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i32 [[INDEX]], 4
517515
; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i32 [[INDEX_NEXT]], [[N_VEC]]
518-
; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP47:![0-9]+]]
516+
; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP42:![0-9]+]]
519517
; CHECK: middle.block:
520518
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i32 [[TMP0]], [[N_VEC]]
521519
; CHECK-NEXT: br i1 [[CMP_N]], label [[EXIT:%.*]], label [[SCALAR_PH]]
@@ -530,7 +528,7 @@ define void @test_scev_check_mul_add_expansion(ptr %out, ptr %in, i32 %len, i32
530528
; CHECK-NEXT: [[IV_NEXT]] = add nuw nsw i32 [[IV]], 1
531529
; CHECK-NEXT: store i32 0, ptr [[IN]], align 4
532530
; CHECK-NEXT: [[CMP7_NOT:%.*]] = icmp sgt i32 [[LEN]], [[IV_NEXT]]
533-
; CHECK-NEXT: br i1 [[CMP7_NOT]], label [[LOOP]], label [[EXIT]], !llvm.loop [[LOOP48:![0-9]+]]
531+
; CHECK-NEXT: br i1 [[CMP7_NOT]], label [[LOOP]], label [[EXIT]], !llvm.loop [[LOOP43:![0-9]+]]
534532
; CHECK: exit:
535533
; CHECK-NEXT: ret void
536534
;

0 commit comments

Comments
 (0)