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