1; REQUIRES: asserts
2; RUN: opt -S -debug-counter=early-cse-skip=1,early-cse-count=1 -early-cse -earlycse-debug-hash < %s 2>&1 | FileCheck %s
3;; Test that, with debug counters on, we only optimize the second CSE opportunity.
4define i32 @test(i32 %a, i32 %b) {
5; CHECK-LABEL: @test(
6; CHECK-NEXT:  bb:
7; CHECK-NEXT:    %add1 = add i32 %a, %b
8; CHECK-NEXT:    %add2 = add i32 %a, %b
9; CHECK-NEXT:    %add4 = add i32 %a, %b
10; CHECK-NEXT:    %ret1 = add i32 %add1, %add2
11; CHECK-NEXT:    %ret2 = add i32 %add1, %add4
12; CHECK-NEXT:    %ret = add i32 %ret1, %ret2
13; CHECK-NEXT:    ret i32 %ret
14;
15bb:
16  %add1 = add i32 %a, %b
17  %add2 = add i32 %a, %b
18  %add3 = add i32 %a, %b
19  %add4 = add i32 %a, %b
20  %ret1 = add i32 %add1, %add2
21  %ret2 = add i32 %add3, %add4
22  %ret = add i32 %ret1, %ret2
23  ret i32 %ret
24}
25
26
27
28