blob: daaf7c9e4a75f3a8e3184f25fc21a4271f3958cc [file] [log] [blame]
Geoff Berry5bf4a5e2018-04-06 18:47:33 +00001; REQUIRES: asserts
Bryan Chan3404add2020-08-30 19:17:43 -04002; RUN: opt -S -debug-counter=early-cse-skip=1,early-cse-count=1 -early-cse -earlycse-debug-hash < %s 2>&1 | FileCheck %s
Geoff Berry5bf4a5e2018-04-06 18:47:33 +00003;; 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