; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 ;; Test to ensure that memprof related metadata is not dropped when ;; instructions are combined. Currently the metadata from the first instruction ;; is kept, which prevents full loss of profile context information. ; RUN: opt < %s -passes=simplifycfg -S | FileCheck %s target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" define dso_local noundef nonnull ptr @_Z9test_leftb(i1 noundef zeroext %b) local_unnamed_addr #0 { ; CHECK-LABEL: define dso_local noundef nonnull ptr @_Z9test_leftb( ; CHECK-SAME: i1 noundef zeroext [[B:%.*]]) local_unnamed_addr { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: [[CALL:%.*]] = call noalias noundef nonnull dereferenceable(4) ptr @_Znwm(i64 noundef 4), !memprof [[META0:![0-9]+]], !callsite [[META3:![0-9]+]] ; CHECK-NEXT: ret ptr [[CALL]] ; entry: br i1 %b, label %if.then, label %if.else if.then: ; preds = %entry %call = call noalias noundef nonnull dereferenceable(4) ptr @_Znwm(i64 noundef 4), !memprof !0, !callsite !3 br label %if.end if.else: ; preds = %entry %call1 = call noalias noundef nonnull dereferenceable(4) ptr @_Znwm(i64 noundef 4) br label %if.end if.end: ; preds = %if.else, %if.then %x.0 = phi ptr [ %call, %if.then ], [ %call1, %if.else ] ret ptr %x.0 } declare ptr @_Znwm(i64) nounwind readonly !0 = !{!1} !1 = !{!2, !"notcold"} !2 = !{i64 -852997907418798798, i64 -2101080423462424381, i64 5188446645037944434} !3 = !{i64 -852997907418798798} ;. ; CHECK: [[META0]] = !{[[META1:![0-9]+]]} ; CHECK: [[META1]] = !{[[META2:![0-9]+]], !"notcold"} ; CHECK: [[META2]] = !{i64 -852997907418798798, i64 -2101080423462424381, i64 5188446645037944434} ; CHECK: [[META3]] = !{i64 -852997907418798798} ;.