xref: /llvm-project/llvm/test/Transforms/ConstraintElimination/reproducer-remarks-debug.ll (revision fbcf8a8cbb2461730bfd0603b396842925a88ef2)
1; RUN: opt -passes=constraint-elimination -constraint-elimination-dump-reproducers -pass-remarks=constraint-elimination -debug %s 2>&1 | FileCheck %s
2
3; REQUIRES: asserts
4
5target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
6
7; CHECK:      Condition icmp eq ptr %a, null implied by dominating constraints
8; CHECK-NEXT: -1 * %a <= 0
9; CHECK-NEXT: %a <= 0
10; CHECK-NEXT: Creating reproducer for   %c.2 = icmp eq ptr %a, null
11; CHECK-NEXT:   found external input ptr %a
12; CHECK-NEXT:   Materializing assumption icmp eq ptr %a, null
13
14define i1 @test_ptr_null_constant(ptr %a) {
15; CHECK-LABEL: define i1 @"{{.+}}test_ptr_null_constantrepro"(ptr %a) {
16; CHECK-NEXT: entry:
17; CHECK-NEXT:   %0 = icmp eq ptr %a, null
18; CHECK-NEXT:   call void @llvm.assume(i1 %0)
19; CHECK-NEXT:   %c.2 = icmp eq ptr %a, null
20; CHECK-NEXT:   ret i1 %c.2
21; CHECK-NEXT: }
22;
23entry:
24  %c.1 = icmp eq ptr %a, null
25  br i1 %c.1, label %then, label %else
26
27then:
28  %c.2 = icmp eq ptr %a, null
29  ret i1 %c.2
30
31else:
32  ret i1 false
33}
34