xref: /llvm-project/llvm/test/Transforms/SampleProfile/pseudo-probe-cse.ll (revision c384b20b55c730f2382013d18b41269f04757873)
1; RUN: opt < %s -S -passes='early-cse<memssa>' | FileCheck %s
2
3define i16 @f1() readonly {
4  ret i16 0
5}
6
7declare void @f2()
8
9; Check that EarlyCSE correctly handles pseudo probes that don't have
10; a MemoryAccess.
11
12define void @f3() {
13; CHECK-LABEL: @f3(
14; CHECK-NEXT:    [[CALL1:%.*]] = call i16 @f1()
15; CHECK-NEXT:    call void @llvm.pseudoprobe
16; CHECK-NEXT:    ret void
17;
18  %call1 = call i16 @f1()
19  call void @llvm.pseudoprobe(i64 6878943695821059507, i64 9, i32 0, i64 -1)
20  %call2 = call i16 @f1()
21  ret void
22}
23
24
25; Function Attrs: inaccessiblememonly nounwind willreturn
26declare void @llvm.pseudoprobe(i64, i64, i32, i64) #0
27
28attributes #0 = { inaccessiblememonly nounwind willreturn }