xref: /llvm-project/llvm/test/Transforms/InstCombine/allow-checks.ll (revision c0cabfbdaf547b1152065be5419bc48e0b83b761)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt < %s -passes=instcombine -S | FileCheck %s --implicit-check-not="call i1 @llvm.allow"
3
4define i1 @test_runtime()  {
5; CHECK-LABEL: @test_runtime(
6; CHECK-NEXT:  entry:
7; CHECK-NEXT:    [[HOT:%.*]] = call i1 @llvm.allow.runtime.check(metadata !"test")
8; CHECK-NEXT:    ret i1 [[HOT]]
9;
10entry:
11  %allow = call i1 @llvm.allow.runtime.check(metadata !"test")
12  ret i1 %allow
13}
14
15define void @test_runtime_void()  {
16; CHECK-LABEL: @test_runtime_void(
17; CHECK-NEXT:  entry:
18; CHECK-NEXT:    ret void
19;
20entry:
21  %allow = call i1 @llvm.allow.runtime.check(metadata !"test")
22  ret void
23}
24
25define i1 @test_ubsan()  {
26; CHECK-LABEL: @test_ubsan(
27; CHECK-NEXT:  entry:
28; CHECK-NEXT:    [[HOT:%.*]] = call i1 @llvm.allow.ubsan.check(i8 11)
29; CHECK-NEXT:    ret i1 [[HOT]]
30;
31entry:
32  %allow = call i1 @llvm.allow.ubsan.check(i8 11)
33  ret i1 %allow
34}
35
36define void @test_ubsan_void()  {
37; CHECK-LABEL: @test_ubsan_void(
38; CHECK-NEXT:  entry:
39; CHECK-NEXT:    ret void
40;
41entry:
42  %allow = call i1 @llvm.allow.ubsan.check(i8 11)
43  ret void
44}
45