brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 1ab4900 Raw
76 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3; PR26294 5define void @f(ptr %x) nounwind  {6; CHECK-LABEL: @f(7; CHECK-NEXT:  entry:8; CHECK-NEXT:    br label [[BB:%.*]]9; CHECK:       bb:10; CHECK-NEXT:    [[L1:%.*]] = load i8, ptr [[X:%.*]], align 111; CHECK-NEXT:    [[TMP0:%.*]] = add i8 [[L1]], -912; CHECK-NEXT:    [[C1:%.*]] = icmp ult i8 [[TMP0]], -313; CHECK-NEXT:    [[TMP1:%.*]] = add i8 [[L1]], -1314; CHECK-NEXT:    [[C2:%.*]] = icmp ult i8 [[TMP1]], -315; CHECK-NEXT:    [[A1:%.*]] = and i1 [[C1]], [[C2]]16; CHECK-NEXT:    br i1 [[A1]], label [[INCOMPATIBLE:%.*]], label [[OKAY:%.*]]17; CHECK:       okay:18; CHECK-NEXT:    ret void19; CHECK:       incompatible:20; CHECK-NEXT:    ret void21;22entry:23  br label %bb24 25bb:26  %l1 = load i8, ptr %x, align 127  %s1 = sub i8 %l1, 628  %c1 = icmp ugt i8 %s1, 229  %s2 = sub i8 %l1, 1030  %c2 = icmp ugt i8 %s2, 231  %a1 = and i1 %c1, %c232  br i1 %a1, label %incompatible, label %okay33 34okay:35  ret void36 37incompatible:38  ret void39}40 41define void @f_logical(ptr %x) nounwind  {42; CHECK-LABEL: @f_logical(43; CHECK-NEXT:  entry:44; CHECK-NEXT:    br label [[BB:%.*]]45; CHECK:       bb:46; CHECK-NEXT:    [[L1:%.*]] = load i8, ptr [[X:%.*]], align 147; CHECK-NEXT:    [[TMP0:%.*]] = add i8 [[L1]], -948; CHECK-NEXT:    [[C1:%.*]] = icmp ult i8 [[TMP0]], -349; CHECK-NEXT:    [[TMP1:%.*]] = add i8 [[L1]], -1350; CHECK-NEXT:    [[C2:%.*]] = icmp ult i8 [[TMP1]], -351; CHECK-NEXT:    [[A1:%.*]] = and i1 [[C1]], [[C2]]52; CHECK-NEXT:    br i1 [[A1]], label [[INCOMPATIBLE:%.*]], label [[OKAY:%.*]]53; CHECK:       okay:54; CHECK-NEXT:    ret void55; CHECK:       incompatible:56; CHECK-NEXT:    ret void57;58entry:59  br label %bb60 61bb:62  %l1 = load i8, ptr %x, align 163  %s1 = sub i8 %l1, 664  %c1 = icmp ugt i8 %s1, 265  %s2 = sub i8 %l1, 1066  %c2 = icmp ugt i8 %s2, 267  %a1 = select i1 %c1, i1 %c2, i1 false68  br i1 %a1, label %incompatible, label %okay69 70okay:71  ret void72 73incompatible:74  ret void75}76