xref: /llvm-project/llvm/test/Transforms/ConstraintElimination/mixed.ll (revision 34e477e9dafd388a0df85929822fd7a475c8502c)
1802d21cdSFlorian Hahn; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
28ebb3eacSBjorn Pettersson; RUN: opt -passes=constraint-elimination -S %s | FileCheck %s
3802d21cdSFlorian Hahn
4802d21cdSFlorian Hahn; Make sure we do not incorrectly add variables to the system.
5802d21cdSFlorian Hahn
6*34e477e9SFlorian Hahndefine i1 @test(ptr %p1, ptr %p2, i32 %num_rows, i32 %start_row, i1 %c) {
7802d21cdSFlorian Hahn; CHECK-LABEL: @test(
8802d21cdSFlorian Hahn; CHECK-NEXT:  entry:
9802d21cdSFlorian Hahn; CHECK-NEXT:    [[ADD:%.*]] = add i32 [[NUM_ROWS:%.*]], [[START_ROW:%.*]]
10*34e477e9SFlorian Hahn; CHECK-NEXT:    [[L3:%.*]] = load i32, ptr [[P1:%.*]], align 4
11802d21cdSFlorian Hahn; CHECK-NEXT:    [[CMP6:%.*]] = icmp ugt i32 [[L3]], [[START_ROW]]
12802d21cdSFlorian Hahn; CHECK-NEXT:    br i1 [[C:%.*]], label [[IF_END36:%.*]], label [[IF_END36]]
13802d21cdSFlorian Hahn; CHECK:       if.end36:
14*34e477e9SFlorian Hahn; CHECK-NEXT:    [[L1:%.*]] = load i32, ptr [[P2:%.*]], align 4
15802d21cdSFlorian Hahn; CHECK-NEXT:    [[CMP37:%.*]] = icmp ult i32 [[L1]], [[ADD]]
16802d21cdSFlorian Hahn; CHECK-NEXT:    br i1 [[CMP37]], label [[IF_THEN39:%.*]], label [[EXIT:%.*]]
17802d21cdSFlorian Hahn; CHECK:       if.then39:
18802d21cdSFlorian Hahn; CHECK-NEXT:    [[CMP41:%.*]] = icmp ult i32 [[L1]], [[START_ROW]]
19802d21cdSFlorian Hahn; CHECK-NEXT:    ret i1 [[CMP41]]
20802d21cdSFlorian Hahn; CHECK:       exit:
21802d21cdSFlorian Hahn; CHECK-NEXT:    ret i1 false
22802d21cdSFlorian Hahn;
23802d21cdSFlorian Hahnentry:
24802d21cdSFlorian Hahn  %add = add i32 %num_rows, %start_row
25*34e477e9SFlorian Hahn  %l3 = load i32, ptr %p1, align 4
26802d21cdSFlorian Hahn  %cmp6 = icmp ugt i32 %l3, %start_row
27802d21cdSFlorian Hahn  br i1 %c, label %if.end36, label %if.end36
28802d21cdSFlorian Hahn
29802d21cdSFlorian Hahnif.end36:                                         ; preds = %if.then11
30*34e477e9SFlorian Hahn  %l1 = load i32, ptr %p2, align 4
31802d21cdSFlorian Hahn  %cmp37 = icmp ult i32 %l1, %add
32802d21cdSFlorian Hahn  br i1 %cmp37, label %if.then39, label %exit
33802d21cdSFlorian Hahn
34802d21cdSFlorian Hahnif.then39:                                        ; preds = %if.end36
35802d21cdSFlorian Hahn  %cmp41 = icmp ult i32 %l1, %start_row
36802d21cdSFlorian Hahn  ret i1 %cmp41
37802d21cdSFlorian Hahn
38802d21cdSFlorian Hahnexit:                                             ; preds = %if.end36
39802d21cdSFlorian Hahn  ret i1 false
40802d21cdSFlorian Hahn}
41