; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 ; RUN: opt < %s -passes=memcpyopt,mldst-motion,gvn -S | FileCheck %s define void @foo(ptr %ret, i1 %x) { ; CHECK-LABEL: define void @foo( ; CHECK-SAME: ptr [[RET:%.*]], i1 [[X:%.*]]) { ; CHECK-NEXT: [[A:%.*]] = alloca i8, align 1 ; CHECK-NEXT: br i1 [[X]], label %[[YES:.*]], label %[[NO:.*]] ; CHECK: [[YES]]: ; CHECK-NEXT: br label %[[OUT:.*]] ; CHECK: [[NO]]: ; CHECK-NEXT: br label %[[OUT]] ; CHECK: [[OUT]]: ; CHECK-NEXT: store i8 5, ptr [[A]], align 1 ; CHECK-NEXT: store i8 5, ptr [[RET]], align 1 ; CHECK-NEXT: ret void ; %a = alloca i8 br i1 %x, label %yes, label %no yes: ; preds = %0 store i8 5, ptr %a br label %out no: ; preds = %0 store i8 5, ptr %a br label %out out: ; preds = %no, %yes %tmp = load i8, ptr %a store i8 %tmp, ptr %ret ret void }