+++ /dev/null
-; RUN: opt < %s -instcombine -S | grep "%B = add i8 %b, %x"
-; PR2698
-
-declare void @use1(i1)
-declare void @use8(i8)
-
-define void @test1(i8 %a, i8 %b, i8 %x) {
- %A = add i8 %a, %x
- %B = add i8 %b, %x
- %C = icmp eq i8 %A, %B
- call void @use1(i1 %C)
- ret void
-}
-
-define void @test2(i8 %a, i8 %b, i8 %x) {
- %A = add i8 %a, %x
- %B = add i8 %b, %x
- %C = icmp eq i8 %A, %B
- call void @use1(i1 %C)
- call void @use8(i8 %A)
- ret void
-}
%c = icmp ugt i32 %x, %rhs
ret i1 %c
}
+
+; PR2698 - https://bugs.llvm.org/show_bug.cgi?id=2698
+
+declare void @use1(i1)
+declare void @use8(i8)
+
+define void @bzip1(i8 %a, i8 %b, i8 %x) {
+; CHECK-LABEL: @bzip1(
+; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[A:%.*]], [[B:%.*]]
+; CHECK-NEXT: call void @use1(i1 [[CMP]])
+; CHECK-NEXT: ret void
+;
+ %add1 = add i8 %a, %x
+ %add2 = add i8 %b, %x
+ %cmp = icmp eq i8 %add1, %add2
+ call void @use1(i1 %cmp)
+ ret void
+}
+
+define void @bzip2(i8 %a, i8 %b, i8 %x) {
+; CHECK-LABEL: @bzip2(
+; CHECK-NEXT: [[ADD1:%.*]] = add i8 [[A:%.*]], [[X:%.*]]
+; CHECK-NEXT: [[ADD2:%.*]] = add i8 [[B:%.*]], [[X]]
+; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[ADD1]], [[ADD2]]
+; CHECK-NEXT: call void @use1(i1 [[CMP]])
+; CHECK-NEXT: call void @use8(i8 [[ADD1]])
+; CHECK-NEXT: ret void
+;
+ %add1 = add i8 %a, %x
+ %add2 = add i8 %b, %x
+ %cmp = icmp eq i8 %add1, %add2
+ call void @use1(i1 %cmp)
+ call void @use8(i8 %add1)
+ ret void
+}