brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · cc2bc89 Raw
81 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 22; RUN: opt -S -p=globalopt %s | FileCheck %s3 4 5@llvm.used = appending global [1 x ptr] [ptr @ctor]6@gv0 = internal addrspace(1) global ptr null7@gv1 = internal addrspace(1) global ptr addrspace(3) null8@gv2 = internal addrspace(1) global ptr addrspace(1) null9@gv3 = internal addrspace(1) global ptr addrspace(1) null10 11define internal void @ctor() {12; CHECK-LABEL: define internal void @ctor() {13; CHECK-NEXT:    tail call fastcc void @init0(ptr addrspacecast (ptr addrspace(1) null to ptr))14; CHECK-NEXT:    tail call fastcc void @init1(ptr addrspacecast (ptr addrspace(3) null to ptr))15; CHECK-NEXT:    tail call fastcc void @init2(ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1)))16; CHECK-NEXT:    tail call fastcc void @init3(ptr addrspace(1) addrspacecast (ptr addrspace(2) null to ptr addrspace(1)))17; CHECK-NEXT:    ret void18;19  tail call void @init0(ptr addrspacecast (ptr addrspace(1) null to ptr))20  tail call void @init1(ptr addrspacecast (ptr addrspace(3) null to ptr))21  tail call void @init2(ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1)))22  tail call void @init3(ptr addrspace(1) addrspacecast (ptr addrspace(2) null to ptr addrspace(1)))23  ret void24}25 26define internal void @init0(ptr %T) {27; CHECK-LABEL: define internal fastcc void @init028; CHECK-SAME: (ptr [[T:%.*]]) unnamed_addr {29; CHECK-NEXT:    [[LD:%.*]] = load ptr, ptr addrspace(1) @gv0, align 830; CHECK-NEXT:    [[CMP:%.*]] = icmp eq ptr [[LD]], null31; CHECK-NEXT:    store ptr addrspacecast (ptr addrspace(1) null to ptr), ptr addrspace(1) @gv0, align 832; CHECK-NEXT:    ret void33;34  %ld = load ptr, ptr addrspace(1) @gv0, align 835  %cmp = icmp eq ptr %ld, null36  store ptr addrspacecast (ptr addrspace(1) null to ptr), ptr addrspace(1) @gv0, align 837  ret void38}39 40define internal void @init1(ptr %T) {41; CHECK-LABEL: define internal fastcc void @init142; CHECK-SAME: (ptr [[T:%.*]]) unnamed_addr {43; CHECK-NEXT:    [[LD:%.*]] = load ptr addrspace(3), ptr addrspace(1) @gv1, align 444; CHECK-NEXT:    [[CMP:%.*]] = icmp eq ptr addrspace(3) [[LD]], null45; CHECK-NEXT:    store ptr addrspacecast (ptr addrspace(3) null to ptr), ptr addrspace(1) @gv1, align 846; CHECK-NEXT:    ret void47;48  %ld = load ptr addrspace(3), ptr addrspace(1) @gv1, align 449  %cmp = icmp eq ptr addrspace(3) %ld, null50  store ptr addrspacecast (ptr addrspace(3) null to ptr), ptr addrspace(1) @gv1, align 851  ret void52}53 54define internal void @init2(ptr addrspace(1) %T) {55; CHECK-LABEL: define internal fastcc void @init256; CHECK-SAME: (ptr addrspace(1) [[T:%.*]]) unnamed_addr {57; CHECK-NEXT:    [[LD:%.*]] = load ptr addrspace(1), ptr addrspace(1) @gv2, align 458; CHECK-NEXT:    [[CMP:%.*]] = icmp eq ptr addrspace(1) [[LD]], null59; CHECK-NEXT:    store ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1)), ptr addrspace(1) @gv2, align 860; CHECK-NEXT:    ret void61;62  %ld = load ptr addrspace(1), ptr addrspace(1) @gv2, align 463  %cmp = icmp eq ptr addrspace(1) %ld, null64  store ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1)), ptr addrspace(1) @gv2, align 865  ret void66}67 68define internal void @init3(ptr addrspace(1) %T) {69; CHECK-LABEL: define internal fastcc void @init370; CHECK-SAME: (ptr addrspace(1) [[T:%.*]]) unnamed_addr {71; CHECK-NEXT:    [[LD:%.*]] = load ptr addrspace(1), ptr addrspace(1) @gv3, align 472; CHECK-NEXT:    [[CMP:%.*]] = icmp eq ptr addrspace(1) [[LD]], null73; CHECK-NEXT:    store ptr addrspace(1) addrspacecast (ptr addrspace(2) null to ptr addrspace(1)), ptr addrspace(1) @gv3, align 874; CHECK-NEXT:    ret void75;76  %ld = load ptr addrspace(1), ptr addrspace(1) @gv3, align 477  %cmp = icmp eq ptr addrspace(1) %ld, null78  store ptr addrspace(1) addrspacecast (ptr addrspace(2) null to ptr addrspace(1)), ptr addrspace(1) @gv3, align 879  ret void80}81