brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 6b4938a Raw
50 lines · plain
1; RUN: opt %s -disable-output -passes="jump-threading,print<lazy-value-info>" 2>&1 | FileCheck %s2 3; first to populate the values.4 5define i32 @constraint(i32 %a) {6; CHECK-LABEL: LVI for function 'constraint':7chklt64:8; CHECK-LABEL: chklt64:9; CHECK-NEXT: ; LatticeVal for: 'i32 %a' is: overdefined10; CHECK-NEXT: ; LatticeVal for: '  %cmp = icmp slt i32 %a, 64' in BB: '%chklt64' is: overdefined11; CHECK-NEXT: ; LatticeVal for: '  %cmp = icmp slt i32 %a, 64' in BB: '%chkgt0' is: constantrange<-1, 0>12; CHECK-NEXT: ; LatticeVal for: '  %cmp = icmp slt i32 %a, 64' in BB: '%notinbounds' is: overdefined13; CHECK-NEXT:   %cmp = icmp slt i32 %a, 6414; CHECK-NEXT: ; LatticeVal for: '  br i1 %cmp, label %chkgt0, label %notinbounds' in BB: '%chklt64' is: overdefined15; CHECK-NEXT: ; LatticeVal for: '  br i1 %cmp, label %chkgt0, label %notinbounds' in BB: '%chkgt0' is: overdefined16; CHECK-NEXT: ; LatticeVal for: '  br i1 %cmp, label %chkgt0, label %notinbounds' in BB: '%notinbounds' is: overdefined17; CHECK-NEXT:   br i1 %cmp, label %chkgt0, label %notinbounds18  %cmp = icmp slt i32 %a, 6419  br i1 %cmp, label %chkgt0, label %notinbounds20 21chkgt0:22; CHECK-LABEL: chkgt0:23; CHECK-NEXT: ; LatticeVal for: 'i32 %a' is: constantrange<-2147483648, 64>24; CHECK-NEXT: ; LatticeVal for: '  %cmp1 = icmp sgt i32 %a, 0' in BB: '%chkgt0' is: overdefined25; CHECK-NEXT: ; LatticeVal for: '  %cmp1 = icmp sgt i32 %a, 0' in BB: '%inbounds' is: constantrange<-1, 0>26; CHECK-NEXT:   %cmp1 = icmp sgt i32 %a, 027; CHECK-NEXT: ; LatticeVal for: '  br i1 %cmp1, label %inbounds, label %notinbounds' in BB: '%chkgt0' is: overdefined28; CHECK-NEXT: ; LatticeVal for: '  br i1 %cmp1, label %inbounds, label %notinbounds' in BB: '%inbounds' is: overdefined29; CHECK-NEXT:   br i1 %cmp1, label %inbounds, label %notinbounds30  %cmp1 = icmp sgt i32 %a, 031  br i1 %cmp1, label %inbounds, label %notinbounds32 33inbounds:34; CHECK-LABEL: inbounds:35; CHECK-NEXT: ; LatticeVal for: 'i32 %a' is: constantrange<1, 64>36; CHECK-NEXT: ; LatticeVal for: '  ret i32 %a' in BB: '%inbounds' is: overdefined37; CHECK-NEXT:   ret i32 %a38  ret i32 %a39 40notinbounds:41; CHECK-LABEL: notinbounds:42; CHECK-NEXT: ; LatticeVal for: 'i32 %a' is: constantrange<64, 1>43; CHECK-NEXT: ; LatticeVal for: '  %sum = add i32 %a, 64' in BB: '%notinbounds' is: constantrange<128, 65>44; CHECK-NEXT:   %sum = add i32 %a, 6445; CHECK-NEXT: ; LatticeVal for: '  ret i32 %sum' in BB: '%notinbounds' is: overdefined46; CHECK-NEXT:   ret i32 %sum47  %sum = add i32 %a, 6448  ret i32 %sum49}50