brintos

brintos / llvm-project-archived public Read only

0
0
Text · 22.0 KiB · 83acb4f Raw
726 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 @foo1(ptr nocapture noundef writeonly %a) local_unnamed_addr {16; P8-BE-LABEL: foo1:17; P8-BE:       # %bb.0: # %entry18; P8-BE-NEXT:    ld 4, L..C0(2) # %const.019; P8-BE-NEXT:    lxvw4x 0, 0, 420; P8-BE-NEXT:    li 4, 333321; P8-BE-NEXT:    sth 4, 16(3)22; P8-BE-NEXT:    stxvw4x 0, 0, 323; P8-BE-NEXT:    blr24;25; P9-BE-LABEL: foo1:26; P9-BE:       # %bb.0: # %entry27; P9-BE-NEXT:    ld 4, L..C0(2) # %const.028; P9-BE-NEXT:    lxv 0, 0(4)29; P9-BE-NEXT:    li 4, 333330; P9-BE-NEXT:    sth 4, 16(3)31; P9-BE-NEXT:    stxv 0, 0(3)32; P9-BE-NEXT:    blr33;34; P10-BE-LABEL: foo1:35; P10-BE:       # %bb.0: # %entry36; P10-BE-NEXT:    xxspltiw 0, 21843482137; P10-BE-NEXT:    li 4, 333338; P10-BE-NEXT:    sth 4, 16(3)39; P10-BE-NEXT:    stxv 0, 0(3)40; P10-BE-NEXT:    blr41;42; P8-LE-LABEL: foo1:43; P8-LE:       # %bb.0: # %entry44; P8-LE-NEXT:    addis 4, 2, .LCPI0_0@toc@ha45; P8-LE-NEXT:    addi 4, 4, .LCPI0_0@toc@l46; P8-LE-NEXT:    lxvd2x 0, 0, 447; P8-LE-NEXT:    li 4, 333348; P8-LE-NEXT:    sth 4, 16(3)49; P8-LE-NEXT:    stxvd2x 0, 0, 350; P8-LE-NEXT:    blr51;52; P9-LE-LABEL: foo1:53; P9-LE:       # %bb.0: # %entry54; P9-LE-NEXT:    addis 4, 2, .LCPI0_0@toc@ha55; P9-LE-NEXT:    addi 4, 4, .LCPI0_0@toc@l56; P9-LE-NEXT:    lxv 0, 0(4)57; P9-LE-NEXT:    li 4, 333358; P9-LE-NEXT:    sth 4, 16(3)59; P9-LE-NEXT:    stxv 0, 0(3)60; P9-LE-NEXT:    blr61;62; P10-LE-LABEL: foo1:63; P10-LE:       # %bb.0: # %entry64; P10-LE-NEXT:    xxspltiw 0, 21843482165; P10-LE-NEXT:    li 4, 333366; P10-LE-NEXT:    sth 4, 16(3)67; P10-LE-NEXT:    stxv 0, 0(3)68; P10-LE-NEXT:    blr69entry:70  store <8 x i16> <i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333>, ptr %a, align 271  %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 872  store i16 3333, ptr %arrayidx8, align 273  ret void74}75 76define dso_local void @foo2(ptr nocapture noundef writeonly %a) local_unnamed_addr {77; P8-BE-LABEL: foo2:78; P8-BE:       # %bb.0: # %entry79; P8-BE-NEXT:    ld 4, L..C1(2) # %const.080; P8-BE-NEXT:    lxvw4x 0, 0, 481; P8-BE-NEXT:    lis 4, 333382; P8-BE-NEXT:    ori 4, 4, 333383; P8-BE-NEXT:    stw 4, 16(3)84; P8-BE-NEXT:    stxvw4x 0, 0, 385; P8-BE-NEXT:    blr86;87; P9-BE-LABEL: foo2:88; P9-BE:       # %bb.0: # %entry89; P9-BE-NEXT:    ld 4, L..C1(2) # %const.090; P9-BE-NEXT:    lxv 0, 0(4)91; P9-BE-NEXT:    lis 4, 333392; P9-BE-NEXT:    ori 4, 4, 333393; P9-BE-NEXT:    stw 4, 16(3)94; P9-BE-NEXT:    stxv 0, 0(3)95; P9-BE-NEXT:    blr96;97; P10-BE-LABEL: foo2:98; P10-BE:       # %bb.0: # %entry99; P10-BE-NEXT:    xxspltiw 0, 218434821100; P10-BE-NEXT:    pli 4, 218434821101; P10-BE-NEXT:    stw 4, 16(3)102; P10-BE-NEXT:    stxv 0, 0(3)103; P10-BE-NEXT:    blr104;105; P8-LE-LABEL: foo2:106; P8-LE:       # %bb.0: # %entry107; P8-LE-NEXT:    addis 4, 2, .LCPI1_0@toc@ha108; P8-LE-NEXT:    addi 4, 4, .LCPI1_0@toc@l109; P8-LE-NEXT:    lxvd2x 0, 0, 4110; P8-LE-NEXT:    lis 4, 3333111; P8-LE-NEXT:    ori 4, 4, 3333112; P8-LE-NEXT:    stw 4, 16(3)113; P8-LE-NEXT:    stxvd2x 0, 0, 3114; P8-LE-NEXT:    blr115;116; P9-LE-LABEL: foo2:117; P9-LE:       # %bb.0: # %entry118; P9-LE-NEXT:    addis 4, 2, .LCPI1_0@toc@ha119; P9-LE-NEXT:    addi 4, 4, .LCPI1_0@toc@l120; P9-LE-NEXT:    lxv 0, 0(4)121; P9-LE-NEXT:    lis 4, 3333122; P9-LE-NEXT:    ori 4, 4, 3333123; P9-LE-NEXT:    stw 4, 16(3)124; P9-LE-NEXT:    stxv 0, 0(3)125; P9-LE-NEXT:    blr126;127; P10-LE-LABEL: foo2:128; P10-LE:       # %bb.0: # %entry129; P10-LE-NEXT:    xxspltiw 0, 218434821130; P10-LE-NEXT:    pli 4, 218434821131; P10-LE-NEXT:    stw 4, 16(3)132; P10-LE-NEXT:    stxv 0, 0(3)133; P10-LE-NEXT:    blr134entry:135  store <8 x i16> <i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333>, ptr %a, align 2136  %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8137  store i16 3333, ptr %arrayidx8, align 2138  %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9139  store i16 3333, ptr %arrayidx9, align 2140  ret void141}142 143define dso_local void @foo3(ptr nocapture noundef writeonly %a) local_unnamed_addr {144; P8-BE-LABEL: foo3:145; P8-BE:       # %bb.0: # %entry146; P8-BE-NEXT:    ld 4, L..C2(2) # %const.0147; P8-BE-NEXT:    lxvw4x 0, 0, 4148; P8-BE-NEXT:    lis 4, 3333149; P8-BE-NEXT:    ori 4, 4, 3333150; P8-BE-NEXT:    stw 4, 16(3)151; P8-BE-NEXT:    li 4, 3333152; P8-BE-NEXT:    stxvw4x 0, 0, 3153; P8-BE-NEXT:    sth 4, 20(3)154; P8-BE-NEXT:    blr155;156; P9-BE-LABEL: foo3:157; P9-BE:       # %bb.0: # %entry158; P9-BE-NEXT:    ld 4, L..C2(2) # %const.0159; P9-BE-NEXT:    lxv 0, 0(4)160; P9-BE-NEXT:    lis 4, 3333161; P9-BE-NEXT:    ori 4, 4, 3333162; P9-BE-NEXT:    stw 4, 16(3)163; P9-BE-NEXT:    li 4, 3333164; P9-BE-NEXT:    stxv 0, 0(3)165; P9-BE-NEXT:    sth 4, 20(3)166; P9-BE-NEXT:    blr167;168; P10-BE-LABEL: foo3:169; P10-BE:       # %bb.0: # %entry170; P10-BE-NEXT:    pli 4, 218434821171; P10-BE-NEXT:    xxspltiw 0, 218434821172; P10-BE-NEXT:    stw 4, 16(3)173; P10-BE-NEXT:    li 4, 3333174; P10-BE-NEXT:    stxv 0, 0(3)175; P10-BE-NEXT:    sth 4, 20(3)176; P10-BE-NEXT:    blr177;178; P8-LE-LABEL: foo3:179; P8-LE:       # %bb.0: # %entry180; P8-LE-NEXT:    addis 4, 2, .LCPI2_0@toc@ha181; P8-LE-NEXT:    addi 4, 4, .LCPI2_0@toc@l182; P8-LE-NEXT:    lxvd2x 0, 0, 4183; P8-LE-NEXT:    lis 4, 3333184; P8-LE-NEXT:    ori 4, 4, 3333185; P8-LE-NEXT:    stw 4, 16(3)186; P8-LE-NEXT:    li 4, 3333187; P8-LE-NEXT:    stxvd2x 0, 0, 3188; P8-LE-NEXT:    sth 4, 20(3)189; P8-LE-NEXT:    blr190;191; P9-LE-LABEL: foo3:192; P9-LE:       # %bb.0: # %entry193; P9-LE-NEXT:    addis 4, 2, .LCPI2_0@toc@ha194; P9-LE-NEXT:    addi 4, 4, .LCPI2_0@toc@l195; P9-LE-NEXT:    lxv 0, 0(4)196; P9-LE-NEXT:    lis 4, 3333197; P9-LE-NEXT:    ori 4, 4, 3333198; P9-LE-NEXT:    stw 4, 16(3)199; P9-LE-NEXT:    li 4, 3333200; P9-LE-NEXT:    stxv 0, 0(3)201; P9-LE-NEXT:    sth 4, 20(3)202; P9-LE-NEXT:    blr203;204; P10-LE-LABEL: foo3:205; P10-LE:       # %bb.0: # %entry206; P10-LE-NEXT:    pli 4, 218434821207; P10-LE-NEXT:    xxspltiw 0, 218434821208; P10-LE-NEXT:    stw 4, 16(3)209; P10-LE-NEXT:    li 4, 3333210; P10-LE-NEXT:    stxv 0, 0(3)211; P10-LE-NEXT:    sth 4, 20(3)212; P10-LE-NEXT:    blr213entry:214  store <8 x i16> <i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333>, ptr %a, align 2215  %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8216  store i16 3333, ptr %arrayidx8, align 2217  %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9218  store i16 3333, ptr %arrayidx9, align 2219  %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10220  store i16 3333, ptr %arrayidx10, align 2221  ret void222}223 224define dso_local void @foo4(ptr nocapture noundef writeonly %a) local_unnamed_addr {225; P8-BE-LABEL: foo4:226; P8-BE:       # %bb.0: # %entry227; P8-BE-NEXT:    ld 4, L..C3(2) # %const.0228; P8-BE-NEXT:    lxvw4x 0, 0, 4229; P8-BE-NEXT:    lis 4, 3333230; P8-BE-NEXT:    ori 4, 4, 3333231; P8-BE-NEXT:    rldimi 4, 4, 32, 0232; P8-BE-NEXT:    stxvw4x 0, 0, 3233; P8-BE-NEXT:    std 4, 16(3)234; P8-BE-NEXT:    blr235;236; P9-BE-LABEL: foo4:237; P9-BE:       # %bb.0: # %entry238; P9-BE-NEXT:    ld 4, L..C3(2) # %const.0239; P9-BE-NEXT:    lxv 0, 0(4)240; P9-BE-NEXT:    lis 4, 3333241; P9-BE-NEXT:    ori 4, 4, 3333242; P9-BE-NEXT:    rldimi 4, 4, 32, 0243; P9-BE-NEXT:    stxv 0, 0(3)244; P9-BE-NEXT:    std 4, 16(3)245; P9-BE-NEXT:    blr246;247; P10-BE-LABEL: foo4:248; P10-BE:       # %bb.0: # %entry249; P10-BE-NEXT:    pli 4, 218434821250; P10-BE-NEXT:    xxspltiw 0, 218434821251; P10-BE-NEXT:    rldimi 4, 4, 32, 0252; P10-BE-NEXT:    stxv 0, 0(3)253; P10-BE-NEXT:    std 4, 16(3)254; P10-BE-NEXT:    blr255;256; P8-LE-LABEL: foo4:257; P8-LE:       # %bb.0: # %entry258; P8-LE-NEXT:    addis 4, 2, .LCPI3_0@toc@ha259; P8-LE-NEXT:    addi 4, 4, .LCPI3_0@toc@l260; P8-LE-NEXT:    lxvd2x 0, 0, 4261; P8-LE-NEXT:    lis 4, 3333262; P8-LE-NEXT:    ori 4, 4, 3333263; P8-LE-NEXT:    rldimi 4, 4, 32, 0264; P8-LE-NEXT:    stxvd2x 0, 0, 3265; P8-LE-NEXT:    std 4, 16(3)266; P8-LE-NEXT:    blr267;268; P9-LE-LABEL: foo4:269; P9-LE:       # %bb.0: # %entry270; P9-LE-NEXT:    addis 4, 2, .LCPI3_0@toc@ha271; P9-LE-NEXT:    addi 4, 4, .LCPI3_0@toc@l272; P9-LE-NEXT:    lxv 0, 0(4)273; P9-LE-NEXT:    lis 4, 3333274; P9-LE-NEXT:    ori 4, 4, 3333275; P9-LE-NEXT:    rldimi 4, 4, 32, 0276; P9-LE-NEXT:    stxv 0, 0(3)277; P9-LE-NEXT:    std 4, 16(3)278; P9-LE-NEXT:    blr279;280; P10-LE-LABEL: foo4:281; P10-LE:       # %bb.0: # %entry282; P10-LE-NEXT:    pli 4, 218434821283; P10-LE-NEXT:    xxspltiw 0, 218434821284; P10-LE-NEXT:    rldimi 4, 4, 32, 0285; P10-LE-NEXT:    stxv 0, 0(3)286; P10-LE-NEXT:    std 4, 16(3)287; P10-LE-NEXT:    blr288entry:289  store <8 x i16> <i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333, i16 3333>, ptr %a, align 2290  %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8291  store i16 3333, ptr %arrayidx8, align 2292  %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9293  store i16 3333, ptr %arrayidx9, align 2294  %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10295  store i16 3333, ptr %arrayidx10, align 2296  %arrayidx11 = getelementptr inbounds i16, ptr %a, i64 11297  store i16 3333, ptr %arrayidx11, align 2298  ret void299}300 301define dso_local void @foo5(ptr nocapture noundef writeonly %a) local_unnamed_addr {302; P8-BE-LABEL: foo5:303; P8-BE:       # %bb.0: # %entry304; P8-BE-NEXT:    ld 4, L..C4(2) # %const.0305; P8-BE-NEXT:    lxvw4x 0, 0, 4306; P8-BE-NEXT:    lis 4, 5307; P8-BE-NEXT:    ori 4, 4, 5653308; P8-BE-NEXT:    stw 4, 16(3)309; P8-BE-NEXT:    stxvw4x 0, 0, 3310; P8-BE-NEXT:    blr311;312; P9-BE-LABEL: foo5:313; P9-BE:       # %bb.0: # %entry314; P9-BE-NEXT:    ld 4, L..C4(2) # %const.0315; P9-BE-NEXT:    lxv 0, 0(4)316; P9-BE-NEXT:    lis 4, 5317; P9-BE-NEXT:    ori 4, 4, 5653318; P9-BE-NEXT:    stw 4, 16(3)319; P9-BE-NEXT:    stxv 0, 0(3)320; P9-BE-NEXT:    blr321;322; P10-BE-LABEL: foo5:323; P10-BE:       # %bb.0: # %entry324; P10-BE-NEXT:    xxspltiw 0, 333333325; P10-BE-NEXT:    pli 4, 333333326; P10-BE-NEXT:    stw 4, 16(3)327; P10-BE-NEXT:    stxv 0, 0(3)328; P10-BE-NEXT:    blr329;330; P8-LE-LABEL: foo5:331; P8-LE:       # %bb.0: # %entry332; P8-LE-NEXT:    addis 4, 2, .LCPI4_0@toc@ha333; P8-LE-NEXT:    addi 4, 4, .LCPI4_0@toc@l334; P8-LE-NEXT:    lxvd2x 0, 0, 4335; P8-LE-NEXT:    lis 4, 5336; P8-LE-NEXT:    ori 4, 4, 5653337; P8-LE-NEXT:    stw 4, 16(3)338; P8-LE-NEXT:    stxvd2x 0, 0, 3339; P8-LE-NEXT:    blr340;341; P9-LE-LABEL: foo5:342; P9-LE:       # %bb.0: # %entry343; P9-LE-NEXT:    addis 4, 2, .LCPI4_0@toc@ha344; P9-LE-NEXT:    addi 4, 4, .LCPI4_0@toc@l345; P9-LE-NEXT:    lxv 0, 0(4)346; P9-LE-NEXT:    lis 4, 5347; P9-LE-NEXT:    ori 4, 4, 5653348; P9-LE-NEXT:    stw 4, 16(3)349; P9-LE-NEXT:    stxv 0, 0(3)350; P9-LE-NEXT:    blr351;352; P10-LE-LABEL: foo5:353; P10-LE:       # %bb.0: # %entry354; P10-LE-NEXT:    xxspltiw 0, 333333355; P10-LE-NEXT:    pli 4, 333333356; P10-LE-NEXT:    stw 4, 16(3)357; P10-LE-NEXT:    stxv 0, 0(3)358; P10-LE-NEXT:    blr359entry:360  store <4 x i32> <i32 333333, i32 333333, i32 333333, i32 333333>, ptr %a, align 4361  %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4362  store i32 333333, ptr %arrayidx4, align 4363  ret void364}365 366define dso_local void @foo6(ptr nocapture noundef writeonly %a) local_unnamed_addr {367; P8-BE-LABEL: foo6:368; P8-BE:       # %bb.0: # %entry369; P8-BE-NEXT:    ld 4, L..C5(2) # %const.0370; P8-BE-NEXT:    lxvw4x 0, 0, 4371; P8-BE-NEXT:    lis 4, 5372; P8-BE-NEXT:    ori 4, 4, 5653373; P8-BE-NEXT:    rldimi 4, 4, 32, 0374; P8-BE-NEXT:    stxvw4x 0, 0, 3375; P8-BE-NEXT:    std 4, 16(3)376; P8-BE-NEXT:    blr377;378; P9-BE-LABEL: foo6:379; P9-BE:       # %bb.0: # %entry380; P9-BE-NEXT:    ld 4, L..C5(2) # %const.0381; P9-BE-NEXT:    lxv 0, 0(4)382; P9-BE-NEXT:    lis 4, 5383; P9-BE-NEXT:    ori 4, 4, 5653384; P9-BE-NEXT:    rldimi 4, 4, 32, 0385; P9-BE-NEXT:    stxv 0, 0(3)386; P9-BE-NEXT:    std 4, 16(3)387; P9-BE-NEXT:    blr388;389; P10-BE-LABEL: foo6:390; P10-BE:       # %bb.0: # %entry391; P10-BE-NEXT:    pli 4, 333333392; P10-BE-NEXT:    xxspltiw 0, 333333393; P10-BE-NEXT:    rldimi 4, 4, 32, 0394; P10-BE-NEXT:    stxv 0, 0(3)395; P10-BE-NEXT:    std 4, 16(3)396; P10-BE-NEXT:    blr397;398; P8-LE-LABEL: foo6:399; P8-LE:       # %bb.0: # %entry400; P8-LE-NEXT:    addis 4, 2, .LCPI5_0@toc@ha401; P8-LE-NEXT:    addi 4, 4, .LCPI5_0@toc@l402; P8-LE-NEXT:    lxvd2x 0, 0, 4403; P8-LE-NEXT:    lis 4, 5404; P8-LE-NEXT:    ori 4, 4, 5653405; P8-LE-NEXT:    rldimi 4, 4, 32, 0406; P8-LE-NEXT:    stxvd2x 0, 0, 3407; P8-LE-NEXT:    std 4, 16(3)408; P8-LE-NEXT:    blr409;410; P9-LE-LABEL: foo6:411; P9-LE:       # %bb.0: # %entry412; P9-LE-NEXT:    addis 4, 2, .LCPI5_0@toc@ha413; P9-LE-NEXT:    addi 4, 4, .LCPI5_0@toc@l414; P9-LE-NEXT:    lxv 0, 0(4)415; P9-LE-NEXT:    lis 4, 5416; P9-LE-NEXT:    ori 4, 4, 5653417; P9-LE-NEXT:    rldimi 4, 4, 32, 0418; P9-LE-NEXT:    stxv 0, 0(3)419; P9-LE-NEXT:    std 4, 16(3)420; P9-LE-NEXT:    blr421;422; P10-LE-LABEL: foo6:423; P10-LE:       # %bb.0: # %entry424; P10-LE-NEXT:    pli 4, 333333425; P10-LE-NEXT:    xxspltiw 0, 333333426; P10-LE-NEXT:    rldimi 4, 4, 32, 0427; P10-LE-NEXT:    stxv 0, 0(3)428; P10-LE-NEXT:    std 4, 16(3)429; P10-LE-NEXT:    blr430entry:431  store <4 x i32> <i32 333333, i32 333333, i32 333333, i32 333333>, ptr %a, align 4432  %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4433  store i32 333333, ptr %arrayidx4, align 4434  %arrayidx5 = getelementptr inbounds i32, ptr %a, i64 5435  store i32 333333, ptr %arrayidx5, align 4436  ret void437}438 439define dso_local void @foo7(ptr nocapture noundef writeonly %a) local_unnamed_addr {440; P8-BE-LABEL: foo7:441; P8-BE:       # %bb.0: # %entry442; P8-BE-NEXT:    ld 4, L..C6(2) # %const.0443; P8-BE-NEXT:    lxvd2x 0, 0, 4444; P8-BE-NEXT:    lis 4, 508445; P8-BE-NEXT:    ori 4, 4, 41045446; P8-BE-NEXT:    std 4, 16(3)447; P8-BE-NEXT:    stxvd2x 0, 0, 3448; P8-BE-NEXT:    blr449;450; P9-BE-LABEL: foo7:451; P9-BE:       # %bb.0: # %entry452; P9-BE-NEXT:    ld 4, L..C6(2) # %const.0453; P9-BE-NEXT:    lxv 0, 0(4)454; P9-BE-NEXT:    lis 4, 508455; P9-BE-NEXT:    ori 4, 4, 41045456; P9-BE-NEXT:    std 4, 16(3)457; P9-BE-NEXT:    stxv 0, 0(3)458; P9-BE-NEXT:    blr459;460; P10-BE-LABEL: foo7:461; P10-BE:       # %bb.0: # %entry462; P10-BE-NEXT:    xxlxor 0, 0, 0463; P10-BE-NEXT:    pli 4, 33333333464; P10-BE-NEXT:    xxsplti32dx 0, 1, 33333333465; P10-BE-NEXT:    std 4, 16(3)466; P10-BE-NEXT:    stxv 0, 0(3)467; P10-BE-NEXT:    blr468;469; P8-LE-LABEL: foo7:470; P8-LE:       # %bb.0: # %entry471; P8-LE-NEXT:    addis 4, 2, .LCPI6_0@toc@ha472; P8-LE-NEXT:    addi 4, 4, .LCPI6_0@toc@l473; P8-LE-NEXT:    lxvd2x 0, 0, 4474; P8-LE-NEXT:    lis 4, 508475; P8-LE-NEXT:    ori 4, 4, 41045476; P8-LE-NEXT:    std 4, 16(3)477; P8-LE-NEXT:    stxvd2x 0, 0, 3478; P8-LE-NEXT:    blr479;480; P9-LE-LABEL: foo7:481; P9-LE:       # %bb.0: # %entry482; P9-LE-NEXT:    addis 4, 2, .LCPI6_0@toc@ha483; P9-LE-NEXT:    addi 4, 4, .LCPI6_0@toc@l484; P9-LE-NEXT:    lxv 0, 0(4)485; P9-LE-NEXT:    lis 4, 508486; P9-LE-NEXT:    ori 4, 4, 41045487; P9-LE-NEXT:    std 4, 16(3)488; P9-LE-NEXT:    stxv 0, 0(3)489; P9-LE-NEXT:    blr490;491; P10-LE-LABEL: foo7:492; P10-LE:       # %bb.0: # %entry493; P10-LE-NEXT:    xxlxor 0, 0, 0494; P10-LE-NEXT:    pli 4, 33333333495; P10-LE-NEXT:    xxsplti32dx 0, 1, 33333333496; P10-LE-NEXT:    std 4, 16(3)497; P10-LE-NEXT:    stxv 0, 0(3)498; P10-LE-NEXT:    blr499entry:500  store <2 x i64> <i64 33333333, i64 33333333>, ptr %a, align 8501  %arrayidx2 = getelementptr inbounds i64, ptr %a, i64 2502  store i64 33333333, ptr %arrayidx2, align 8503  ret void504}505 506define dso_local void @foo8(ptr nocapture noundef writeonly %a) local_unnamed_addr {507; P8-BE-LABEL: foo8:508; P8-BE:       # %bb.0: # %entry509; P8-BE-NEXT:    ld 4, L..C7(2) # %const.0510; P8-BE-NEXT:    lxvw4x 0, 0, 4511; P8-BE-NEXT:    lis 4, 16469512; P8-BE-NEXT:    ori 4, 4, 7864513; P8-BE-NEXT:    stw 4, 16(3)514; P8-BE-NEXT:    stxvw4x 0, 0, 3515; P8-BE-NEXT:    blr516;517; P9-BE-LABEL: foo8:518; P9-BE:       # %bb.0: # %entry519; P9-BE-NEXT:    ld 4, L..C7(2) # %const.0520; P9-BE-NEXT:    lxv 0, 0(4)521; P9-BE-NEXT:    lis 4, 16469522; P9-BE-NEXT:    ori 4, 4, 7864523; P9-BE-NEXT:    stw 4, 16(3)524; P9-BE-NEXT:    stxv 0, 0(3)525; P9-BE-NEXT:    blr526;527; P10-BE-LABEL: foo8:528; P10-BE:       # %bb.0: # %entry529; P10-BE-NEXT:    xxspltiw 0, 1079320248530; P10-BE-NEXT:    pli 4, 1079320248531; P10-BE-NEXT:    stw 4, 16(3)532; P10-BE-NEXT:    stxv 0, 0(3)533; P10-BE-NEXT:    blr534;535; P8-LE-LABEL: foo8:536; P8-LE:       # %bb.0: # %entry537; P8-LE-NEXT:    addis 4, 2, .LCPI7_0@toc@ha538; P8-LE-NEXT:    addi 4, 4, .LCPI7_0@toc@l539; P8-LE-NEXT:    lxvd2x 0, 0, 4540; P8-LE-NEXT:    lis 4, 16469541; P8-LE-NEXT:    ori 4, 4, 7864542; P8-LE-NEXT:    stw 4, 16(3)543; P8-LE-NEXT:    stxvd2x 0, 0, 3544; P8-LE-NEXT:    blr545;546; P9-LE-LABEL: foo8:547; P9-LE:       # %bb.0: # %entry548; P9-LE-NEXT:    addis 4, 2, .LCPI7_0@toc@ha549; P9-LE-NEXT:    addi 4, 4, .LCPI7_0@toc@l550; P9-LE-NEXT:    lxv 0, 0(4)551; P9-LE-NEXT:    lis 4, 16469552; P9-LE-NEXT:    ori 4, 4, 7864553; P9-LE-NEXT:    stw 4, 16(3)554; P9-LE-NEXT:    stxv 0, 0(3)555; P9-LE-NEXT:    blr556;557; P10-LE-LABEL: foo8:558; P10-LE:       # %bb.0: # %entry559; P10-LE-NEXT:    xxspltiw 0, 1079320248560; P10-LE-NEXT:    pli 4, 1079320248561; P10-LE-NEXT:    stw 4, 16(3)562; P10-LE-NEXT:    stxv 0, 0(3)563; P10-LE-NEXT:    blr564entry:565  store <4 x float> <float 0x400AA3D700000000, float 0x400AA3D700000000, float 0x400AA3D700000000, float 0x400AA3D700000000>, ptr %a, align 4566  %arrayidx4 = getelementptr inbounds float, ptr %a, i64 4567  store float 0x400AA3D700000000, ptr %arrayidx4, align 4568  ret void569}570 571define dso_local void @foo9(ptr nocapture noundef writeonly %a) local_unnamed_addr {572; P8-BE-LABEL: foo9:573; P8-BE:       # %bb.0: # %entry574; P8-BE-NEXT:    ld 4, L..C8(2) # %const.0575; P8-BE-NEXT:    lxvd2x 0, 0, 4576; P8-BE-NEXT:    lis 4, 16394577; P8-BE-NEXT:    ori 4, 4, 41943578; P8-BE-NEXT:    rldic 4, 4, 32, 1579; P8-BE-NEXT:    stxvd2x 0, 0, 3580; P8-BE-NEXT:    oris 4, 4, 2621581; P8-BE-NEXT:    ori 4, 4, 28836582; P8-BE-NEXT:    std 4, 16(3)583; P8-BE-NEXT:    blr584;585; P9-BE-LABEL: foo9:586; P9-BE:       # %bb.0: # %entry587; P9-BE-NEXT:    ld 4, L..C8(2) # %const.0588; P9-BE-NEXT:    lxv 0, 0(4)589; P9-BE-NEXT:    lis 4, 16394590; P9-BE-NEXT:    ori 4, 4, 41943591; P9-BE-NEXT:    rldic 4, 4, 32, 1592; P9-BE-NEXT:    stxv 0, 0(3)593; P9-BE-NEXT:    oris 4, 4, 2621594; P9-BE-NEXT:    ori 4, 4, 28836595; P9-BE-NEXT:    std 4, 16(3)596; P9-BE-NEXT:    blr597;598; P10-BE-LABEL: foo9:599; P10-BE:       # %bb.0: # %entry600; P10-BE-NEXT:    xxsplti32dx 0, 0, 1074439127601; P10-BE-NEXT:    pli 4, 1074439127602; P10-BE-NEXT:    pli 5, 171798692603; P10-BE-NEXT:    rldimi 5, 4, 32, 0604; P10-BE-NEXT:    xxsplti32dx 0, 1, 171798692605; P10-BE-NEXT:    std 5, 16(3)606; P10-BE-NEXT:    stxv 0, 0(3)607; P10-BE-NEXT:    blr608;609; P8-LE-LABEL: foo9:610; P8-LE:       # %bb.0: # %entry611; P8-LE-NEXT:    addis 4, 2, .LCPI8_0@toc@ha612; P8-LE-NEXT:    addi 4, 4, .LCPI8_0@toc@l613; P8-LE-NEXT:    lxvd2x 0, 0, 4614; P8-LE-NEXT:    lis 4, 16394615; P8-LE-NEXT:    ori 4, 4, 41943616; P8-LE-NEXT:    rldic 4, 4, 32, 1617; P8-LE-NEXT:    stxvd2x 0, 0, 3618; P8-LE-NEXT:    oris 4, 4, 2621619; P8-LE-NEXT:    ori 4, 4, 28836620; P8-LE-NEXT:    std 4, 16(3)621; P8-LE-NEXT:    blr622;623; P9-LE-LABEL: foo9:624; P9-LE:       # %bb.0: # %entry625; P9-LE-NEXT:    addis 4, 2, .LCPI8_0@toc@ha626; P9-LE-NEXT:    addi 4, 4, .LCPI8_0@toc@l627; P9-LE-NEXT:    lxv 0, 0(4)628; P9-LE-NEXT:    lis 4, 16394629; P9-LE-NEXT:    ori 4, 4, 41943630; P9-LE-NEXT:    rldic 4, 4, 32, 1631; P9-LE-NEXT:    stxv 0, 0(3)632; P9-LE-NEXT:    oris 4, 4, 2621633; P9-LE-NEXT:    ori 4, 4, 28836634; P9-LE-NEXT:    std 4, 16(3)635; P9-LE-NEXT:    blr636;637; P10-LE-LABEL: foo9:638; P10-LE:       # %bb.0: # %entry639; P10-LE-NEXT:    xxsplti32dx 0, 0, 1074439127640; P10-LE-NEXT:    pli 4, 1074439127641; P10-LE-NEXT:    pli 5, 171798692642; P10-LE-NEXT:    rldimi 5, 4, 32, 0643; P10-LE-NEXT:    xxsplti32dx 0, 1, 171798692644; P10-LE-NEXT:    std 5, 16(3)645; P10-LE-NEXT:    stxv 0, 0(3)646; P10-LE-NEXT:    blr647entry:648  store <2 x double> <double 3.330000e+00, double 3.330000e+00>, ptr %a, align 8649  %arrayidx2 = getelementptr inbounds double, ptr %a, i64 2650  store double 3.330000e+00, ptr %arrayidx2, align 8651  ret void652}653 654define dso_local void @foo10(ptr nocapture noundef writeonly %a) local_unnamed_addr {655; P8-BE-LABEL: foo10:656; P8-BE:       # %bb.0: # %entry657; P8-BE-NEXT:    ld 4, L..C9(2) # %const.0658; P8-BE-NEXT:    lxvw4x 0, 0, 4659; P8-BE-NEXT:    lis 4, 16469660; P8-BE-NEXT:    ori 4, 4, 7864661; P8-BE-NEXT:    rldimi 4, 4, 32, 0662; P8-BE-NEXT:    stxvw4x 0, 0, 3663; P8-BE-NEXT:    std 4, 16(3)664; P8-BE-NEXT:    blr665;666; P9-BE-LABEL: foo10:667; P9-BE:       # %bb.0: # %entry668; P9-BE-NEXT:    ld 4, L..C9(2) # %const.0669; P9-BE-NEXT:    lxv 0, 0(4)670; P9-BE-NEXT:    lis 4, 16469671; P9-BE-NEXT:    ori 4, 4, 7864672; P9-BE-NEXT:    rldimi 4, 4, 32, 0673; P9-BE-NEXT:    stxv 0, 0(3)674; P9-BE-NEXT:    std 4, 16(3)675; P9-BE-NEXT:    blr676;677; P10-BE-LABEL: foo10:678; P10-BE:       # %bb.0: # %entry679; P10-BE-NEXT:    pli 4, 1079320248680; P10-BE-NEXT:    xxspltiw 0, 1079320248681; P10-BE-NEXT:    rldimi 4, 4, 32, 0682; P10-BE-NEXT:    stxv 0, 0(3)683; P10-BE-NEXT:    std 4, 16(3)684; P10-BE-NEXT:    blr685;686; P8-LE-LABEL: foo10:687; P8-LE:       # %bb.0: # %entry688; P8-LE-NEXT:    addis 4, 2, .LCPI9_0@toc@ha689; P8-LE-NEXT:    addi 4, 4, .LCPI9_0@toc@l690; P8-LE-NEXT:    lxvd2x 0, 0, 4691; P8-LE-NEXT:    lis 4, 16469692; P8-LE-NEXT:    ori 4, 4, 7864693; P8-LE-NEXT:    rldimi 4, 4, 32, 0694; P8-LE-NEXT:    stxvd2x 0, 0, 3695; P8-LE-NEXT:    std 4, 16(3)696; P8-LE-NEXT:    blr697;698; P9-LE-LABEL: foo10:699; P9-LE:       # %bb.0: # %entry700; P9-LE-NEXT:    addis 4, 2, .LCPI9_0@toc@ha701; P9-LE-NEXT:    addi 4, 4, .LCPI9_0@toc@l702; P9-LE-NEXT:    lxv 0, 0(4)703; P9-LE-NEXT:    lis 4, 16469704; P9-LE-NEXT:    ori 4, 4, 7864705; P9-LE-NEXT:    rldimi 4, 4, 32, 0706; P9-LE-NEXT:    stxv 0, 0(3)707; P9-LE-NEXT:    std 4, 16(3)708; P9-LE-NEXT:    blr709;710; P10-LE-LABEL: foo10:711; P10-LE:       # %bb.0: # %entry712; P10-LE-NEXT:    pli 4, 1079320248713; P10-LE-NEXT:    xxspltiw 0, 1079320248714; P10-LE-NEXT:    rldimi 4, 4, 32, 0715; P10-LE-NEXT:    stxv 0, 0(3)716; P10-LE-NEXT:    std 4, 16(3)717; P10-LE-NEXT:    blr718entry:719  store <4 x float> <float 0x400AA3D700000000, float 0x400AA3D700000000, float 0x400AA3D700000000, float 0x400AA3D700000000>, ptr %a, align 4720  %arrayidx4 = getelementptr inbounds float, ptr %a, i64 4721  store float 0x400AA3D700000000, ptr %arrayidx4, align 4722  %arrayidx5 = getelementptr inbounds float, ptr %a, i64 5723  store float 0x400AA3D700000000, ptr %arrayidx5, align 4724  ret void725}726