1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -verify-machineinstrs -mcpu=pwr8 \ 3; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P8-BE 4; RUN: llc -verify-machineinstrs -mcpu=pwr9 \ 5; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P9-BE 6; RUN: llc -verify-machineinstrs -mcpu=pwr10 \ 7; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P10-BE 8; RUN: llc -verify-machineinstrs -mcpu=pwr8 \ 9; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P8-LE 10; RUN: llc -verify-machineinstrs -mcpu=pwr9 \ 11; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P9-LE 12; RUN: llc -verify-machineinstrs -mcpu=pwr10 \ 13; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P10-LE 14 15define dso_local void @memsetTailV1B15(ptr nocapture noundef writeonly %p) local_unnamed_addr { 16; P8-BE-LABEL: memsetTailV1B15: 17; P8-BE: # %bb.0: # %entry 18; P8-BE-NEXT: vspltisb 2, 15 19; P8-BE-NEXT: li 4, 15 20; P8-BE-NEXT: stxvw4x 34, 3, 4 21; P8-BE-NEXT: stxvw4x 34, 0, 3 22; P8-BE-NEXT: blr 23; 24; P9-BE-LABEL: memsetTailV1B15: 25; P9-BE: # %bb.0: # %entry 26; P9-BE-NEXT: xxspltib 0, 15 27; P9-BE-NEXT: li 4, 15 28; P9-BE-NEXT: stxvx 0, 3, 4 29; P9-BE-NEXT: stxv 0, 0(3) 30; P9-BE-NEXT: blr 31; 32; P10-BE-LABEL: memsetTailV1B15: 33; P10-BE: # %bb.0: # %entry 34; P10-BE-NEXT: xxspltib 0, 15 35; P10-BE-NEXT: pstxv 0, 15(3), 0 36; P10-BE-NEXT: stxv 0, 0(3) 37; P10-BE-NEXT: blr 38; 39; P8-LE-LABEL: memsetTailV1B15: 40; P8-LE: # %bb.0: # %entry 41; P8-LE-NEXT: vspltisb 2, 15 42; P8-LE-NEXT: li 4, 15 43; P8-LE-NEXT: stxvd2x 34, 3, 4 44; P8-LE-NEXT: stxvd2x 34, 0, 3 45; P8-LE-NEXT: blr 46; 47; P9-LE-LABEL: memsetTailV1B15: 48; P9-LE: # %bb.0: # %entry 49; P9-LE-NEXT: xxspltib 0, 15 50; P9-LE-NEXT: li 4, 15 51; P9-LE-NEXT: stxvx 0, 3, 4 52; P9-LE-NEXT: stxv 0, 0(3) 53; P9-LE-NEXT: blr 54; 55; P10-LE-LABEL: memsetTailV1B15: 56; P10-LE: # %bb.0: # %entry 57; P10-LE-NEXT: xxspltib 0, 15 58; P10-LE-NEXT: pstxv 0, 15(3), 0 59; P10-LE-NEXT: stxv 0, 0(3) 60; P10-LE-NEXT: blr 61entry: 62 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 31, i1 false) 63 ret void 64} 65 66define dso_local void @memsetTailV1B12(ptr nocapture noundef writeonly %p) local_unnamed_addr { 67; P8-BE-LABEL: memsetTailV1B12: 68; P8-BE: # %bb.0: # %entry 69; P8-BE-NEXT: vspltisb 2, 15 70; P8-BE-NEXT: li 4, 12 71; P8-BE-NEXT: stxvw4x 34, 3, 4 72; P8-BE-NEXT: stxvw4x 34, 0, 3 73; P8-BE-NEXT: blr 74; 75; P9-BE-LABEL: memsetTailV1B12: 76; P9-BE: # %bb.0: # %entry 77; P9-BE-NEXT: xxspltib 0, 15 78; P9-BE-NEXT: li 4, 12 79; P9-BE-NEXT: stxvx 0, 3, 4 80; P9-BE-NEXT: stxv 0, 0(3) 81; P9-BE-NEXT: blr 82; 83; P10-BE-LABEL: memsetTailV1B12: 84; P10-BE: # %bb.0: # %entry 85; P10-BE-NEXT: xxspltib 0, 15 86; P10-BE-NEXT: pstxv 0, 12(3), 0 87; P10-BE-NEXT: stxv 0, 0(3) 88; P10-BE-NEXT: blr 89; 90; P8-LE-LABEL: memsetTailV1B12: 91; P8-LE: # %bb.0: # %entry 92; P8-LE-NEXT: vspltisb 2, 15 93; P8-LE-NEXT: li 4, 12 94; P8-LE-NEXT: stxvd2x 34, 3, 4 95; P8-LE-NEXT: stxvd2x 34, 0, 3 96; P8-LE-NEXT: blr 97; 98; P9-LE-LABEL: memsetTailV1B12: 99; P9-LE: # %bb.0: # %entry 100; P9-LE-NEXT: xxspltib 0, 15 101; P9-LE-NEXT: li 4, 12 102; P9-LE-NEXT: stxvx 0, 3, 4 103; P9-LE-NEXT: stxv 0, 0(3) 104; P9-LE-NEXT: blr 105; 106; P10-LE-LABEL: memsetTailV1B12: 107; P10-LE: # %bb.0: # %entry 108; P10-LE-NEXT: xxspltib 0, 15 109; P10-LE-NEXT: pstxv 0, 12(3), 0 110; P10-LE-NEXT: stxv 0, 0(3) 111; P10-LE-NEXT: blr 112entry: 113 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 28, i1 false) 114 ret void 115} 116 117define dso_local void @memsetTailV1B9(ptr nocapture noundef writeonly %p) local_unnamed_addr { 118; P8-BE-LABEL: memsetTailV1B9: 119; P8-BE: # %bb.0: # %entry 120; P8-BE-NEXT: vspltisb 2, 15 121; P8-BE-NEXT: li 4, 9 122; P8-BE-NEXT: stxvw4x 34, 3, 4 123; P8-BE-NEXT: stxvw4x 34, 0, 3 124; P8-BE-NEXT: blr 125; 126; P9-BE-LABEL: memsetTailV1B9: 127; P9-BE: # %bb.0: # %entry 128; P9-BE-NEXT: xxspltib 0, 15 129; P9-BE-NEXT: li 4, 9 130; P9-BE-NEXT: stxvx 0, 3, 4 131; P9-BE-NEXT: stxv 0, 0(3) 132; P9-BE-NEXT: blr 133; 134; P10-BE-LABEL: memsetTailV1B9: 135; P10-BE: # %bb.0: # %entry 136; P10-BE-NEXT: xxspltib 0, 15 137; P10-BE-NEXT: pstxv 0, 9(3), 0 138; P10-BE-NEXT: stxv 0, 0(3) 139; P10-BE-NEXT: blr 140; 141; P8-LE-LABEL: memsetTailV1B9: 142; P8-LE: # %bb.0: # %entry 143; P8-LE-NEXT: vspltisb 2, 15 144; P8-LE-NEXT: li 4, 9 145; P8-LE-NEXT: stxvd2x 34, 3, 4 146; P8-LE-NEXT: stxvd2x 34, 0, 3 147; P8-LE-NEXT: blr 148; 149; P9-LE-LABEL: memsetTailV1B9: 150; P9-LE: # %bb.0: # %entry 151; P9-LE-NEXT: xxspltib 0, 15 152; P9-LE-NEXT: li 4, 9 153; P9-LE-NEXT: stxvx 0, 3, 4 154; P9-LE-NEXT: stxv 0, 0(3) 155; P9-LE-NEXT: blr 156; 157; P10-LE-LABEL: memsetTailV1B9: 158; P10-LE: # %bb.0: # %entry 159; P10-LE-NEXT: xxspltib 0, 15 160; P10-LE-NEXT: pstxv 0, 9(3), 0 161; P10-LE-NEXT: stxv 0, 0(3) 162; P10-LE-NEXT: blr 163entry: 164 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 25, i1 false) 165 ret void 166} 167 168define dso_local void @memsetTailV1B8(ptr nocapture noundef writeonly %p) local_unnamed_addr { 169; P8-BE-LABEL: memsetTailV1B8: 170; P8-BE: # %bb.0: # %entry 171; P8-BE-NEXT: vspltisb 2, 15 172; P8-BE-NEXT: li 4, 16 173; P8-BE-NEXT: stxsdx 34, 3, 4 174; P8-BE-NEXT: stxvw4x 34, 0, 3 175; P8-BE-NEXT: blr 176; 177; P9-BE-LABEL: memsetTailV1B8: 178; P9-BE: # %bb.0: # %entry 179; P9-BE-NEXT: xxspltib 0, 15 180; P9-BE-NEXT: stxv 0, 0(3) 181; P9-BE-NEXT: stfd 0, 16(3) 182; P9-BE-NEXT: blr 183; 184; P10-BE-LABEL: memsetTailV1B8: 185; P10-BE: # %bb.0: # %entry 186; P10-BE-NEXT: xxspltib 0, 15 187; P10-BE-NEXT: stxv 0, 0(3) 188; P10-BE-NEXT: stfd 0, 16(3) 189; P10-BE-NEXT: blr 190; 191; P8-LE-LABEL: memsetTailV1B8: 192; P8-LE: # %bb.0: # %entry 193; P8-LE-NEXT: vspltisb 2, 15 194; P8-LE-NEXT: li 4, 16 195; P8-LE-NEXT: stxsdx 34, 3, 4 196; P8-LE-NEXT: stxvd2x 34, 0, 3 197; P8-LE-NEXT: blr 198; 199; P9-LE-LABEL: memsetTailV1B8: 200; P9-LE: # %bb.0: # %entry 201; P9-LE-NEXT: xxspltib 0, 15 202; P9-LE-NEXT: stxv 0, 0(3) 203; P9-LE-NEXT: stfd 0, 16(3) 204; P9-LE-NEXT: blr 205; 206; P10-LE-LABEL: memsetTailV1B8: 207; P10-LE: # %bb.0: # %entry 208; P10-LE-NEXT: xxspltib 0, 15 209; P10-LE-NEXT: stxv 0, 0(3) 210; P10-LE-NEXT: stfd 0, 16(3) 211; P10-LE-NEXT: blr 212entry: 213 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 24, i1 false) 214 ret void 215} 216 217define dso_local void @memsetTailV1B7(ptr nocapture noundef writeonly %p) local_unnamed_addr { 218; P8-BE-LABEL: memsetTailV1B7: 219; P8-BE: # %bb.0: # %entry 220; P8-BE-NEXT: vspltisb 2, 15 221; P8-BE-NEXT: li 4, 15 222; P8-BE-NEXT: stxsdx 34, 3, 4 223; P8-BE-NEXT: stxvw4x 34, 0, 3 224; P8-BE-NEXT: blr 225; 226; P9-BE-LABEL: memsetTailV1B7: 227; P9-BE: # %bb.0: # %entry 228; P9-BE-NEXT: xxspltib 0, 15 229; P9-BE-NEXT: stfd 0, 15(3) 230; P9-BE-NEXT: stxv 0, 0(3) 231; P9-BE-NEXT: blr 232; 233; P10-BE-LABEL: memsetTailV1B7: 234; P10-BE: # %bb.0: # %entry 235; P10-BE-NEXT: xxspltib 0, 15 236; P10-BE-NEXT: stfd 0, 15(3) 237; P10-BE-NEXT: stxv 0, 0(3) 238; P10-BE-NEXT: blr 239; 240; P8-LE-LABEL: memsetTailV1B7: 241; P8-LE: # %bb.0: # %entry 242; P8-LE-NEXT: vspltisb 2, 15 243; P8-LE-NEXT: li 4, 15 244; P8-LE-NEXT: stxsdx 34, 3, 4 245; P8-LE-NEXT: stxvd2x 34, 0, 3 246; P8-LE-NEXT: blr 247; 248; P9-LE-LABEL: memsetTailV1B7: 249; P9-LE: # %bb.0: # %entry 250; P9-LE-NEXT: xxspltib 0, 15 251; P9-LE-NEXT: stfd 0, 15(3) 252; P9-LE-NEXT: stxv 0, 0(3) 253; P9-LE-NEXT: blr 254; 255; P10-LE-LABEL: memsetTailV1B7: 256; P10-LE: # %bb.0: # %entry 257; P10-LE-NEXT: xxspltib 0, 15 258; P10-LE-NEXT: stfd 0, 15(3) 259; P10-LE-NEXT: stxv 0, 0(3) 260; P10-LE-NEXT: blr 261entry: 262 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 23, i1 false) 263 ret void 264} 265 266define dso_local void @memsetTailV1B4(ptr nocapture noundef writeonly %p) local_unnamed_addr { 267; P8-BE-LABEL: memsetTailV1B4: 268; P8-BE: # %bb.0: # %entry 269; P8-BE-NEXT: vspltisb 2, 15 270; P8-BE-NEXT: li 4, 16 271; P8-BE-NEXT: stxsiwx 34, 3, 4 272; P8-BE-NEXT: stxvw4x 34, 0, 3 273; P8-BE-NEXT: blr 274; 275; P9-BE-LABEL: memsetTailV1B4: 276; P9-BE: # %bb.0: # %entry 277; P9-BE-NEXT: xxspltib 0, 15 278; P9-BE-NEXT: li 4, 16 279; P9-BE-NEXT: stfiwx 0, 3, 4 280; P9-BE-NEXT: stxv 0, 0(3) 281; P9-BE-NEXT: blr 282; 283; P10-BE-LABEL: memsetTailV1B4: 284; P10-BE: # %bb.0: # %entry 285; P10-BE-NEXT: xxspltib 0, 15 286; P10-BE-NEXT: li 4, 16 287; P10-BE-NEXT: stfiwx 0, 3, 4 288; P10-BE-NEXT: stxv 0, 0(3) 289; P10-BE-NEXT: blr 290; 291; P8-LE-LABEL: memsetTailV1B4: 292; P8-LE: # %bb.0: # %entry 293; P8-LE-NEXT: vspltisb 2, 15 294; P8-LE-NEXT: li 4, 16 295; P8-LE-NEXT: stxsiwx 34, 3, 4 296; P8-LE-NEXT: stxvd2x 34, 0, 3 297; P8-LE-NEXT: blr 298; 299; P9-LE-LABEL: memsetTailV1B4: 300; P9-LE: # %bb.0: # %entry 301; P9-LE-NEXT: xxspltib 0, 15 302; P9-LE-NEXT: li 4, 16 303; P9-LE-NEXT: stfiwx 0, 3, 4 304; P9-LE-NEXT: stxv 0, 0(3) 305; P9-LE-NEXT: blr 306; 307; P10-LE-LABEL: memsetTailV1B4: 308; P10-LE: # %bb.0: # %entry 309; P10-LE-NEXT: xxspltib 0, 15 310; P10-LE-NEXT: li 4, 16 311; P10-LE-NEXT: stfiwx 0, 3, 4 312; P10-LE-NEXT: stxv 0, 0(3) 313; P10-LE-NEXT: blr 314entry: 315 tail call void @llvm.memset.p0.i32(ptr %p, i8 15, i32 20, i1 false) 316 ret void 317} 318 319define dso_local void @memsetTailV1B3(ptr nocapture noundef writeonly %p) local_unnamed_addr { 320; P8-BE-LABEL: memsetTailV1B3: 321; P8-BE: # %bb.0: # %entry 322; P8-BE-NEXT: vspltisb 2, 15 323; P8-BE-NEXT: li 4, 15 324; P8-BE-NEXT: stxsiwx 34, 3, 4 325; P8-BE-NEXT: stxvw4x 34, 0, 3 326; P8-BE-NEXT: blr 327; 328; P9-BE-LABEL: memsetTailV1B3: 329; P9-BE: # %bb.0: # %entry 330; P9-BE-NEXT: xxspltib 0, 15 331; P9-BE-NEXT: li 4, 15 332; P9-BE-NEXT: stfiwx 0, 3, 4 333; P9-BE-NEXT: stxv 0, 0(3) 334; P9-BE-NEXT: blr 335; 336; P10-BE-LABEL: memsetTailV1B3: 337; P10-BE: # %bb.0: # %entry 338; P10-BE-NEXT: xxspltib 0, 15 339; P10-BE-NEXT: li 4, 15 340; P10-BE-NEXT: stfiwx 0, 3, 4 341; P10-BE-NEXT: stxv 0, 0(3) 342; P10-BE-NEXT: blr 343; 344; P8-LE-LABEL: memsetTailV1B3: 345; P8-LE: # %bb.0: # %entry 346; P8-LE-NEXT: vspltisb 2, 15 347; P8-LE-NEXT: li 4, 15 348; P8-LE-NEXT: stxsiwx 34, 3, 4 349; P8-LE-NEXT: stxvd2x 34, 0, 3 350; P8-LE-NEXT: blr 351; 352; P9-LE-LABEL: memsetTailV1B3: 353; P9-LE: # %bb.0: # %entry 354; P9-LE-NEXT: xxspltib 0, 15 355; P9-LE-NEXT: li 4, 15 356; P9-LE-NEXT: stfiwx 0, 3, 4 357; P9-LE-NEXT: stxv 0, 0(3) 358; P9-LE-NEXT: blr 359; 360; P10-LE-LABEL: memsetTailV1B3: 361; P10-LE: # %bb.0: # %entry 362; P10-LE-NEXT: xxspltib 0, 15 363; P10-LE-NEXT: li 4, 15 364; P10-LE-NEXT: stfiwx 0, 3, 4 365; P10-LE-NEXT: stxv 0, 0(3) 366; P10-LE-NEXT: blr 367entry: 368 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 19, i1 false) 369 ret void 370} 371 372define dso_local void @memsetTailV1B2(ptr nocapture noundef writeonly %p) local_unnamed_addr { 373; P8-BE-LABEL: memsetTailV1B2: 374; P8-BE: # %bb.0: # %entry 375; P8-BE-NEXT: vspltisb 2, 15 376; P8-BE-NEXT: li 4, 3855 377; P8-BE-NEXT: sth 4, 16(3) 378; P8-BE-NEXT: stxvw4x 34, 0, 3 379; P8-BE-NEXT: blr 380; 381; P9-BE-LABEL: memsetTailV1B2: 382; P9-BE: # %bb.0: # %entry 383; P9-BE-NEXT: li 4, 3855 384; P9-BE-NEXT: sth 4, 16(3) 385; P9-BE-NEXT: xxspltib 0, 15 386; P9-BE-NEXT: stxv 0, 0(3) 387; P9-BE-NEXT: blr 388; 389; P10-BE-LABEL: memsetTailV1B2: 390; P10-BE: # %bb.0: # %entry 391; P10-BE-NEXT: li 4, 3855 392; P10-BE-NEXT: sth 4, 16(3) 393; P10-BE-NEXT: xxspltib 0, 15 394; P10-BE-NEXT: stxv 0, 0(3) 395; P10-BE-NEXT: blr 396; 397; P8-LE-LABEL: memsetTailV1B2: 398; P8-LE: # %bb.0: # %entry 399; P8-LE-NEXT: vspltisb 2, 15 400; P8-LE-NEXT: li 4, 3855 401; P8-LE-NEXT: sth 4, 16(3) 402; P8-LE-NEXT: stxvd2x 34, 0, 3 403; P8-LE-NEXT: blr 404; 405; P9-LE-LABEL: memsetTailV1B2: 406; P9-LE: # %bb.0: # %entry 407; P9-LE-NEXT: li 4, 3855 408; P9-LE-NEXT: sth 4, 16(3) 409; P9-LE-NEXT: xxspltib 0, 15 410; P9-LE-NEXT: stxv 0, 0(3) 411; P9-LE-NEXT: blr 412; 413; P10-LE-LABEL: memsetTailV1B2: 414; P10-LE: # %bb.0: # %entry 415; P10-LE-NEXT: li 4, 3855 416; P10-LE-NEXT: sth 4, 16(3) 417; P10-LE-NEXT: xxspltib 0, 15 418; P10-LE-NEXT: stxv 0, 0(3) 419; P10-LE-NEXT: blr 420entry: 421 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 18, i1 false) 422 ret void 423} 424 425define dso_local void @memsetTailV1B1(ptr nocapture noundef writeonly %p) local_unnamed_addr { 426; P8-BE-LABEL: memsetTailV1B1: 427; P8-BE: # %bb.0: # %entry 428; P8-BE-NEXT: vspltisb 2, 15 429; P8-BE-NEXT: li 4, 15 430; P8-BE-NEXT: stb 4, 16(3) 431; P8-BE-NEXT: stxvw4x 34, 0, 3 432; P8-BE-NEXT: blr 433; 434; P9-BE-LABEL: memsetTailV1B1: 435; P9-BE: # %bb.0: # %entry 436; P9-BE-NEXT: li 4, 15 437; P9-BE-NEXT: stb 4, 16(3) 438; P9-BE-NEXT: xxspltib 0, 15 439; P9-BE-NEXT: stxv 0, 0(3) 440; P9-BE-NEXT: blr 441; 442; P10-BE-LABEL: memsetTailV1B1: 443; P10-BE: # %bb.0: # %entry 444; P10-BE-NEXT: li 4, 15 445; P10-BE-NEXT: stb 4, 16(3) 446; P10-BE-NEXT: xxspltib 0, 15 447; P10-BE-NEXT: stxv 0, 0(3) 448; P10-BE-NEXT: blr 449; 450; P8-LE-LABEL: memsetTailV1B1: 451; P8-LE: # %bb.0: # %entry 452; P8-LE-NEXT: vspltisb 2, 15 453; P8-LE-NEXT: li 4, 15 454; P8-LE-NEXT: stb 4, 16(3) 455; P8-LE-NEXT: stxvd2x 34, 0, 3 456; P8-LE-NEXT: blr 457; 458; P9-LE-LABEL: memsetTailV1B1: 459; P9-LE: # %bb.0: # %entry 460; P9-LE-NEXT: li 4, 15 461; P9-LE-NEXT: stb 4, 16(3) 462; P9-LE-NEXT: xxspltib 0, 15 463; P9-LE-NEXT: stxv 0, 0(3) 464; P9-LE-NEXT: blr 465; 466; P10-LE-LABEL: memsetTailV1B1: 467; P10-LE: # %bb.0: # %entry 468; P10-LE-NEXT: li 4, 15 469; P10-LE-NEXT: stb 4, 16(3) 470; P10-LE-NEXT: xxspltib 0, 15 471; P10-LE-NEXT: stxv 0, 0(3) 472; P10-LE-NEXT: blr 473entry: 474 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 17, i1 false) 475 ret void 476} 477 478define dso_local void @memset2TailV1B15(ptr nocapture noundef writeonly %p) local_unnamed_addr { 479; P8-BE-LABEL: memset2TailV1B15: 480; P8-BE: # %bb.0: # %entry 481; P8-BE-NEXT: ld 4, L..C0(2) # %const.0 482; P8-BE-NEXT: lxvw4x 0, 0, 4 483; P8-BE-NEXT: li 4, 15 484; P8-BE-NEXT: stxvw4x 0, 3, 4 485; P8-BE-NEXT: stxvw4x 0, 0, 3 486; P8-BE-NEXT: blr 487; 488; P9-BE-LABEL: memset2TailV1B15: 489; P9-BE: # %bb.0: # %entry 490; P9-BE-NEXT: xxspltib 0, 165 491; P9-BE-NEXT: li 4, 15 492; P9-BE-NEXT: stxvx 0, 3, 4 493; P9-BE-NEXT: stxv 0, 0(3) 494; P9-BE-NEXT: blr 495; 496; P10-BE-LABEL: memset2TailV1B15: 497; P10-BE: # %bb.0: # %entry 498; P10-BE-NEXT: xxspltib 0, 165 499; P10-BE-NEXT: pstxv 0, 15(3), 0 500; P10-BE-NEXT: stxv 0, 0(3) 501; P10-BE-NEXT: blr 502; 503; P8-LE-LABEL: memset2TailV1B15: 504; P8-LE: # %bb.0: # %entry 505; P8-LE-NEXT: addis 4, 2, .LCPI9_0@toc@ha 506; P8-LE-NEXT: addi 4, 4, .LCPI9_0@toc@l 507; P8-LE-NEXT: lxvd2x 0, 0, 4 508; P8-LE-NEXT: li 4, 15 509; P8-LE-NEXT: stxvd2x 0, 3, 4 510; P8-LE-NEXT: stxvd2x 0, 0, 3 511; P8-LE-NEXT: blr 512; 513; P9-LE-LABEL: memset2TailV1B15: 514; P9-LE: # %bb.0: # %entry 515; P9-LE-NEXT: xxspltib 0, 165 516; P9-LE-NEXT: li 4, 15 517; P9-LE-NEXT: stxvx 0, 3, 4 518; P9-LE-NEXT: stxv 0, 0(3) 519; P9-LE-NEXT: blr 520; 521; P10-LE-LABEL: memset2TailV1B15: 522; P10-LE: # %bb.0: # %entry 523; P10-LE-NEXT: xxspltib 0, 165 524; P10-LE-NEXT: pstxv 0, 15(3), 0 525; P10-LE-NEXT: stxv 0, 0(3) 526; P10-LE-NEXT: blr 527entry: 528 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 31, i1 false) 529 ret void 530} 531 532define dso_local void @memset2TailV1B12(ptr nocapture noundef writeonly %p) local_unnamed_addr { 533; P8-BE-LABEL: memset2TailV1B12: 534; P8-BE: # %bb.0: # %entry 535; P8-BE-NEXT: ld 4, L..C1(2) # %const.0 536; P8-BE-NEXT: lxvw4x 0, 0, 4 537; P8-BE-NEXT: li 4, 12 538; P8-BE-NEXT: stxvw4x 0, 3, 4 539; P8-BE-NEXT: stxvw4x 0, 0, 3 540; P8-BE-NEXT: blr 541; 542; P9-BE-LABEL: memset2TailV1B12: 543; P9-BE: # %bb.0: # %entry 544; P9-BE-NEXT: xxspltib 0, 165 545; P9-BE-NEXT: li 4, 12 546; P9-BE-NEXT: stxvx 0, 3, 4 547; P9-BE-NEXT: stxv 0, 0(3) 548; P9-BE-NEXT: blr 549; 550; P10-BE-LABEL: memset2TailV1B12: 551; P10-BE: # %bb.0: # %entry 552; P10-BE-NEXT: xxspltib 0, 165 553; P10-BE-NEXT: pstxv 0, 12(3), 0 554; P10-BE-NEXT: stxv 0, 0(3) 555; P10-BE-NEXT: blr 556; 557; P8-LE-LABEL: memset2TailV1B12: 558; P8-LE: # %bb.0: # %entry 559; P8-LE-NEXT: addis 4, 2, .LCPI10_0@toc@ha 560; P8-LE-NEXT: addi 4, 4, .LCPI10_0@toc@l 561; P8-LE-NEXT: lxvd2x 0, 0, 4 562; P8-LE-NEXT: li 4, 12 563; P8-LE-NEXT: stxvd2x 0, 3, 4 564; P8-LE-NEXT: stxvd2x 0, 0, 3 565; P8-LE-NEXT: blr 566; 567; P9-LE-LABEL: memset2TailV1B12: 568; P9-LE: # %bb.0: # %entry 569; P9-LE-NEXT: xxspltib 0, 165 570; P9-LE-NEXT: li 4, 12 571; P9-LE-NEXT: stxvx 0, 3, 4 572; P9-LE-NEXT: stxv 0, 0(3) 573; P9-LE-NEXT: blr 574; 575; P10-LE-LABEL: memset2TailV1B12: 576; P10-LE: # %bb.0: # %entry 577; P10-LE-NEXT: xxspltib 0, 165 578; P10-LE-NEXT: pstxv 0, 12(3), 0 579; P10-LE-NEXT: stxv 0, 0(3) 580; P10-LE-NEXT: blr 581entry: 582 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 28, i1 false) 583 ret void 584} 585 586define dso_local void @memset2TailV1B9(ptr nocapture noundef writeonly %p) local_unnamed_addr { 587; P8-BE-LABEL: memset2TailV1B9: 588; P8-BE: # %bb.0: # %entry 589; P8-BE-NEXT: ld 4, L..C2(2) # %const.0 590; P8-BE-NEXT: lxvw4x 0, 0, 4 591; P8-BE-NEXT: li 4, 9 592; P8-BE-NEXT: stxvw4x 0, 3, 4 593; P8-BE-NEXT: stxvw4x 0, 0, 3 594; P8-BE-NEXT: blr 595; 596; P9-BE-LABEL: memset2TailV1B9: 597; P9-BE: # %bb.0: # %entry 598; P9-BE-NEXT: xxspltib 0, 165 599; P9-BE-NEXT: li 4, 9 600; P9-BE-NEXT: stxvx 0, 3, 4 601; P9-BE-NEXT: stxv 0, 0(3) 602; P9-BE-NEXT: blr 603; 604; P10-BE-LABEL: memset2TailV1B9: 605; P10-BE: # %bb.0: # %entry 606; P10-BE-NEXT: xxspltib 0, 165 607; P10-BE-NEXT: pstxv 0, 9(3), 0 608; P10-BE-NEXT: stxv 0, 0(3) 609; P10-BE-NEXT: blr 610; 611; P8-LE-LABEL: memset2TailV1B9: 612; P8-LE: # %bb.0: # %entry 613; P8-LE-NEXT: addis 4, 2, .LCPI11_0@toc@ha 614; P8-LE-NEXT: addi 4, 4, .LCPI11_0@toc@l 615; P8-LE-NEXT: lxvd2x 0, 0, 4 616; P8-LE-NEXT: li 4, 9 617; P8-LE-NEXT: stxvd2x 0, 3, 4 618; P8-LE-NEXT: stxvd2x 0, 0, 3 619; P8-LE-NEXT: blr 620; 621; P9-LE-LABEL: memset2TailV1B9: 622; P9-LE: # %bb.0: # %entry 623; P9-LE-NEXT: xxspltib 0, 165 624; P9-LE-NEXT: li 4, 9 625; P9-LE-NEXT: stxvx 0, 3, 4 626; P9-LE-NEXT: stxv 0, 0(3) 627; P9-LE-NEXT: blr 628; 629; P10-LE-LABEL: memset2TailV1B9: 630; P10-LE: # %bb.0: # %entry 631; P10-LE-NEXT: xxspltib 0, 165 632; P10-LE-NEXT: pstxv 0, 9(3), 0 633; P10-LE-NEXT: stxv 0, 0(3) 634; P10-LE-NEXT: blr 635entry: 636 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 25, i1 false) 637 ret void 638} 639 640define dso_local void @memset2TailV1B8(ptr nocapture noundef writeonly %p) local_unnamed_addr { 641; P8-BE-LABEL: memset2TailV1B8: 642; P8-BE: # %bb.0: # %entry 643; P8-BE-NEXT: ld 4, L..C3(2) # %const.0 644; P8-BE-NEXT: lxvw4x 0, 0, 4 645; P8-BE-NEXT: stfd 0, 16(3) 646; P8-BE-NEXT: stxvw4x 0, 0, 3 647; P8-BE-NEXT: blr 648; 649; P9-BE-LABEL: memset2TailV1B8: 650; P9-BE: # %bb.0: # %entry 651; P9-BE-NEXT: xxspltib 0, 165 652; P9-BE-NEXT: stxv 0, 0(3) 653; P9-BE-NEXT: stfd 0, 16(3) 654; P9-BE-NEXT: blr 655; 656; P10-BE-LABEL: memset2TailV1B8: 657; P10-BE: # %bb.0: # %entry 658; P10-BE-NEXT: xxspltib 0, 165 659; P10-BE-NEXT: stxv 0, 0(3) 660; P10-BE-NEXT: stfd 0, 16(3) 661; P10-BE-NEXT: blr 662; 663; P8-LE-LABEL: memset2TailV1B8: 664; P8-LE: # %bb.0: # %entry 665; P8-LE-NEXT: addis 4, 2, .LCPI12_0@toc@ha 666; P8-LE-NEXT: addi 4, 4, .LCPI12_0@toc@l 667; P8-LE-NEXT: lxvd2x 0, 0, 4 668; P8-LE-NEXT: stfd 0, 16(3) 669; P8-LE-NEXT: stxvd2x 0, 0, 3 670; P8-LE-NEXT: blr 671; 672; P9-LE-LABEL: memset2TailV1B8: 673; P9-LE: # %bb.0: # %entry 674; P9-LE-NEXT: xxspltib 0, 165 675; P9-LE-NEXT: stxv 0, 0(3) 676; P9-LE-NEXT: stfd 0, 16(3) 677; P9-LE-NEXT: blr 678; 679; P10-LE-LABEL: memset2TailV1B8: 680; P10-LE: # %bb.0: # %entry 681; P10-LE-NEXT: xxspltib 0, 165 682; P10-LE-NEXT: stxv 0, 0(3) 683; P10-LE-NEXT: stfd 0, 16(3) 684; P10-LE-NEXT: blr 685entry: 686 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 24, i1 false) 687 ret void 688} 689 690define dso_local void @memset2TailV1B7(ptr nocapture noundef writeonly %p) local_unnamed_addr { 691; P8-BE-LABEL: memset2TailV1B7: 692; P8-BE: # %bb.0: # %entry 693; P8-BE-NEXT: ld 4, L..C4(2) # %const.0 694; P8-BE-NEXT: lxvw4x 0, 0, 4 695; P8-BE-NEXT: stfd 0, 15(3) 696; P8-BE-NEXT: stxvw4x 0, 0, 3 697; P8-BE-NEXT: blr 698; 699; P9-BE-LABEL: memset2TailV1B7: 700; P9-BE: # %bb.0: # %entry 701; P9-BE-NEXT: xxspltib 0, 165 702; P9-BE-NEXT: stfd 0, 15(3) 703; P9-BE-NEXT: stxv 0, 0(3) 704; P9-BE-NEXT: blr 705; 706; P10-BE-LABEL: memset2TailV1B7: 707; P10-BE: # %bb.0: # %entry 708; P10-BE-NEXT: xxspltib 0, 165 709; P10-BE-NEXT: stfd 0, 15(3) 710; P10-BE-NEXT: stxv 0, 0(3) 711; P10-BE-NEXT: blr 712; 713; P8-LE-LABEL: memset2TailV1B7: 714; P8-LE: # %bb.0: # %entry 715; P8-LE-NEXT: addis 4, 2, .LCPI13_0@toc@ha 716; P8-LE-NEXT: addi 4, 4, .LCPI13_0@toc@l 717; P8-LE-NEXT: lxvd2x 0, 0, 4 718; P8-LE-NEXT: stfd 0, 15(3) 719; P8-LE-NEXT: stxvd2x 0, 0, 3 720; P8-LE-NEXT: blr 721; 722; P9-LE-LABEL: memset2TailV1B7: 723; P9-LE: # %bb.0: # %entry 724; P9-LE-NEXT: xxspltib 0, 165 725; P9-LE-NEXT: stfd 0, 15(3) 726; P9-LE-NEXT: stxv 0, 0(3) 727; P9-LE-NEXT: blr 728; 729; P10-LE-LABEL: memset2TailV1B7: 730; P10-LE: # %bb.0: # %entry 731; P10-LE-NEXT: xxspltib 0, 165 732; P10-LE-NEXT: stfd 0, 15(3) 733; P10-LE-NEXT: stxv 0, 0(3) 734; P10-LE-NEXT: blr 735entry: 736 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 23, i1 false) 737 ret void 738} 739 740define dso_local void @memset2TailV1B4(ptr nocapture noundef writeonly %p) local_unnamed_addr { 741; P8-BE-LABEL: memset2TailV1B4: 742; P8-BE: # %bb.0: # %entry 743; P8-BE-NEXT: ld 4, L..C5(2) # %const.0 744; P8-BE-NEXT: lxvw4x 0, 0, 4 745; P8-BE-NEXT: li 4, 16 746; P8-BE-NEXT: stfiwx 0, 3, 4 747; P8-BE-NEXT: stxvw4x 0, 0, 3 748; P8-BE-NEXT: blr 749; 750; P9-BE-LABEL: memset2TailV1B4: 751; P9-BE: # %bb.0: # %entry 752; P9-BE-NEXT: xxspltib 0, 165 753; P9-BE-NEXT: li 4, 16 754; P9-BE-NEXT: stfiwx 0, 3, 4 755; P9-BE-NEXT: stxv 0, 0(3) 756; P9-BE-NEXT: blr 757; 758; P10-BE-LABEL: memset2TailV1B4: 759; P10-BE: # %bb.0: # %entry 760; P10-BE-NEXT: xxspltib 0, 165 761; P10-BE-NEXT: li 4, 16 762; P10-BE-NEXT: stfiwx 0, 3, 4 763; P10-BE-NEXT: stxv 0, 0(3) 764; P10-BE-NEXT: blr 765; 766; P8-LE-LABEL: memset2TailV1B4: 767; P8-LE: # %bb.0: # %entry 768; P8-LE-NEXT: addis 4, 2, .LCPI14_0@toc@ha 769; P8-LE-NEXT: addi 4, 4, .LCPI14_0@toc@l 770; P8-LE-NEXT: lxvd2x 0, 0, 4 771; P8-LE-NEXT: li 4, 16 772; P8-LE-NEXT: stfiwx 0, 3, 4 773; P8-LE-NEXT: stxvd2x 0, 0, 3 774; P8-LE-NEXT: blr 775; 776; P9-LE-LABEL: memset2TailV1B4: 777; P9-LE: # %bb.0: # %entry 778; P9-LE-NEXT: xxspltib 0, 165 779; P9-LE-NEXT: li 4, 16 780; P9-LE-NEXT: stfiwx 0, 3, 4 781; P9-LE-NEXT: stxv 0, 0(3) 782; P9-LE-NEXT: blr 783; 784; P10-LE-LABEL: memset2TailV1B4: 785; P10-LE: # %bb.0: # %entry 786; P10-LE-NEXT: xxspltib 0, 165 787; P10-LE-NEXT: li 4, 16 788; P10-LE-NEXT: stfiwx 0, 3, 4 789; P10-LE-NEXT: stxv 0, 0(3) 790; P10-LE-NEXT: blr 791entry: 792 tail call void @llvm.memset.p0.i32(ptr %p, i8 165, i32 20, i1 false) 793 ret void 794} 795 796define dso_local void @memset2TailV1B3(ptr nocapture noundef writeonly %p) local_unnamed_addr { 797; P8-BE-LABEL: memset2TailV1B3: 798; P8-BE: # %bb.0: # %entry 799; P8-BE-NEXT: ld 4, L..C6(2) # %const.0 800; P8-BE-NEXT: lxvw4x 0, 0, 4 801; P8-BE-NEXT: li 4, 15 802; P8-BE-NEXT: stfiwx 0, 3, 4 803; P8-BE-NEXT: stxvw4x 0, 0, 3 804; P8-BE-NEXT: blr 805; 806; P9-BE-LABEL: memset2TailV1B3: 807; P9-BE: # %bb.0: # %entry 808; P9-BE-NEXT: xxspltib 0, 165 809; P9-BE-NEXT: li 4, 15 810; P9-BE-NEXT: stfiwx 0, 3, 4 811; P9-BE-NEXT: stxv 0, 0(3) 812; P9-BE-NEXT: blr 813; 814; P10-BE-LABEL: memset2TailV1B3: 815; P10-BE: # %bb.0: # %entry 816; P10-BE-NEXT: xxspltib 0, 165 817; P10-BE-NEXT: li 4, 15 818; P10-BE-NEXT: stfiwx 0, 3, 4 819; P10-BE-NEXT: stxv 0, 0(3) 820; P10-BE-NEXT: blr 821; 822; P8-LE-LABEL: memset2TailV1B3: 823; P8-LE: # %bb.0: # %entry 824; P8-LE-NEXT: addis 4, 2, .LCPI15_0@toc@ha 825; P8-LE-NEXT: addi 4, 4, .LCPI15_0@toc@l 826; P8-LE-NEXT: lxvd2x 0, 0, 4 827; P8-LE-NEXT: li 4, 15 828; P8-LE-NEXT: stfiwx 0, 3, 4 829; P8-LE-NEXT: stxvd2x 0, 0, 3 830; P8-LE-NEXT: blr 831; 832; P9-LE-LABEL: memset2TailV1B3: 833; P9-LE: # %bb.0: # %entry 834; P9-LE-NEXT: xxspltib 0, 165 835; P9-LE-NEXT: li 4, 15 836; P9-LE-NEXT: stfiwx 0, 3, 4 837; P9-LE-NEXT: stxv 0, 0(3) 838; P9-LE-NEXT: blr 839; 840; P10-LE-LABEL: memset2TailV1B3: 841; P10-LE: # %bb.0: # %entry 842; P10-LE-NEXT: xxspltib 0, 165 843; P10-LE-NEXT: li 4, 15 844; P10-LE-NEXT: stfiwx 0, 3, 4 845; P10-LE-NEXT: stxv 0, 0(3) 846; P10-LE-NEXT: blr 847entry: 848 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 19, i1 false) 849 ret void 850} 851 852define dso_local void @memset2TailV1B2(ptr nocapture noundef writeonly %p) local_unnamed_addr { 853; P8-BE-LABEL: memset2TailV1B2: 854; P8-BE: # %bb.0: # %entry 855; P8-BE-NEXT: li 4, -23131 856; P8-BE-NEXT: sth 4, 16(3) 857; P8-BE-NEXT: ld 4, L..C7(2) # %const.0 858; P8-BE-NEXT: lxvw4x 0, 0, 4 859; P8-BE-NEXT: stxvw4x 0, 0, 3 860; P8-BE-NEXT: blr 861; 862; P9-BE-LABEL: memset2TailV1B2: 863; P9-BE: # %bb.0: # %entry 864; P9-BE-NEXT: li 4, -23131 865; P9-BE-NEXT: sth 4, 16(3) 866; P9-BE-NEXT: xxspltib 0, 165 867; P9-BE-NEXT: stxv 0, 0(3) 868; P9-BE-NEXT: blr 869; 870; P10-BE-LABEL: memset2TailV1B2: 871; P10-BE: # %bb.0: # %entry 872; P10-BE-NEXT: li 4, -23131 873; P10-BE-NEXT: sth 4, 16(3) 874; P10-BE-NEXT: xxspltib 0, 165 875; P10-BE-NEXT: stxv 0, 0(3) 876; P10-BE-NEXT: blr 877; 878; P8-LE-LABEL: memset2TailV1B2: 879; P8-LE: # %bb.0: # %entry 880; P8-LE-NEXT: li 4, -23131 881; P8-LE-NEXT: sth 4, 16(3) 882; P8-LE-NEXT: addis 4, 2, .LCPI16_0@toc@ha 883; P8-LE-NEXT: addi 4, 4, .LCPI16_0@toc@l 884; P8-LE-NEXT: lxvd2x 0, 0, 4 885; P8-LE-NEXT: stxvd2x 0, 0, 3 886; P8-LE-NEXT: blr 887; 888; P9-LE-LABEL: memset2TailV1B2: 889; P9-LE: # %bb.0: # %entry 890; P9-LE-NEXT: li 4, -23131 891; P9-LE-NEXT: sth 4, 16(3) 892; P9-LE-NEXT: xxspltib 0, 165 893; P9-LE-NEXT: stxv 0, 0(3) 894; P9-LE-NEXT: blr 895; 896; P10-LE-LABEL: memset2TailV1B2: 897; P10-LE: # %bb.0: # %entry 898; P10-LE-NEXT: li 4, -23131 899; P10-LE-NEXT: sth 4, 16(3) 900; P10-LE-NEXT: xxspltib 0, 165 901; P10-LE-NEXT: stxv 0, 0(3) 902; P10-LE-NEXT: blr 903entry: 904 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 18, i1 false) 905 ret void 906} 907 908define dso_local void @memset2TailV1B1(ptr nocapture noundef writeonly %p) local_unnamed_addr { 909; P8-BE-LABEL: memset2TailV1B1: 910; P8-BE: # %bb.0: # %entry 911; P8-BE-NEXT: li 4, -91 912; P8-BE-NEXT: stb 4, 16(3) 913; P8-BE-NEXT: ld 4, L..C8(2) # %const.0 914; P8-BE-NEXT: lxvw4x 0, 0, 4 915; P8-BE-NEXT: stxvw4x 0, 0, 3 916; P8-BE-NEXT: blr 917; 918; P9-BE-LABEL: memset2TailV1B1: 919; P9-BE: # %bb.0: # %entry 920; P9-BE-NEXT: li 4, -91 921; P9-BE-NEXT: stb 4, 16(3) 922; P9-BE-NEXT: xxspltib 0, 165 923; P9-BE-NEXT: stxv 0, 0(3) 924; P9-BE-NEXT: blr 925; 926; P10-BE-LABEL: memset2TailV1B1: 927; P10-BE: # %bb.0: # %entry 928; P10-BE-NEXT: li 4, -91 929; P10-BE-NEXT: stb 4, 16(3) 930; P10-BE-NEXT: xxspltib 0, 165 931; P10-BE-NEXT: stxv 0, 0(3) 932; P10-BE-NEXT: blr 933; 934; P8-LE-LABEL: memset2TailV1B1: 935; P8-LE: # %bb.0: # %entry 936; P8-LE-NEXT: li 4, -91 937; P8-LE-NEXT: stb 4, 16(3) 938; P8-LE-NEXT: addis 4, 2, .LCPI17_0@toc@ha 939; P8-LE-NEXT: addi 4, 4, .LCPI17_0@toc@l 940; P8-LE-NEXT: lxvd2x 0, 0, 4 941; P8-LE-NEXT: stxvd2x 0, 0, 3 942; P8-LE-NEXT: blr 943; 944; P9-LE-LABEL: memset2TailV1B1: 945; P9-LE: # %bb.0: # %entry 946; P9-LE-NEXT: li 4, -91 947; P9-LE-NEXT: stb 4, 16(3) 948; P9-LE-NEXT: xxspltib 0, 165 949; P9-LE-NEXT: stxv 0, 0(3) 950; P9-LE-NEXT: blr 951; 952; P10-LE-LABEL: memset2TailV1B1: 953; P10-LE: # %bb.0: # %entry 954; P10-LE-NEXT: li 4, -91 955; P10-LE-NEXT: stb 4, 16(3) 956; P10-LE-NEXT: xxspltib 0, 165 957; P10-LE-NEXT: stxv 0, 0(3) 958; P10-LE-NEXT: blr 959entry: 960 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 17, i1 false) 961 ret void 962} 963 964define dso_local void @memsetTailV0B15(ptr nocapture noundef writeonly %p) local_unnamed_addr { 965; P8-BE-LABEL: memsetTailV0B15: 966; P8-BE: # %bb.0: # %entry 967; P8-BE-NEXT: lis 4, 3855 968; P8-BE-NEXT: li 5, 7 969; P8-BE-NEXT: ori 4, 4, 3855 970; P8-BE-NEXT: rldimi 4, 4, 32, 0 971; P8-BE-NEXT: stdx 4, 3, 5 972; P8-BE-NEXT: std 4, 0(3) 973; P8-BE-NEXT: blr 974; 975; P9-BE-LABEL: memsetTailV0B15: 976; P9-BE: # %bb.0: # %entry 977; P9-BE-NEXT: lis 4, 3855 978; P9-BE-NEXT: li 5, 7 979; P9-BE-NEXT: ori 4, 4, 3855 980; P9-BE-NEXT: rldimi 4, 4, 32, 0 981; P9-BE-NEXT: stdx 4, 3, 5 982; P9-BE-NEXT: std 4, 0(3) 983; P9-BE-NEXT: blr 984; 985; P10-BE-LABEL: memsetTailV0B15: 986; P10-BE: # %bb.0: # %entry 987; P10-BE-NEXT: pli 4, 252645135 988; P10-BE-NEXT: rldimi 4, 4, 32, 0 989; P10-BE-NEXT: pstd 4, 7(3), 0 990; P10-BE-NEXT: std 4, 0(3) 991; P10-BE-NEXT: blr 992; 993; P8-LE-LABEL: memsetTailV0B15: 994; P8-LE: # %bb.0: # %entry 995; P8-LE-NEXT: lis 4, 3855 996; P8-LE-NEXT: li 5, 7 997; P8-LE-NEXT: ori 4, 4, 3855 998; P8-LE-NEXT: rldimi 4, 4, 32, 0 999; P8-LE-NEXT: stdx 4, 3, 5 1000; P8-LE-NEXT: std 4, 0(3) 1001; P8-LE-NEXT: blr 1002; 1003; P9-LE-LABEL: memsetTailV0B15: 1004; P9-LE: # %bb.0: # %entry 1005; P9-LE-NEXT: lis 4, 3855 1006; P9-LE-NEXT: li 5, 7 1007; P9-LE-NEXT: ori 4, 4, 3855 1008; P9-LE-NEXT: rldimi 4, 4, 32, 0 1009; P9-LE-NEXT: stdx 4, 3, 5 1010; P9-LE-NEXT: std 4, 0(3) 1011; P9-LE-NEXT: blr 1012; 1013; P10-LE-LABEL: memsetTailV0B15: 1014; P10-LE: # %bb.0: # %entry 1015; P10-LE-NEXT: pli 4, 252645135 1016; P10-LE-NEXT: rldimi 4, 4, 32, 0 1017; P10-LE-NEXT: pstd 4, 7(3), 0 1018; P10-LE-NEXT: std 4, 0(3) 1019; P10-LE-NEXT: blr 1020entry: 1021 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 15, i1 false) 1022 ret void 1023} 1024 1025define dso_local void @memsetTailV0B12(ptr nocapture noundef writeonly %p) local_unnamed_addr { 1026; P8-BE-LABEL: memsetTailV0B12: 1027; P8-BE: # %bb.0: # %entry 1028; P8-BE-NEXT: lis 4, 3855 1029; P8-BE-NEXT: ori 4, 4, 3855 1030; P8-BE-NEXT: rldimi 4, 4, 32, 0 1031; P8-BE-NEXT: stw 4, 8(3) 1032; P8-BE-NEXT: std 4, 0(3) 1033; P8-BE-NEXT: blr 1034; 1035; P9-BE-LABEL: memsetTailV0B12: 1036; P9-BE: # %bb.0: # %entry 1037; P9-BE-NEXT: lis 4, 3855 1038; P9-BE-NEXT: ori 4, 4, 3855 1039; P9-BE-NEXT: rldimi 4, 4, 32, 0 1040; P9-BE-NEXT: stw 4, 8(3) 1041; P9-BE-NEXT: std 4, 0(3) 1042; P9-BE-NEXT: blr 1043; 1044; P10-BE-LABEL: memsetTailV0B12: 1045; P10-BE: # %bb.0: # %entry 1046; P10-BE-NEXT: pli 4, 252645135 1047; P10-BE-NEXT: rldimi 4, 4, 32, 0 1048; P10-BE-NEXT: stw 4, 8(3) 1049; P10-BE-NEXT: std 4, 0(3) 1050; P10-BE-NEXT: blr 1051; 1052; P8-LE-LABEL: memsetTailV0B12: 1053; P8-LE: # %bb.0: # %entry 1054; P8-LE-NEXT: lis 4, 3855 1055; P8-LE-NEXT: ori 4, 4, 3855 1056; P8-LE-NEXT: rldimi 4, 4, 32, 0 1057; P8-LE-NEXT: stw 4, 8(3) 1058; P8-LE-NEXT: std 4, 0(3) 1059; P8-LE-NEXT: blr 1060; 1061; P9-LE-LABEL: memsetTailV0B12: 1062; P9-LE: # %bb.0: # %entry 1063; P9-LE-NEXT: lis 4, 3855 1064; P9-LE-NEXT: ori 4, 4, 3855 1065; P9-LE-NEXT: rldimi 4, 4, 32, 0 1066; P9-LE-NEXT: stw 4, 8(3) 1067; P9-LE-NEXT: std 4, 0(3) 1068; P9-LE-NEXT: blr 1069; 1070; P10-LE-LABEL: memsetTailV0B12: 1071; P10-LE: # %bb.0: # %entry 1072; P10-LE-NEXT: pli 4, 252645135 1073; P10-LE-NEXT: rldimi 4, 4, 32, 0 1074; P10-LE-NEXT: stw 4, 8(3) 1075; P10-LE-NEXT: std 4, 0(3) 1076; P10-LE-NEXT: blr 1077entry: 1078 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 12, i1 false) 1079 ret void 1080} 1081 1082define dso_local void @memsetTailV0B9(ptr nocapture noundef writeonly %p) local_unnamed_addr { 1083; P8-BE-LABEL: memsetTailV0B9: 1084; P8-BE: # %bb.0: # %entry 1085; P8-BE-NEXT: li 4, 15 1086; P8-BE-NEXT: stb 4, 8(3) 1087; P8-BE-NEXT: lis 4, 3855 1088; P8-BE-NEXT: ori 4, 4, 3855 1089; P8-BE-NEXT: rldimi 4, 4, 32, 0 1090; P8-BE-NEXT: std 4, 0(3) 1091; P8-BE-NEXT: blr 1092; 1093; P9-BE-LABEL: memsetTailV0B9: 1094; P9-BE: # %bb.0: # %entry 1095; P9-BE-NEXT: li 4, 15 1096; P9-BE-NEXT: stb 4, 8(3) 1097; P9-BE-NEXT: lis 4, 3855 1098; P9-BE-NEXT: ori 4, 4, 3855 1099; P9-BE-NEXT: rldimi 4, 4, 32, 0 1100; P9-BE-NEXT: std 4, 0(3) 1101; P9-BE-NEXT: blr 1102; 1103; P10-BE-LABEL: memsetTailV0B9: 1104; P10-BE: # %bb.0: # %entry 1105; P10-BE-NEXT: li 4, 15 1106; P10-BE-NEXT: stb 4, 8(3) 1107; P10-BE-NEXT: pli 4, 252645135 1108; P10-BE-NEXT: rldimi 4, 4, 32, 0 1109; P10-BE-NEXT: std 4, 0(3) 1110; P10-BE-NEXT: blr 1111; 1112; P8-LE-LABEL: memsetTailV0B9: 1113; P8-LE: # %bb.0: # %entry 1114; P8-LE-NEXT: li 4, 15 1115; P8-LE-NEXT: stb 4, 8(3) 1116; P8-LE-NEXT: lis 4, 3855 1117; P8-LE-NEXT: ori 4, 4, 3855 1118; P8-LE-NEXT: rldimi 4, 4, 32, 0 1119; P8-LE-NEXT: std 4, 0(3) 1120; P8-LE-NEXT: blr 1121; 1122; P9-LE-LABEL: memsetTailV0B9: 1123; P9-LE: # %bb.0: # %entry 1124; P9-LE-NEXT: li 4, 15 1125; P9-LE-NEXT: stb 4, 8(3) 1126; P9-LE-NEXT: lis 4, 3855 1127; P9-LE-NEXT: ori 4, 4, 3855 1128; P9-LE-NEXT: rldimi 4, 4, 32, 0 1129; P9-LE-NEXT: std 4, 0(3) 1130; P9-LE-NEXT: blr 1131; 1132; P10-LE-LABEL: memsetTailV0B9: 1133; P10-LE: # %bb.0: # %entry 1134; P10-LE-NEXT: li 4, 15 1135; P10-LE-NEXT: stb 4, 8(3) 1136; P10-LE-NEXT: pli 4, 252645135 1137; P10-LE-NEXT: rldimi 4, 4, 32, 0 1138; P10-LE-NEXT: std 4, 0(3) 1139; P10-LE-NEXT: blr 1140entry: 1141 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 9, i1 false) 1142 ret void 1143} 1144 1145define dso_local void @memsetTailV0B8(ptr nocapture noundef writeonly %p) local_unnamed_addr { 1146; P8-BE-LABEL: memsetTailV0B8: 1147; P8-BE: # %bb.0: # %entry 1148; P8-BE-NEXT: lis 4, 3855 1149; P8-BE-NEXT: ori 4, 4, 3855 1150; P8-BE-NEXT: rldimi 4, 4, 32, 0 1151; P8-BE-NEXT: std 4, 0(3) 1152; P8-BE-NEXT: blr 1153; 1154; P9-BE-LABEL: memsetTailV0B8: 1155; P9-BE: # %bb.0: # %entry 1156; P9-BE-NEXT: lis 4, 3855 1157; P9-BE-NEXT: ori 4, 4, 3855 1158; P9-BE-NEXT: rldimi 4, 4, 32, 0 1159; P9-BE-NEXT: std 4, 0(3) 1160; P9-BE-NEXT: blr 1161; 1162; P10-BE-LABEL: memsetTailV0B8: 1163; P10-BE: # %bb.0: # %entry 1164; P10-BE-NEXT: pli 4, 252645135 1165; P10-BE-NEXT: rldimi 4, 4, 32, 0 1166; P10-BE-NEXT: std 4, 0(3) 1167; P10-BE-NEXT: blr 1168; 1169; P8-LE-LABEL: memsetTailV0B8: 1170; P8-LE: # %bb.0: # %entry 1171; P8-LE-NEXT: lis 4, 3855 1172; P8-LE-NEXT: ori 4, 4, 3855 1173; P8-LE-NEXT: rldimi 4, 4, 32, 0 1174; P8-LE-NEXT: std 4, 0(3) 1175; P8-LE-NEXT: blr 1176; 1177; P9-LE-LABEL: memsetTailV0B8: 1178; P9-LE: # %bb.0: # %entry 1179; P9-LE-NEXT: lis 4, 3855 1180; P9-LE-NEXT: ori 4, 4, 3855 1181; P9-LE-NEXT: rldimi 4, 4, 32, 0 1182; P9-LE-NEXT: std 4, 0(3) 1183; P9-LE-NEXT: blr 1184; 1185; P10-LE-LABEL: memsetTailV0B8: 1186; P10-LE: # %bb.0: # %entry 1187; P10-LE-NEXT: pli 4, 252645135 1188; P10-LE-NEXT: rldimi 4, 4, 32, 0 1189; P10-LE-NEXT: std 4, 0(3) 1190; P10-LE-NEXT: blr 1191entry: 1192 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 8, i1 false) 1193 ret void 1194} 1195 1196define dso_local void @memsetTailV0B7(ptr nocapture noundef writeonly %p) local_unnamed_addr { 1197; P8-BE-LABEL: memsetTailV0B7: 1198; P8-BE: # %bb.0: # %entry 1199; P8-BE-NEXT: lis 4, 3855 1200; P8-BE-NEXT: ori 4, 4, 3855 1201; P8-BE-NEXT: stw 4, 3(3) 1202; P8-BE-NEXT: stw 4, 0(3) 1203; P8-BE-NEXT: blr 1204; 1205; P9-BE-LABEL: memsetTailV0B7: 1206; P9-BE: # %bb.0: # %entry 1207; P9-BE-NEXT: lis 4, 3855 1208; P9-BE-NEXT: ori 4, 4, 3855 1209; P9-BE-NEXT: stw 4, 3(3) 1210; P9-BE-NEXT: stw 4, 0(3) 1211; P9-BE-NEXT: blr 1212; 1213; P10-BE-LABEL: memsetTailV0B7: 1214; P10-BE: # %bb.0: # %entry 1215; P10-BE-NEXT: pli 4, 252645135 1216; P10-BE-NEXT: stw 4, 3(3) 1217; P10-BE-NEXT: stw 4, 0(3) 1218; P10-BE-NEXT: blr 1219; 1220; P8-LE-LABEL: memsetTailV0B7: 1221; P8-LE: # %bb.0: # %entry 1222; P8-LE-NEXT: lis 4, 3855 1223; P8-LE-NEXT: ori 4, 4, 3855 1224; P8-LE-NEXT: stw 4, 3(3) 1225; P8-LE-NEXT: stw 4, 0(3) 1226; P8-LE-NEXT: blr 1227; 1228; P9-LE-LABEL: memsetTailV0B7: 1229; P9-LE: # %bb.0: # %entry 1230; P9-LE-NEXT: lis 4, 3855 1231; P9-LE-NEXT: ori 4, 4, 3855 1232; P9-LE-NEXT: stw 4, 3(3) 1233; P9-LE-NEXT: stw 4, 0(3) 1234; P9-LE-NEXT: blr 1235; 1236; P10-LE-LABEL: memsetTailV0B7: 1237; P10-LE: # %bb.0: # %entry 1238; P10-LE-NEXT: pli 4, 252645135 1239; P10-LE-NEXT: stw 4, 3(3) 1240; P10-LE-NEXT: stw 4, 0(3) 1241; P10-LE-NEXT: blr 1242entry: 1243 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 7, i1 false) 1244 ret void 1245} 1246 1247define dso_local void @memsetTailV0B5(ptr nocapture noundef writeonly %p) local_unnamed_addr { 1248; P8-BE-LABEL: memsetTailV0B5: 1249; P8-BE: # %bb.0: # %entry 1250; P8-BE-NEXT: li 4, 15 1251; P8-BE-NEXT: stb 4, 4(3) 1252; P8-BE-NEXT: lis 4, 3855 1253; P8-BE-NEXT: ori 4, 4, 3855 1254; P8-BE-NEXT: stw 4, 0(3) 1255; P8-BE-NEXT: blr 1256; 1257; P9-BE-LABEL: memsetTailV0B5: 1258; P9-BE: # %bb.0: # %entry 1259; P9-BE-NEXT: li 4, 15 1260; P9-BE-NEXT: stb 4, 4(3) 1261; P9-BE-NEXT: lis 4, 3855 1262; P9-BE-NEXT: ori 4, 4, 3855 1263; P9-BE-NEXT: stw 4, 0(3) 1264; P9-BE-NEXT: blr 1265; 1266; P10-BE-LABEL: memsetTailV0B5: 1267; P10-BE: # %bb.0: # %entry 1268; P10-BE-NEXT: li 4, 15 1269; P10-BE-NEXT: stb 4, 4(3) 1270; P10-BE-NEXT: pli 4, 252645135 1271; P10-BE-NEXT: stw 4, 0(3) 1272; P10-BE-NEXT: blr 1273; 1274; P8-LE-LABEL: memsetTailV0B5: 1275; P8-LE: # %bb.0: # %entry 1276; P8-LE-NEXT: li 4, 15 1277; P8-LE-NEXT: stb 4, 4(3) 1278; P8-LE-NEXT: lis 4, 3855 1279; P8-LE-NEXT: ori 4, 4, 3855 1280; P8-LE-NEXT: stw 4, 0(3) 1281; P8-LE-NEXT: blr 1282; 1283; P9-LE-LABEL: memsetTailV0B5: 1284; P9-LE: # %bb.0: # %entry 1285; P9-LE-NEXT: li 4, 15 1286; P9-LE-NEXT: stb 4, 4(3) 1287; P9-LE-NEXT: lis 4, 3855 1288; P9-LE-NEXT: ori 4, 4, 3855 1289; P9-LE-NEXT: stw 4, 0(3) 1290; P9-LE-NEXT: blr 1291; 1292; P10-LE-LABEL: memsetTailV0B5: 1293; P10-LE: # %bb.0: # %entry 1294; P10-LE-NEXT: li 4, 15 1295; P10-LE-NEXT: stb 4, 4(3) 1296; P10-LE-NEXT: pli 4, 252645135 1297; P10-LE-NEXT: stw 4, 0(3) 1298; P10-LE-NEXT: blr 1299entry: 1300 tail call void @llvm.memset.p0.i32(ptr %p, i8 15, i32 5, i1 false) 1301 ret void 1302} 1303 1304define dso_local void @memsetTailV0B4(ptr nocapture noundef writeonly %p) local_unnamed_addr { 1305; P8-BE-LABEL: memsetTailV0B4: 1306; P8-BE: # %bb.0: # %entry 1307; P8-BE-NEXT: lis 4, 3855 1308; P8-BE-NEXT: ori 4, 4, 3855 1309; P8-BE-NEXT: stw 4, 0(3) 1310; P8-BE-NEXT: blr 1311; 1312; P9-BE-LABEL: memsetTailV0B4: 1313; P9-BE: # %bb.0: # %entry 1314; P9-BE-NEXT: lis 4, 3855 1315; P9-BE-NEXT: ori 4, 4, 3855 1316; P9-BE-NEXT: stw 4, 0(3) 1317; P9-BE-NEXT: blr 1318; 1319; P10-BE-LABEL: memsetTailV0B4: 1320; P10-BE: # %bb.0: # %entry 1321; P10-BE-NEXT: pli 4, 252645135 1322; P10-BE-NEXT: stw 4, 0(3) 1323; P10-BE-NEXT: blr 1324; 1325; P8-LE-LABEL: memsetTailV0B4: 1326; P8-LE: # %bb.0: # %entry 1327; P8-LE-NEXT: lis 4, 3855 1328; P8-LE-NEXT: ori 4, 4, 3855 1329; P8-LE-NEXT: stw 4, 0(3) 1330; P8-LE-NEXT: blr 1331; 1332; P9-LE-LABEL: memsetTailV0B4: 1333; P9-LE: # %bb.0: # %entry 1334; P9-LE-NEXT: lis 4, 3855 1335; P9-LE-NEXT: ori 4, 4, 3855 1336; P9-LE-NEXT: stw 4, 0(3) 1337; P9-LE-NEXT: blr 1338; 1339; P10-LE-LABEL: memsetTailV0B4: 1340; P10-LE: # %bb.0: # %entry 1341; P10-LE-NEXT: pli 4, 252645135 1342; P10-LE-NEXT: stw 4, 0(3) 1343; P10-LE-NEXT: blr 1344entry: 1345 tail call void @llvm.memset.p0.i32(ptr %p, i8 15, i32 4, i1 false) 1346 ret void 1347} 1348 1349define dso_local void @memsetTailV0B1(ptr nocapture noundef writeonly %p) local_unnamed_addr { 1350; P8-BE-LABEL: memsetTailV0B1: 1351; P8-BE: # %bb.0: # %entry 1352; P8-BE-NEXT: li 4, -91 1353; P8-BE-NEXT: stb 4, 0(3) 1354; P8-BE-NEXT: blr 1355; 1356; P9-BE-LABEL: memsetTailV0B1: 1357; P9-BE: # %bb.0: # %entry 1358; P9-BE-NEXT: li 4, -91 1359; P9-BE-NEXT: stb 4, 0(3) 1360; P9-BE-NEXT: blr 1361; 1362; P10-BE-LABEL: memsetTailV0B1: 1363; P10-BE: # %bb.0: # %entry 1364; P10-BE-NEXT: li 4, -91 1365; P10-BE-NEXT: stb 4, 0(3) 1366; P10-BE-NEXT: blr 1367; 1368; P8-LE-LABEL: memsetTailV0B1: 1369; P8-LE: # %bb.0: # %entry 1370; P8-LE-NEXT: li 4, -91 1371; P8-LE-NEXT: stb 4, 0(3) 1372; P8-LE-NEXT: blr 1373; 1374; P9-LE-LABEL: memsetTailV0B1: 1375; P9-LE: # %bb.0: # %entry 1376; P9-LE-NEXT: li 4, -91 1377; P9-LE-NEXT: stb 4, 0(3) 1378; P9-LE-NEXT: blr 1379; 1380; P10-LE-LABEL: memsetTailV0B1: 1381; P10-LE: # %bb.0: # %entry 1382; P10-LE-NEXT: li 4, -91 1383; P10-LE-NEXT: stb 4, 0(3) 1384; P10-LE-NEXT: blr 1385entry: 1386 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 1, i1 false) 1387 ret void 1388} 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