[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Transforms / ConstraintElimination / debug.ll
blob2409af09735d1e7c8837a6a963bc9f19e334cfcf
1 ; RUN: opt -passes=constraint-elimination -S -debug %s 2>&1 | FileCheck %s
3 ; REQUIRES: asserts
5 define i1 @test_and_ule(i4 %x, i4 %y, i4 %z) {
6 ; CHECK:      Processing fact to add to the system: icmp ule i4 %x, %y
7 ; CHECK-NEXT: Adding 'icmp ule i4 %x, %y'
8 ; CHECK-NEXT:  constraint: %x + -1 * %y <= 0
10 ; CHECK:      Processing fact to add to the system: icmp ule i4 %y, %z
11 ; CHECK-NEXT: Adding 'icmp ule i4 %y, %z'
12 ; CHECK-NEXT:  constraint: %y + -1 * %z <= 0
14 ; CHECK: Checking   %t.1 = icmp ule i4 %x, %z
15 ; CHECK: Condition icmp ule i4 %x, %z implied by dominating constraints
17 ; CHECK: Removing %y + -1 * %z <= 0
18 ; CHECK: Removing %x + -1 * %y <= 0
20 entry:
21   %c.1 = icmp ule i4 %x, %y
22   %c.2 = icmp ule i4 %y, %z
23   %and = and i1 %c.1, %c.2
24   br i1 %and, label %bb1, label %exit
26 bb1:
27   %t.1 = icmp ule i4 %x, %z
28   ret i1 %t.1
30 exit:
31   %c.3 = icmp ule i4 %x, %z
32   ret i1 %c.3
35 define i1 @test_and_ugt(i4 %x, i4 %y, i4 %z) {
36 ; CHECK:      Processing fact to add to the system: icmp ugt i4 %x, %y
37 ; CHECK-NEXT: Adding 'icmp ugt i4 %x, %y'
38 ; CHECK-NEXT:  constraint: -1 * %x + %y <= -1
40 ; CHECK:      Processing fact to add to the system: icmp ugt i4 %y, %z
41 ; CHECK-NEXT: Adding 'icmp ugt i4 %y, %z'
42 ; CHECK-NEXT:  constraint: -1 * %y + %z <= -1
44 ; CHECK: Checking   %f.1 = icmp ule i4 %x, %z
45 ; CHECK: Condition icmp ugt i4 %x, %z implied by dominating constraints
47 ; CHECK: Removing -1 * %y + %z <= -1
48 ; CHECK: Removing -1 * %x + %y <= -1
50 entry:
51   %c.1 = icmp ugt i4 %x, %y
52   %c.2 = icmp ugt i4 %y, %z
53   %and = and i1 %c.1, %c.2
54   br i1 %and, label %bb1, label %exit
56 bb1:
57   %f.1 = icmp ule i4 %x, %z
58   ret i1 %f.1
60 exit:
61   %c.3 = icmp ule i4 %x, %z
62   ret i1 %c.3