xref: /llvm-project/llvm/test/tools/llvm-reduce/oracle-count.ll (revision 1437a83491cbe4af1b452a3f862a6b609057c26d)
1*1437a834SRushi Bhamani; RUN: llvm-reduce --abort-on-invalid-reduction --test FileCheck --test-arg --check-prefixes=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t 2>&1 | FileCheck %s --check-prefix=CHECK-LOG
2ce3c3cb2SArthur Eubanks; RUN: FileCheck --check-prefixes=CHECK-FINAL --input-file=%t %s
3ce3c3cb2SArthur Eubanks
4ce3c3cb2SArthur Eubanks; CHECK-INTERESTINGNESS: ret i32
5ce3c3cb2SArthur Eubanks; CHECK-FINAL: ret i32 0
6ce3c3cb2SArthur Eubanks
7ce3c3cb2SArthur Eubanks; Test that we don't invoke the oracle more than necessary (e.g. check the
8ce3c3cb2SArthur Eubanks; oracle then perform some failable/redundant reduction, as opposed to check if
9ce3c3cb2SArthur Eubanks; a reduction will fail/be redundant before invoking the oracle). This prevents
10ce3c3cb2SArthur Eubanks; overestimation of the number of possible reductions and the number of times we
11ce3c3cb2SArthur Eubanks; attempt to reduce.
12ce3c3cb2SArthur Eubanks
13ce3c3cb2SArthur Eubanks; IR passes
14ce3c3cb2SArthur Eubanks; CHECK-LOG: Saved new best reduction
15ce3c3cb2SArthur Eubanks; Module data
16ce3c3cb2SArthur Eubanks; CHECK-LOG: Saved new best reduction
17ce3c3cb2SArthur Eubanks; SimplifyCFG
18ce3c3cb2SArthur Eubanks; CHECK-LOG: Saved new best reduction
19ce3c3cb2SArthur Eubanks; CHECK-LOG-NOT: Saved new best reduction
20ce3c3cb2SArthur Eubanks
21ce3c3cb2SArthur Eubanksdefine i32 @f() {
22ce3c3cb2SArthur Eubanks  ret i32 0
23ce3c3cb2SArthur Eubanks}