brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.7 KiB · 755389b Raw
97 lines · plain
1; RUN: llvm-profdata merge %S/Inputs/select_hash_conflict.proftext -o %t.profdata2; RUN: opt < %s -passes=pgo-instr-use -pgo-test-profile-file=%t.profdata -pgo-instr-select=true -S | FileCheck %s3 4target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"5target triple = "x86_64-unknown-linux-gnu"6 7@a = common dso_local local_unnamed_addr global [16 x i32] zeroinitializer, align 168@c0 = common dso_local local_unnamed_addr global i8 0, align 19@c1 = common dso_local local_unnamed_addr global i8 0, align 110@c2 = common dso_local local_unnamed_addr global i8 0, align 111@c3 = common dso_local local_unnamed_addr global i8 0, align 112@c4 = common dso_local local_unnamed_addr global i8 0, align 113@c5 = common dso_local local_unnamed_addr global i8 0, align 114@c6 = common dso_local local_unnamed_addr global i8 0, align 115@c7 = common dso_local local_unnamed_addr global i8 0, align 116@c8 = common dso_local local_unnamed_addr global i8 0, align 117@c9 = common dso_local local_unnamed_addr global i8 0, align 118@c10 = common dso_local local_unnamed_addr global i8 0, align 119@c11 = common dso_local local_unnamed_addr global i8 0, align 120@c12 = common dso_local local_unnamed_addr global i8 0, align 121@c13 = common dso_local local_unnamed_addr global i8 0, align 122@c14 = common dso_local local_unnamed_addr global i8 0, align 123@c15 = common dso_local local_unnamed_addr global i8 0, align 124 25define i32 @foo(i32 %n) {26entry:27  %0 = load i8, ptr @c0, align 128  %tobool = icmp eq i8 %0, 029  %cond = select i1 %tobool, i32 2, i32 130  store i32 %cond, ptr @a, align 1631  %1 = load i8, ptr @c1, align 132  %tobool2 = icmp eq i8 %1, 033  %cond3 = select i1 %tobool2, i32 2, i32 134  store i32 %cond3, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 1), align 435  %2 = load i8, ptr @c2, align 136  %tobool5 = icmp eq i8 %2, 037  %cond6 = select i1 %tobool5, i32 2, i32 138  store i32 %cond6, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 2), align 839  %3 = load i8, ptr @c3, align 140  %tobool8 = icmp eq i8 %3, 041  %cond9 = select i1 %tobool8, i32 2, i32 142  store i32 %cond9, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 3), align 443  %4 = load i8, ptr @c4, align 144  %tobool11 = icmp eq i8 %4, 045  %cond12 = select i1 %tobool11, i32 2, i32 146  store i32 %cond12, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 4), align 1647  %5 = load i8, ptr @c5, align 148  %tobool14 = icmp eq i8 %5, 049  %cond15 = select i1 %tobool14, i32 2, i32 150  store i32 %cond15, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 5), align 451  %6 = load i8, ptr @c6, align 152  %tobool17 = icmp eq i8 %6, 053  %cond18 = select i1 %tobool17, i32 2, i32 154  store i32 %cond18, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 6), align 855  %7 = load i8, ptr @c7, align 156  %tobool20 = icmp eq i8 %7, 057  %cond21 = select i1 %tobool20, i32 2, i32 158  store i32 %cond21, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 7), align 459  %8 = load i8, ptr @c8, align 160  %tobool23 = icmp eq i8 %8, 061  %cond24 = select i1 %tobool23, i32 2, i32 162  store i32 %cond24, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 8), align 1663  %9 = load i8, ptr @c9, align 164  %tobool26 = icmp eq i8 %9, 065  %cond27 = select i1 %tobool26, i32 2, i32 166  store i32 %cond27, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 9), align 467  %10 = load i8, ptr @c10, align 168  %tobool29 = icmp eq i8 %10, 069  %cond30 = select i1 %tobool29, i32 2, i32 170  store i32 %cond30, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 10), align 871  %11 = load i8, ptr @c11, align 172  %tobool32 = icmp eq i8 %11, 073  %cond33 = select i1 %tobool32, i32 2, i32 174  store i32 %cond33, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 11), align 475  %12 = load i8, ptr @c12, align 176  %tobool35 = icmp eq i8 %12, 077  %cond36 = select i1 %tobool35, i32 2, i32 178  store i32 %cond36, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 12), align 1679  %13 = load i8, ptr @c13, align 180  %tobool38 = icmp eq i8 %13, 081  %cond39 = select i1 %tobool38, i32 2, i32 182  store i32 %cond39, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 13), align 483  %14 = load i8, ptr @c14, align 184  %tobool41 = icmp eq i8 %14, 085  %cond42 = select i1 %tobool41, i32 2, i32 186  store i32 %cond42, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 14), align 887  %15 = load i8, ptr @c15, align 188  %tobool44 = icmp eq i8 %15, 089  %cond45 = select i1 %tobool44, i32 2, i32 190  store i32 %cond45, ptr getelementptr inbounds ([16 x i32], ptr @a, i64 0, i64 15), align 491  ret i32 %n92}93; CHECK-LABEL: define i32 @foo(i32 %n)94; We should skip the profile.95; CHECK-NOT: %{{.*}} = select i1 %{{.*}}, i32 2, i32 1, !prof96 97