brintos

brintos / llvm-project-archived public Read only

0
0
Text · 866 B · dcdad00 Raw
30 lines · plain
1; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s --implicit-check-not=MemoryDef2;3; Ensures that allow.*.check are treated as not reading or writing memory.4 5target triple = "aarch64-linux"6 7define i1 @test_runtime(ptr %a) local_unnamed_addr {8entry:9; CHECK: 1 = MemoryDef(liveOnEntry)10  store i32 4, ptr %a, align 411  %allow = call i1 @llvm.allow.runtime.check(metadata !"test_check")12  %0 = load i32, ptr %a, align 413; CHECK: MemoryUse(1)14  ret i1 %allow15}16 17declare i1 @llvm.allow.runtime.check(metadata)18 19define i1 @test_ubsan(ptr %a) local_unnamed_addr {20entry:21; CHECK: 1 = MemoryDef(liveOnEntry)22  store i32 4, ptr %a, align 423  %allow = call i1 @llvm.allow.ubsan.check(i8 7)24  %0 = load i32, ptr %a, align 425; CHECK: MemoryUse(1)26  ret i1 %allow27}28 29declare i1 @llvm.allow.ubsan.check(i8)30