34 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt < %s -passes=memcpyopt,mldst-motion,gvn -S | FileCheck %s3 4define void @foo(ptr %ret, i1 %x) {5; CHECK-LABEL: define void @foo(6; CHECK-SAME: ptr [[RET:%.*]], i1 [[X:%.*]]) {7; CHECK-NEXT: [[A:%.*]] = alloca i8, align 18; CHECK-NEXT: br i1 [[X]], label %[[YES:.*]], label %[[NO:.*]]9; CHECK: [[YES]]:10; CHECK-NEXT: br label %[[OUT:.*]]11; CHECK: [[NO]]:12; CHECK-NEXT: br label %[[OUT]]13; CHECK: [[OUT]]:14; CHECK-NEXT: store i8 5, ptr [[A]], align 115; CHECK-NEXT: store i8 5, ptr [[RET]], align 116; CHECK-NEXT: ret void17;18 %a = alloca i819 br i1 %x, label %yes, label %no20 21yes: ; preds = %022 store i8 5, ptr %a23 br label %out24 25no: ; preds = %026 store i8 5, ptr %a27 br label %out28 29out: ; preds = %no, %yes30 %tmp = load i8, ptr %a31 store i8 %tmp, ptr %ret32 ret void33}34