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