
Intrinsic declared to have sideeffects, but it's done only to prevent moving it. Removing unused ones is OK. Exacted from #84850 for easier review.
45 lines
1.1 KiB
LLVM
45 lines
1.1 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt < %s -passes=instcombine -S | FileCheck %s --implicit-check-not="call i1 @llvm.allow"
|
|
|
|
define i1 @test_runtime() {
|
|
; CHECK-LABEL: @test_runtime(
|
|
; CHECK-NEXT: entry:
|
|
; CHECK-NEXT: [[HOT:%.*]] = call i1 @llvm.allow.runtime.check(metadata !"test")
|
|
; CHECK-NEXT: ret i1 [[HOT]]
|
|
;
|
|
entry:
|
|
%allow = call i1 @llvm.allow.runtime.check(metadata !"test")
|
|
ret i1 %allow
|
|
}
|
|
|
|
define void @test_runtime_void() {
|
|
; CHECK-LABEL: @test_runtime_void(
|
|
; CHECK-NEXT: entry:
|
|
; CHECK-NEXT: ret void
|
|
;
|
|
entry:
|
|
%allow = call i1 @llvm.allow.runtime.check(metadata !"test")
|
|
ret void
|
|
}
|
|
|
|
define i1 @test_ubsan() {
|
|
; CHECK-LABEL: @test_ubsan(
|
|
; CHECK-NEXT: entry:
|
|
; CHECK-NEXT: [[HOT:%.*]] = call i1 @llvm.allow.ubsan.check(i8 11)
|
|
; CHECK-NEXT: ret i1 [[HOT]]
|
|
;
|
|
entry:
|
|
%allow = call i1 @llvm.allow.ubsan.check(i8 11)
|
|
ret i1 %allow
|
|
}
|
|
|
|
define void @test_ubsan_void() {
|
|
; CHECK-LABEL: @test_ubsan_void(
|
|
; CHECK-NEXT: entry:
|
|
; CHECK-NEXT: ret void
|
|
;
|
|
entry:
|
|
%allow = call i1 @llvm.allow.ubsan.check(i8 11)
|
|
ret void
|
|
}
|