1392 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mcpu=pwr8 \3; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P8-BE4; RUN: llc -verify-machineinstrs -mcpu=pwr9 \5; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P9-BE6; RUN: llc -verify-machineinstrs -mcpu=pwr10 \7; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P10-BE8; RUN: llc -verify-machineinstrs -mcpu=pwr8 \9; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P8-LE10; RUN: llc -verify-machineinstrs -mcpu=pwr9 \11; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P9-LE12; RUN: llc -verify-machineinstrs -mcpu=pwr10 \13; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P10-LE14 15define dso_local void @memsetTailV1B15(ptr nocapture noundef writeonly %p) local_unnamed_addr {16; P8-BE-LABEL: memsetTailV1B15:17; P8-BE: # %bb.0: # %entry18; P8-BE-NEXT: vspltisb 2, 1519; P8-BE-NEXT: li 4, 1520; P8-BE-NEXT: stxvw4x 34, 3, 421; P8-BE-NEXT: stxvw4x 34, 0, 322; P8-BE-NEXT: blr23;24; P9-BE-LABEL: memsetTailV1B15:25; P9-BE: # %bb.0: # %entry26; P9-BE-NEXT: xxspltib 0, 1527; P9-BE-NEXT: li 4, 1528; P9-BE-NEXT: stxvx 0, 3, 429; P9-BE-NEXT: stxv 0, 0(3)30; P9-BE-NEXT: blr31;32; P10-BE-LABEL: memsetTailV1B15:33; P10-BE: # %bb.0: # %entry34; P10-BE-NEXT: xxspltib 0, 1535; P10-BE-NEXT: pstxv 0, 15(3), 036; P10-BE-NEXT: stxv 0, 0(3)37; P10-BE-NEXT: blr38;39; P8-LE-LABEL: memsetTailV1B15:40; P8-LE: # %bb.0: # %entry41; P8-LE-NEXT: vspltisb 2, 1542; P8-LE-NEXT: li 4, 1543; P8-LE-NEXT: stxvd2x 34, 3, 444; P8-LE-NEXT: stxvd2x 34, 0, 345; P8-LE-NEXT: blr46;47; P9-LE-LABEL: memsetTailV1B15:48; P9-LE: # %bb.0: # %entry49; P9-LE-NEXT: xxspltib 0, 1550; P9-LE-NEXT: li 4, 1551; P9-LE-NEXT: stxvx 0, 3, 452; P9-LE-NEXT: stxv 0, 0(3)53; P9-LE-NEXT: blr54;55; P10-LE-LABEL: memsetTailV1B15:56; P10-LE: # %bb.0: # %entry57; P10-LE-NEXT: xxspltib 0, 1558; P10-LE-NEXT: pstxv 0, 15(3), 059; P10-LE-NEXT: stxv 0, 0(3)60; P10-LE-NEXT: blr61entry:62 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 31, i1 false)63 ret void64}65 66define dso_local void @memsetTailV1B12(ptr nocapture noundef writeonly %p) local_unnamed_addr {67; P8-BE-LABEL: memsetTailV1B12:68; P8-BE: # %bb.0: # %entry69; P8-BE-NEXT: vspltisb 2, 1570; P8-BE-NEXT: li 4, 1271; P8-BE-NEXT: stxvw4x 34, 3, 472; P8-BE-NEXT: stxvw4x 34, 0, 373; P8-BE-NEXT: blr74;75; P9-BE-LABEL: memsetTailV1B12:76; P9-BE: # %bb.0: # %entry77; P9-BE-NEXT: xxspltib 0, 1578; P9-BE-NEXT: li 4, 1279; P9-BE-NEXT: stxvx 0, 3, 480; P9-BE-NEXT: stxv 0, 0(3)81; P9-BE-NEXT: blr82;83; P10-BE-LABEL: memsetTailV1B12:84; P10-BE: # %bb.0: # %entry85; P10-BE-NEXT: xxspltib 0, 1586; P10-BE-NEXT: pstxv 0, 12(3), 087; P10-BE-NEXT: stxv 0, 0(3)88; P10-BE-NEXT: blr89;90; P8-LE-LABEL: memsetTailV1B12:91; P8-LE: # %bb.0: # %entry92; P8-LE-NEXT: vspltisb 2, 1593; P8-LE-NEXT: li 4, 1294; P8-LE-NEXT: stxvd2x 34, 3, 495; P8-LE-NEXT: stxvd2x 34, 0, 396; P8-LE-NEXT: blr97;98; P9-LE-LABEL: memsetTailV1B12:99; P9-LE: # %bb.0: # %entry100; P9-LE-NEXT: xxspltib 0, 15101; P9-LE-NEXT: li 4, 12102; P9-LE-NEXT: stxvx 0, 3, 4103; P9-LE-NEXT: stxv 0, 0(3)104; P9-LE-NEXT: blr105;106; P10-LE-LABEL: memsetTailV1B12:107; P10-LE: # %bb.0: # %entry108; P10-LE-NEXT: xxspltib 0, 15109; P10-LE-NEXT: pstxv 0, 12(3), 0110; P10-LE-NEXT: stxv 0, 0(3)111; P10-LE-NEXT: blr112entry:113 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 28, i1 false)114 ret void115}116 117define dso_local void @memsetTailV1B9(ptr nocapture noundef writeonly %p) local_unnamed_addr {118; P8-BE-LABEL: memsetTailV1B9:119; P8-BE: # %bb.0: # %entry120; P8-BE-NEXT: vspltisb 2, 15121; P8-BE-NEXT: li 4, 9122; P8-BE-NEXT: stxvw4x 34, 3, 4123; P8-BE-NEXT: stxvw4x 34, 0, 3124; P8-BE-NEXT: blr125;126; P9-BE-LABEL: memsetTailV1B9:127; P9-BE: # %bb.0: # %entry128; P9-BE-NEXT: xxspltib 0, 15129; P9-BE-NEXT: li 4, 9130; P9-BE-NEXT: stxvx 0, 3, 4131; P9-BE-NEXT: stxv 0, 0(3)132; P9-BE-NEXT: blr133;134; P10-BE-LABEL: memsetTailV1B9:135; P10-BE: # %bb.0: # %entry136; P10-BE-NEXT: xxspltib 0, 15137; P10-BE-NEXT: pstxv 0, 9(3), 0138; P10-BE-NEXT: stxv 0, 0(3)139; P10-BE-NEXT: blr140;141; P8-LE-LABEL: memsetTailV1B9:142; P8-LE: # %bb.0: # %entry143; P8-LE-NEXT: vspltisb 2, 15144; P8-LE-NEXT: li 4, 9145; P8-LE-NEXT: stxvd2x 34, 3, 4146; P8-LE-NEXT: stxvd2x 34, 0, 3147; P8-LE-NEXT: blr148;149; P9-LE-LABEL: memsetTailV1B9:150; P9-LE: # %bb.0: # %entry151; P9-LE-NEXT: xxspltib 0, 15152; P9-LE-NEXT: li 4, 9153; P9-LE-NEXT: stxvx 0, 3, 4154; P9-LE-NEXT: stxv 0, 0(3)155; P9-LE-NEXT: blr156;157; P10-LE-LABEL: memsetTailV1B9:158; P10-LE: # %bb.0: # %entry159; P10-LE-NEXT: xxspltib 0, 15160; P10-LE-NEXT: pstxv 0, 9(3), 0161; P10-LE-NEXT: stxv 0, 0(3)162; P10-LE-NEXT: blr163entry:164 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 25, i1 false)165 ret void166}167 168define dso_local void @memsetTailV1B8(ptr nocapture noundef writeonly %p) local_unnamed_addr {169; P8-BE-LABEL: memsetTailV1B8:170; P8-BE: # %bb.0: # %entry171; P8-BE-NEXT: vspltisb 2, 15172; P8-BE-NEXT: li 4, 16173; P8-BE-NEXT: stxsdx 34, 3, 4174; P8-BE-NEXT: stxvw4x 34, 0, 3175; P8-BE-NEXT: blr176;177; P9-BE-LABEL: memsetTailV1B8:178; P9-BE: # %bb.0: # %entry179; P9-BE-NEXT: xxspltib 0, 15180; P9-BE-NEXT: stxv 0, 0(3)181; P9-BE-NEXT: stfd 0, 16(3)182; P9-BE-NEXT: blr183;184; P10-BE-LABEL: memsetTailV1B8:185; P10-BE: # %bb.0: # %entry186; P10-BE-NEXT: xxspltib 0, 15187; P10-BE-NEXT: stxv 0, 0(3)188; P10-BE-NEXT: stfd 0, 16(3)189; P10-BE-NEXT: blr190;191; P8-LE-LABEL: memsetTailV1B8:192; P8-LE: # %bb.0: # %entry193; P8-LE-NEXT: vspltisb 2, 15194; P8-LE-NEXT: li 4, 16195; P8-LE-NEXT: stxsdx 34, 3, 4196; P8-LE-NEXT: stxvd2x 34, 0, 3197; P8-LE-NEXT: blr198;199; P9-LE-LABEL: memsetTailV1B8:200; P9-LE: # %bb.0: # %entry201; P9-LE-NEXT: xxspltib 0, 15202; P9-LE-NEXT: stxv 0, 0(3)203; P9-LE-NEXT: stfd 0, 16(3)204; P9-LE-NEXT: blr205;206; P10-LE-LABEL: memsetTailV1B8:207; P10-LE: # %bb.0: # %entry208; P10-LE-NEXT: xxspltib 0, 15209; P10-LE-NEXT: stxv 0, 0(3)210; P10-LE-NEXT: stfd 0, 16(3)211; P10-LE-NEXT: blr212entry:213 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 24, i1 false)214 ret void215}216 217define dso_local void @memsetTailV1B7(ptr nocapture noundef writeonly %p) local_unnamed_addr {218; P8-BE-LABEL: memsetTailV1B7:219; P8-BE: # %bb.0: # %entry220; P8-BE-NEXT: vspltisb 2, 15221; P8-BE-NEXT: li 4, 15222; P8-BE-NEXT: stxsdx 34, 3, 4223; P8-BE-NEXT: stxvw4x 34, 0, 3224; P8-BE-NEXT: blr225;226; P9-BE-LABEL: memsetTailV1B7:227; P9-BE: # %bb.0: # %entry228; P9-BE-NEXT: xxspltib 0, 15229; P9-BE-NEXT: stfd 0, 15(3)230; P9-BE-NEXT: stxv 0, 0(3)231; P9-BE-NEXT: blr232;233; P10-BE-LABEL: memsetTailV1B7:234; P10-BE: # %bb.0: # %entry235; P10-BE-NEXT: xxspltib 0, 15236; P10-BE-NEXT: stfd 0, 15(3)237; P10-BE-NEXT: stxv 0, 0(3)238; P10-BE-NEXT: blr239;240; P8-LE-LABEL: memsetTailV1B7:241; P8-LE: # %bb.0: # %entry242; P8-LE-NEXT: vspltisb 2, 15243; P8-LE-NEXT: li 4, 15244; P8-LE-NEXT: stxsdx 34, 3, 4245; P8-LE-NEXT: stxvd2x 34, 0, 3246; P8-LE-NEXT: blr247;248; P9-LE-LABEL: memsetTailV1B7:249; P9-LE: # %bb.0: # %entry250; P9-LE-NEXT: xxspltib 0, 15251; P9-LE-NEXT: stfd 0, 15(3)252; P9-LE-NEXT: stxv 0, 0(3)253; P9-LE-NEXT: blr254;255; P10-LE-LABEL: memsetTailV1B7:256; P10-LE: # %bb.0: # %entry257; P10-LE-NEXT: xxspltib 0, 15258; P10-LE-NEXT: stfd 0, 15(3)259; P10-LE-NEXT: stxv 0, 0(3)260; P10-LE-NEXT: blr261entry:262 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 23, i1 false)263 ret void264}265 266define dso_local void @memsetTailV1B4(ptr nocapture noundef writeonly %p) local_unnamed_addr {267; P8-BE-LABEL: memsetTailV1B4:268; P8-BE: # %bb.0: # %entry269; P8-BE-NEXT: vspltisb 2, 15270; P8-BE-NEXT: li 4, 16271; P8-BE-NEXT: stxsiwx 34, 3, 4272; P8-BE-NEXT: stxvw4x 34, 0, 3273; P8-BE-NEXT: blr274;275; P9-BE-LABEL: memsetTailV1B4:276; P9-BE: # %bb.0: # %entry277; P9-BE-NEXT: xxspltib 0, 15278; P9-BE-NEXT: li 4, 16279; P9-BE-NEXT: stfiwx 0, 3, 4280; P9-BE-NEXT: stxv 0, 0(3)281; P9-BE-NEXT: blr282;283; P10-BE-LABEL: memsetTailV1B4:284; P10-BE: # %bb.0: # %entry285; P10-BE-NEXT: xxspltib 0, 15286; P10-BE-NEXT: li 4, 16287; P10-BE-NEXT: stfiwx 0, 3, 4288; P10-BE-NEXT: stxv 0, 0(3)289; P10-BE-NEXT: blr290;291; P8-LE-LABEL: memsetTailV1B4:292; P8-LE: # %bb.0: # %entry293; P8-LE-NEXT: vspltisb 2, 15294; P8-LE-NEXT: li 4, 16295; P8-LE-NEXT: stxsiwx 34, 3, 4296; P8-LE-NEXT: stxvd2x 34, 0, 3297; P8-LE-NEXT: blr298;299; P9-LE-LABEL: memsetTailV1B4:300; P9-LE: # %bb.0: # %entry301; P9-LE-NEXT: xxspltib 0, 15302; P9-LE-NEXT: li 4, 16303; P9-LE-NEXT: stfiwx 0, 3, 4304; P9-LE-NEXT: stxv 0, 0(3)305; P9-LE-NEXT: blr306;307; P10-LE-LABEL: memsetTailV1B4:308; P10-LE: # %bb.0: # %entry309; P10-LE-NEXT: xxspltib 0, 15310; P10-LE-NEXT: li 4, 16311; P10-LE-NEXT: stfiwx 0, 3, 4312; P10-LE-NEXT: stxv 0, 0(3)313; P10-LE-NEXT: blr314entry:315 tail call void @llvm.memset.p0.i32(ptr %p, i8 15, i32 20, i1 false)316 ret void317}318 319define dso_local void @memsetTailV1B3(ptr nocapture noundef writeonly %p) local_unnamed_addr {320; P8-BE-LABEL: memsetTailV1B3:321; P8-BE: # %bb.0: # %entry322; P8-BE-NEXT: vspltisb 2, 15323; P8-BE-NEXT: li 4, 15324; P8-BE-NEXT: stxsiwx 34, 3, 4325; P8-BE-NEXT: stxvw4x 34, 0, 3326; P8-BE-NEXT: blr327;328; P9-BE-LABEL: memsetTailV1B3:329; P9-BE: # %bb.0: # %entry330; P9-BE-NEXT: xxspltib 0, 15331; P9-BE-NEXT: li 4, 15332; P9-BE-NEXT: stfiwx 0, 3, 4333; P9-BE-NEXT: stxv 0, 0(3)334; P9-BE-NEXT: blr335;336; P10-BE-LABEL: memsetTailV1B3:337; P10-BE: # %bb.0: # %entry338; P10-BE-NEXT: xxspltib 0, 15339; P10-BE-NEXT: li 4, 15340; P10-BE-NEXT: stfiwx 0, 3, 4341; P10-BE-NEXT: stxv 0, 0(3)342; P10-BE-NEXT: blr343;344; P8-LE-LABEL: memsetTailV1B3:345; P8-LE: # %bb.0: # %entry346; P8-LE-NEXT: vspltisb 2, 15347; P8-LE-NEXT: li 4, 15348; P8-LE-NEXT: stxsiwx 34, 3, 4349; P8-LE-NEXT: stxvd2x 34, 0, 3350; P8-LE-NEXT: blr351;352; P9-LE-LABEL: memsetTailV1B3:353; P9-LE: # %bb.0: # %entry354; P9-LE-NEXT: xxspltib 0, 15355; P9-LE-NEXT: li 4, 15356; P9-LE-NEXT: stfiwx 0, 3, 4357; P9-LE-NEXT: stxv 0, 0(3)358; P9-LE-NEXT: blr359;360; P10-LE-LABEL: memsetTailV1B3:361; P10-LE: # %bb.0: # %entry362; P10-LE-NEXT: xxspltib 0, 15363; P10-LE-NEXT: li 4, 15364; P10-LE-NEXT: stfiwx 0, 3, 4365; P10-LE-NEXT: stxv 0, 0(3)366; P10-LE-NEXT: blr367entry:368 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 19, i1 false)369 ret void370}371 372define dso_local void @memsetTailV1B2(ptr nocapture noundef writeonly %p) local_unnamed_addr {373; P8-BE-LABEL: memsetTailV1B2:374; P8-BE: # %bb.0: # %entry375; P8-BE-NEXT: vspltisb 2, 15376; P8-BE-NEXT: li 4, 3855377; P8-BE-NEXT: sth 4, 16(3)378; P8-BE-NEXT: stxvw4x 34, 0, 3379; P8-BE-NEXT: blr380;381; P9-BE-LABEL: memsetTailV1B2:382; P9-BE: # %bb.0: # %entry383; P9-BE-NEXT: xxspltib 0, 15384; P9-BE-NEXT: li 4, 3855385; P9-BE-NEXT: sth 4, 16(3)386; P9-BE-NEXT: stxv 0, 0(3)387; P9-BE-NEXT: blr388;389; P10-BE-LABEL: memsetTailV1B2:390; P10-BE: # %bb.0: # %entry391; P10-BE-NEXT: xxspltib 0, 15392; P10-BE-NEXT: li 4, 3855393; P10-BE-NEXT: sth 4, 16(3)394; P10-BE-NEXT: stxv 0, 0(3)395; P10-BE-NEXT: blr396;397; P8-LE-LABEL: memsetTailV1B2:398; P8-LE: # %bb.0: # %entry399; P8-LE-NEXT: vspltisb 2, 15400; P8-LE-NEXT: li 4, 3855401; P8-LE-NEXT: sth 4, 16(3)402; P8-LE-NEXT: stxvd2x 34, 0, 3403; P8-LE-NEXT: blr404;405; P9-LE-LABEL: memsetTailV1B2:406; P9-LE: # %bb.0: # %entry407; P9-LE-NEXT: xxspltib 0, 15408; P9-LE-NEXT: li 4, 3855409; P9-LE-NEXT: sth 4, 16(3)410; P9-LE-NEXT: stxv 0, 0(3)411; P9-LE-NEXT: blr412;413; P10-LE-LABEL: memsetTailV1B2:414; P10-LE: # %bb.0: # %entry415; P10-LE-NEXT: xxspltib 0, 15416; P10-LE-NEXT: li 4, 3855417; P10-LE-NEXT: sth 4, 16(3)418; P10-LE-NEXT: stxv 0, 0(3)419; P10-LE-NEXT: blr420entry:421 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 18, i1 false)422 ret void423}424 425define dso_local void @memsetTailV1B1(ptr nocapture noundef writeonly %p) local_unnamed_addr {426; P8-BE-LABEL: memsetTailV1B1:427; P8-BE: # %bb.0: # %entry428; P8-BE-NEXT: vspltisb 2, 15429; P8-BE-NEXT: li 4, 15430; P8-BE-NEXT: stb 4, 16(3)431; P8-BE-NEXT: stxvw4x 34, 0, 3432; P8-BE-NEXT: blr433;434; P9-BE-LABEL: memsetTailV1B1:435; P9-BE: # %bb.0: # %entry436; P9-BE-NEXT: xxspltib 0, 15437; P9-BE-NEXT: li 4, 15438; P9-BE-NEXT: stb 4, 16(3)439; P9-BE-NEXT: stxv 0, 0(3)440; P9-BE-NEXT: blr441;442; P10-BE-LABEL: memsetTailV1B1:443; P10-BE: # %bb.0: # %entry444; P10-BE-NEXT: xxspltib 0, 15445; P10-BE-NEXT: li 4, 15446; P10-BE-NEXT: stb 4, 16(3)447; P10-BE-NEXT: stxv 0, 0(3)448; P10-BE-NEXT: blr449;450; P8-LE-LABEL: memsetTailV1B1:451; P8-LE: # %bb.0: # %entry452; P8-LE-NEXT: vspltisb 2, 15453; P8-LE-NEXT: li 4, 15454; P8-LE-NEXT: stb 4, 16(3)455; P8-LE-NEXT: stxvd2x 34, 0, 3456; P8-LE-NEXT: blr457;458; P9-LE-LABEL: memsetTailV1B1:459; P9-LE: # %bb.0: # %entry460; P9-LE-NEXT: xxspltib 0, 15461; P9-LE-NEXT: li 4, 15462; P9-LE-NEXT: stb 4, 16(3)463; P9-LE-NEXT: stxv 0, 0(3)464; P9-LE-NEXT: blr465;466; P10-LE-LABEL: memsetTailV1B1:467; P10-LE: # %bb.0: # %entry468; P10-LE-NEXT: xxspltib 0, 15469; P10-LE-NEXT: li 4, 15470; P10-LE-NEXT: stb 4, 16(3)471; P10-LE-NEXT: stxv 0, 0(3)472; P10-LE-NEXT: blr473entry:474 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 17, i1 false)475 ret void476}477 478define dso_local void @memset2TailV1B15(ptr nocapture noundef writeonly %p) local_unnamed_addr {479; P8-BE-LABEL: memset2TailV1B15:480; P8-BE: # %bb.0: # %entry481; P8-BE-NEXT: ld 4, L..C0(2) # %const.0482; P8-BE-NEXT: lxvw4x 0, 0, 4483; P8-BE-NEXT: li 4, 15484; P8-BE-NEXT: stxvw4x 0, 3, 4485; P8-BE-NEXT: stxvw4x 0, 0, 3486; P8-BE-NEXT: blr487;488; P9-BE-LABEL: memset2TailV1B15:489; P9-BE: # %bb.0: # %entry490; P9-BE-NEXT: xxspltib 0, 165491; P9-BE-NEXT: li 4, 15492; P9-BE-NEXT: stxvx 0, 3, 4493; P9-BE-NEXT: stxv 0, 0(3)494; P9-BE-NEXT: blr495;496; P10-BE-LABEL: memset2TailV1B15:497; P10-BE: # %bb.0: # %entry498; P10-BE-NEXT: xxspltib 0, 165499; P10-BE-NEXT: pstxv 0, 15(3), 0500; P10-BE-NEXT: stxv 0, 0(3)501; P10-BE-NEXT: blr502;503; P8-LE-LABEL: memset2TailV1B15:504; P8-LE: # %bb.0: # %entry505; P8-LE-NEXT: addis 4, 2, .LCPI9_0@toc@ha506; P8-LE-NEXT: addi 4, 4, .LCPI9_0@toc@l507; P8-LE-NEXT: lxvd2x 0, 0, 4508; P8-LE-NEXT: li 4, 15509; P8-LE-NEXT: stxvd2x 0, 3, 4510; P8-LE-NEXT: stxvd2x 0, 0, 3511; P8-LE-NEXT: blr512;513; P9-LE-LABEL: memset2TailV1B15:514; P9-LE: # %bb.0: # %entry515; P9-LE-NEXT: xxspltib 0, 165516; P9-LE-NEXT: li 4, 15517; P9-LE-NEXT: stxvx 0, 3, 4518; P9-LE-NEXT: stxv 0, 0(3)519; P9-LE-NEXT: blr520;521; P10-LE-LABEL: memset2TailV1B15:522; P10-LE: # %bb.0: # %entry523; P10-LE-NEXT: xxspltib 0, 165524; P10-LE-NEXT: pstxv 0, 15(3), 0525; P10-LE-NEXT: stxv 0, 0(3)526; P10-LE-NEXT: blr527entry:528 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 31, i1 false)529 ret void530}531 532define dso_local void @memset2TailV1B12(ptr nocapture noundef writeonly %p) local_unnamed_addr {533; P8-BE-LABEL: memset2TailV1B12:534; P8-BE: # %bb.0: # %entry535; P8-BE-NEXT: ld 4, L..C1(2) # %const.0536; P8-BE-NEXT: lxvw4x 0, 0, 4537; P8-BE-NEXT: li 4, 12538; P8-BE-NEXT: stxvw4x 0, 3, 4539; P8-BE-NEXT: stxvw4x 0, 0, 3540; P8-BE-NEXT: blr541;542; P9-BE-LABEL: memset2TailV1B12:543; P9-BE: # %bb.0: # %entry544; P9-BE-NEXT: xxspltib 0, 165545; P9-BE-NEXT: li 4, 12546; P9-BE-NEXT: stxvx 0, 3, 4547; P9-BE-NEXT: stxv 0, 0(3)548; P9-BE-NEXT: blr549;550; P10-BE-LABEL: memset2TailV1B12:551; P10-BE: # %bb.0: # %entry552; P10-BE-NEXT: xxspltib 0, 165553; P10-BE-NEXT: pstxv 0, 12(3), 0554; P10-BE-NEXT: stxv 0, 0(3)555; P10-BE-NEXT: blr556;557; P8-LE-LABEL: memset2TailV1B12:558; P8-LE: # %bb.0: # %entry559; P8-LE-NEXT: addis 4, 2, .LCPI10_0@toc@ha560; P8-LE-NEXT: addi 4, 4, .LCPI10_0@toc@l561; P8-LE-NEXT: lxvd2x 0, 0, 4562; P8-LE-NEXT: li 4, 12563; P8-LE-NEXT: stxvd2x 0, 3, 4564; P8-LE-NEXT: stxvd2x 0, 0, 3565; P8-LE-NEXT: blr566;567; P9-LE-LABEL: memset2TailV1B12:568; P9-LE: # %bb.0: # %entry569; P9-LE-NEXT: xxspltib 0, 165570; P9-LE-NEXT: li 4, 12571; P9-LE-NEXT: stxvx 0, 3, 4572; P9-LE-NEXT: stxv 0, 0(3)573; P9-LE-NEXT: blr574;575; P10-LE-LABEL: memset2TailV1B12:576; P10-LE: # %bb.0: # %entry577; P10-LE-NEXT: xxspltib 0, 165578; P10-LE-NEXT: pstxv 0, 12(3), 0579; P10-LE-NEXT: stxv 0, 0(3)580; P10-LE-NEXT: blr581entry:582 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 28, i1 false)583 ret void584}585 586define dso_local void @memset2TailV1B9(ptr nocapture noundef writeonly %p) local_unnamed_addr {587; P8-BE-LABEL: memset2TailV1B9:588; P8-BE: # %bb.0: # %entry589; P8-BE-NEXT: ld 4, L..C2(2) # %const.0590; P8-BE-NEXT: lxvw4x 0, 0, 4591; P8-BE-NEXT: li 4, 9592; P8-BE-NEXT: stxvw4x 0, 3, 4593; P8-BE-NEXT: stxvw4x 0, 0, 3594; P8-BE-NEXT: blr595;596; P9-BE-LABEL: memset2TailV1B9:597; P9-BE: # %bb.0: # %entry598; P9-BE-NEXT: xxspltib 0, 165599; P9-BE-NEXT: li 4, 9600; P9-BE-NEXT: stxvx 0, 3, 4601; P9-BE-NEXT: stxv 0, 0(3)602; P9-BE-NEXT: blr603;604; P10-BE-LABEL: memset2TailV1B9:605; P10-BE: # %bb.0: # %entry606; P10-BE-NEXT: xxspltib 0, 165607; P10-BE-NEXT: pstxv 0, 9(3), 0608; P10-BE-NEXT: stxv 0, 0(3)609; P10-BE-NEXT: blr610;611; P8-LE-LABEL: memset2TailV1B9:612; P8-LE: # %bb.0: # %entry613; P8-LE-NEXT: addis 4, 2, .LCPI11_0@toc@ha614; P8-LE-NEXT: addi 4, 4, .LCPI11_0@toc@l615; P8-LE-NEXT: lxvd2x 0, 0, 4616; P8-LE-NEXT: li 4, 9617; P8-LE-NEXT: stxvd2x 0, 3, 4618; P8-LE-NEXT: stxvd2x 0, 0, 3619; P8-LE-NEXT: blr620;621; P9-LE-LABEL: memset2TailV1B9:622; P9-LE: # %bb.0: # %entry623; P9-LE-NEXT: xxspltib 0, 165624; P9-LE-NEXT: li 4, 9625; P9-LE-NEXT: stxvx 0, 3, 4626; P9-LE-NEXT: stxv 0, 0(3)627; P9-LE-NEXT: blr628;629; P10-LE-LABEL: memset2TailV1B9:630; P10-LE: # %bb.0: # %entry631; P10-LE-NEXT: xxspltib 0, 165632; P10-LE-NEXT: pstxv 0, 9(3), 0633; P10-LE-NEXT: stxv 0, 0(3)634; P10-LE-NEXT: blr635entry:636 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 25, i1 false)637 ret void638}639 640define dso_local void @memset2TailV1B8(ptr nocapture noundef writeonly %p) local_unnamed_addr {641; P8-BE-LABEL: memset2TailV1B8:642; P8-BE: # %bb.0: # %entry643; P8-BE-NEXT: ld 4, L..C3(2) # %const.0644; P8-BE-NEXT: lxvw4x 0, 0, 4645; P8-BE-NEXT: stfd 0, 16(3)646; P8-BE-NEXT: stxvw4x 0, 0, 3647; P8-BE-NEXT: blr648;649; P9-BE-LABEL: memset2TailV1B8:650; P9-BE: # %bb.0: # %entry651; P9-BE-NEXT: xxspltib 0, 165652; P9-BE-NEXT: stxv 0, 0(3)653; P9-BE-NEXT: stfd 0, 16(3)654; P9-BE-NEXT: blr655;656; P10-BE-LABEL: memset2TailV1B8:657; P10-BE: # %bb.0: # %entry658; P10-BE-NEXT: xxspltib 0, 165659; P10-BE-NEXT: stxv 0, 0(3)660; P10-BE-NEXT: stfd 0, 16(3)661; P10-BE-NEXT: blr662;663; P8-LE-LABEL: memset2TailV1B8:664; P8-LE: # %bb.0: # %entry665; P8-LE-NEXT: addis 4, 2, .LCPI12_0@toc@ha666; P8-LE-NEXT: addi 4, 4, .LCPI12_0@toc@l667; P8-LE-NEXT: lxvd2x 0, 0, 4668; P8-LE-NEXT: stfd 0, 16(3)669; P8-LE-NEXT: stxvd2x 0, 0, 3670; P8-LE-NEXT: blr671;672; P9-LE-LABEL: memset2TailV1B8:673; P9-LE: # %bb.0: # %entry674; P9-LE-NEXT: xxspltib 0, 165675; P9-LE-NEXT: stxv 0, 0(3)676; P9-LE-NEXT: stfd 0, 16(3)677; P9-LE-NEXT: blr678;679; P10-LE-LABEL: memset2TailV1B8:680; P10-LE: # %bb.0: # %entry681; P10-LE-NEXT: xxspltib 0, 165682; P10-LE-NEXT: stxv 0, 0(3)683; P10-LE-NEXT: stfd 0, 16(3)684; P10-LE-NEXT: blr685entry:686 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 24, i1 false)687 ret void688}689 690define dso_local void @memset2TailV1B7(ptr nocapture noundef writeonly %p) local_unnamed_addr {691; P8-BE-LABEL: memset2TailV1B7:692; P8-BE: # %bb.0: # %entry693; P8-BE-NEXT: ld 4, L..C4(2) # %const.0694; P8-BE-NEXT: lxvw4x 0, 0, 4695; P8-BE-NEXT: stfd 0, 15(3)696; P8-BE-NEXT: stxvw4x 0, 0, 3697; P8-BE-NEXT: blr698;699; P9-BE-LABEL: memset2TailV1B7:700; P9-BE: # %bb.0: # %entry701; P9-BE-NEXT: xxspltib 0, 165702; P9-BE-NEXT: stfd 0, 15(3)703; P9-BE-NEXT: stxv 0, 0(3)704; P9-BE-NEXT: blr705;706; P10-BE-LABEL: memset2TailV1B7:707; P10-BE: # %bb.0: # %entry708; P10-BE-NEXT: xxspltib 0, 165709; P10-BE-NEXT: stfd 0, 15(3)710; P10-BE-NEXT: stxv 0, 0(3)711; P10-BE-NEXT: blr712;713; P8-LE-LABEL: memset2TailV1B7:714; P8-LE: # %bb.0: # %entry715; P8-LE-NEXT: addis 4, 2, .LCPI13_0@toc@ha716; P8-LE-NEXT: addi 4, 4, .LCPI13_0@toc@l717; P8-LE-NEXT: lxvd2x 0, 0, 4718; P8-LE-NEXT: stfd 0, 15(3)719; P8-LE-NEXT: stxvd2x 0, 0, 3720; P8-LE-NEXT: blr721;722; P9-LE-LABEL: memset2TailV1B7:723; P9-LE: # %bb.0: # %entry724; P9-LE-NEXT: xxspltib 0, 165725; P9-LE-NEXT: stfd 0, 15(3)726; P9-LE-NEXT: stxv 0, 0(3)727; P9-LE-NEXT: blr728;729; P10-LE-LABEL: memset2TailV1B7:730; P10-LE: # %bb.0: # %entry731; P10-LE-NEXT: xxspltib 0, 165732; P10-LE-NEXT: stfd 0, 15(3)733; P10-LE-NEXT: stxv 0, 0(3)734; P10-LE-NEXT: blr735entry:736 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 23, i1 false)737 ret void738}739 740define dso_local void @memset2TailV1B4(ptr nocapture noundef writeonly %p) local_unnamed_addr {741; P8-BE-LABEL: memset2TailV1B4:742; P8-BE: # %bb.0: # %entry743; P8-BE-NEXT: ld 4, L..C5(2) # %const.0744; P8-BE-NEXT: lxvw4x 0, 0, 4745; P8-BE-NEXT: li 4, 16746; P8-BE-NEXT: stfiwx 0, 3, 4747; P8-BE-NEXT: stxvw4x 0, 0, 3748; P8-BE-NEXT: blr749;750; P9-BE-LABEL: memset2TailV1B4:751; P9-BE: # %bb.0: # %entry752; P9-BE-NEXT: xxspltib 0, 165753; P9-BE-NEXT: li 4, 16754; P9-BE-NEXT: stfiwx 0, 3, 4755; P9-BE-NEXT: stxv 0, 0(3)756; P9-BE-NEXT: blr757;758; P10-BE-LABEL: memset2TailV1B4:759; P10-BE: # %bb.0: # %entry760; P10-BE-NEXT: xxspltib 0, 165761; P10-BE-NEXT: li 4, 16762; P10-BE-NEXT: stfiwx 0, 3, 4763; P10-BE-NEXT: stxv 0, 0(3)764; P10-BE-NEXT: blr765;766; P8-LE-LABEL: memset2TailV1B4:767; P8-LE: # %bb.0: # %entry768; P8-LE-NEXT: addis 4, 2, .LCPI14_0@toc@ha769; P8-LE-NEXT: addi 4, 4, .LCPI14_0@toc@l770; P8-LE-NEXT: lxvd2x 0, 0, 4771; P8-LE-NEXT: li 4, 16772; P8-LE-NEXT: stfiwx 0, 3, 4773; P8-LE-NEXT: stxvd2x 0, 0, 3774; P8-LE-NEXT: blr775;776; P9-LE-LABEL: memset2TailV1B4:777; P9-LE: # %bb.0: # %entry778; P9-LE-NEXT: xxspltib 0, 165779; P9-LE-NEXT: li 4, 16780; P9-LE-NEXT: stfiwx 0, 3, 4781; P9-LE-NEXT: stxv 0, 0(3)782; P9-LE-NEXT: blr783;784; P10-LE-LABEL: memset2TailV1B4:785; P10-LE: # %bb.0: # %entry786; P10-LE-NEXT: xxspltib 0, 165787; P10-LE-NEXT: li 4, 16788; P10-LE-NEXT: stfiwx 0, 3, 4789; P10-LE-NEXT: stxv 0, 0(3)790; P10-LE-NEXT: blr791entry:792 tail call void @llvm.memset.p0.i32(ptr %p, i8 165, i32 20, i1 false)793 ret void794}795 796define dso_local void @memset2TailV1B3(ptr nocapture noundef writeonly %p) local_unnamed_addr {797; P8-BE-LABEL: memset2TailV1B3:798; P8-BE: # %bb.0: # %entry799; P8-BE-NEXT: ld 4, L..C6(2) # %const.0800; P8-BE-NEXT: lxvw4x 0, 0, 4801; P8-BE-NEXT: li 4, 15802; P8-BE-NEXT: stfiwx 0, 3, 4803; P8-BE-NEXT: stxvw4x 0, 0, 3804; P8-BE-NEXT: blr805;806; P9-BE-LABEL: memset2TailV1B3:807; P9-BE: # %bb.0: # %entry808; P9-BE-NEXT: xxspltib 0, 165809; P9-BE-NEXT: li 4, 15810; P9-BE-NEXT: stfiwx 0, 3, 4811; P9-BE-NEXT: stxv 0, 0(3)812; P9-BE-NEXT: blr813;814; P10-BE-LABEL: memset2TailV1B3:815; P10-BE: # %bb.0: # %entry816; P10-BE-NEXT: xxspltib 0, 165817; P10-BE-NEXT: li 4, 15818; P10-BE-NEXT: stfiwx 0, 3, 4819; P10-BE-NEXT: stxv 0, 0(3)820; P10-BE-NEXT: blr821;822; P8-LE-LABEL: memset2TailV1B3:823; P8-LE: # %bb.0: # %entry824; P8-LE-NEXT: addis 4, 2, .LCPI15_0@toc@ha825; P8-LE-NEXT: addi 4, 4, .LCPI15_0@toc@l826; P8-LE-NEXT: lxvd2x 0, 0, 4827; P8-LE-NEXT: li 4, 15828; P8-LE-NEXT: stfiwx 0, 3, 4829; P8-LE-NEXT: stxvd2x 0, 0, 3830; P8-LE-NEXT: blr831;832; P9-LE-LABEL: memset2TailV1B3:833; P9-LE: # %bb.0: # %entry834; P9-LE-NEXT: xxspltib 0, 165835; P9-LE-NEXT: li 4, 15836; P9-LE-NEXT: stfiwx 0, 3, 4837; P9-LE-NEXT: stxv 0, 0(3)838; P9-LE-NEXT: blr839;840; P10-LE-LABEL: memset2TailV1B3:841; P10-LE: # %bb.0: # %entry842; P10-LE-NEXT: xxspltib 0, 165843; P10-LE-NEXT: li 4, 15844; P10-LE-NEXT: stfiwx 0, 3, 4845; P10-LE-NEXT: stxv 0, 0(3)846; P10-LE-NEXT: blr847entry:848 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 19, i1 false)849 ret void850}851 852define dso_local void @memset2TailV1B2(ptr nocapture noundef writeonly %p) local_unnamed_addr {853; P8-BE-LABEL: memset2TailV1B2:854; P8-BE: # %bb.0: # %entry855; P8-BE-NEXT: li 4, -23131856; P8-BE-NEXT: sth 4, 16(3)857; P8-BE-NEXT: ld 4, L..C7(2) # %const.0858; P8-BE-NEXT: lxvw4x 0, 0, 4859; P8-BE-NEXT: stxvw4x 0, 0, 3860; P8-BE-NEXT: blr861;862; P9-BE-LABEL: memset2TailV1B2:863; P9-BE: # %bb.0: # %entry864; P9-BE-NEXT: xxspltib 0, 165865; P9-BE-NEXT: li 4, -23131866; P9-BE-NEXT: sth 4, 16(3)867; P9-BE-NEXT: stxv 0, 0(3)868; P9-BE-NEXT: blr869;870; P10-BE-LABEL: memset2TailV1B2:871; P10-BE: # %bb.0: # %entry872; P10-BE-NEXT: xxspltib 0, 165873; P10-BE-NEXT: li 4, -23131874; P10-BE-NEXT: sth 4, 16(3)875; P10-BE-NEXT: stxv 0, 0(3)876; P10-BE-NEXT: blr877;878; P8-LE-LABEL: memset2TailV1B2:879; P8-LE: # %bb.0: # %entry880; P8-LE-NEXT: li 4, -23131881; P8-LE-NEXT: sth 4, 16(3)882; P8-LE-NEXT: addis 4, 2, .LCPI16_0@toc@ha883; P8-LE-NEXT: addi 4, 4, .LCPI16_0@toc@l884; P8-LE-NEXT: lxvd2x 0, 0, 4885; P8-LE-NEXT: stxvd2x 0, 0, 3886; P8-LE-NEXT: blr887;888; P9-LE-LABEL: memset2TailV1B2:889; P9-LE: # %bb.0: # %entry890; P9-LE-NEXT: xxspltib 0, 165891; P9-LE-NEXT: li 4, -23131892; P9-LE-NEXT: sth 4, 16(3)893; P9-LE-NEXT: stxv 0, 0(3)894; P9-LE-NEXT: blr895;896; P10-LE-LABEL: memset2TailV1B2:897; P10-LE: # %bb.0: # %entry898; P10-LE-NEXT: xxspltib 0, 165899; P10-LE-NEXT: li 4, -23131900; P10-LE-NEXT: sth 4, 16(3)901; P10-LE-NEXT: stxv 0, 0(3)902; P10-LE-NEXT: blr903entry:904 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 18, i1 false)905 ret void906}907 908define dso_local void @memset2TailV1B1(ptr nocapture noundef writeonly %p) local_unnamed_addr {909; P8-BE-LABEL: memset2TailV1B1:910; P8-BE: # %bb.0: # %entry911; P8-BE-NEXT: li 4, -91912; P8-BE-NEXT: stb 4, 16(3)913; P8-BE-NEXT: ld 4, L..C8(2) # %const.0914; P8-BE-NEXT: lxvw4x 0, 0, 4915; P8-BE-NEXT: stxvw4x 0, 0, 3916; P8-BE-NEXT: blr917;918; P9-BE-LABEL: memset2TailV1B1:919; P9-BE: # %bb.0: # %entry920; P9-BE-NEXT: xxspltib 0, 165921; P9-BE-NEXT: li 4, -91922; P9-BE-NEXT: stb 4, 16(3)923; P9-BE-NEXT: stxv 0, 0(3)924; P9-BE-NEXT: blr925;926; P10-BE-LABEL: memset2TailV1B1:927; P10-BE: # %bb.0: # %entry928; P10-BE-NEXT: xxspltib 0, 165929; P10-BE-NEXT: li 4, -91930; P10-BE-NEXT: stb 4, 16(3)931; P10-BE-NEXT: stxv 0, 0(3)932; P10-BE-NEXT: blr933;934; P8-LE-LABEL: memset2TailV1B1:935; P8-LE: # %bb.0: # %entry936; P8-LE-NEXT: li 4, -91937; P8-LE-NEXT: stb 4, 16(3)938; P8-LE-NEXT: addis 4, 2, .LCPI17_0@toc@ha939; P8-LE-NEXT: addi 4, 4, .LCPI17_0@toc@l940; P8-LE-NEXT: lxvd2x 0, 0, 4941; P8-LE-NEXT: stxvd2x 0, 0, 3942; P8-LE-NEXT: blr943;944; P9-LE-LABEL: memset2TailV1B1:945; P9-LE: # %bb.0: # %entry946; P9-LE-NEXT: xxspltib 0, 165947; P9-LE-NEXT: li 4, -91948; P9-LE-NEXT: stb 4, 16(3)949; P9-LE-NEXT: stxv 0, 0(3)950; P9-LE-NEXT: blr951;952; P10-LE-LABEL: memset2TailV1B1:953; P10-LE: # %bb.0: # %entry954; P10-LE-NEXT: xxspltib 0, 165955; P10-LE-NEXT: li 4, -91956; P10-LE-NEXT: stb 4, 16(3)957; P10-LE-NEXT: stxv 0, 0(3)958; P10-LE-NEXT: blr959entry:960 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 17, i1 false)961 ret void962}963 964define dso_local void @memsetTailV0B15(ptr nocapture noundef writeonly %p) local_unnamed_addr {965; P8-BE-LABEL: memsetTailV0B15:966; P8-BE: # %bb.0: # %entry967; P8-BE-NEXT: lis 4, 3855968; P8-BE-NEXT: li 5, 7969; P8-BE-NEXT: ori 4, 4, 3855970; P8-BE-NEXT: rldimi 4, 4, 32, 0971; P8-BE-NEXT: stdx 4, 3, 5972; P8-BE-NEXT: std 4, 0(3)973; P8-BE-NEXT: blr974;975; P9-BE-LABEL: memsetTailV0B15:976; P9-BE: # %bb.0: # %entry977; P9-BE-NEXT: lis 4, 3855978; P9-BE-NEXT: li 5, 7979; P9-BE-NEXT: ori 4, 4, 3855980; P9-BE-NEXT: rldimi 4, 4, 32, 0981; P9-BE-NEXT: stdx 4, 3, 5982; P9-BE-NEXT: std 4, 0(3)983; P9-BE-NEXT: blr984;985; P10-BE-LABEL: memsetTailV0B15:986; P10-BE: # %bb.0: # %entry987; P10-BE-NEXT: pli 4, 252645135988; P10-BE-NEXT: rldimi 4, 4, 32, 0989; P10-BE-NEXT: pstd 4, 7(3), 0990; P10-BE-NEXT: std 4, 0(3)991; P10-BE-NEXT: blr992;993; P8-LE-LABEL: memsetTailV0B15:994; P8-LE: # %bb.0: # %entry995; P8-LE-NEXT: lis 4, 3855996; P8-LE-NEXT: li 5, 7997; P8-LE-NEXT: ori 4, 4, 3855998; P8-LE-NEXT: rldimi 4, 4, 32, 0999; P8-LE-NEXT: stdx 4, 3, 51000; P8-LE-NEXT: std 4, 0(3)1001; P8-LE-NEXT: blr1002;1003; P9-LE-LABEL: memsetTailV0B15:1004; P9-LE: # %bb.0: # %entry1005; P9-LE-NEXT: lis 4, 38551006; P9-LE-NEXT: li 5, 71007; P9-LE-NEXT: ori 4, 4, 38551008; P9-LE-NEXT: rldimi 4, 4, 32, 01009; P9-LE-NEXT: stdx 4, 3, 51010; P9-LE-NEXT: std 4, 0(3)1011; P9-LE-NEXT: blr1012;1013; P10-LE-LABEL: memsetTailV0B15:1014; P10-LE: # %bb.0: # %entry1015; P10-LE-NEXT: pli 4, 2526451351016; P10-LE-NEXT: rldimi 4, 4, 32, 01017; P10-LE-NEXT: pstd 4, 7(3), 01018; P10-LE-NEXT: std 4, 0(3)1019; P10-LE-NEXT: blr1020entry:1021 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 15, i1 false)1022 ret void1023}1024 1025define dso_local void @memsetTailV0B12(ptr nocapture noundef writeonly %p) local_unnamed_addr {1026; P8-BE-LABEL: memsetTailV0B12:1027; P8-BE: # %bb.0: # %entry1028; P8-BE-NEXT: lis 4, 38551029; P8-BE-NEXT: ori 4, 4, 38551030; P8-BE-NEXT: rldimi 4, 4, 32, 01031; P8-BE-NEXT: stw 4, 8(3)1032; P8-BE-NEXT: std 4, 0(3)1033; P8-BE-NEXT: blr1034;1035; P9-BE-LABEL: memsetTailV0B12:1036; P9-BE: # %bb.0: # %entry1037; P9-BE-NEXT: lis 4, 38551038; P9-BE-NEXT: ori 4, 4, 38551039; P9-BE-NEXT: rldimi 4, 4, 32, 01040; P9-BE-NEXT: stw 4, 8(3)1041; P9-BE-NEXT: std 4, 0(3)1042; P9-BE-NEXT: blr1043;1044; P10-BE-LABEL: memsetTailV0B12:1045; P10-BE: # %bb.0: # %entry1046; P10-BE-NEXT: pli 4, 2526451351047; P10-BE-NEXT: rldimi 4, 4, 32, 01048; P10-BE-NEXT: stw 4, 8(3)1049; P10-BE-NEXT: std 4, 0(3)1050; P10-BE-NEXT: blr1051;1052; P8-LE-LABEL: memsetTailV0B12:1053; P8-LE: # %bb.0: # %entry1054; P8-LE-NEXT: lis 4, 38551055; P8-LE-NEXT: ori 4, 4, 38551056; P8-LE-NEXT: rldimi 4, 4, 32, 01057; P8-LE-NEXT: stw 4, 8(3)1058; P8-LE-NEXT: std 4, 0(3)1059; P8-LE-NEXT: blr1060;1061; P9-LE-LABEL: memsetTailV0B12:1062; P9-LE: # %bb.0: # %entry1063; P9-LE-NEXT: lis 4, 38551064; P9-LE-NEXT: ori 4, 4, 38551065; P9-LE-NEXT: rldimi 4, 4, 32, 01066; P9-LE-NEXT: stw 4, 8(3)1067; P9-LE-NEXT: std 4, 0(3)1068; P9-LE-NEXT: blr1069;1070; P10-LE-LABEL: memsetTailV0B12:1071; P10-LE: # %bb.0: # %entry1072; P10-LE-NEXT: pli 4, 2526451351073; P10-LE-NEXT: rldimi 4, 4, 32, 01074; P10-LE-NEXT: stw 4, 8(3)1075; P10-LE-NEXT: std 4, 0(3)1076; P10-LE-NEXT: blr1077entry:1078 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 12, i1 false)1079 ret void1080}1081 1082define dso_local void @memsetTailV0B9(ptr nocapture noundef writeonly %p) local_unnamed_addr {1083; P8-BE-LABEL: memsetTailV0B9:1084; P8-BE: # %bb.0: # %entry1085; P8-BE-NEXT: li 4, 151086; P8-BE-NEXT: stb 4, 8(3)1087; P8-BE-NEXT: lis 4, 38551088; P8-BE-NEXT: ori 4, 4, 38551089; P8-BE-NEXT: rldimi 4, 4, 32, 01090; P8-BE-NEXT: std 4, 0(3)1091; P8-BE-NEXT: blr1092;1093; P9-BE-LABEL: memsetTailV0B9:1094; P9-BE: # %bb.0: # %entry1095; P9-BE-NEXT: li 4, 151096; P9-BE-NEXT: stb 4, 8(3)1097; P9-BE-NEXT: lis 4, 38551098; P9-BE-NEXT: ori 4, 4, 38551099; P9-BE-NEXT: rldimi 4, 4, 32, 01100; P9-BE-NEXT: std 4, 0(3)1101; P9-BE-NEXT: blr1102;1103; P10-BE-LABEL: memsetTailV0B9:1104; P10-BE: # %bb.0: # %entry1105; P10-BE-NEXT: li 4, 151106; P10-BE-NEXT: stb 4, 8(3)1107; P10-BE-NEXT: pli 4, 2526451351108; P10-BE-NEXT: rldimi 4, 4, 32, 01109; P10-BE-NEXT: std 4, 0(3)1110; P10-BE-NEXT: blr1111;1112; P8-LE-LABEL: memsetTailV0B9:1113; P8-LE: # %bb.0: # %entry1114; P8-LE-NEXT: li 4, 151115; P8-LE-NEXT: stb 4, 8(3)1116; P8-LE-NEXT: lis 4, 38551117; P8-LE-NEXT: ori 4, 4, 38551118; P8-LE-NEXT: rldimi 4, 4, 32, 01119; P8-LE-NEXT: std 4, 0(3)1120; P8-LE-NEXT: blr1121;1122; P9-LE-LABEL: memsetTailV0B9:1123; P9-LE: # %bb.0: # %entry1124; P9-LE-NEXT: li 4, 151125; P9-LE-NEXT: stb 4, 8(3)1126; P9-LE-NEXT: lis 4, 38551127; P9-LE-NEXT: ori 4, 4, 38551128; P9-LE-NEXT: rldimi 4, 4, 32, 01129; P9-LE-NEXT: std 4, 0(3)1130; P9-LE-NEXT: blr1131;1132; P10-LE-LABEL: memsetTailV0B9:1133; P10-LE: # %bb.0: # %entry1134; P10-LE-NEXT: li 4, 151135; P10-LE-NEXT: stb 4, 8(3)1136; P10-LE-NEXT: pli 4, 2526451351137; P10-LE-NEXT: rldimi 4, 4, 32, 01138; P10-LE-NEXT: std 4, 0(3)1139; P10-LE-NEXT: blr1140entry:1141 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 9, i1 false)1142 ret void1143}1144 1145define dso_local void @memsetTailV0B8(ptr nocapture noundef writeonly %p) local_unnamed_addr {1146; P8-BE-LABEL: memsetTailV0B8:1147; P8-BE: # %bb.0: # %entry1148; P8-BE-NEXT: lis 4, 38551149; P8-BE-NEXT: ori 4, 4, 38551150; P8-BE-NEXT: rldimi 4, 4, 32, 01151; P8-BE-NEXT: std 4, 0(3)1152; P8-BE-NEXT: blr1153;1154; P9-BE-LABEL: memsetTailV0B8:1155; P9-BE: # %bb.0: # %entry1156; P9-BE-NEXT: lis 4, 38551157; P9-BE-NEXT: ori 4, 4, 38551158; P9-BE-NEXT: rldimi 4, 4, 32, 01159; P9-BE-NEXT: std 4, 0(3)1160; P9-BE-NEXT: blr1161;1162; P10-BE-LABEL: memsetTailV0B8:1163; P10-BE: # %bb.0: # %entry1164; P10-BE-NEXT: pli 4, 2526451351165; P10-BE-NEXT: rldimi 4, 4, 32, 01166; P10-BE-NEXT: std 4, 0(3)1167; P10-BE-NEXT: blr1168;1169; P8-LE-LABEL: memsetTailV0B8:1170; P8-LE: # %bb.0: # %entry1171; P8-LE-NEXT: lis 4, 38551172; P8-LE-NEXT: ori 4, 4, 38551173; P8-LE-NEXT: rldimi 4, 4, 32, 01174; P8-LE-NEXT: std 4, 0(3)1175; P8-LE-NEXT: blr1176;1177; P9-LE-LABEL: memsetTailV0B8:1178; P9-LE: # %bb.0: # %entry1179; P9-LE-NEXT: lis 4, 38551180; P9-LE-NEXT: ori 4, 4, 38551181; P9-LE-NEXT: rldimi 4, 4, 32, 01182; P9-LE-NEXT: std 4, 0(3)1183; P9-LE-NEXT: blr1184;1185; P10-LE-LABEL: memsetTailV0B8:1186; P10-LE: # %bb.0: # %entry1187; P10-LE-NEXT: pli 4, 2526451351188; P10-LE-NEXT: rldimi 4, 4, 32, 01189; P10-LE-NEXT: std 4, 0(3)1190; P10-LE-NEXT: blr1191entry:1192 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 8, i1 false)1193 ret void1194}1195 1196define dso_local void @memsetTailV0B7(ptr nocapture noundef writeonly %p) local_unnamed_addr {1197; P8-BE-LABEL: memsetTailV0B7:1198; P8-BE: # %bb.0: # %entry1199; P8-BE-NEXT: lis 4, 38551200; P8-BE-NEXT: ori 4, 4, 38551201; P8-BE-NEXT: stw 4, 3(3)1202; P8-BE-NEXT: stw 4, 0(3)1203; P8-BE-NEXT: blr1204;1205; P9-BE-LABEL: memsetTailV0B7:1206; P9-BE: # %bb.0: # %entry1207; P9-BE-NEXT: lis 4, 38551208; P9-BE-NEXT: ori 4, 4, 38551209; P9-BE-NEXT: stw 4, 3(3)1210; P9-BE-NEXT: stw 4, 0(3)1211; P9-BE-NEXT: blr1212;1213; P10-BE-LABEL: memsetTailV0B7:1214; P10-BE: # %bb.0: # %entry1215; P10-BE-NEXT: pli 4, 2526451351216; P10-BE-NEXT: stw 4, 3(3)1217; P10-BE-NEXT: stw 4, 0(3)1218; P10-BE-NEXT: blr1219;1220; P8-LE-LABEL: memsetTailV0B7:1221; P8-LE: # %bb.0: # %entry1222; P8-LE-NEXT: lis 4, 38551223; P8-LE-NEXT: ori 4, 4, 38551224; P8-LE-NEXT: stw 4, 3(3)1225; P8-LE-NEXT: stw 4, 0(3)1226; P8-LE-NEXT: blr1227;1228; P9-LE-LABEL: memsetTailV0B7:1229; P9-LE: # %bb.0: # %entry1230; P9-LE-NEXT: lis 4, 38551231; P9-LE-NEXT: ori 4, 4, 38551232; P9-LE-NEXT: stw 4, 3(3)1233; P9-LE-NEXT: stw 4, 0(3)1234; P9-LE-NEXT: blr1235;1236; P10-LE-LABEL: memsetTailV0B7:1237; P10-LE: # %bb.0: # %entry1238; P10-LE-NEXT: pli 4, 2526451351239; P10-LE-NEXT: stw 4, 3(3)1240; P10-LE-NEXT: stw 4, 0(3)1241; P10-LE-NEXT: blr1242entry:1243 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 7, i1 false)1244 ret void1245}1246 1247define dso_local void @memsetTailV0B5(ptr nocapture noundef writeonly %p) local_unnamed_addr {1248; P8-BE-LABEL: memsetTailV0B5:1249; P8-BE: # %bb.0: # %entry1250; P8-BE-NEXT: li 4, 151251; P8-BE-NEXT: stb 4, 4(3)1252; P8-BE-NEXT: lis 4, 38551253; P8-BE-NEXT: ori 4, 4, 38551254; P8-BE-NEXT: stw 4, 0(3)1255; P8-BE-NEXT: blr1256;1257; P9-BE-LABEL: memsetTailV0B5:1258; P9-BE: # %bb.0: # %entry1259; P9-BE-NEXT: li 4, 151260; P9-BE-NEXT: stb 4, 4(3)1261; P9-BE-NEXT: lis 4, 38551262; P9-BE-NEXT: ori 4, 4, 38551263; P9-BE-NEXT: stw 4, 0(3)1264; P9-BE-NEXT: blr1265;1266; P10-BE-LABEL: memsetTailV0B5:1267; P10-BE: # %bb.0: # %entry1268; P10-BE-NEXT: li 4, 151269; P10-BE-NEXT: stb 4, 4(3)1270; P10-BE-NEXT: pli 4, 2526451351271; P10-BE-NEXT: stw 4, 0(3)1272; P10-BE-NEXT: blr1273;1274; P8-LE-LABEL: memsetTailV0B5:1275; P8-LE: # %bb.0: # %entry1276; P8-LE-NEXT: li 4, 151277; P8-LE-NEXT: stb 4, 4(3)1278; P8-LE-NEXT: lis 4, 38551279; P8-LE-NEXT: ori 4, 4, 38551280; P8-LE-NEXT: stw 4, 0(3)1281; P8-LE-NEXT: blr1282;1283; P9-LE-LABEL: memsetTailV0B5:1284; P9-LE: # %bb.0: # %entry1285; P9-LE-NEXT: li 4, 151286; P9-LE-NEXT: stb 4, 4(3)1287; P9-LE-NEXT: lis 4, 38551288; P9-LE-NEXT: ori 4, 4, 38551289; P9-LE-NEXT: stw 4, 0(3)1290; P9-LE-NEXT: blr1291;1292; P10-LE-LABEL: memsetTailV0B5:1293; P10-LE: # %bb.0: # %entry1294; P10-LE-NEXT: li 4, 151295; P10-LE-NEXT: stb 4, 4(3)1296; P10-LE-NEXT: pli 4, 2526451351297; P10-LE-NEXT: stw 4, 0(3)1298; P10-LE-NEXT: blr1299entry:1300 tail call void @llvm.memset.p0.i32(ptr %p, i8 15, i32 5, i1 false)1301 ret void1302}1303 1304define dso_local void @memsetTailV0B4(ptr nocapture noundef writeonly %p) local_unnamed_addr {1305; P8-BE-LABEL: memsetTailV0B4:1306; P8-BE: # %bb.0: # %entry1307; P8-BE-NEXT: lis 4, 38551308; P8-BE-NEXT: ori 4, 4, 38551309; P8-BE-NEXT: stw 4, 0(3)1310; P8-BE-NEXT: blr1311;1312; P9-BE-LABEL: memsetTailV0B4:1313; P9-BE: # %bb.0: # %entry1314; P9-BE-NEXT: lis 4, 38551315; P9-BE-NEXT: ori 4, 4, 38551316; P9-BE-NEXT: stw 4, 0(3)1317; P9-BE-NEXT: blr1318;1319; P10-BE-LABEL: memsetTailV0B4:1320; P10-BE: # %bb.0: # %entry1321; P10-BE-NEXT: pli 4, 2526451351322; P10-BE-NEXT: stw 4, 0(3)1323; P10-BE-NEXT: blr1324;1325; P8-LE-LABEL: memsetTailV0B4:1326; P8-LE: # %bb.0: # %entry1327; P8-LE-NEXT: lis 4, 38551328; P8-LE-NEXT: ori 4, 4, 38551329; P8-LE-NEXT: stw 4, 0(3)1330; P8-LE-NEXT: blr1331;1332; P9-LE-LABEL: memsetTailV0B4:1333; P9-LE: # %bb.0: # %entry1334; P9-LE-NEXT: lis 4, 38551335; P9-LE-NEXT: ori 4, 4, 38551336; P9-LE-NEXT: stw 4, 0(3)1337; P9-LE-NEXT: blr1338;1339; P10-LE-LABEL: memsetTailV0B4:1340; P10-LE: # %bb.0: # %entry1341; P10-LE-NEXT: pli 4, 2526451351342; P10-LE-NEXT: stw 4, 0(3)1343; P10-LE-NEXT: blr1344entry:1345 tail call void @llvm.memset.p0.i32(ptr %p, i8 15, i32 4, i1 false)1346 ret void1347}1348 1349define dso_local void @memsetTailV0B1(ptr nocapture noundef writeonly %p) local_unnamed_addr {1350; P8-BE-LABEL: memsetTailV0B1:1351; P8-BE: # %bb.0: # %entry1352; P8-BE-NEXT: li 4, -911353; P8-BE-NEXT: stb 4, 0(3)1354; P8-BE-NEXT: blr1355;1356; P9-BE-LABEL: memsetTailV0B1:1357; P9-BE: # %bb.0: # %entry1358; P9-BE-NEXT: li 4, -911359; P9-BE-NEXT: stb 4, 0(3)1360; P9-BE-NEXT: blr1361;1362; P10-BE-LABEL: memsetTailV0B1:1363; P10-BE: # %bb.0: # %entry1364; P10-BE-NEXT: li 4, -911365; P10-BE-NEXT: stb 4, 0(3)1366; P10-BE-NEXT: blr1367;1368; P8-LE-LABEL: memsetTailV0B1:1369; P8-LE: # %bb.0: # %entry1370; P8-LE-NEXT: li 4, -911371; P8-LE-NEXT: stb 4, 0(3)1372; P8-LE-NEXT: blr1373;1374; P9-LE-LABEL: memsetTailV0B1:1375; P9-LE: # %bb.0: # %entry1376; P9-LE-NEXT: li 4, -911377; P9-LE-NEXT: stb 4, 0(3)1378; P9-LE-NEXT: blr1379;1380; P10-LE-LABEL: memsetTailV0B1:1381; P10-LE: # %bb.0: # %entry1382; P10-LE-NEXT: li 4, -911383; P10-LE-NEXT: stb 4, 0(3)1384; P10-LE-NEXT: blr1385entry:1386 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 1, i1 false)1387 ret void1388}1389 1390declare void @llvm.memset.p0.i32(ptr nocapture writeonly, i8, i32, i1 immarg)1391declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg)1392