xref: /llvm-project/llvm/test/Transforms/SimpleLoopUnswitch/basictest-profmd.ll (revision 1db2551cc1a356a67c0967f424d6158e2ea127e3)
1*1db2551cSBjorn Pettersson; RUN: opt -passes='loop(simple-loop-unswitch),verify<loops>' -S < %s | FileCheck %s
2*1db2551cSBjorn Pettersson; RUN: opt -verify-memoryssa -passes='loop-mssa(simple-loop-unswitch),verify<loops>' -S < %s | FileCheck %s
3d4097b4aSYevgeny Rouban
4d4097b4aSYevgeny Roubandeclare void @incf()
5d4097b4aSYevgeny Roubandeclare void @decf()
6d4097b4aSYevgeny Rouban
7d4097b4aSYevgeny Roubandefine i32 @test2(i32 %c) {
8d4097b4aSYevgeny Rouban; CHECK-LABEL: @test2(
9d4097b4aSYevgeny Rouban  br label %loop_begin
10d4097b4aSYevgeny Rouban
11d4097b4aSYevgeny Rouban; CHECK: !prof ![[MD0:[0-9]+]]
12d4097b4aSYevgeny Rouban; CHECK: loop_begin:
13d4097b4aSYevgeny Rouban; CHECK: !prof ![[MD1:[0-9]+]]
14d4097b4aSYevgeny Roubanloop_begin:
15d4097b4aSYevgeny Rouban
16d4097b4aSYevgeny Rouban  switch i32 %c, label %default [
17d4097b4aSYevgeny Rouban      i32 1, label %inc
18d4097b4aSYevgeny Rouban      i32 2, label %dec
195c31b8b9SArthur Eubanks  ], !prof !{!"branch_weights", i32 99, i32 1, i32 2}
20d4097b4aSYevgeny Rouban
21d4097b4aSYevgeny Roubaninc:
22d4097b4aSYevgeny Rouban  call void @incf()
23d4097b4aSYevgeny Rouban  br label %loop_begin
24d4097b4aSYevgeny Rouban
25d4097b4aSYevgeny Roubandec:
26d4097b4aSYevgeny Rouban  call void @decf()
27d4097b4aSYevgeny Rouban  br label %loop_begin
28d4097b4aSYevgeny Rouban
29d4097b4aSYevgeny Roubandefault:
30d4097b4aSYevgeny Rouban  ret i32 0
31d4097b4aSYevgeny Rouban}
32d4097b4aSYevgeny Rouban
335c31b8b9SArthur Eubanks; CHECK: ![[MD0]] = !{!"branch_weights", i32 99, i32 1, i32 2}
345c31b8b9SArthur Eubanks; CHECK: ![[MD1]] = !{!"branch_weights", i32 2, i32 1}
35