1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -mtriple=i386-apple-darwin10 2*9880d681SAndroid Build Coastguard Worker; rdar://6837009 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker %0 = type { %struct.pf_state*, %struct.pf_state*, %struct.pf_state*, i32 } 5*9880d681SAndroid Build Coastguard Worker %1 = type { %2 } 6*9880d681SAndroid Build Coastguard Worker %2 = type { %struct.pf_addr, %struct.pf_addr } 7*9880d681SAndroid Build Coastguard Worker %3 = type { %struct.in6_addr } 8*9880d681SAndroid Build Coastguard Worker %4 = type { [4 x i32] } 9*9880d681SAndroid Build Coastguard Worker %5 = type { %struct.pfi_dynaddr*, [4 x i8] } 10*9880d681SAndroid Build Coastguard Worker %6 = type { %struct.pfi_dynaddr*, %struct.pfi_dynaddr** } 11*9880d681SAndroid Build Coastguard Worker %7 = type { %struct.pfr_ktable*, %struct.pfr_ktable*, %struct.pfr_ktable*, i32 } 12*9880d681SAndroid Build Coastguard Worker %8 = type { %struct.pfr_ktable* } 13*9880d681SAndroid Build Coastguard Worker %9 = type { i8* } 14*9880d681SAndroid Build Coastguard Worker %10 = type { %11 } 15*9880d681SAndroid Build Coastguard Worker %11 = type { i8*, i8*, %struct.radix_node* } 16*9880d681SAndroid Build Coastguard Worker %12 = type { [2 x %struct.pf_rulequeue], %13, %13 } 17*9880d681SAndroid Build Coastguard Worker %13 = type { %struct.pf_rulequeue*, %struct.pf_rule**, i32, i32, i32 } 18*9880d681SAndroid Build Coastguard Worker %14 = type { %struct.pf_anchor*, %struct.pf_anchor*, %struct.pf_anchor*, i32 } 19*9880d681SAndroid Build Coastguard Worker %15 = type { %struct.pfi_kif*, %struct.pfi_kif*, %struct.pfi_kif*, i32 } 20*9880d681SAndroid Build Coastguard Worker %16 = type { %struct.ifnet*, %struct.ifnet** } 21*9880d681SAndroid Build Coastguard Worker %17 = type { %18 } 22*9880d681SAndroid Build Coastguard Worker %18 = type { %struct.pkthdr, %19 } 23*9880d681SAndroid Build Coastguard Worker %19 = type { %struct.m_ext, [176 x i8] } 24*9880d681SAndroid Build Coastguard Worker %20 = type { %struct.ifmultiaddr*, %struct.ifmultiaddr** } 25*9880d681SAndroid Build Coastguard Worker %21 = type { i32, %22 } 26*9880d681SAndroid Build Coastguard Worker %22 = type { i8*, [4 x i8] } 27*9880d681SAndroid Build Coastguard Worker %23 = type { %struct.tcphdr* } 28*9880d681SAndroid Build Coastguard Worker %24 = type { %struct.pf_ike_state } 29*9880d681SAndroid Build Coastguard Worker %25 = type { %struct.pf_state_key*, %struct.pf_state_key*, %struct.pf_state_key*, i32 } 30*9880d681SAndroid Build Coastguard Worker %26 = type { %struct.pf_src_node*, %struct.pf_src_node*, %struct.pf_src_node*, i32 } 31*9880d681SAndroid Build Coastguard Worker %struct.anon = type { %struct.pf_state*, %struct.pf_state** } 32*9880d681SAndroid Build Coastguard Worker %struct.au_mask_t = type { i32, i32 } 33*9880d681SAndroid Build Coastguard Worker %struct.bpf_if = type opaque 34*9880d681SAndroid Build Coastguard Worker %struct.dlil_threading_info = type opaque 35*9880d681SAndroid Build Coastguard Worker %struct.ether_header = type { [6 x i8], [6 x i8], i16 } 36*9880d681SAndroid Build Coastguard Worker %struct.ext_refsq = type { %struct.ext_refsq*, %struct.ext_refsq* } 37*9880d681SAndroid Build Coastguard Worker %struct.hook_desc = type { %struct.hook_desc_head, void (i8*)*, i8* } 38*9880d681SAndroid Build Coastguard Worker %struct.hook_desc_head = type { %struct.hook_desc*, %struct.hook_desc** } 39*9880d681SAndroid Build Coastguard Worker %struct.if_data_internal = type { i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, %struct.au_mask_t, i32, i32, i32 } 40*9880d681SAndroid Build Coastguard Worker %struct.ifaddr = type { %struct.sockaddr*, %struct.sockaddr*, %struct.sockaddr*, %struct.ifnet*, %struct.ifaddrhead, void (i32, %struct.rtentry*, %struct.sockaddr*)*, i32, i32, i32, void (%struct.ifaddr*)*, void (%struct.ifaddr*, i32)*, i32 } 41*9880d681SAndroid Build Coastguard Worker %struct.ifaddrhead = type { %struct.ifaddr*, %struct.ifaddr** } 42*9880d681SAndroid Build Coastguard Worker %struct.ifmultiaddr = type { %20, %struct.sockaddr*, %struct.ifmultiaddr*, %struct.ifnet*, i32, i8*, i32, void (i8*)* } 43*9880d681SAndroid Build Coastguard Worker %struct.ifmultihead = type { %struct.ifmultiaddr* } 44*9880d681SAndroid Build Coastguard Worker %struct.ifnet = type { i8*, i8*, %16, %struct.ifaddrhead, i32, i32 (%struct.ifnet*, %struct.sockaddr*)*, i32, %struct.bpf_if*, i16, i16, i16, i16, i32, i8*, i32, %struct.if_data_internal, i32, i32 (%struct.ifnet*, %struct.mbuf*)*, i32 (%struct.ifnet*, i32, i8*)*, i32 (%struct.ifnet*, i32, i32 (%struct.ifnet*, %struct.mbuf*)*)*, void (%struct.ifnet*)*, i32 (%struct.ifnet*, %struct.mbuf*, i8*, i32*)*, void (%struct.ifnet*, %struct.kev_msg*)*, i32 (%struct.ifnet*, %struct.mbuf**, %struct.sockaddr*, i8*, i8*)*, i32, %struct.ifnet_filter_head, i32, i8*, i32, %struct.ifmultihead, i32, i32 (%struct.ifnet*, i32, %struct.ifnet_demux_desc*, i32)*, i32 (%struct.ifnet*, i32)*, %struct.proto_hash_entry*, i8*, %struct.dlil_threading_info*, i8*, %struct.ifqueue, [1 x i32], i32, %struct.ifprefixhead, %struct.lck_rw_t*, %21, i32, %struct.thread*, %struct.pfi_kif*, %struct.lck_mtx_t*, %struct.route } 45*9880d681SAndroid Build Coastguard Worker %struct.ifnet_demux_desc = type { i32, i8*, i32 } 46*9880d681SAndroid Build Coastguard Worker %struct.ifnet_filter = type opaque 47*9880d681SAndroid Build Coastguard Worker %struct.ifnet_filter_head = type { %struct.ifnet_filter*, %struct.ifnet_filter** } 48*9880d681SAndroid Build Coastguard Worker %struct.ifprefix = type { %struct.sockaddr*, %struct.ifnet*, %struct.ifprefixhead, i8, i8 } 49*9880d681SAndroid Build Coastguard Worker %struct.ifprefixhead = type { %struct.ifprefix*, %struct.ifprefix** } 50*9880d681SAndroid Build Coastguard Worker %struct.ifqueue = type { i8*, i8*, i32, i32, i32 } 51*9880d681SAndroid Build Coastguard Worker %struct.in6_addr = type { %4 } 52*9880d681SAndroid Build Coastguard Worker %struct.in_addr = type { i32 } 53*9880d681SAndroid Build Coastguard Worker %struct.kev_d_vectors = type { i32, i8* } 54*9880d681SAndroid Build Coastguard Worker %struct.kev_msg = type { i32, i32, i32, i32, [5 x %struct.kev_d_vectors] } 55*9880d681SAndroid Build Coastguard Worker %struct.lck_mtx_t = type { [3 x i32] } 56*9880d681SAndroid Build Coastguard Worker %struct.lck_rw_t = type <{ [3 x i32] }> 57*9880d681SAndroid Build Coastguard Worker %struct.m_ext = type { i8*, void (i8*, i32, i8*)*, i32, i8*, %struct.ext_refsq, %struct.au_mask_t* } 58*9880d681SAndroid Build Coastguard Worker %struct.m_hdr = type { %struct.mbuf*, %struct.mbuf*, i32, i8*, i16, i16 } 59*9880d681SAndroid Build Coastguard Worker %struct.m_tag = type { %struct.packet_tags, i16, i16, i32 } 60*9880d681SAndroid Build Coastguard Worker %struct.mbuf = type { %struct.m_hdr, %17 } 61*9880d681SAndroid Build Coastguard Worker %struct.packet_tags = type { %struct.m_tag* } 62*9880d681SAndroid Build Coastguard Worker %struct.pf_addr = type { %3 } 63*9880d681SAndroid Build Coastguard Worker %struct.pf_addr_wrap = type <{ %1, %5, i8, i8, [6 x i8] }> 64*9880d681SAndroid Build Coastguard Worker %struct.pf_anchor = type { %14, %14, %struct.pf_anchor*, %struct.pf_anchor_node, [64 x i8], [1024 x i8], %struct.pf_ruleset, i32, i32 } 65*9880d681SAndroid Build Coastguard Worker %struct.pf_anchor_node = type { %struct.pf_anchor* } 66*9880d681SAndroid Build Coastguard Worker %struct.pf_app_state = type { void (%struct.pf_state*, i32, i32, %struct.pf_pdesc*, %struct.pfi_kif*)*, i32 (%struct.pf_app_state*, %struct.pf_app_state*)*, i32 (%struct.pf_app_state*, %struct.pf_app_state*)*, %24 } 67*9880d681SAndroid Build Coastguard Worker %struct.pf_ike_state = type { i64 } 68*9880d681SAndroid Build Coastguard Worker %struct.pf_mtag = type { i8*, i32, i32, i16, i8, i8 } 69*9880d681SAndroid Build Coastguard Worker %struct.pf_palist = type { %struct.pf_pooladdr*, %struct.pf_pooladdr** } 70*9880d681SAndroid Build Coastguard Worker %struct.pf_pdesc = type { %struct.pf_threshold, i64, %23, %struct.pf_addr, %struct.pf_addr, %struct.pf_rule*, %struct.pf_addr*, %struct.pf_addr*, %struct.ether_header*, %struct.mbuf*, i32, %struct.pf_mtag*, i16*, i32, i16, i8, i8, i8, i8 } 71*9880d681SAndroid Build Coastguard Worker %struct.pf_pool = type { %struct.pf_palist, [2 x i32], %struct.pf_pooladdr*, [4 x i8], %struct.in6_addr, %struct.pf_addr, i32, [2 x i16], i8, i8, [1 x i32] } 72*9880d681SAndroid Build Coastguard Worker %struct.pf_pooladdr = type <{ %struct.pf_addr_wrap, %struct.pf_palist, [2 x i32], [16 x i8], %struct.pfi_kif*, [1 x i32] }> 73*9880d681SAndroid Build Coastguard Worker %struct.pf_rule = type <{ %struct.pf_rule_addr, %struct.pf_rule_addr, [8 x %struct.pf_rule_ptr], [64 x i8], [16 x i8], [64 x i8], [64 x i8], [64 x i8], [64 x i8], [32 x i8], %struct.pf_rulequeue, [2 x i32], %struct.pf_pool, i64, [2 x i64], [2 x i64], %struct.pfi_kif*, [4 x i8], %struct.pf_anchor*, [4 x i8], %struct.pfr_ktable*, [4 x i8], i32, i32, [26 x i32], i32, i32, i32, i32, i32, i32, %struct.au_mask_t, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i16, [2 x i8], %struct.pf_rule_gid, %struct.pf_rule_gid, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [2 x i8] }> 74*9880d681SAndroid Build Coastguard Worker %struct.pf_rule_addr = type <{ %struct.pf_addr_wrap, %struct.pf_rule_xport, i8, [7 x i8] }> 75*9880d681SAndroid Build Coastguard Worker %struct.pf_rule_gid = type { [2 x i32], i8, [3 x i8] } 76*9880d681SAndroid Build Coastguard Worker %struct.pf_rule_ptr = type { %struct.pf_rule*, [4 x i8] } 77*9880d681SAndroid Build Coastguard Worker %struct.pf_rule_xport = type { i32, [4 x i8] } 78*9880d681SAndroid Build Coastguard Worker %struct.pf_rulequeue = type { %struct.pf_rule*, %struct.pf_rule** } 79*9880d681SAndroid Build Coastguard Worker %struct.pf_ruleset = type { [5 x %12], %struct.pf_anchor*, i32, i32, i32 } 80*9880d681SAndroid Build Coastguard Worker %struct.pf_src_node = type <{ %26, %struct.pf_addr, %struct.pf_addr, %struct.pf_rule_ptr, %struct.pfi_kif*, [2 x i64], [2 x i64], i32, i32, %struct.pf_threshold, i64, i64, i8, i8, [2 x i8] }> 81*9880d681SAndroid Build Coastguard Worker %struct.pf_state = type <{ i64, i32, i32, %struct.anon, %struct.anon, %0, %struct.pf_state_peer, %struct.pf_state_peer, %struct.pf_rule_ptr, %struct.pf_rule_ptr, %struct.pf_rule_ptr, %struct.pf_addr, %struct.hook_desc_head, %struct.pf_state_key*, %struct.pfi_kif*, %struct.pfi_kif*, %struct.pf_src_node*, %struct.pf_src_node*, [2 x i64], [2 x i64], i64, i64, i64, i16, i8, i8, i8, i8, [6 x i8] }> 82*9880d681SAndroid Build Coastguard Worker %struct.pf_state_host = type { %struct.pf_addr, %struct.in_addr } 83*9880d681SAndroid Build Coastguard Worker %struct.pf_state_key = type { %struct.pf_state_host, %struct.pf_state_host, %struct.pf_state_host, i8, i8, i8, i8, %struct.pf_app_state*, %25, %25, %struct.anon, i16 } 84*9880d681SAndroid Build Coastguard Worker %struct.pf_state_peer = type { i32, i32, i32, i16, i8, i8, i16, i8, %struct.pf_state_scrub*, [3 x i8] } 85*9880d681SAndroid Build Coastguard Worker %struct.pf_state_scrub = type { %struct.au_mask_t, i32, i32, i32, i16, i8, i8, i32 } 86*9880d681SAndroid Build Coastguard Worker %struct.pf_threshold = type { i32, i32, i32, i32 } 87*9880d681SAndroid Build Coastguard Worker %struct.pfi_dynaddr = type { %6, %struct.pf_addr, %struct.pf_addr, %struct.pf_addr, %struct.pf_addr, %struct.pfr_ktable*, %struct.pfi_kif*, i8*, i32, i32, i32, i8, i8 } 88*9880d681SAndroid Build Coastguard Worker %struct.pfi_kif = type { [16 x i8], %15, [2 x [2 x [2 x i64]]], [2 x [2 x [2 x i64]]], i64, i32, i8*, %struct.ifnet*, i32, i32, %6 } 89*9880d681SAndroid Build Coastguard Worker %struct.pfr_ktable = type { %struct.pfr_tstats, %7, %8, %struct.radix_node_head*, %struct.radix_node_head*, %struct.pfr_ktable*, %struct.pfr_ktable*, %struct.pf_ruleset*, i64, i32 } 90*9880d681SAndroid Build Coastguard Worker %struct.pfr_table = type { [1024 x i8], [32 x i8], i32, i8 } 91*9880d681SAndroid Build Coastguard Worker %struct.pfr_tstats = type { %struct.pfr_table, [2 x [3 x i64]], [2 x [3 x i64]], i64, i64, i64, i32, [2 x i32] } 92*9880d681SAndroid Build Coastguard Worker %struct.pkthdr = type { i32, %struct.ifnet*, i8*, i32, i32, i32, i16, i16, %struct.packet_tags } 93*9880d681SAndroid Build Coastguard Worker %struct.proto_hash_entry = type opaque 94*9880d681SAndroid Build Coastguard Worker %struct.radix_mask = type { i16, i8, i8, %struct.radix_mask*, %9, i32 } 95*9880d681SAndroid Build Coastguard Worker %struct.radix_node = type { %struct.radix_mask*, %struct.radix_node*, i16, i8, i8, %10 } 96*9880d681SAndroid Build Coastguard Worker %struct.radix_node_head = type { %struct.radix_node*, i32, i32, %struct.radix_node* (i8*, i8*, %struct.radix_node_head*, %struct.radix_node*)*, %struct.radix_node* (i8*, i8*, %struct.radix_node_head*, %struct.radix_node*)*, %struct.radix_node* (i8*, i8*, %struct.radix_node_head*)*, %struct.radix_node* (i8*, i8*, %struct.radix_node_head*)*, %struct.radix_node* (i8*, %struct.radix_node_head*)*, %struct.radix_node* (i8*, %struct.radix_node_head*, i32 (%struct.radix_node*, i8*)*, i8*)*, %struct.radix_node* (i8*, i8*, %struct.radix_node_head*)*, %struct.radix_node* (i8*, i8*, %struct.radix_node_head*, i32 (%struct.radix_node*, i8*)*, i8*)*, %struct.radix_node* (i8*, %struct.radix_node_head*)*, i32 (%struct.radix_node_head*, i32 (%struct.radix_node*, i8*)*, i8*)*, i32 (%struct.radix_node_head*, i8*, i8*, i32 (%struct.radix_node*, i8*)*, i8*)*, void (%struct.radix_node*, %struct.radix_node_head*)*, [3 x %struct.radix_node], i32 } 97*9880d681SAndroid Build Coastguard Worker %struct.route = type { %struct.rtentry*, i32, %struct.sockaddr } 98*9880d681SAndroid Build Coastguard Worker %struct.rt_metrics = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i32] } 99*9880d681SAndroid Build Coastguard Worker %struct.rtentry = type { [2 x %struct.radix_node], %struct.sockaddr*, i32, i32, %struct.ifnet*, %struct.ifaddr*, %struct.sockaddr*, i8*, void (i8*)*, %struct.rt_metrics, %struct.rtentry*, %struct.rtentry*, i32, %struct.lck_mtx_t } 100*9880d681SAndroid Build Coastguard Worker %struct.sockaddr = type { i8, i8, [14 x i8] } 101*9880d681SAndroid Build Coastguard Worker %struct.tcphdr = type { i16, i16, i32, i32, i8, i8, i16, i16, i16 } 102*9880d681SAndroid Build Coastguard Worker %struct.thread = type opaque 103*9880d681SAndroid Build Coastguard Worker@llvm.used = appending global [1 x i8*] [i8* bitcast (i32 (%struct.pf_state_key*, %struct.pf_state_key*)* @pf_state_compare_ext_gwy to i8*)], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0] 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Workerdefine fastcc i32 @pf_state_compare_ext_gwy(%struct.pf_state_key* nocapture %a, %struct.pf_state_key* nocapture %b) nounwind optsize ssp { 106*9880d681SAndroid Build Coastguard Workerentry: 107*9880d681SAndroid Build Coastguard Worker %0 = zext i8 0 to i32 ; <i32> [#uses=2] 108*9880d681SAndroid Build Coastguard Worker %1 = load i8, i8* null, align 1 ; <i8> [#uses=2] 109*9880d681SAndroid Build Coastguard Worker %2 = zext i8 %1 to i32 ; <i32> [#uses=1] 110*9880d681SAndroid Build Coastguard Worker %3 = sub i32 %0, %2 ; <i32> [#uses=1] 111*9880d681SAndroid Build Coastguard Worker %4 = icmp eq i8 0, %1 ; <i1> [#uses=1] 112*9880d681SAndroid Build Coastguard Worker br i1 %4, label %bb1, label %bb79 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Workerbb1: ; preds = %entry 115*9880d681SAndroid Build Coastguard Worker %5 = load i8, i8* null, align 4 ; <i8> [#uses=2] 116*9880d681SAndroid Build Coastguard Worker %6 = zext i8 %5 to i32 ; <i32> [#uses=2] 117*9880d681SAndroid Build Coastguard Worker %7 = getelementptr %struct.pf_state_key, %struct.pf_state_key* %b, i32 0, i32 3 ; <i8*> [#uses=1] 118*9880d681SAndroid Build Coastguard Worker %8 = load i8, i8* %7, align 4 ; <i8> [#uses=2] 119*9880d681SAndroid Build Coastguard Worker %9 = zext i8 %8 to i32 ; <i32> [#uses=1] 120*9880d681SAndroid Build Coastguard Worker %10 = sub i32 %6, %9 ; <i32> [#uses=1] 121*9880d681SAndroid Build Coastguard Worker %11 = icmp eq i8 %5, %8 ; <i1> [#uses=1] 122*9880d681SAndroid Build Coastguard Worker br i1 %11, label %bb3, label %bb79 123*9880d681SAndroid Build Coastguard Worker 124*9880d681SAndroid Build Coastguard Workerbb3: ; preds = %bb1 125*9880d681SAndroid Build Coastguard Worker switch i32 %0, label %bb23 [ 126*9880d681SAndroid Build Coastguard Worker i32 1, label %bb4 127*9880d681SAndroid Build Coastguard Worker i32 6, label %bb6 128*9880d681SAndroid Build Coastguard Worker i32 17, label %bb10 129*9880d681SAndroid Build Coastguard Worker i32 47, label %bb17 130*9880d681SAndroid Build Coastguard Worker i32 50, label %bb21 131*9880d681SAndroid Build Coastguard Worker i32 58, label %bb4 132*9880d681SAndroid Build Coastguard Worker ] 133*9880d681SAndroid Build Coastguard Worker 134*9880d681SAndroid Build Coastguard Workerbb4: ; preds = %bb3, %bb3 135*9880d681SAndroid Build Coastguard Worker %12 = load i16, i16* null, align 4 ; <i16> [#uses=1] 136*9880d681SAndroid Build Coastguard Worker %13 = zext i16 %12 to i32 ; <i32> [#uses=1] 137*9880d681SAndroid Build Coastguard Worker %14 = sub i32 0, %13 ; <i32> [#uses=1] 138*9880d681SAndroid Build Coastguard Worker br i1 false, label %bb23, label %bb79 139*9880d681SAndroid Build Coastguard Worker 140*9880d681SAndroid Build Coastguard Workerbb6: ; preds = %bb3 141*9880d681SAndroid Build Coastguard Worker %15 = load i16, i16* null, align 4 ; <i16> [#uses=1] 142*9880d681SAndroid Build Coastguard Worker %16 = zext i16 %15 to i32 ; <i32> [#uses=1] 143*9880d681SAndroid Build Coastguard Worker %17 = sub i32 0, %16 ; <i32> [#uses=1] 144*9880d681SAndroid Build Coastguard Worker ret i32 %17 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Workerbb10: ; preds = %bb3 147*9880d681SAndroid Build Coastguard Worker %18 = load i8, i8* null, align 1 ; <i8> [#uses=2] 148*9880d681SAndroid Build Coastguard Worker %19 = zext i8 %18 to i32 ; <i32> [#uses=1] 149*9880d681SAndroid Build Coastguard Worker %20 = sub i32 0, %19 ; <i32> [#uses=1] 150*9880d681SAndroid Build Coastguard Worker %21 = icmp eq i8 0, %18 ; <i1> [#uses=1] 151*9880d681SAndroid Build Coastguard Worker br i1 %21, label %bb12, label %bb79 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Workerbb12: ; preds = %bb10 154*9880d681SAndroid Build Coastguard Worker %22 = load i16, i16* null, align 4 ; <i16> [#uses=1] 155*9880d681SAndroid Build Coastguard Worker %23 = zext i16 %22 to i32 ; <i32> [#uses=1] 156*9880d681SAndroid Build Coastguard Worker %24 = sub i32 0, %23 ; <i32> [#uses=1] 157*9880d681SAndroid Build Coastguard Worker ret i32 %24 158*9880d681SAndroid Build Coastguard Worker 159*9880d681SAndroid Build Coastguard Workerbb17: ; preds = %bb3 160*9880d681SAndroid Build Coastguard Worker %25 = load i8, i8* null, align 1 ; <i8> [#uses=2] 161*9880d681SAndroid Build Coastguard Worker %26 = icmp eq i8 %25, 1 ; <i1> [#uses=1] 162*9880d681SAndroid Build Coastguard Worker br i1 %26, label %bb18, label %bb23 163*9880d681SAndroid Build Coastguard Worker 164*9880d681SAndroid Build Coastguard Workerbb18: ; preds = %bb17 165*9880d681SAndroid Build Coastguard Worker %27 = icmp eq i8 %25, 0 ; <i1> [#uses=1] 166*9880d681SAndroid Build Coastguard Worker br i1 %27, label %bb19, label %bb23 167*9880d681SAndroid Build Coastguard Worker 168*9880d681SAndroid Build Coastguard Workerbb19: ; preds = %bb18 169*9880d681SAndroid Build Coastguard Worker %28 = load i16, i16* null, align 4 ; <i16> [#uses=1] 170*9880d681SAndroid Build Coastguard Worker %29 = zext i16 %28 to i32 ; <i32> [#uses=1] 171*9880d681SAndroid Build Coastguard Worker %30 = sub i32 0, %29 ; <i32> [#uses=1] 172*9880d681SAndroid Build Coastguard Worker br i1 false, label %bb23, label %bb79 173*9880d681SAndroid Build Coastguard Worker 174*9880d681SAndroid Build Coastguard Workerbb21: ; preds = %bb3 175*9880d681SAndroid Build Coastguard Worker %31 = getelementptr %struct.pf_state_key, %struct.pf_state_key* %a, i32 0, i32 1, i32 1, i32 0 ; <i32*> [#uses=1] 176*9880d681SAndroid Build Coastguard Worker %32 = load i32, i32* %31, align 4 ; <i32> [#uses=2] 177*9880d681SAndroid Build Coastguard Worker %33 = getelementptr %struct.pf_state_key, %struct.pf_state_key* %b, i32 0, i32 1, i32 1, i32 0 ; <i32*> [#uses=1] 178*9880d681SAndroid Build Coastguard Worker %34 = load i32, i32* %33, align 4 ; <i32> [#uses=2] 179*9880d681SAndroid Build Coastguard Worker %35 = sub i32 %32, %34 ; <i32> [#uses=1] 180*9880d681SAndroid Build Coastguard Worker %36 = icmp eq i32 %32, %34 ; <i1> [#uses=1] 181*9880d681SAndroid Build Coastguard Worker br i1 %36, label %bb23, label %bb79 182*9880d681SAndroid Build Coastguard Worker 183*9880d681SAndroid Build Coastguard Workerbb23: ; preds = %bb21, %bb19, %bb18, %bb17, %bb4, %bb3 184*9880d681SAndroid Build Coastguard Worker %cond = icmp eq i32 %6, 2 ; <i1> [#uses=1] 185*9880d681SAndroid Build Coastguard Worker br i1 %cond, label %bb24, label %bb70 186*9880d681SAndroid Build Coastguard Worker 187*9880d681SAndroid Build Coastguard Workerbb24: ; preds = %bb23 188*9880d681SAndroid Build Coastguard Worker ret i32 1 189*9880d681SAndroid Build Coastguard Worker 190*9880d681SAndroid Build Coastguard Workerbb70: ; preds = %bb23 191*9880d681SAndroid Build Coastguard Worker %37 = load i32 (%struct.pf_app_state*, %struct.pf_app_state*)*, i32 (%struct.pf_app_state*, %struct.pf_app_state*)** null, align 4 ; <i32 (%struct.pf_app_state*, %struct.pf_app_state*)*> [#uses=3] 192*9880d681SAndroid Build Coastguard Worker br i1 false, label %bb78, label %bb73 193*9880d681SAndroid Build Coastguard Worker 194*9880d681SAndroid Build Coastguard Workerbb73: ; preds = %bb70 195*9880d681SAndroid Build Coastguard Worker %38 = load i32 (%struct.pf_app_state*, %struct.pf_app_state*)*, i32 (%struct.pf_app_state*, %struct.pf_app_state*)** null, align 4 ; <i32 (%struct.pf_app_state*, %struct.pf_app_state*)*> [#uses=2] 196*9880d681SAndroid Build Coastguard Worker %39 = icmp eq i32 (%struct.pf_app_state*, %struct.pf_app_state*)* %38, null ; <i1> [#uses=1] 197*9880d681SAndroid Build Coastguard Worker br i1 %39, label %bb78, label %bb74 198*9880d681SAndroid Build Coastguard Worker 199*9880d681SAndroid Build Coastguard Workerbb74: ; preds = %bb73 200*9880d681SAndroid Build Coastguard Worker %40 = ptrtoint i32 (%struct.pf_app_state*, %struct.pf_app_state*)* %37 to i32 ; <i32> [#uses=1] 201*9880d681SAndroid Build Coastguard Worker %41 = sub i32 0, %40 ; <i32> [#uses=1] 202*9880d681SAndroid Build Coastguard Worker %42 = icmp eq i32 (%struct.pf_app_state*, %struct.pf_app_state*)* %38, %37 ; <i1> [#uses=1] 203*9880d681SAndroid Build Coastguard Worker br i1 %42, label %bb76, label %bb79 204*9880d681SAndroid Build Coastguard Worker 205*9880d681SAndroid Build Coastguard Workerbb76: ; preds = %bb74 206*9880d681SAndroid Build Coastguard Worker %43 = tail call i32 %37(%struct.pf_app_state* null, %struct.pf_app_state* null) nounwind ; <i32> [#uses=1] 207*9880d681SAndroid Build Coastguard Worker ret i32 %43 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Workerbb78: ; preds = %bb73, %bb70 210*9880d681SAndroid Build Coastguard Worker ret i32 0 211*9880d681SAndroid Build Coastguard Worker 212*9880d681SAndroid Build Coastguard Workerbb79: ; preds = %bb74, %bb21, %bb19, %bb10, %bb4, %bb1, %entry 213*9880d681SAndroid Build Coastguard Worker %.0 = phi i32 [ %3, %entry ], [ %10, %bb1 ], [ %14, %bb4 ], [ %20, %bb10 ], [ %30, %bb19 ], [ %35, %bb21 ], [ %41, %bb74 ] ; <i32> [#uses=1] 214*9880d681SAndroid Build Coastguard Worker ret i32 %.0 215*9880d681SAndroid Build Coastguard Worker} 216