Skip to content

Commit 80c34f9

Browse files
committed
[InstCombine] Add test for PR44529; NFC
1 parent 16b9410 commit 80c34f9

File tree

1 file changed

+43
-0
lines changed
  • llvm/test/Transforms/InstCombine

1 file changed

+43
-0
lines changed

llvm/test/Transforms/InstCombine/sub.ll

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,49 @@ define i32 @test26(i32 %x) {
541541
ret i32 %neg
542542
}
543543

544+
define i64 @test_neg_shl_sub(i64 %a, i64 %b) {
545+
; CHECK-LABEL: @test_neg_shl_sub(
546+
; CHECK-NEXT: [[SUB:%.*]] = sub i64 [[A:%.*]], [[B:%.*]]
547+
; CHECK-NEXT: [[MUL:%.*]] = shl i64 [[SUB]], 2
548+
; CHECK-NEXT: [[NEG:%.*]] = sub i64 0, [[MUL]]
549+
; CHECK-NEXT: ret i64 [[NEG]]
550+
;
551+
%sub = sub i64 %a, %b
552+
%mul = shl i64 %sub, 2
553+
%neg = sub i64 0, %mul
554+
ret i64 %neg
555+
}
556+
557+
define i64 @test_neg_shl_sub_extra_use1(i64 %a, i64 %b, i64* %p) {
558+
; CHECK-LABEL: @test_neg_shl_sub_extra_use1(
559+
; CHECK-NEXT: [[SUB:%.*]] = sub i64 [[A:%.*]], [[B:%.*]]
560+
; CHECK-NEXT: store i64 [[SUB]], i64* [[P:%.*]], align 8
561+
; CHECK-NEXT: [[MUL:%.*]] = shl i64 [[SUB]], 2
562+
; CHECK-NEXT: [[NEG:%.*]] = sub i64 0, [[MUL]]
563+
; CHECK-NEXT: ret i64 [[NEG]]
564+
;
565+
%sub = sub i64 %a, %b
566+
store i64 %sub, i64* %p
567+
%mul = shl i64 %sub, 2
568+
%neg = sub i64 0, %mul
569+
ret i64 %neg
570+
}
571+
572+
define i64 @test_neg_shl_sub_extra_use2(i64 %a, i64 %b, i64* %p) {
573+
; CHECK-LABEL: @test_neg_shl_sub_extra_use2(
574+
; CHECK-NEXT: [[SUB:%.*]] = sub i64 [[A:%.*]], [[B:%.*]]
575+
; CHECK-NEXT: [[MUL:%.*]] = shl i64 [[SUB]], 2
576+
; CHECK-NEXT: store i64 [[MUL]], i64* [[P:%.*]], align 8
577+
; CHECK-NEXT: [[NEG:%.*]] = sub i64 0, [[MUL]]
578+
; CHECK-NEXT: ret i64 [[NEG]]
579+
;
580+
%sub = sub i64 %a, %b
581+
%mul = shl i64 %sub, 2
582+
store i64 %mul, i64* %p
583+
%neg = sub i64 0, %mul
584+
ret i64 %neg
585+
}
586+
544587
define i32 @test27(i32 %x, i32 %y) {
545588
; CHECK-LABEL: @test27(
546589
; CHECK-NEXT: [[TMP1:%.*]] = shl i32 [[Y:%.*]], 3

0 commit comments

Comments
 (0)