16699029bSArthur Eubanks; RUN: opt -pgo-kind=pgo-instr-gen-pipeline -passes="default<O3>" -enable-nontrivial-unswitch -S < %s | FileCheck %s 27faa14a9SAlina Sbirlea; REQUIRES: asserts 37faa14a9SAlina Sbirlea 47faa14a9SAlina Sbirleatarget datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" 57faa14a9SAlina Sbirleatarget triple = "x86_64-unknown-linux-gnu" 67faa14a9SAlina Sbirlea 77faa14a9SAlina Sbirlea@__profn_c = private constant [1 x i8] c"c" 87faa14a9SAlina Sbirlea@b = common dso_local global i32 0, align 4 97faa14a9SAlina Sbirlea@a = common dso_local global i16 0, align 2 107faa14a9SAlina Sbirlea 117faa14a9SAlina Sbirlea; CHECK-LABEL: @c() 127faa14a9SAlina Sbirlea; Function Attrs: nounwind uwtable 137faa14a9SAlina Sbirleadefine dso_local void @c() #0 { 147faa14a9SAlina Sbirleaentry: 15*8e44f13cSNikita Popov call void @llvm.instrprof.increment(ptr @__profn_c, i64 68269137, i32 3, i32 0) 167faa14a9SAlina Sbirlea br label %for.cond 177faa14a9SAlina Sbirlea 187faa14a9SAlina Sbirleafor.cond: ; preds = %for.end, %entry 19*8e44f13cSNikita Popov call void @llvm.instrprof.increment(ptr @__profn_c, i64 68269137, i32 3, i32 1) 20*8e44f13cSNikita Popov store i32 0, ptr @b, align 4 217faa14a9SAlina Sbirlea br label %for.cond1 227faa14a9SAlina Sbirlea 237faa14a9SAlina Sbirleafor.cond1: ; preds = %for.inc, %for.cond 24*8e44f13cSNikita Popov %0 = load i32, ptr @b, align 4 25*8e44f13cSNikita Popov %1 = load i16, ptr @a, align 2 267faa14a9SAlina Sbirlea %conv = sext i16 %1 to i32 277faa14a9SAlina Sbirlea %cmp = icmp slt i32 %0, %conv 287faa14a9SAlina Sbirlea br i1 %cmp, label %for.body, label %for.end 297faa14a9SAlina Sbirlea 307faa14a9SAlina Sbirleafor.body: ; preds = %for.cond1 31*8e44f13cSNikita Popov call void @llvm.instrprof.increment(ptr @__profn_c, i64 68269137, i32 3, i32 2) 327faa14a9SAlina Sbirlea br label %for.inc 337faa14a9SAlina Sbirlea 347faa14a9SAlina Sbirleafor.inc: ; preds = %for.body 35*8e44f13cSNikita Popov %2 = load i32, ptr @b, align 4 367faa14a9SAlina Sbirlea %inc = add nsw i32 %2, 1 37*8e44f13cSNikita Popov store i32 %inc, ptr @b, align 4 387faa14a9SAlina Sbirlea br label %for.cond1 397faa14a9SAlina Sbirlea 407faa14a9SAlina Sbirleafor.end: ; preds = %for.cond1 417faa14a9SAlina Sbirlea br label %for.cond 427faa14a9SAlina Sbirlea} 437faa14a9SAlina Sbirlea 447faa14a9SAlina Sbirlea; Function Attrs: nounwind 45*8e44f13cSNikita Popovdeclare void @llvm.instrprof.increment(ptr, i64, i32, i32) #1 467faa14a9SAlina Sbirlea 474ab3041aSserge-sans-pailleattributes #0 = { nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" } 487faa14a9SAlina Sbirleaattributes #1 = { nounwind } 497faa14a9SAlina Sbirlea 50