; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 ; RUN: opt -passes=gvn -S < %s | FileCheck %s ; Make sure that performing PRE does not add prof metadata onto newly created ; phi nodes. define fastcc ptr @foo(i8 %__pred.1.val) { ; CHECK-LABEL: define fastcc ptr @foo( ; CHECK-SAME: i8 [[__PRED_1_VAL:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: switch i64 0, label %[[SW_BB:.*]] [ ; CHECK-NEXT: i64 1, label %[[ENTRY_SW_BB26_CRIT_EDGE:.*]] ; CHECK-NEXT: i64 0, label %[[ENTRY_SW_BB21_CRIT_EDGE:.*]] ; CHECK-NEXT: ] ; CHECK: [[ENTRY_SW_BB21_CRIT_EDGE]]: ; CHECK-NEXT: [[DOTPRE:%.*]] = trunc i8 [[__PRED_1_VAL]] to i1 ; CHECK-NEXT: [[DOTPRE1:%.*]] = select i1 [[DOTPRE]], i64 0, i64 4 ; CHECK-NEXT: br label %[[SW_BB21:.*]] ; CHECK: [[ENTRY_SW_BB26_CRIT_EDGE]]: ; CHECK-NEXT: [[DOTPRE2:%.*]] = trunc i8 [[__PRED_1_VAL]] to i1 ; CHECK-NEXT: [[DOTPRE3:%.*]] = select i1 [[DOTPRE2]], i64 0, i64 4, !prof [[PROF0:![0-9]+]] ; CHECK-NEXT: br label %[[SW_BB26:.*]] ; CHECK: [[SW_BB]]: ; CHECK-NEXT: [[L78:%.*]] = trunc i8 [[__PRED_1_VAL]] to i1 ; CHECK-NEXT: [[C79:%.*]] = select i1 [[L78]], i64 0, i64 4 ; CHECK-NEXT: br label %[[SW_BB21]] ; CHECK: [[SW_BB21]]: ; CHECK-NEXT: [[C84_PRE_PHI:%.*]] = phi i64 [ [[DOTPRE1]], %[[ENTRY_SW_BB21_CRIT_EDGE]] ], [ [[C79]], %[[SW_BB]] ] ; CHECK-NEXT: [[L83_PRE_PHI:%.*]] = phi i1 [ [[DOTPRE]], %[[ENTRY_SW_BB21_CRIT_EDGE]] ], [ [[L78]], %[[SW_BB]] ] ; CHECK-NEXT: br label %[[SW_BB26]] ; CHECK: [[SW_BB26]]: ; CHECK-NEXT: [[C89_PRE_PHI:%.*]] = phi i64 [ [[DOTPRE3]], %[[ENTRY_SW_BB26_CRIT_EDGE]] ], [ [[C84_PRE_PHI]], %[[SW_BB21]] ] ; CHECK-NEXT: [[L88_PRE_PHI:%.*]] = phi i1 [ [[DOTPRE2]], %[[ENTRY_SW_BB26_CRIT_EDGE]] ], [ [[L83_PRE_PHI]], %[[SW_BB21]] ] ; CHECK-NEXT: ret ptr null ; entry: switch i64 0, label %sw.bb [ i64 1, label %sw.bb26 i64 0, label %sw.bb21 ] sw.bb: ; preds = %entry %l78 = trunc i8 %__pred.1.val to i1 %c79 = select i1 %l78, i64 0, i64 4 br label %sw.bb21 sw.bb21: ; preds = %sw.bb, %entry %l83 = trunc i8 %__pred.1.val to i1 %c84 = select i1 %l83, i64 0, i64 4 br label %sw.bb26 sw.bb26: ; preds = %sw.bb21, %entry %l88 = trunc i8 %__pred.1.val to i1 %c89 = select i1 %l88, i64 0, i64 4, !prof !0 ret ptr null } !0 = !{!"branch_weights", i32 3994, i32 883} ;. ; CHECK: [[PROF0]] = !{!"branch_weights", i32 3994, i32 883} ;.