Home | History | Annotate | Download | only in ScalarEvolution
      1 ; RUN: opt < %s -iv-users
      2 ; PR4538
      3 
      4 ; ModuleID = 'bugpoint-reduced-simplified.bc'
      5 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"
      6 target triple = "x86_64-unknown-freebsd8.0"
      7 module asm ".ident\09\22$FreeBSD: head/sys/kern/vfs_subr.c 195285 2009-07-02 14:19:33Z jamie $\22"
      8 module asm ".section set_pcpu, \22aw\22, @progbits"
      9 module asm ".previous"
     10 	%0 = type <{ [40 x i8] }>		; type %0
     11 	%1 = type <{ %struct.vm_object*, %struct.vm_object** }>		; type %1
     12 	%2 = type <{ %struct.vm_object* }>		; type %2
     13 	%3 = type <{ %struct.vm_page*, %struct.vm_page** }>		; type %3
     14 	%4 = type <{ %struct.pv_entry*, %struct.pv_entry** }>		; type %4
     15 	%5 = type <{ %struct.vm_reserv* }>		; type %5
     16 	%6 = type <{ %struct.bufobj*, %struct.bufobj** }>		; type %6
     17 	%7 = type <{ %struct.proc*, %struct.proc** }>		; type %7
     18 	%8 = type <{ %struct.thread*, %struct.thread** }>		; type %8
     19 	%9 = type <{ %struct.prison*, %struct.prison** }>		; type %9
     20 	%10 = type <{ %struct.prison* }>		; type %10
     21 	%11 = type <{ %struct.task* }>		; type %11
     22 	%12 = type <{ %struct.osd*, %struct.osd** }>		; type %12
     23 	%13 = type <{ %struct.proc* }>		; type %13
     24 	%14 = type <{ %struct.ksiginfo*, %struct.ksiginfo** }>		; type %14
     25 	%15 = type <{ %struct.pv_chunk*, %struct.pv_chunk** }>		; type %15
     26 	%16 = type <{ %struct.pgrp*, %struct.pgrp** }>		; type %16
     27 	%17 = type <{ %struct.knote*, %struct.knote** }>		; type %17
     28 	%18 = type <{ %struct.ktr_request*, %struct.ktr_request** }>		; type %18
     29 	%19 = type <{ %struct.mqueue_notifier* }>		; type %19
     30 	%20 = type <{ %struct.turnstile* }>		; type %20
     31 	%21 = type <{ %struct.namecache* }>		; type %21
     32 	%22 = type <{ %struct.namecache*, %struct.namecache** }>		; type %22
     33 	%23 = type <{ %struct.lockf*, %struct.lockf** }>		; type %23
     34 	%24 = type <{ %struct.lockf_entry*, %struct.lockf_entry** }>		; type %24
     35 	%25 = type <{ %struct.lockf_edge*, %struct.lockf_edge** }>		; type %25
     36 	%struct.__siginfo = type <{ i32, i32, i32, i32, i32, i32, i8*, %union.sigval, %0 }>
     37 	%struct.__sigset = type <{ [4 x i32] }>
     38 	%struct.acl = type <{ i32, i32, [4 x i32], [254 x %struct.acl_entry] }>
     39 	%struct.acl_entry = type <{ i32, i32, i32, i16, i16 }>
     40 	%struct.au_mask = type <{ i32, i32 }>
     41 	%struct.au_tid_addr = type <{ i32, i32, [4 x i32] }>
     42 	%struct.auditinfo_addr = type <{ i32, %struct.au_mask, %struct.au_tid_addr, i32, i64 }>
     43 	%struct.bintime = type <{ i64, i64 }>
     44 	%struct.buf = type <{ %struct.bufobj*, i64, i8*, i8*, i32, i8, i8, i8, i8, i64, i64, void (%struct.buf*)*, i64, i64, %struct.buflists, %struct.buf*, %struct.buf*, i32, i8, i8, i8, i8, %struct.buflists, i16, i8, i8, i32, i8, i8, i8, i8, i8, i8, i8, i8, %struct.lock, i64, i64, i8*, i32, i8, i8, i8, i8, i64, %struct.vnode*, i32, i32, %struct.ucred*, %struct.ucred*, i8*, %union.pager_info, i8, i8, i8, i8, %union.anon, [32 x %struct.vm_page*], i32, i8, i8, i8, i8, %struct.workhead, i8*, i8*, i8*, i32, i8, i8, i8, i8 }>
     45 	%struct.buf_ops = type <{ i8*, i32 (%struct.buf*)*, void (%struct.bufobj*, %struct.buf*)*, i32 (%struct.bufobj*, i32)*, void (%struct.bufobj*, %struct.buf*)* }>
     46 	%struct.buflists = type <{ %struct.buf*, %struct.buf** }>
     47 	%struct.bufobj = type <{ %struct.mtx, %struct.bufv, %struct.bufv, i64, i32, i8, i8, i8, i8, %struct.buf_ops*, i32, i8, i8, i8, i8, %struct.vm_object*, %6, i8*, %struct.vnode* }>
     48 	%struct.bufv = type <{ %struct.buflists, %struct.buf*, i32, i8, i8, i8, i8 }>
     49 	%struct.callout = type <{ %union.anon, i32, i8, i8, i8, i8, i8*, void (i8*)*, %struct.lock_object*, i32, i32 }>
     50 	%struct.cdev_privdata = type opaque
     51 	%struct.cluster_save = type <{ i64, i64, i8*, i32, i8, i8, i8, i8, %struct.buf** }>
     52 	%struct.componentname = type <{ i64, i64, %struct.thread*, %struct.ucred*, i32, i8, i8, i8, i8, i8*, i8*, i64, i64 }>
     53 	%struct.cpuset = type opaque
     54 	%struct.cv = type <{ i8*, i32, i8, i8, i8, i8 }>
     55 	%struct.fid = type <{ i16, i16, [16 x i8] }>
     56 	%struct.file = type <{ i8*, %struct.fileops*, %struct.ucred*, %struct.vnode*, i16, i16, i32, i32, i32, i64, %struct.cdev_privdata*, i64, i8* }>
     57 	%struct.filedesc = type opaque
     58 	%struct.filedesc_to_leader = type opaque
     59 	%struct.fileops = type <{ i32 (%struct.file*, %struct.uio*, %struct.ucred*, i32, %struct.thread*)*, i32 (%struct.file*, %struct.uio*, %struct.ucred*, i32, %struct.thread*)*, i32 (%struct.file*, i64, %struct.ucred*, %struct.thread*)*, i32 (%struct.file*, i64, i8*, %struct.ucred*, %struct.thread*)*, i32 (%struct.file*, i32, %struct.ucred*, %struct.thread*)*, i32 (%struct.file*, %struct.knote*)*, i32 (%struct.file*, %struct.stat*, %struct.ucred*, %struct.thread*)*, i32 (%struct.file*, %struct.thread*)*, i32, i8, i8, i8, i8 }>
     60 	%struct.filterops = type <{ i32, i8, i8, i8, i8, i32 (%struct.knote*)*, void (%struct.knote*)*, i32 (%struct.knote*, i64)* }>
     61 	%struct.flock = type <{ i64, i64, i32, i16, i16, i32, i8, i8, i8, i8 }>
     62 	%struct.freelst = type <{ %struct.vnode*, %struct.vnode** }>
     63 	%struct.fsid = type <{ [2 x i32] }>
     64 	%struct.in6_addr = type opaque
     65 	%struct.in_addr = type opaque
     66 	%struct.inode = type opaque
     67 	%struct.iovec = type <{ i8*, i64 }>
     68 	%struct.itimers = type opaque
     69 	%struct.itimerval = type <{ %struct.bintime, %struct.bintime }>
     70 	%struct.kaioinfo = type opaque
     71 	%struct.kaudit_record = type opaque
     72 	%struct.kdtrace_proc = type opaque
     73 	%struct.kdtrace_thread = type opaque
     74 	%struct.kevent = type <{ i64, i16, i16, i32, i64, i8* }>
     75 	%struct.klist = type <{ %struct.knote* }>
     76 	%struct.knlist = type <{ %struct.klist, void (i8*)*, void (i8*)*, void (i8*)*, void (i8*)*, i8* }>
     77 	%struct.knote = type <{ %struct.klist, %struct.klist, %struct.knlist*, %17, %struct.kqueue*, %struct.kevent, i32, i32, i64, %union.sigval, %struct.filterops*, i8* }>
     78 	%struct.kqueue = type opaque
     79 	%struct.ksiginfo = type <{ %14, %struct.__siginfo, i32, i8, i8, i8, i8, %struct.sigqueue* }>
     80 	%struct.ktr_request = type opaque
     81 	%struct.label = type opaque
     82 	%struct.lock = type <{ %struct.lock_object, i64, i32, i32 }>
     83 	%struct.lock_list_entry = type opaque
     84 	%struct.lock_object = type <{ i8*, i32, i32, %struct.witness* }>
     85 	%struct.lock_owner = type opaque
     86 	%struct.lock_profile_object = type opaque
     87 	%struct.lockf = type <{ %23, %struct.mtx, %struct.lockf_entry_list, %struct.lockf_entry_list, i32, i8, i8, i8, i8 }>
     88 	%struct.lockf_edge = type <{ %25, %25, %struct.lockf_entry*, %struct.lockf_entry* }>
     89 	%struct.lockf_edge_list = type <{ %struct.lockf_edge* }>
     90 	%struct.lockf_entry = type <{ i16, i16, i8, i8, i8, i8, i64, i64, %struct.lock_owner*, %struct.vnode*, %struct.inode*, %struct.task*, %24, %struct.lockf_edge_list, %struct.lockf_edge_list, i32, i8, i8, i8, i8 }>
     91 	%struct.lockf_entry_list = type <{ %struct.lockf_entry* }>
     92 	%struct.lpohead = type <{ %struct.lock_profile_object* }>
     93 	%struct.md_page = type <{ %4 }>
     94 	%struct.mdproc = type <{ %struct.cv*, %struct.system_segment_descriptor }>
     95 	%struct.mdthread = type <{ i32, i8, i8, i8, i8, i64 }>
     96 	%struct.mntarg = type opaque
     97 	%struct.mntlist = type <{ %struct.mount*, %struct.mount** }>
     98 	%struct.mount = type <{ %struct.mtx, i32, i8, i8, i8, i8, %struct.mntlist, %struct.vfsops*, %struct.vfsconf*, %struct.vnode*, %struct.vnode*, i32, i8, i8, i8, i8, %struct.freelst, i32, i32, i32, i32, i32, i32, %struct.vfsoptlist*, %struct.vfsoptlist*, i32, i8, i8, i8, i8, %struct.statfs, %struct.ucred*, i8*, i64, i32, i8, i8, i8, i8, %struct.netexport*, %struct.label*, i32, i32, i32, i32, %struct.thread*, i8*, %struct.lock }>
     99 	%struct.mqueue_notifier = type opaque
    100 	%struct.mtx = type <{ %struct.lock_object, i64 }>
    101 	%struct.namecache = type opaque
    102 	%struct.netexport = type opaque
    103 	%struct.nlminfo = type opaque
    104 	%struct.osd = type <{ i32, i8, i8, i8, i8, i8**, %12 }>
    105 	%struct.p_sched = type opaque
    106 	%struct.pargs = type <{ i32, i32, [1 x i8], i8, i8, i8 }>
    107 	%struct.pcb = type opaque
    108 	%struct.pgrp = type <{ %16, %13, %struct.session*, %struct.sigiolst, i32, i32, %struct.mtx }>
    109 	%struct.plimit = type opaque
    110 	%struct.pmap = type <{ %struct.mtx, i64*, %15, i32, i8, i8, i8, i8, %struct.bintime, %struct.vm_page* }>
    111 	%struct.prison = type <{ %9, i32, i32, i32, i32, %10, %9, %struct.prison*, %struct.mtx, %struct.task, %struct.osd, %struct.cpuset*, %struct.vnet*, %struct.vnode*, i32, i32, %struct.in_addr*, %struct.in6_addr*, [4 x i8*], i32, i32, i32, i32, i32, [5 x i32], i64, [256 x i8], [1024 x i8], [256 x i8], [256 x i8], [64 x i8] }>
    112 	%struct.proc = type <{ %7, %8, %struct.mtx, %struct.ucred*, %struct.filedesc*, %struct.filedesc_to_leader*, %struct.pstats*, %struct.plimit*, %struct.callout, %struct.sigacts*, i32, i32, i32, i8, i8, i8, i8, %7, %7, %struct.proc*, %7, %13, %struct.mtx, %struct.ksiginfo*, %struct.sigqueue, i32, i8, i8, i8, i8, %struct.vmspace*, i32, i8, i8, i8, i8, %struct.itimerval, %struct.rusage, %struct.rusage_ext, %struct.rusage_ext, i32, i32, i32, i8, i8, i8, i8, %struct.vnode*, %struct.ucred*, %struct.vnode*, i32, i8, i8, i8, i8, %struct.sigiolst, i32, i32, i64, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, %struct.nlminfo*, %struct.kaioinfo*, %struct.thread*, i32, i8, i8, i8, i8, %struct.thread*, i32, i32, %struct.itimers*, i32, i32, [20 x i8], i8, i8, i8, i8, %struct.pgrp*, %struct.sysentvec*, %struct.pargs*, i64, i8, i8, i8, i8, i32, i16, i8, i8, i8, i8, i8, i8, %struct.knlist, i32, i8, i8, i8, i8, %struct.mdproc, %struct.callout, i16, i8, i8, i8, i8, i8, i8, %struct.proc*, %struct.proc*, i8*, %struct.label*, %struct.p_sched*, %18, %19, %struct.kdtrace_proc*, %struct.cv }>
    113 	%struct.pstats = type opaque
    114 	%struct.pv_chunk = type <{ %struct.pmap*, %15, [3 x i64], [2 x i64], [168 x %struct.pv_entry] }>
    115 	%struct.pv_entry = type <{ i64, %4 }>
    116 	%struct.rusage = type <{ %struct.bintime, %struct.bintime, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64 }>
    117 	%struct.rusage_ext = type <{ i64, i64, i64, i64, i64, i64, i64 }>
    118 	%struct.selfd = type opaque
    119 	%struct.selfdlist = type <{ %struct.selfd*, %struct.selfd** }>
    120 	%struct.selinfo = type <{ %struct.selfdlist, %struct.knlist, %struct.mtx* }>
    121 	%struct.seltd = type opaque
    122 	%struct.session = type <{ i32, i8, i8, i8, i8, %struct.proc*, %struct.vnode*, %struct.tty*, i32, [24 x i8], i8, i8, i8, i8, %struct.mtx }>
    123 	%struct.shmmap_state = type opaque
    124 	%struct.sigacts = type <{ [128 x void (i32)*], [128 x %struct.__sigset], %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, %struct.__sigset, i32, i32, %struct.mtx }>
    125 	%struct.sigaltstack = type <{ i8*, i64, i32, i8, i8, i8, i8 }>
    126 	%struct.sigio = type <{ %union.sigval, %struct.sigiolst, %struct.sigio**, %struct.ucred*, i32, i8, i8, i8, i8 }>
    127 	%struct.sigiolst = type <{ %struct.sigio* }>
    128 	%struct.sigqueue = type <{ %struct.__sigset, %struct.__sigset, %14, %struct.proc*, i32, i8, i8, i8, i8 }>
    129 	%struct.sleepqueue = type opaque
    130 	%struct.sockaddr = type opaque
    131 	%struct.stat = type <{ i32, i32, i16, i16, i32, i32, i32, %struct.bintime, %struct.bintime, %struct.bintime, i64, i64, i32, i32, i32, i32, %struct.bintime }>
    132 	%struct.statfs = type <{ i32, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, [10 x i64], i32, i32, %struct.fsid, [80 x i8], [16 x i8], [88 x i8], [88 x i8] }>
    133 	%struct.sysctl_req = type <{ %struct.thread*, i32, i8, i8, i8, i8, i8*, i64, i64, i32 (%struct.sysctl_req*, i8*, i64)*, i8*, i64, i64, i32 (%struct.sysctl_req*, i8*, i64)*, i64, i32, i8, i8, i8, i8 }>
    134 	%struct.sysentvec = type opaque
    135 	%struct.system_segment_descriptor = type <{ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }>
    136 	%struct.task = type <{ %11, i16, i16, i8, i8, i8, i8, void (i8*, i32)*, i8* }>
    137 	%struct.td_sched = type opaque
    138 	%struct.thread = type <{ %struct.mtx*, %struct.proc*, %8, %8, %8, %8, %struct.cpuset*, %struct.seltd*, %struct.sleepqueue*, %struct.turnstile*, %struct.umtx_q*, i32, i8, i8, i8, i8, %struct.sigqueue, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8*, i8*, i8, i8, i8, i8, i16, i16, i16, i8, i8, i8, i8, i8, i8, %struct.turnstile*, i8*, %20, %struct.lock_list_entry*, i32, i32, %struct.ucred*, i32, i32, %struct.rusage, i64, i64, i32, i32, i32, i32, i32, %struct.__sigset, %struct.__sigset, i32, %struct.sigaltstack, i32, i8, i8, i8, i8, i64, i32, [20 x i8], %struct.file*, i32, i32, %struct.osd, i8, i8, i8, i8, i8, i8, i8, i8, %struct.pcb*, i32, i8, i8, i8, i8, [2 x i64], %struct.callout, %struct.trapframe*, %struct.vm_object*, i64, i32, i8, i8, i8, i8, %struct.vm_object*, i64, i32, i32, %struct.mdthread, %struct.td_sched*, %struct.kaudit_record*, i32, i8, i8, i8, i8, [2 x %struct.lpohead], %struct.kdtrace_thread*, i32, i8, i8, i8, i8, %struct.vnet*, i8* }>
    139 	%struct.trapframe = type <{ i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i16, i16, i64, i32, i16, i16, i64, i64, i64, i64, i64, i64 }>
    140 	%struct.tty = type opaque
    141 	%struct.turnstile = type opaque
    142 	%struct.ucred = type <{ i32, i32, i32, i32, i32, i32, i32, i8, i8, i8, i8, %struct.uidinfo*, %struct.uidinfo*, %struct.prison*, %struct.vimage*, i32, i8, i8, i8, i8, [2 x i8*], %struct.label*, %struct.auditinfo_addr, i32*, i32, i8, i8, i8, i8 }>
    143 	%struct.uidinfo = type opaque
    144 	%struct.uio = type <{ %struct.iovec*, i32, i8, i8, i8, i8, i64, i64, i32, i32, %struct.thread* }>
    145 	%struct.umtx_q = type opaque
    146 	%struct.vattr = type <{ i32, i16, i16, i32, i32, i32, i8, i8, i8, i8, i64, i64, i64, %struct.bintime, %struct.bintime, %struct.bintime, %struct.bintime, i64, i64, i32, i8, i8, i8, i8, i64, i64, i32, i8, i8, i8, i8, i64 }>
    147 	%struct.vfsconf = type <{ i32, [16 x i8], i8, i8, i8, i8, %struct.vfsops*, i32, i32, i32, i8, i8, i8, i8, %struct.vfsoptdecl*, %struct.vfsconfhead }>
    148 	%struct.vfsconfhead = type <{ %struct.vfsconf*, %struct.vfsconf** }>
    149 	%struct.vfsops = type <{ i32 (%struct.mount*)*, i32 (%struct.mntarg*, i8*, i32)*, i32 (%struct.mount*, i32)*, i32 (%struct.mount*, i32, %struct.vnode**)*, i32 (%struct.mount*, i32, i32, i8*)*, i32 (%struct.mount*, %struct.statfs*)*, i32 (%struct.mount*, i32)*, i32 (%struct.mount*, i32, i32, %struct.vnode**)*, i32 (%struct.mount*, %struct.fid*, %struct.vnode**)*, i32 (%struct.mount*, %struct.sockaddr*, i32*, %struct.ucred**, i32*, i32**)*, i32 (%struct.vfsconf*)*, i32 (%struct.vfsconf*)*, i32 (%struct.mount*, i32, %struct.vnode*, i32, i8*)*, i32 (%struct.mount*, i32, %struct.sysctl_req*)*, void (%struct.mount*)* }>
    150 	%struct.vfsopt = type <{ %struct.vfsoptlist, i8*, i8*, i32, i32, i32, i8, i8, i8, i8 }>
    151 	%struct.vfsoptdecl = type opaque
    152 	%struct.vfsoptlist = type <{ %struct.vfsopt*, %struct.vfsopt** }>
    153 	%struct.vimage = type opaque
    154 	%struct.vm_map = type <{ %struct.vm_map_entry, %struct.mtx, %struct.mtx, i32, i8, i8, i8, i8, i64, i32, i8, i8, i8, i8, %struct.vm_map_entry*, %struct.pmap*, %struct.vm_map_entry* }>
    155 	%struct.vm_map_entry = type <{ %struct.vm_map_entry*, %struct.vm_map_entry*, %struct.vm_map_entry*, %struct.vm_map_entry*, i64, i64, i64, i64, i64, %union.sigval, i64, i32, i8, i8, i8, i8, i32, i8, i8, i8, i8, i64, %struct.uidinfo* }>
    156 	%struct.vm_object = type <{ %struct.mtx, %1, %2, %1, %3, %struct.vm_page*, i64, i32, i32, i32, i8, i8, i16, i16, i16, i32, %struct.vm_object*, i64, %1, %5, %struct.vm_page*, i8*, %union.anon, %struct.uidinfo*, i64 }>
    157 	%struct.vm_page = type <{ %3, %3, %struct.vm_page*, %struct.vm_page*, %struct.vm_object*, i64, i64, %struct.md_page, i8, i8, i16, i8, i8, i16, i32, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8 }>
    158 	%struct.vm_reserv = type opaque
    159 	%struct.vmspace = type <{ %struct.vm_map, %struct.shmmap_state*, i64, i64, i64, i64, i8*, i8*, i8*, i32, i8, i8, i8, i8, %struct.pmap }>
    160 	%struct.vnet = type opaque
    161 	%struct.vnode = type <{ i32, i8, i8, i8, i8, i8*, %struct.vop_vector*, i8*, %struct.mount*, %struct.freelst, %union.sigval, %struct.freelst, i32, i8, i8, i8, i8, %21, %22, %struct.namecache*, i64, i64, i64, i32, i8, i8, i8, i8, %struct.lock, %struct.mtx, %struct.lock*, i32, i32, i64, i64, i32, i8, i8, i8, i8, %struct.freelst, %struct.bufobj, %struct.vpollinfo*, %struct.label*, %struct.lockf* }>
    162 	%struct.vnodeop_desc = type <{ i8*, i32, i8, i8, i8, i8, i32 (%struct.vop_generic_args*)*, i32*, i32, i32, i32, i32 }>
    163 	%struct.vop_access_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, %struct.ucred*, %struct.thread* }>
    164 	%struct.vop_aclcheck_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, %struct.acl*, %struct.ucred*, %struct.thread* }>
    165 	%struct.vop_advlock_args = type <{ %struct.vop_generic_args, %struct.vnode*, i8*, i32, i8, i8, i8, i8, %struct.flock*, i32, i8, i8, i8, i8 }>
    166 	%struct.vop_advlockasync_args = type <{ %struct.vop_generic_args, %struct.vnode*, i8*, i32, i8, i8, i8, i8, %struct.flock*, i32, i8, i8, i8, i8, %struct.task*, i8** }>
    167 	%struct.vop_bmap_args = type <{ %struct.vop_generic_args, %struct.vnode*, i64, %struct.bufobj**, i64*, i32*, i32* }>
    168 	%struct.vop_cachedlookup_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode**, %struct.componentname* }>
    169 	%struct.vop_create_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode**, %struct.componentname*, %struct.vattr* }>
    170 	%struct.vop_deleteextattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, i8*, %struct.ucred*, %struct.thread* }>
    171 	%struct.vop_fsync_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, %struct.thread* }>
    172 	%struct.vop_generic_args = type <{ %struct.vnodeop_desc* }>
    173 	%struct.vop_getattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vattr*, %struct.ucred* }>
    174 	%struct.vop_getextattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, i8*, %struct.uio*, i64*, %struct.ucred*, %struct.thread* }>
    175 	%struct.vop_getpages_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vm_page**, i32, i32, i64 }>
    176 	%struct.vop_getwritemount_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.mount** }>
    177 	%struct.vop_inactive_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.thread* }>
    178 	%struct.vop_ioctl_args = type <{ %struct.vop_generic_args, %struct.vnode*, i64, i8*, i32, i8, i8, i8, i8, %struct.ucred*, %struct.thread* }>
    179 	%struct.vop_islocked_args = type <{ %struct.vop_generic_args, %struct.vnode* }>
    180 	%struct.vop_kqfilter_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.knote* }>
    181 	%struct.vop_link_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode*, %struct.componentname* }>
    182 	%struct.vop_listextattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, %struct.uio*, i64*, %struct.ucred*, %struct.thread* }>
    183 	%struct.vop_lock1_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, i8*, i32, i8, i8, i8, i8 }>
    184 	%struct.vop_open_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, %struct.ucred*, %struct.thread*, %struct.file* }>
    185 	%struct.vop_openextattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.ucred*, %struct.thread* }>
    186 	%struct.vop_pathconf_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, i64* }>
    187 	%struct.vop_putpages_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vm_page**, i32, i32, i32*, i64 }>
    188 	%struct.vop_read_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.uio*, i32, i8, i8, i8, i8, %struct.ucred* }>
    189 	%struct.vop_readdir_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.uio*, %struct.ucred*, i32*, i32*, i64** }>
    190 	%struct.vop_readlink_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.uio*, %struct.ucred* }>
    191 	%struct.vop_reallocblks_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.cluster_save* }>
    192 	%struct.vop_rename_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode*, %struct.componentname*, %struct.vnode*, %struct.vnode*, %struct.componentname* }>
    193 	%struct.vop_revoke_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8 }>
    194 	%struct.vop_setextattr_args = type <{ %struct.vop_generic_args, %struct.vnode*, i32, i8, i8, i8, i8, i8*, %struct.uio*, %struct.ucred*, %struct.thread* }>
    195 	%struct.vop_setlabel_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.label*, %struct.ucred*, %struct.thread* }>
    196 	%struct.vop_strategy_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.buf* }>
    197 	%struct.vop_symlink_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode**, %struct.componentname*, %struct.vattr*, i8* }>
    198 	%struct.vop_vector = type <{ %struct.vop_vector*, i32 (%struct.vop_generic_args*)*, i32 (%struct.vop_islocked_args*)*, i32 (%struct.vop_cachedlookup_args*)*, i32 (%struct.vop_cachedlookup_args*)*, i32 (%struct.vop_create_args*)*, i32 (%struct.vop_whiteout_args*)*, i32 (%struct.vop_create_args*)*, i32 (%struct.vop_open_args*)*, i32 (%struct.vop_access_args*)*, i32 (%struct.vop_access_args*)*, i32 (%struct.vop_access_args*)*, i32 (%struct.vop_getattr_args*)*, i32 (%struct.vop_getattr_args*)*, i32 (%struct.vop_islocked_args*)*, i32 (%struct.vop_read_args*)*, i32 (%struct.vop_read_args*)*, i32 (%struct.vop_ioctl_args*)*, i32 (%struct.vop_access_args*)*, i32 (%struct.vop_kqfilter_args*)*, i32 (%struct.vop_revoke_args*)*, i32 (%struct.vop_fsync_args*)*, i32 (%struct.vop_link_args*)*, i32 (%struct.vop_link_args*)*, i32 (%struct.vop_rename_args*)*, i32 (%struct.vop_create_args*)*, i32 (%struct.vop_link_args*)*, i32 (%struct.vop_symlink_args*)*, i32 (%struct.vop_readdir_args*)*, i32 (%struct.vop_readlink_args*)*, i32 (%struct.vop_inactive_args*)*, i32 (%struct.vop_inactive_args*)*, i32 (%struct.vop_lock1_args*)*, i32 (%struct.vop_revoke_args*)*, i32 (%struct.vop_bmap_args*)*, i32 (%struct.vop_strategy_args*)*, i32 (%struct.vop_getwritemount_args*)*, i32 (%struct.vop_islocked_args*)*, i32 (%struct.vop_pathconf_args*)*, i32 (%struct.vop_advlock_args*)*, i32 (%struct.vop_advlockasync_args*)*, i32 (%struct.vop_reallocblks_args*)*, i32 (%struct.vop_getpages_args*)*, i32 (%struct.vop_putpages_args*)*, i32 (%struct.vop_aclcheck_args*)*, i32 (%struct.vop_aclcheck_args*)*, i32 (%struct.vop_aclcheck_args*)*, i32 (%struct.vop_access_args*)*, i32 (%struct.vop_getextattr_args*)*, i32 (%struct.vop_listextattr_args*)*, i32 (%struct.vop_openextattr_args*)*, i32 (%struct.vop_deleteextattr_args*)*, i32 (%struct.vop_setextattr_args*)*, i32 (%struct.vop_setlabel_args*)*, i32 (%struct.vop_vptofh_args*)*, i32 (%struct.vop_vptocnp_args*)* }>
    199 	%struct.vop_vptocnp_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.vnode**, %struct.ucred*, i8*, i32* }>
    200 	%struct.vop_vptofh_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.fid* }>
    201 	%struct.vop_whiteout_args = type <{ %struct.vop_generic_args, %struct.vnode*, %struct.componentname*, i32, i8, i8, i8, i8 }>
    202 	%struct.vpollinfo = type <{ %struct.mtx, %struct.selinfo, i16, i16, i8, i8, i8, i8 }>
    203 	%struct.witness = type opaque
    204 	%struct.workhead = type <{ %struct.worklist* }>
    205 	%struct.worklist = type opaque
    206 	%union.anon = type <{ [16 x i8] }>
    207 	%union.pager_info = type <{ [4 x i8] }>
    208 	%union.sigval = type <{ [8 x i8] }>
    209 
    210 define i32 @vlrureclaim(%struct.mount* %mp) nounwind {
    211 entry:
    212 	br i1 undef, label %if.then11, label %do.end
    213 
    214 if.then11:		; preds = %entry
    215 	br label %do.end
    216 
    217 do.end:		; preds = %if.then11, %entry
    218 	br label %while.cond.outer
    219 
    220 while.cond.outer:		; preds = %while.cond.outer.backedge, %do.end
    221 	%count.0.ph = phi i32 [ undef, %do.end ], [ undef, %while.cond.outer.backedge ]		; <i32> [#uses=1]
    222 	br label %while.cond
    223 
    224 while.cond:		; preds = %next_iter, %while.cond.outer
    225 	%count.0 = phi i32 [ %dec, %next_iter ], [ %count.0.ph, %while.cond.outer ]		; <i32> [#uses=2]
    226 	%cmp21 = icmp eq i32 %count.0, 0		; <i1> [#uses=1]
    227 	br i1 %cmp21, label %do.body288.loopexit4, label %while.body
    228 
    229 while.body:		; preds = %while.cond
    230 	br label %while.cond27
    231 
    232 while.cond27:		; preds = %while.body36, %while.body
    233 	br i1 undef, label %do.body288.loopexit, label %land.rhs
    234 
    235 land.rhs:		; preds = %while.cond27
    236 	br i1 undef, label %while.body36, label %while.end
    237 
    238 while.body36:		; preds = %land.rhs
    239 	br label %while.cond27
    240 
    241 while.end:		; preds = %land.rhs
    242 	br i1 undef, label %do.body288.loopexit4, label %do.body46
    243 
    244 do.body46:		; preds = %while.end
    245 	br i1 undef, label %if.else64, label %if.then53
    246 
    247 if.then53:		; preds = %do.body46
    248 	br label %if.end72
    249 
    250 if.else64:		; preds = %do.body46
    251 	br label %if.end72
    252 
    253 if.end72:		; preds = %if.else64, %if.then53
    254 	%dec = add i32 %count.0, -1		; <i32> [#uses=2]
    255 	br i1 undef, label %next_iter, label %if.end111
    256 
    257 if.end111:		; preds = %if.end72
    258 	br i1 undef, label %lor.lhs.false, label %do.body145
    259 
    260 lor.lhs.false:		; preds = %if.end111
    261 	br i1 undef, label %lor.lhs.false122, label %do.body145
    262 
    263 lor.lhs.false122:		; preds = %lor.lhs.false
    264 	br i1 undef, label %lor.lhs.false128, label %do.body145
    265 
    266 lor.lhs.false128:		; preds = %lor.lhs.false122
    267 	br i1 undef, label %do.body162, label %land.lhs.true
    268 
    269 land.lhs.true:		; preds = %lor.lhs.false128
    270 	br i1 undef, label %do.body145, label %do.body162
    271 
    272 do.body145:		; preds = %land.lhs.true, %lor.lhs.false122, %lor.lhs.false, %if.end111
    273 	br i1 undef, label %if.then156, label %next_iter
    274 
    275 if.then156:		; preds = %do.body145
    276 	br label %next_iter
    277 
    278 do.body162:		; preds = %land.lhs.true, %lor.lhs.false128
    279 	br i1 undef, label %if.then173, label %do.end177
    280 
    281 if.then173:		; preds = %do.body162
    282 	br label %do.end177
    283 
    284 do.end177:		; preds = %if.then173, %do.body162
    285 	br i1 undef, label %do.body185, label %if.then182
    286 
    287 if.then182:		; preds = %do.end177
    288 	br label %next_iter_mntunlocked
    289 
    290 do.body185:		; preds = %do.end177
    291 	br i1 undef, label %if.then196, label %do.end202
    292 
    293 if.then196:		; preds = %do.body185
    294 	br label %do.end202
    295 
    296 do.end202:		; preds = %if.then196, %do.body185
    297 	br i1 undef, label %lor.lhs.false207, label %if.then231
    298 
    299 lor.lhs.false207:		; preds = %do.end202
    300 	br i1 undef, label %lor.lhs.false214, label %if.then231
    301 
    302 lor.lhs.false214:		; preds = %lor.lhs.false207
    303 	br i1 undef, label %do.end236, label %land.lhs.true221
    304 
    305 land.lhs.true221:		; preds = %lor.lhs.false214
    306 	br i1 undef, label %if.then231, label %do.end236
    307 
    308 if.then231:		; preds = %land.lhs.true221, %lor.lhs.false207, %do.end202
    309 	br label %next_iter_mntunlocked
    310 
    311 do.end236:		; preds = %land.lhs.true221, %lor.lhs.false214
    312 	br label %next_iter_mntunlocked
    313 
    314 next_iter_mntunlocked:		; preds = %do.end236, %if.then231, %if.then182
    315 	br i1 undef, label %yield, label %do.body269
    316 
    317 next_iter:		; preds = %if.then156, %do.body145, %if.end72
    318 	%rem2482 = and i32 %dec, 255		; <i32> [#uses=1]
    319 	%cmp249 = icmp eq i32 %rem2482, 0		; <i1> [#uses=1]
    320 	br i1 %cmp249, label %do.body253, label %while.cond
    321 
    322 do.body253:		; preds = %next_iter
    323 	br i1 undef, label %if.then264, label %yield
    324 
    325 if.then264:		; preds = %do.body253
    326 	br label %yield
    327 
    328 yield:		; preds = %if.then264, %do.body253, %next_iter_mntunlocked
    329 	br label %do.body269
    330 
    331 do.body269:		; preds = %yield, %next_iter_mntunlocked
    332 	br i1 undef, label %if.then280, label %while.cond.outer.backedge
    333 
    334 if.then280:		; preds = %do.body269
    335 	br label %while.cond.outer.backedge
    336 
    337 while.cond.outer.backedge:		; preds = %if.then280, %do.body269
    338 	br label %while.cond.outer
    339 
    340 do.body288.loopexit:		; preds = %while.cond27
    341 	br label %do.body288
    342 
    343 do.body288.loopexit4:		; preds = %while.end, %while.cond
    344 	br label %do.body288
    345 
    346 do.body288:		; preds = %do.body288.loopexit4, %do.body288.loopexit
    347 	br i1 undef, label %if.then299, label %do.end303
    348 
    349 if.then299:		; preds = %do.body288
    350 	br label %do.end303
    351 
    352 do.end303:		; preds = %if.then299, %do.body288
    353 	ret i32 undef
    354 }
    355