brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 1804cc4 Raw
47 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=newgvn -S | FileCheck %s3 4; github issue #560395define i8 @src(ptr %a, ptr %b, i1 %c) {6; CHECK-LABEL: @src(7; CHECK-NEXT:    br i1 [[C:%.*]], label [[BB1:%.*]], label [[BB2:%.*]]8; CHECK:       bb1:9; CHECK-NEXT:    [[LB1:%.*]] = load i8, ptr [[B:%.*]], align 110; CHECK-NEXT:    [[TOBOOL3_NOT_I:%.*]] = icmp eq i8 [[LB1]], 011; CHECK-NEXT:    br i1 [[TOBOOL3_NOT_I]], label [[BB4:%.*]], label [[BB3:%.*]]12; CHECK:       bb2:13; CHECK-NEXT:    [[LB2:%.*]] = load i8, ptr [[B]], align 114; CHECK-NEXT:    [[CMP_NOT_I:%.*]] = icmp ult i8 0, [[LB2]]15; CHECK-NEXT:    tail call void @llvm.assume(i1 [[CMP_NOT_I]])16; CHECK-NEXT:    br label [[BB3]]17; CHECK:       bb3:18; CHECK-NEXT:    [[LA:%.*]] = load i8, ptr [[A:%.*]], align 119; CHECK-NEXT:    br label [[BB4]]20; CHECK:       bb4:21; CHECK-NEXT:    ret i8 022;23  br i1 %c, label %bb1, label %bb224 25bb1:26  %lb1 = load i8, ptr %b27  %tobool3.not.i = icmp eq i8 %lb1, 028  br i1 %tobool3.not.i, label %bb4, label %bb329 30bb2:31  %lb2 = load i8, ptr %b32  %cmp.not.i = icmp ult i8 0, %lb233  tail call void @llvm.assume(i1 %cmp.not.i)34  br label %bb335 36bb3:37  %p = phi i8 [ %lb1, %bb1 ], [ %lb2, %bb2 ]38  %la = load i8, ptr %a39  %xor = xor i8 %la, %p40  br label %bb441 42bb4:43  ret i8 044}45 46declare void @llvm.assume(i1)47