52 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -passes=gvn < %s -S -o - | FileCheck %s3 4define void @f() {5; CHECK-LABEL: define void @f() {6; CHECK-NEXT: [[ENTRY:.*:]]7; CHECK-NEXT: [[A:%.*]] = alloca <7 x i1>, align 28; CHECK-NEXT: store <7 x i1> undef, ptr [[A]], align 29; CHECK-NEXT: [[VAL:%.*]] = load i1, ptr [[A]], align 210; CHECK-NEXT: br i1 [[VAL]], label %[[COND_TRUE:.*]], label %[[COND_FALSE:.*]]11; CHECK: [[COND_TRUE]]:12; CHECK-NEXT: ret void13; CHECK: [[COND_FALSE]]:14; CHECK-NEXT: ret void15;16entry:17 %a = alloca <7 x i1>, align 218 store <7 x i1> undef, ptr %a, align 219 %val = load i1, ptr %a, align 220 br i1 %val, label %cond.true, label %cond.false21 22cond.true:23 ret void24 25cond.false:26 ret void27}28 29define <7 x i1> @g(ptr %a) {30; CHECK-LABEL: define <7 x i1> @g(31; CHECK-SAME: ptr [[A:%.*]]) {32; CHECK-NEXT: [[ENTRY:.*:]]33; CHECK-NEXT: [[VEC:%.*]] = load <7 x i1>, ptr [[A]], align 134; CHECK-NEXT: [[VAL:%.*]] = load i1, ptr [[A]], align 235; CHECK-NEXT: br i1 [[VAL]], label %[[COND_TRUE:.*]], label %[[COND_FALSE:.*]]36; CHECK: [[COND_TRUE]]:37; CHECK-NEXT: ret <7 x i1> [[VEC]]38; CHECK: [[COND_FALSE]]:39; CHECK-NEXT: ret <7 x i1> zeroinitializer40;41entry:42 %vec = load <7 x i1>, ptr %a43 %val = load i1, ptr %a, align 244 br i1 %val, label %cond.true, label %cond.false45 46cond.true:47 ret <7 x i1> %vec48 49cond.false:50 ret <7 x i1> <i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false>51}52