brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · 49174d2 Raw
102 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -S < %s | FileCheck %s3 4define void @strip_bitcast() {5; CHECK-LABEL: define void @strip_bitcast() {6; CHECK-NEXT:    [[A:%.*]] = alloca i8, align 17; CHECK-NEXT:    [[B:%.*]] = bitcast ptr [[A]] to ptr8; CHECK-NEXT:    call void @llvm.lifetime.start.p0(ptr [[A]])9; CHECK-NEXT:    call void @llvm.lifetime.end.p0(ptr [[A]])10; CHECK-NEXT:    ret void11;12  %a = alloca i813  %b = bitcast ptr %a to ptr14  call void @llvm.lifetime.start.p0(i64 1, ptr %b)15  call void @llvm.lifetime.end.p0(i64 1, ptr %b)16  ret void17}18 19define void @strip_addrspacecast() {20; CHECK-LABEL: define void @strip_addrspacecast() {21; CHECK-NEXT:    [[A:%.*]] = alloca i8, align 122; CHECK-NEXT:    [[B:%.*]] = addrspacecast ptr [[A]] to ptr addrspace(1)23; CHECK-NEXT:    call void @llvm.lifetime.start.p0(ptr [[A]])24; CHECK-NEXT:    call void @llvm.lifetime.end.p0(ptr [[A]])25; CHECK-NEXT:    ret void26;27  %a = alloca i828  %b = addrspacecast ptr %a to ptr addrspace(1)29  call void @llvm.lifetime.start.p1(i64 1, ptr addrspace(1) %b)30  call void @llvm.lifetime.end.p1(i64 1, ptr addrspace(1) %b)31  ret void32}33 34define void @strip_gep() {35; CHECK-LABEL: define void @strip_gep() {36; CHECK-NEXT:    [[A:%.*]] = alloca [2 x i8], align 137; CHECK-NEXT:    [[B:%.*]] = getelementptr [2 x i8], ptr [[A]], i64 0, i64 038; CHECK-NEXT:    call void @llvm.lifetime.start.p0(ptr [[A]])39; CHECK-NEXT:    call void @llvm.lifetime.end.p0(ptr [[A]])40; CHECK-NEXT:    ret void41;42  %a = alloca [2 x i8]43  %b = getelementptr [2 x i8], ptr %a, i64 0, i64 044  call void @llvm.lifetime.start.p0(i64 1, ptr %b)45  call void @llvm.lifetime.end.p0(i64 1, ptr %b)46  ret void47}48 49define void @remove_unanalyzable(ptr %p) {50; CHECK-LABEL: define void @remove_unanalyzable(51; CHECK-SAME: ptr [[P:%.*]]) {52; CHECK-NEXT:    ret void53;54  call void @llvm.lifetime.start.p0(i64 1, ptr %p)55  call void @llvm.lifetime.end.p0(i64 1, ptr %p)56  ret void57}58 59define void @no_declaration() {60; CHECK-LABEL: define void @no_declaration() {61; CHECK-NEXT:    [[A:%.*]] = alloca i8, align 1, addrspace(2)62; CHECK-NEXT:    call void @llvm.lifetime.start.p2(ptr addrspace(2) [[A]])63; CHECK-NEXT:    call void @llvm.lifetime.end.p2(ptr addrspace(2) [[A]])64; CHECK-NEXT:    ret void65;66  %a = alloca i8, addrspace(2)67  call void @llvm.lifetime.start.p2(i64 1, ptr addrspace(2) %a)68  call void @llvm.lifetime.end.p2(i64 1, ptr addrspace(2) %a)69  ret void70}71 72define void @no_suffix1() {73; CHECK-LABEL: define void @no_suffix1() {74; CHECK-NEXT:    [[A:%.*]] = alloca i8, align 1, addrspace(3)75; CHECK-NEXT:    call void @llvm.lifetime.start.p3(ptr addrspace(3) [[A]])76; CHECK-NEXT:    call void @llvm.lifetime.end.p3(ptr addrspace(3) [[A]])77; CHECK-NEXT:    ret void78;79  %a = alloca i8, addrspace(3)80  call void @llvm.lifetime.start(i64 1, ptr addrspace(3) %a)81  call void @llvm.lifetime.end(i64 1, ptr addrspace(3) %a)82  ret void83}84 85define void @no_suffix2() {86; CHECK-LABEL: define void @no_suffix2() {87; CHECK-NEXT:    [[A:%.*]] = alloca i8, align 1, addrspace(4)88; CHECK-NEXT:    call void @llvm.lifetime.start.p4(ptr addrspace(4) [[A]])89; CHECK-NEXT:    call void @llvm.lifetime.end.p4(ptr addrspace(4) [[A]])90; CHECK-NEXT:    ret void91;92  %a = alloca i8, addrspace(4)93  call void @llvm.lifetime.start(i64 1, ptr addrspace(4) %a)94  call void @llvm.lifetime.end(i64 1, ptr addrspace(4) %a)95  ret void96}97 98declare void @llvm.lifetime.start.p0(i64, ptr)99declare void @llvm.lifetime.end.p0(i64, ptr)100declare void @llvm.lifetime.start.p1(i64, ptr addrspace(1))101declare void @llvm.lifetime.end.p1(i64, ptr addrspace(1))102