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