brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.8 KiB · e99ea59 Raw
633 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \3; RUN:     -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr -ppc-min-jump-table-entries=4 < %s | \4; RUN:     FileCheck %s5; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \6; RUN:     -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr -ppc-min-jump-table-entries=4 < %s | \7; RUN:     FileCheck %s --check-prefix=CHECK-BE8 9; This test case tests spilling the CR GT bit on Power10. On Power10, this is10; achieved by setb %reg, %CRREG (gt bit) -> stw %reg, $FI instead of:11; mfocrf %reg, %CRREG -> rlwinm %reg1, %reg, $SH, 0, 0 -> stw %reg1, $FI.12 13; Without fine-grained control over clobbering individual CR bits,14; it is difficult to produce a concise test case that will ensure a specific15; bit of any CR field is spilled. We need to test the spilling of a CR bit16; other than the LT bit. Hence this test case is rather complex.17 18define dso_local fastcc void @P10_Spill_CR_GT(ptr %p) unnamed_addr {19; CHECK-LABEL: P10_Spill_CR_GT:20; CHECK:       # %bb.0: # %bb21; CHECK-NEXT:    mfcr r1222; CHECK-NEXT:    mflr r023; CHECK-NEXT:    std r0, 16(r1)24; CHECK-NEXT:    stw r12, 8(r1)25; CHECK-NEXT:    stdu r1, -64(r1)26; CHECK-NEXT:    .cfi_def_cfa_offset 6427; CHECK-NEXT:    .cfi_offset lr, 1628; CHECK-NEXT:    .cfi_offset r28, -3229; CHECK-NEXT:    .cfi_offset r29, -2430; CHECK-NEXT:    .cfi_offset r30, -1631; CHECK-NEXT:    .cfi_offset cr2, 832; CHECK-NEXT:    .cfi_offset cr3, 833; CHECK-NEXT:    .cfi_offset cr4, 834; CHECK-NEXT:    lwz r4, 0(r3)35; CHECK-NEXT:    std r30, 48(r1) # 8-byte Folded Spill36; CHECK-NEXT:    addi r30, r3, -137; CHECK-NEXT:    li r3, 038; CHECK-NEXT:    std r28, 32(r1) # 8-byte Folded Spill39; CHECK-NEXT:    std r29, 40(r1) # 8-byte Folded Spill40; CHECK-NEXT:    crxor 4*cr2+eq, 4*cr2+eq, 4*cr2+eq41; CHECK-NEXT:    paddi r28, 0, .LJTI0_0@PCREL, 142; CHECK-NEXT:    sldi r29, r3, 243; CHECK-NEXT:    srwi r5, r4, 444; CHECK-NEXT:    srwi r4, r4, 545; CHECK-NEXT:    andi. r5, r5, 146; CHECK-NEXT:    crmove 4*cr2+gt, gt47; CHECK-NEXT:    andi. r4, r4, 148; CHECK-NEXT:    li r4, 049; CHECK-NEXT:    crmove 4*cr2+lt, gt50; CHECK-NEXT:    b .LBB0_251; CHECK-NEXT:  .LBB0_1: # %bb4352; CHECK-NEXT:    #53; CHECK-NEXT:    bl call_1@notoc54; CHECK-NEXT:    li r3, 055; CHECK-NEXT:    isel r4, r30, r3, 4*cr3+eq56; CHECK-NEXT:    stb r3, 0(r4)57; CHECK-NEXT:    li r4, 058; CHECK-NEXT:    .p2align 459; CHECK-NEXT:  .LBB0_2: # %bb560; CHECK-NEXT:    #61; CHECK-NEXT:    bc 12, 4*cr2+gt, .LBB0_3162; CHECK-NEXT:  # %bb.3: # %bb1063; CHECK-NEXT:    #64; CHECK-NEXT:    bc 12, 4*cr2+eq, .LBB0_565; CHECK-NEXT:  # %bb.4: # %bb1066; CHECK-NEXT:    #67; CHECK-NEXT:    mr r3, r468; CHECK-NEXT:    lwz r5, 0(r3)69; CHECK-NEXT:    rlwinm r4, r5, 0, 21, 2270; CHECK-NEXT:    cmpwi cr3, r4, 51271; CHECK-NEXT:    lwax r4, r28, r2972; CHECK-NEXT:    add r4, r28, r473; CHECK-NEXT:    mtctr r474; CHECK-NEXT:    li r4, 075; CHECK-NEXT:    bctr76; CHECK-NEXT:  .LBB0_5: # %bb1377; CHECK-NEXT:    #78; CHECK-NEXT:    li r4, 1679; CHECK-NEXT:    b .LBB0_280; CHECK-NEXT:    .p2align 481; CHECK-NEXT:  .LBB0_6: # %bb2882; CHECK-NEXT:    #83; CHECK-NEXT:    b .LBB0_684; CHECK-NEXT:    .p2align 485; CHECK-NEXT:  .LBB0_7: # %bb2286; CHECK-NEXT:    #87; CHECK-NEXT:    b .LBB0_788; CHECK-NEXT:    .p2align 489; CHECK-NEXT:  .LBB0_8: # %bb5290; CHECK-NEXT:    #91; CHECK-NEXT:    b .LBB0_892; CHECK-NEXT:    .p2align 493; CHECK-NEXT:  .LBB0_9: # %bb1794; CHECK-NEXT:    #95; CHECK-NEXT:    b .LBB0_996; CHECK-NEXT:    .p2align 497; CHECK-NEXT:  .LBB0_10: # %bb2698; CHECK-NEXT:    #99; CHECK-NEXT:    b .LBB0_10100; CHECK-NEXT:    .p2align 4101; CHECK-NEXT:  .LBB0_11: # %bb42102; CHECK-NEXT:    #103; CHECK-NEXT:    b .LBB0_11104; CHECK-NEXT:    .p2align 4105; CHECK-NEXT:  .LBB0_12: # %bb54106; CHECK-NEXT:    #107; CHECK-NEXT:    b .LBB0_12108; CHECK-NEXT:    .p2align 4109; CHECK-NEXT:  .LBB0_13: # %bb49110; CHECK-NEXT:    #111; CHECK-NEXT:    b .LBB0_13112; CHECK-NEXT:    .p2align 4113; CHECK-NEXT:  .LBB0_14: # %bb59114; CHECK-NEXT:    #115; CHECK-NEXT:    b .LBB0_14116; CHECK-NEXT:    .p2align 4117; CHECK-NEXT:  .LBB0_15: # %bb57118; CHECK-NEXT:    #119; CHECK-NEXT:    b .LBB0_15120; CHECK-NEXT:    .p2align 4121; CHECK-NEXT:  .LBB0_16: # %bb18122; CHECK-NEXT:    #123; CHECK-NEXT:    b .LBB0_16124; CHECK-NEXT:    .p2align 4125; CHECK-NEXT:  .LBB0_17: # %bb46126; CHECK-NEXT:    #127; CHECK-NEXT:    b .LBB0_17128; CHECK-NEXT:    .p2align 4129; CHECK-NEXT:  .LBB0_18: # %bb19130; CHECK-NEXT:    #131; CHECK-NEXT:    b .LBB0_18132; CHECK-NEXT:    .p2align 4133; CHECK-NEXT:  .LBB0_19: # %bb61134; CHECK-NEXT:    #135; CHECK-NEXT:    b .LBB0_19136; CHECK-NEXT:    .p2align 4137; CHECK-NEXT:  .LBB0_20: # %bb24138; CHECK-NEXT:    #139; CHECK-NEXT:    b .LBB0_20140; CHECK-NEXT:    .p2align 4141; CHECK-NEXT:  .LBB0_21: # %bb47142; CHECK-NEXT:    #143; CHECK-NEXT:    b .LBB0_21144; CHECK-NEXT:    .p2align 4145; CHECK-NEXT:  .LBB0_22: # %bb58146; CHECK-NEXT:    #147; CHECK-NEXT:    b .LBB0_22148; CHECK-NEXT:    .p2align 4149; CHECK-NEXT:  .LBB0_23: # %bb48150; CHECK-NEXT:    #151; CHECK-NEXT:    b .LBB0_23152; CHECK-NEXT:    .p2align 4153; CHECK-NEXT:  .LBB0_24: # %bb55154; CHECK-NEXT:    #155; CHECK-NEXT:    b .LBB0_24156; CHECK-NEXT:    .p2align 4157; CHECK-NEXT:  .LBB0_25: # %bb20158; CHECK-NEXT:    #159; CHECK-NEXT:    b .LBB0_25160; CHECK-NEXT:    .p2align 4161; CHECK-NEXT:  .LBB0_26: # %bb60162; CHECK-NEXT:    #163; CHECK-NEXT:    b .LBB0_26164; CHECK-NEXT:    .p2align 4165; CHECK-NEXT:  .LBB0_27: # %bb56166; CHECK-NEXT:    #167; CHECK-NEXT:    b .LBB0_27168; CHECK-NEXT:    .p2align 4169; CHECK-NEXT:  .LBB0_28: # %bb50170; CHECK-NEXT:    #171; CHECK-NEXT:    b .LBB0_28172; CHECK-NEXT:    .p2align 4173; CHECK-NEXT:  .LBB0_29: # %bb23174; CHECK-NEXT:    #175; CHECK-NEXT:    b .LBB0_29176; CHECK-NEXT:    .p2align 4177; CHECK-NEXT:  .LBB0_30: # %bb62178; CHECK-NEXT:    #179; CHECK-NEXT:    b .LBB0_30180; CHECK-NEXT:  .LBB0_31: # %bb9181; CHECK-NEXT:    ld r30, 48(r1) # 8-byte Folded Reload182; CHECK-NEXT:    ld r29, 40(r1) # 8-byte Folded Reload183; CHECK-NEXT:    ld r28, 32(r1) # 8-byte Folded Reload184; CHECK-NEXT:    addi r1, r1, 64185; CHECK-NEXT:    ld r0, 16(r1)186; CHECK-NEXT:    lwz r12, 8(r1)187; CHECK-NEXT:    mtlr r0188; CHECK-NEXT:    mtocrf 32, r12189; CHECK-NEXT:    mtocrf 16, r12190; CHECK-NEXT:    mtocrf 8, r12191; CHECK-NEXT:    blr192; CHECK-NEXT:  .LBB0_32: # %bb29193; CHECK-NEXT:    crmove eq, 4*cr3+eq194; CHECK-NEXT:    li r29, 0195; CHECK-NEXT:    cmpwi cr3, r5, 366196; CHECK-NEXT:    cmpwi cr4, r3, 0197; CHECK-NEXT:    iseleq r30, r30, r29198; CHECK-NEXT:    bc 12, 4*cr2+lt, .LBB0_36199; CHECK-NEXT:    .p2align 5200; CHECK-NEXT:  .LBB0_33: # %bb36201; CHECK-NEXT:    bc 12, 4*cr4+eq, .LBB0_35202; CHECK-NEXT:  .LBB0_34: # %bb32203; CHECK-NEXT:    bc 4, 4*cr2+lt, .LBB0_33204; CHECK-NEXT:    b .LBB0_36205; CHECK-NEXT:    .p2align 5206; CHECK-NEXT:  .LBB0_35: # %bb39207; CHECK-NEXT:    bl call_2@notoc208; CHECK-NEXT:    bc 4, 4*cr2+lt, .LBB0_33209; CHECK-NEXT:  .LBB0_36: # %bb33210; CHECK-NEXT:    stb r29, 0(r30)211; CHECK-NEXT:    bc 4, 4*cr4+eq, .LBB0_34212; CHECK-NEXT:    b .LBB0_35213;214; CHECK-BE-LABEL: P10_Spill_CR_GT:215; CHECK-BE:       # %bb.0: # %bb216; CHECK-BE-NEXT:    mfcr r12217; CHECK-BE-NEXT:    mflr r0218; CHECK-BE-NEXT:    std r0, 16(r1)219; CHECK-BE-NEXT:    stw r12, 8(r1)220; CHECK-BE-NEXT:    stdu r1, -144(r1)221; CHECK-BE-NEXT:    .cfi_def_cfa_offset 144222; CHECK-BE-NEXT:    .cfi_offset lr, 16223; CHECK-BE-NEXT:    .cfi_offset r28, -32224; CHECK-BE-NEXT:    .cfi_offset r29, -24225; CHECK-BE-NEXT:    .cfi_offset r30, -16226; CHECK-BE-NEXT:    .cfi_offset cr2, 8227; CHECK-BE-NEXT:    .cfi_offset cr2, 8228; CHECK-BE-NEXT:    .cfi_offset cr2, 8229; CHECK-BE-NEXT:    lwz r4, 0(r3)230; CHECK-BE-NEXT:    std r30, 128(r1) # 8-byte Folded Spill231; CHECK-BE-NEXT:    addi r30, r3, -1232; CHECK-BE-NEXT:    li r3, 0233; CHECK-BE-NEXT:    std r28, 112(r1) # 8-byte Folded Spill234; CHECK-BE-NEXT:    std r29, 120(r1) # 8-byte Folded Spill235; CHECK-BE-NEXT:    crxor 4*cr2+eq, 4*cr2+eq, 4*cr2+eq236; CHECK-BE-NEXT:    sldi r29, r3, 2237; CHECK-BE-NEXT:    addis r3, r2, .LC0@toc@ha238; CHECK-BE-NEXT:    ld r28, .LC0@toc@l(r3)239; CHECK-BE-NEXT:    srwi r5, r4, 4240; CHECK-BE-NEXT:    srwi r4, r4, 5241; CHECK-BE-NEXT:    andi. r5, r5, 1242; CHECK-BE-NEXT:    crmove 4*cr2+gt, gt243; CHECK-BE-NEXT:    andi. r4, r4, 1244; CHECK-BE-NEXT:    li r4, 0245; CHECK-BE-NEXT:    crmove 4*cr2+lt, gt246; CHECK-BE-NEXT:    b .LBB0_2247; CHECK-BE-NEXT:  .LBB0_1: # %bb43248; CHECK-BE-NEXT:    #249; CHECK-BE-NEXT:    bl call_1250; CHECK-BE-NEXT:    nop251; CHECK-BE-NEXT:    li r3, 0252; CHECK-BE-NEXT:    isel r4, r30, r3, 4*cr3+eq253; CHECK-BE-NEXT:    stb r3, 0(r4)254; CHECK-BE-NEXT:    li r4, 0255; CHECK-BE-NEXT:    .p2align 4256; CHECK-BE-NEXT:  .LBB0_2: # %bb5257; CHECK-BE-NEXT:    #258; CHECK-BE-NEXT:    bc 12, 4*cr2+gt, .LBB0_31259; CHECK-BE-NEXT:  # %bb.3: # %bb10260; CHECK-BE-NEXT:    #261; CHECK-BE-NEXT:    bc 12, 4*cr2+eq, .LBB0_5262; CHECK-BE-NEXT:  # %bb.4: # %bb10263; CHECK-BE-NEXT:    #264; CHECK-BE-NEXT:    mr r3, r4265; CHECK-BE-NEXT:    lwz r5, 0(r3)266; CHECK-BE-NEXT:    rlwinm r4, r5, 0, 21, 22267; CHECK-BE-NEXT:    cmpwi cr3, r4, 512268; CHECK-BE-NEXT:    lwax r4, r28, r29269; CHECK-BE-NEXT:    add r4, r28, r4270; CHECK-BE-NEXT:    mtctr r4271; CHECK-BE-NEXT:    li r4, 0272; CHECK-BE-NEXT:    bctr273; CHECK-BE-NEXT:  .LBB0_5: # %bb13274; CHECK-BE-NEXT:    #275; CHECK-BE-NEXT:    li r4, 16276; CHECK-BE-NEXT:    b .LBB0_2277; CHECK-BE-NEXT:    .p2align 4278; CHECK-BE-NEXT:  .LBB0_6: # %bb28279; CHECK-BE-NEXT:    #280; CHECK-BE-NEXT:    b .LBB0_6281; CHECK-BE-NEXT:    .p2align 4282; CHECK-BE-NEXT:  .LBB0_7: # %bb22283; CHECK-BE-NEXT:    #284; CHECK-BE-NEXT:    b .LBB0_7285; CHECK-BE-NEXT:    .p2align 4286; CHECK-BE-NEXT:  .LBB0_8: # %bb52287; CHECK-BE-NEXT:    #288; CHECK-BE-NEXT:    b .LBB0_8289; CHECK-BE-NEXT:    .p2align 4290; CHECK-BE-NEXT:  .LBB0_9: # %bb17291; CHECK-BE-NEXT:    #292; CHECK-BE-NEXT:    b .LBB0_9293; CHECK-BE-NEXT:    .p2align 4294; CHECK-BE-NEXT:  .LBB0_10: # %bb26295; CHECK-BE-NEXT:    #296; CHECK-BE-NEXT:    b .LBB0_10297; CHECK-BE-NEXT:    .p2align 4298; CHECK-BE-NEXT:  .LBB0_11: # %bb42299; CHECK-BE-NEXT:    #300; CHECK-BE-NEXT:    b .LBB0_11301; CHECK-BE-NEXT:    .p2align 4302; CHECK-BE-NEXT:  .LBB0_12: # %bb54303; CHECK-BE-NEXT:    #304; CHECK-BE-NEXT:    b .LBB0_12305; CHECK-BE-NEXT:    .p2align 4306; CHECK-BE-NEXT:  .LBB0_13: # %bb49307; CHECK-BE-NEXT:    #308; CHECK-BE-NEXT:    b .LBB0_13309; CHECK-BE-NEXT:    .p2align 4310; CHECK-BE-NEXT:  .LBB0_14: # %bb59311; CHECK-BE-NEXT:    #312; CHECK-BE-NEXT:    b .LBB0_14313; CHECK-BE-NEXT:    .p2align 4314; CHECK-BE-NEXT:  .LBB0_15: # %bb57315; CHECK-BE-NEXT:    #316; CHECK-BE-NEXT:    b .LBB0_15317; CHECK-BE-NEXT:    .p2align 4318; CHECK-BE-NEXT:  .LBB0_16: # %bb18319; CHECK-BE-NEXT:    #320; CHECK-BE-NEXT:    b .LBB0_16321; CHECK-BE-NEXT:    .p2align 4322; CHECK-BE-NEXT:  .LBB0_17: # %bb46323; CHECK-BE-NEXT:    #324; CHECK-BE-NEXT:    b .LBB0_17325; CHECK-BE-NEXT:    .p2align 4326; CHECK-BE-NEXT:  .LBB0_18: # %bb19327; CHECK-BE-NEXT:    #328; CHECK-BE-NEXT:    b .LBB0_18329; CHECK-BE-NEXT:    .p2align 4330; CHECK-BE-NEXT:  .LBB0_19: # %bb61331; CHECK-BE-NEXT:    #332; CHECK-BE-NEXT:    b .LBB0_19333; CHECK-BE-NEXT:    .p2align 4334; CHECK-BE-NEXT:  .LBB0_20: # %bb24335; CHECK-BE-NEXT:    #336; CHECK-BE-NEXT:    b .LBB0_20337; CHECK-BE-NEXT:    .p2align 4338; CHECK-BE-NEXT:  .LBB0_21: # %bb47339; CHECK-BE-NEXT:    #340; CHECK-BE-NEXT:    b .LBB0_21341; CHECK-BE-NEXT:    .p2align 4342; CHECK-BE-NEXT:  .LBB0_22: # %bb58343; CHECK-BE-NEXT:    #344; CHECK-BE-NEXT:    b .LBB0_22345; CHECK-BE-NEXT:    .p2align 4346; CHECK-BE-NEXT:  .LBB0_23: # %bb48347; CHECK-BE-NEXT:    #348; CHECK-BE-NEXT:    b .LBB0_23349; CHECK-BE-NEXT:    .p2align 4350; CHECK-BE-NEXT:  .LBB0_24: # %bb55351; CHECK-BE-NEXT:    #352; CHECK-BE-NEXT:    b .LBB0_24353; CHECK-BE-NEXT:    .p2align 4354; CHECK-BE-NEXT:  .LBB0_25: # %bb20355; CHECK-BE-NEXT:    #356; CHECK-BE-NEXT:    b .LBB0_25357; CHECK-BE-NEXT:    .p2align 4358; CHECK-BE-NEXT:  .LBB0_26: # %bb60359; CHECK-BE-NEXT:    #360; CHECK-BE-NEXT:    b .LBB0_26361; CHECK-BE-NEXT:    .p2align 4362; CHECK-BE-NEXT:  .LBB0_27: # %bb56363; CHECK-BE-NEXT:    #364; CHECK-BE-NEXT:    b .LBB0_27365; CHECK-BE-NEXT:    .p2align 4366; CHECK-BE-NEXT:  .LBB0_28: # %bb50367; CHECK-BE-NEXT:    #368; CHECK-BE-NEXT:    b .LBB0_28369; CHECK-BE-NEXT:    .p2align 4370; CHECK-BE-NEXT:  .LBB0_29: # %bb23371; CHECK-BE-NEXT:    #372; CHECK-BE-NEXT:    b .LBB0_29373; CHECK-BE-NEXT:    .p2align 4374; CHECK-BE-NEXT:  .LBB0_30: # %bb62375; CHECK-BE-NEXT:    #376; CHECK-BE-NEXT:    b .LBB0_30377; CHECK-BE-NEXT:  .LBB0_31: # %bb9378; CHECK-BE-NEXT:    ld r30, 128(r1) # 8-byte Folded Reload379; CHECK-BE-NEXT:    ld r29, 120(r1) # 8-byte Folded Reload380; CHECK-BE-NEXT:    ld r28, 112(r1) # 8-byte Folded Reload381; CHECK-BE-NEXT:    addi r1, r1, 144382; CHECK-BE-NEXT:    ld r0, 16(r1)383; CHECK-BE-NEXT:    lwz r12, 8(r1)384; CHECK-BE-NEXT:    mtlr r0385; CHECK-BE-NEXT:    mtocrf 32, r12386; CHECK-BE-NEXT:    mtocrf 16, r12387; CHECK-BE-NEXT:    mtocrf 8, r12388; CHECK-BE-NEXT:    blr389; CHECK-BE-NEXT:  .LBB0_32: # %bb29390; CHECK-BE-NEXT:    crmove eq, 4*cr3+eq391; CHECK-BE-NEXT:    li r29, 0392; CHECK-BE-NEXT:    cmpwi cr3, r5, 366393; CHECK-BE-NEXT:    cmpwi cr4, r3, 0394; CHECK-BE-NEXT:    iseleq r30, r30, r29395; CHECK-BE-NEXT:    bc 12, 4*cr2+lt, .LBB0_36396; CHECK-BE-NEXT:    .p2align 4397; CHECK-BE-NEXT:  .LBB0_33: # %bb36398; CHECK-BE-NEXT:    bc 12, 4*cr4+eq, .LBB0_35399; CHECK-BE-NEXT:  .LBB0_34: # %bb32400; CHECK-BE-NEXT:    bc 4, 4*cr2+lt, .LBB0_33401; CHECK-BE-NEXT:    b .LBB0_36402; CHECK-BE-NEXT:    .p2align 4403; CHECK-BE-NEXT:  .LBB0_35: # %bb39404; CHECK-BE-NEXT:    bl call_2405; CHECK-BE-NEXT:    nop406; CHECK-BE-NEXT:    bc 4, 4*cr2+lt, .LBB0_33407; CHECK-BE-NEXT:  .LBB0_36: # %bb33408; CHECK-BE-NEXT:    stb r29, 0(r30)409; CHECK-BE-NEXT:    bc 4, 4*cr4+eq, .LBB0_34410; CHECK-BE-NEXT:    b .LBB0_35411bb:412  %tmp = load i32, ptr undef, align 8413  %tmp1 = and i32 %tmp, 16414  %tmp2 = icmp ne i32 %tmp1, 0415  %tmp3 = and i32 %tmp, 32416  %tmp4 = icmp ne i32 %tmp3, 0417  br label %bb5418 419bb5:                                              ; preds = %bb63, %bb420  %tmp6 = phi i32 [ 0, %bb ], [ %tmp64, %bb63 ]421  %tmp7 = phi i1 [ %tmp4, %bb ], [ undef, %bb63 ]422  %tmp8 = load i32, ptr undef, align 8423  br i1 %tmp2, label %bb9, label %bb10424 425bb9:                                              ; preds = %bb5426  ret void427 428bb10:                                             ; preds = %bb5429  %tmp11 = and i32 %tmp8, 1536430  %tmp12 = icmp eq i32 %tmp11, 512431  switch i32 undef, label %bb13 [432    i32 117, label %bb62433    i32 40, label %bb63434    i32 302, label %bb63435    i32 46, label %bb63436    i32 320, label %bb16437    i32 64, label %bb16438    i32 344, label %bb18439    i32 88, label %bb19440    i32 376, label %bb63441    i32 120, label %bb20442    i32 47, label %bb21443    i32 65, label %bb21444    i32 90, label %bb21445    i32 97, label %bb21446    i32 66, label %bb63447    i32 98, label %bb63448    i32 72, label %bb63449    i32 104, label %bb63450    i32 67, label %bb63451    i32 99, label %bb23452    i32 87, label %bb24453    i32 85, label %bb63454    i32 371, label %bb25455    i32 115, label %bb25456    i32 339, label %bb27457    i32 118, label %bb27458    i32 110, label %bb27459    i32 83, label %bb27460    i32 374, label %bb29461    i32 366, label %bb29462    i32 105, label %bb41463    i32 361, label %bb41464    i32 73, label %bb43465    i32 329, label %bb43466    i32 106, label %bb46467    i32 74, label %bb47468    i32 364, label %bb48469    i32 108, label %bb49470    i32 332, label %bb50471    i32 86, label %bb51472    i32 78, label %bb51473    i32 76, label %bb51474    i32 342, label %bb53475    i32 334, label %bb53476    i32 112, label %bb55477    i32 119, label %bb56478    i32 80, label %bb63479    i32 113, label %bb57480    i32 81, label %bb58481    i32 102, label %bb59482    i32 100, label %bb60483    i32 70, label %bb61484  ]485 486bb13:                                             ; preds = %bb10487  %tmp14 = icmp eq i32 0, 0488  %tmp15 = select i1 %tmp14, i32 16, i32 undef489  br label %bb63490 491bb16:                                             ; preds = %bb10, %bb10492  br label %bb17493 494bb17:                                             ; preds = %bb17, %bb16495  br label %bb17496 497bb18:                                             ; preds = %bb18, %bb10498  br label %bb18499 500bb19:                                             ; preds = %bb19, %bb10501  br label %bb19502 503bb20:                                             ; preds = %bb20, %bb10504  br label %bb20505 506bb21:                                             ; preds = %bb10, %bb10, %bb10, %bb10507  br label %bb22508 509bb22:                                             ; preds = %bb22, %bb21510  br label %bb22511 512bb23:                                             ; preds = %bb23, %bb10513  br label %bb23514 515bb24:                                             ; preds = %bb24, %bb10516  br label %bb24517 518bb25:                                             ; preds = %bb10, %bb10519  br label %bb26520 521bb26:                                             ; preds = %bb26, %bb25522  br label %bb26523 524bb27:                                             ; preds = %bb10, %bb10, %bb10, %bb10525  br label %bb28526 527bb28:                                             ; preds = %bb28, %bb27528  br label %bb28529 530bb29:                                             ; preds = %bb10, %bb10531  %tmp30 = icmp eq i32 %tmp8, 366532  %tmp31 = icmp eq i32 %tmp6, 0533  br label %bb32534 535bb32:                                             ; preds = %bb40, %bb29536  br i1 %tmp7, label %bb33, label %bb36537 538bb33:                                             ; preds = %bb32539  %tmp34 = getelementptr inbounds i8, ptr %p, i64 -1540  %tmp35 = select i1 %tmp12, ptr %tmp34, ptr null541  store i8 0, ptr %tmp35, align 1542  br label %bb36543 544bb36:                                             ; preds = %bb33, %bb32545  br i1 %tmp30, label %bb37, label %bb38546 547bb37:                                             ; preds = %bb36548  store i16 undef, ptr null, align 2549  br label %bb38550 551bb38:                                             ; preds = %bb37, %bb36552  br i1 %tmp31, label %bb39, label %bb40553 554bb39:                                             ; preds = %bb38555  call void @call_2()556  br label %bb40557 558bb40:                                             ; preds = %bb39, %bb38559  br label %bb32560 561bb41:                                             ; preds = %bb10, %bb10562  br label %bb42563 564bb42:                                             ; preds = %bb42, %bb41565  br label %bb42566 567bb43:                                             ; preds = %bb10, %bb10568  call void @call_1()569  %tmp44 = getelementptr inbounds i8, ptr %p, i64 -1570  %tmp45 = select i1 %tmp12, ptr %tmp44, ptr null571  store i8 0, ptr %tmp45, align 1572  br label %bb63573 574bb46:                                             ; preds = %bb46, %bb10575  br label %bb46576 577bb47:                                             ; preds = %bb47, %bb10578  br label %bb47579 580bb48:                                             ; preds = %bb48, %bb10581  br label %bb48582 583bb49:                                             ; preds = %bb49, %bb10584  br label %bb49585 586bb50:                                             ; preds = %bb50, %bb10587  br label %bb50588 589bb51:                                             ; preds = %bb10, %bb10, %bb10590  br label %bb52591 592bb52:                                             ; preds = %bb52, %bb51593  br label %bb52594 595bb53:                                             ; preds = %bb10, %bb10596  br label %bb54597 598bb54:                                             ; preds = %bb54, %bb53599  br label %bb54600 601bb55:                                             ; preds = %bb55, %bb10602  br label %bb55603 604bb56:                                             ; preds = %bb56, %bb10605  br label %bb56606 607bb57:                                             ; preds = %bb57, %bb10608  br label %bb57609 610bb58:                                             ; preds = %bb58, %bb10611  br label %bb58612 613bb59:                                             ; preds = %bb59, %bb10614  br label %bb59615 616bb60:                                             ; preds = %bb60, %bb10617  br label %bb60618 619bb61:                                             ; preds = %bb61, %bb10620  br label %bb61621 622bb62:                                             ; preds = %bb62, %bb10623  br label %bb62624 625bb63:                                             ; preds = %bb43, %bb13, %bb10, %bb10, %bb10, %bb10, %bb10, %bb10, %bb10, %bb10, %bb10, %bb10, %bb10626  %tmp64 = phi i32 [ %tmp15, %bb13 ], [ 0, %bb43 ], [ 0, %bb10 ], [ 0, %bb10 ], [ 0, %bb10 ], [ 0, %bb10 ], [ 0, %bb10 ], [ 0, %bb10 ], [ 0, %bb10 ], [ 0, %bb10 ], [ 0, %bb10 ], [ 0, %bb10 ], [ 0, %bb10 ]627  br label %bb5628}629 630declare void @call_1() local_unnamed_addr631 632declare void @call_2() local_unnamed_addr633