1748 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_int_be_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {16; P8-BE-LABEL: foo1_int_be_reuse4B: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: lis 4, 102921; P8-BE-NEXT: ori 4, 4, 154322; P8-BE-NEXT: stw 4, 16(3)23; P8-BE-NEXT: li 4, 205724; P8-BE-NEXT: stxvw4x 0, 0, 325; P8-BE-NEXT: sth 4, 20(3)26; P8-BE-NEXT: blr27;28; P9-BE-LABEL: foo1_int_be_reuse4B:29; P9-BE: # %bb.0: # %entry30; P9-BE-NEXT: ld 4, L..C0(2) # %const.031; P9-BE-NEXT: lxv 0, 0(4)32; P9-BE-NEXT: lis 4, 102933; P9-BE-NEXT: ori 4, 4, 154334; P9-BE-NEXT: stw 4, 16(3)35; P9-BE-NEXT: li 4, 205736; P9-BE-NEXT: stxv 0, 0(3)37; P9-BE-NEXT: sth 4, 20(3)38; P9-BE-NEXT: blr39;40; P10-BE-LABEL: foo1_int_be_reuse4B:41; P10-BE: # %bb.0: # %entry42; P10-BE-NEXT: ld 4, L..C0(2) # %const.043; P10-BE-NEXT: lxv 0, 0(4)44; P10-BE-NEXT: pli 4, 6743808745; P10-BE-NEXT: stw 4, 16(3)46; P10-BE-NEXT: li 4, 205747; P10-BE-NEXT: sth 4, 20(3)48; P10-BE-NEXT: stxv 0, 0(3)49; P10-BE-NEXT: blr50;51; P8-LE-LABEL: foo1_int_be_reuse4B:52; P8-LE: # %bb.0: # %entry53; P8-LE-NEXT: addis 4, 2, .LCPI0_0@toc@ha54; P8-LE-NEXT: addi 4, 4, .LCPI0_0@toc@l55; P8-LE-NEXT: lxvd2x 0, 0, 456; P8-LE-NEXT: lis 4, 179857; P8-LE-NEXT: ori 4, 4, 128458; P8-LE-NEXT: stw 4, 16(3)59; P8-LE-NEXT: li 4, 231260; P8-LE-NEXT: stxvd2x 0, 0, 361; P8-LE-NEXT: sth 4, 20(3)62; P8-LE-NEXT: blr63;64; P9-LE-LABEL: foo1_int_be_reuse4B:65; P9-LE: # %bb.0: # %entry66; P9-LE-NEXT: addis 4, 2, .LCPI0_0@toc@ha67; P9-LE-NEXT: addi 4, 4, .LCPI0_0@toc@l68; P9-LE-NEXT: lxv 0, 0(4)69; P9-LE-NEXT: lis 4, 179870; P9-LE-NEXT: ori 4, 4, 128471; P9-LE-NEXT: stw 4, 16(3)72; P9-LE-NEXT: li 4, 231273; P9-LE-NEXT: stxv 0, 0(3)74; P9-LE-NEXT: sth 4, 20(3)75; P9-LE-NEXT: blr76;77; P10-LE-LABEL: foo1_int_be_reuse4B:78; P10-LE: # %bb.0: # %entry79; P10-LE-NEXT: plxv 0, .LCPI0_0@PCREL(0), 180; P10-LE-NEXT: pli 4, 11783501281; P10-LE-NEXT: stw 4, 16(3)82; P10-LE-NEXT: li 4, 231283; P10-LE-NEXT: sth 4, 20(3)84; P10-LE-NEXT: stxv 0, 0(3)85; P10-LE-NEXT: blr86entry:87 store <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, ptr %a, align 188 %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 1689 store i8 4, ptr %arrayidx16, align 190 %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 1791 store i8 5, ptr %arrayidx17, align 192 %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 1893 store i8 6, ptr %arrayidx18, align 194 %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 1995 store i8 7, ptr %arrayidx19, align 196 %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 2097 store i8 8, ptr %arrayidx20, align 198 %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 2199 store i8 9, ptr %arrayidx21, align 1100 ret void101}102 103define dso_local void @foo2_int_le_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {104; P8-BE-LABEL: foo2_int_le_reuse4B:105; P8-BE: # %bb.0: # %entry106; P8-BE-NEXT: ld 4, L..C1(2) # %const.0107; P8-BE-NEXT: lxvw4x 0, 0, 4108; P8-BE-NEXT: lis 4, 2057109; P8-BE-NEXT: ori 4, 4, 2571110; P8-BE-NEXT: stw 4, 16(3)111; P8-BE-NEXT: li 4, 3085112; P8-BE-NEXT: stxvw4x 0, 0, 3113; P8-BE-NEXT: sth 4, 20(3)114; P8-BE-NEXT: blr115;116; P9-BE-LABEL: foo2_int_le_reuse4B:117; P9-BE: # %bb.0: # %entry118; P9-BE-NEXT: ld 4, L..C1(2) # %const.0119; P9-BE-NEXT: lxv 0, 0(4)120; P9-BE-NEXT: lis 4, 2057121; P9-BE-NEXT: ori 4, 4, 2571122; P9-BE-NEXT: stw 4, 16(3)123; P9-BE-NEXT: li 4, 3085124; P9-BE-NEXT: stxv 0, 0(3)125; P9-BE-NEXT: sth 4, 20(3)126; P9-BE-NEXT: blr127;128; P10-BE-LABEL: foo2_int_le_reuse4B:129; P10-BE: # %bb.0: # %entry130; P10-BE-NEXT: ld 4, L..C1(2) # %const.0131; P10-BE-NEXT: lxv 0, 0(4)132; P10-BE-NEXT: pli 4, 134810123133; P10-BE-NEXT: stw 4, 16(3)134; P10-BE-NEXT: li 4, 3085135; P10-BE-NEXT: sth 4, 20(3)136; P10-BE-NEXT: stxv 0, 0(3)137; P10-BE-NEXT: blr138;139; P8-LE-LABEL: foo2_int_le_reuse4B:140; P8-LE: # %bb.0: # %entry141; P8-LE-NEXT: addis 4, 2, .LCPI1_0@toc@ha142; P8-LE-NEXT: addi 4, 4, .LCPI1_0@toc@l143; P8-LE-NEXT: lxvd2x 0, 0, 4144; P8-LE-NEXT: lis 4, 2826145; P8-LE-NEXT: ori 4, 4, 2312146; P8-LE-NEXT: stw 4, 16(3)147; P8-LE-NEXT: li 4, 3340148; P8-LE-NEXT: stxvd2x 0, 0, 3149; P8-LE-NEXT: sth 4, 20(3)150; P8-LE-NEXT: blr151;152; P9-LE-LABEL: foo2_int_le_reuse4B:153; P9-LE: # %bb.0: # %entry154; P9-LE-NEXT: addis 4, 2, .LCPI1_0@toc@ha155; P9-LE-NEXT: addi 4, 4, .LCPI1_0@toc@l156; P9-LE-NEXT: lxv 0, 0(4)157; P9-LE-NEXT: lis 4, 2826158; P9-LE-NEXT: ori 4, 4, 2312159; P9-LE-NEXT: stw 4, 16(3)160; P9-LE-NEXT: li 4, 3340161; P9-LE-NEXT: stxv 0, 0(3)162; P9-LE-NEXT: sth 4, 20(3)163; P9-LE-NEXT: blr164;165; P10-LE-LABEL: foo2_int_le_reuse4B:166; P10-LE: # %bb.0: # %entry167; P10-LE-NEXT: plxv 0, .LCPI1_0@PCREL(0), 1168; P10-LE-NEXT: pli 4, 185207048169; P10-LE-NEXT: stw 4, 16(3)170; P10-LE-NEXT: li 4, 3340171; P10-LE-NEXT: sth 4, 20(3)172; P10-LE-NEXT: stxv 0, 0(3)173; P10-LE-NEXT: blr174entry:175 store <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, ptr %a, align 1176 %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16177 store i8 8, ptr %arrayidx16, align 1178 %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17179 store i8 9, ptr %arrayidx17, align 1180 %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18181 store i8 10, ptr %arrayidx18, align 1182 %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19183 store i8 11, ptr %arrayidx19, align 1184 %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20185 store i8 12, ptr %arrayidx20, align 1186 %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21187 store i8 13, ptr %arrayidx21, align 1188 ret void189}190 191define dso_local void @foo3_int_be_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {192; P8-BE-LABEL: foo3_int_be_reuse4B:193; P8-BE: # %bb.0: # %entry194; P8-BE-NEXT: ld 4, L..C2(2) # %const.0195; P8-BE-NEXT: lxvw4x 0, 0, 4196; P8-BE-NEXT: lis 4, 1029197; P8-BE-NEXT: ori 4, 4, 1543198; P8-BE-NEXT: stw 4, 16(3)199; P8-BE-NEXT: li 4, 2057200; P8-BE-NEXT: stxvw4x 0, 0, 3201; P8-BE-NEXT: sth 4, 20(3)202; P8-BE-NEXT: blr203;204; P9-BE-LABEL: foo3_int_be_reuse4B:205; P9-BE: # %bb.0: # %entry206; P9-BE-NEXT: ld 4, L..C2(2) # %const.0207; P9-BE-NEXT: lxv 0, 0(4)208; P9-BE-NEXT: lis 4, 1029209; P9-BE-NEXT: ori 4, 4, 1543210; P9-BE-NEXT: stw 4, 16(3)211; P9-BE-NEXT: li 4, 2057212; P9-BE-NEXT: stxv 0, 0(3)213; P9-BE-NEXT: sth 4, 20(3)214; P9-BE-NEXT: blr215;216; P10-BE-LABEL: foo3_int_be_reuse4B:217; P10-BE: # %bb.0: # %entry218; P10-BE-NEXT: ld 4, L..C2(2) # %const.0219; P10-BE-NEXT: lxv 0, 0(4)220; P10-BE-NEXT: pli 4, 67438087221; P10-BE-NEXT: stw 4, 16(3)222; P10-BE-NEXT: li 4, 2057223; P10-BE-NEXT: sth 4, 20(3)224; P10-BE-NEXT: stxv 0, 0(3)225; P10-BE-NEXT: blr226;227; P8-LE-LABEL: foo3_int_be_reuse4B:228; P8-LE: # %bb.0: # %entry229; P8-LE-NEXT: addis 4, 2, .LCPI2_0@toc@ha230; P8-LE-NEXT: addi 4, 4, .LCPI2_0@toc@l231; P8-LE-NEXT: lxvd2x 0, 0, 4232; P8-LE-NEXT: lis 4, 1543233; P8-LE-NEXT: ori 4, 4, 1029234; P8-LE-NEXT: stw 4, 16(3)235; P8-LE-NEXT: li 4, 2057236; P8-LE-NEXT: stxvd2x 0, 0, 3237; P8-LE-NEXT: sth 4, 20(3)238; P8-LE-NEXT: blr239;240; P9-LE-LABEL: foo3_int_be_reuse4B:241; P9-LE: # %bb.0: # %entry242; P9-LE-NEXT: addis 4, 2, .LCPI2_0@toc@ha243; P9-LE-NEXT: addi 4, 4, .LCPI2_0@toc@l244; P9-LE-NEXT: lxv 0, 0(4)245; P9-LE-NEXT: lis 4, 1543246; P9-LE-NEXT: ori 4, 4, 1029247; P9-LE-NEXT: stw 4, 16(3)248; P9-LE-NEXT: li 4, 2057249; P9-LE-NEXT: stxv 0, 0(3)250; P9-LE-NEXT: sth 4, 20(3)251; P9-LE-NEXT: blr252;253; P10-LE-LABEL: foo3_int_be_reuse4B:254; P10-LE: # %bb.0: # %entry255; P10-LE-NEXT: plxv 0, .LCPI2_0@PCREL(0), 1256; P10-LE-NEXT: pli 4, 101123077257; P10-LE-NEXT: stw 4, 16(3)258; P10-LE-NEXT: li 4, 2057259; P10-LE-NEXT: sth 4, 20(3)260; P10-LE-NEXT: stxv 0, 0(3)261; P10-LE-NEXT: blr262entry:263 store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2264 %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8265 store i16 1029, ptr %arrayidx8, align 2266 %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9267 store i16 1543, ptr %arrayidx9, align 2268 %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10269 store i16 2057, ptr %arrayidx10, align 2270 ret void271}272 273define dso_local void @foo4_int_le_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {274; P8-BE-LABEL: foo4_int_le_reuse4B:275; P8-BE: # %bb.0: # %entry276; P8-BE-NEXT: ld 4, L..C3(2) # %const.0277; P8-BE-NEXT: lxvw4x 0, 0, 4278; P8-BE-NEXT: lis 4, 2057279; P8-BE-NEXT: ori 4, 4, 2571280; P8-BE-NEXT: stw 4, 16(3)281; P8-BE-NEXT: li 4, 3085282; P8-BE-NEXT: stxvw4x 0, 0, 3283; P8-BE-NEXT: sth 4, 20(3)284; P8-BE-NEXT: blr285;286; P9-BE-LABEL: foo4_int_le_reuse4B:287; P9-BE: # %bb.0: # %entry288; P9-BE-NEXT: ld 4, L..C3(2) # %const.0289; P9-BE-NEXT: lxv 0, 0(4)290; P9-BE-NEXT: lis 4, 2057291; P9-BE-NEXT: ori 4, 4, 2571292; P9-BE-NEXT: stw 4, 16(3)293; P9-BE-NEXT: li 4, 3085294; P9-BE-NEXT: stxv 0, 0(3)295; P9-BE-NEXT: sth 4, 20(3)296; P9-BE-NEXT: blr297;298; P10-BE-LABEL: foo4_int_le_reuse4B:299; P10-BE: # %bb.0: # %entry300; P10-BE-NEXT: ld 4, L..C3(2) # %const.0301; P10-BE-NEXT: lxv 0, 0(4)302; P10-BE-NEXT: pli 4, 134810123303; P10-BE-NEXT: stw 4, 16(3)304; P10-BE-NEXT: li 4, 3085305; P10-BE-NEXT: sth 4, 20(3)306; P10-BE-NEXT: stxv 0, 0(3)307; P10-BE-NEXT: blr308;309; P8-LE-LABEL: foo4_int_le_reuse4B:310; P8-LE: # %bb.0: # %entry311; P8-LE-NEXT: addis 4, 2, .LCPI3_0@toc@ha312; P8-LE-NEXT: addi 4, 4, .LCPI3_0@toc@l313; P8-LE-NEXT: lxvd2x 0, 0, 4314; P8-LE-NEXT: lis 4, 2571315; P8-LE-NEXT: ori 4, 4, 2057316; P8-LE-NEXT: stw 4, 16(3)317; P8-LE-NEXT: li 4, 3085318; P8-LE-NEXT: stxvd2x 0, 0, 3319; P8-LE-NEXT: sth 4, 20(3)320; P8-LE-NEXT: blr321;322; P9-LE-LABEL: foo4_int_le_reuse4B:323; P9-LE: # %bb.0: # %entry324; P9-LE-NEXT: addis 4, 2, .LCPI3_0@toc@ha325; P9-LE-NEXT: addi 4, 4, .LCPI3_0@toc@l326; P9-LE-NEXT: lxv 0, 0(4)327; P9-LE-NEXT: lis 4, 2571328; P9-LE-NEXT: ori 4, 4, 2057329; P9-LE-NEXT: stw 4, 16(3)330; P9-LE-NEXT: li 4, 3085331; P9-LE-NEXT: stxv 0, 0(3)332; P9-LE-NEXT: sth 4, 20(3)333; P9-LE-NEXT: blr334;335; P10-LE-LABEL: foo4_int_le_reuse4B:336; P10-LE: # %bb.0: # %entry337; P10-LE-NEXT: plxv 0, .LCPI3_0@PCREL(0), 1338; P10-LE-NEXT: pli 4, 168495113339; P10-LE-NEXT: stw 4, 16(3)340; P10-LE-NEXT: li 4, 3085341; P10-LE-NEXT: sth 4, 20(3)342; P10-LE-NEXT: stxv 0, 0(3)343; P10-LE-NEXT: blr344entry:345 store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2346 %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8347 store i16 2057, ptr %arrayidx8, align 2348 %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9349 store i16 2571, ptr %arrayidx9, align 2350 %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10351 store i16 3085, ptr %arrayidx10, align 2352 ret void353}354 355define dso_local void @foo5_int_be_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {356; P8-BE-LABEL: foo5_int_be_reuse4B:357; P8-BE: # %bb.0: # %entry358; P8-BE-NEXT: ld 4, L..C4(2) # %const.0359; P8-BE-NEXT: lxvw4x 0, 0, 4360; P8-BE-NEXT: lis 4, 1029361; P8-BE-NEXT: ori 4, 4, 1543362; P8-BE-NEXT: stw 4, 16(3)363; P8-BE-NEXT: stxvw4x 0, 0, 3364; P8-BE-NEXT: blr365;366; P9-BE-LABEL: foo5_int_be_reuse4B:367; P9-BE: # %bb.0: # %entry368; P9-BE-NEXT: ld 4, L..C4(2) # %const.0369; P9-BE-NEXT: lxv 0, 0(4)370; P9-BE-NEXT: lis 4, 1029371; P9-BE-NEXT: ori 4, 4, 1543372; P9-BE-NEXT: stw 4, 16(3)373; P9-BE-NEXT: stxv 0, 0(3)374; P9-BE-NEXT: blr375;376; P10-BE-LABEL: foo5_int_be_reuse4B:377; P10-BE: # %bb.0: # %entry378; P10-BE-NEXT: ld 4, L..C4(2) # %const.0379; P10-BE-NEXT: lxv 0, 0(4)380; P10-BE-NEXT: pli 4, 67438087381; P10-BE-NEXT: stw 4, 16(3)382; P10-BE-NEXT: stxv 0, 0(3)383; P10-BE-NEXT: blr384;385; P8-LE-LABEL: foo5_int_be_reuse4B:386; P8-LE: # %bb.0: # %entry387; P8-LE-NEXT: addis 4, 2, .LCPI4_0@toc@ha388; P8-LE-NEXT: addi 4, 4, .LCPI4_0@toc@l389; P8-LE-NEXT: lxvd2x 0, 0, 4390; P8-LE-NEXT: lis 4, 1029391; P8-LE-NEXT: ori 4, 4, 1543392; P8-LE-NEXT: stw 4, 16(3)393; P8-LE-NEXT: stxvd2x 0, 0, 3394; P8-LE-NEXT: blr395;396; P9-LE-LABEL: foo5_int_be_reuse4B:397; P9-LE: # %bb.0: # %entry398; P9-LE-NEXT: addis 4, 2, .LCPI4_0@toc@ha399; P9-LE-NEXT: addi 4, 4, .LCPI4_0@toc@l400; P9-LE-NEXT: lxv 0, 0(4)401; P9-LE-NEXT: lis 4, 1029402; P9-LE-NEXT: ori 4, 4, 1543403; P9-LE-NEXT: stw 4, 16(3)404; P9-LE-NEXT: stxv 0, 0(3)405; P9-LE-NEXT: blr406;407; P10-LE-LABEL: foo5_int_be_reuse4B:408; P10-LE: # %bb.0: # %entry409; P10-LE-NEXT: plxv 0, .LCPI4_0@PCREL(0), 1410; P10-LE-NEXT: pli 4, 67438087411; P10-LE-NEXT: stw 4, 16(3)412; P10-LE-NEXT: stxv 0, 0(3)413; P10-LE-NEXT: blr414entry:415 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4416 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4417 store i32 67438087, ptr %arrayidx4, align 4418 ret void419}420 421define dso_local void @foo6_int_le_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {422; P8-BE-LABEL: foo6_int_le_reuse4B:423; P8-BE: # %bb.0: # %entry424; P8-BE-NEXT: ld 4, L..C5(2) # %const.0425; P8-BE-NEXT: lxvw4x 0, 0, 4426; P8-BE-NEXT: lis 4, 2057427; P8-BE-NEXT: ori 4, 4, 2571428; P8-BE-NEXT: stw 4, 16(3)429; P8-BE-NEXT: stxvw4x 0, 0, 3430; P8-BE-NEXT: blr431;432; P9-BE-LABEL: foo6_int_le_reuse4B:433; P9-BE: # %bb.0: # %entry434; P9-BE-NEXT: ld 4, L..C5(2) # %const.0435; P9-BE-NEXT: lxv 0, 0(4)436; P9-BE-NEXT: lis 4, 2057437; P9-BE-NEXT: ori 4, 4, 2571438; P9-BE-NEXT: stw 4, 16(3)439; P9-BE-NEXT: stxv 0, 0(3)440; P9-BE-NEXT: blr441;442; P10-BE-LABEL: foo6_int_le_reuse4B:443; P10-BE: # %bb.0: # %entry444; P10-BE-NEXT: ld 4, L..C5(2) # %const.0445; P10-BE-NEXT: lxv 0, 0(4)446; P10-BE-NEXT: pli 4, 134810123447; P10-BE-NEXT: stw 4, 16(3)448; P10-BE-NEXT: stxv 0, 0(3)449; P10-BE-NEXT: blr450;451; P8-LE-LABEL: foo6_int_le_reuse4B:452; P8-LE: # %bb.0: # %entry453; P8-LE-NEXT: addis 4, 2, .LCPI5_0@toc@ha454; P8-LE-NEXT: addi 4, 4, .LCPI5_0@toc@l455; P8-LE-NEXT: lxvd2x 0, 0, 4456; P8-LE-NEXT: lis 4, 2057457; P8-LE-NEXT: ori 4, 4, 2571458; P8-LE-NEXT: stw 4, 16(3)459; P8-LE-NEXT: stxvd2x 0, 0, 3460; P8-LE-NEXT: blr461;462; P9-LE-LABEL: foo6_int_le_reuse4B:463; P9-LE: # %bb.0: # %entry464; P9-LE-NEXT: addis 4, 2, .LCPI5_0@toc@ha465; P9-LE-NEXT: addi 4, 4, .LCPI5_0@toc@l466; P9-LE-NEXT: lxv 0, 0(4)467; P9-LE-NEXT: lis 4, 2057468; P9-LE-NEXT: ori 4, 4, 2571469; P9-LE-NEXT: stw 4, 16(3)470; P9-LE-NEXT: stxv 0, 0(3)471; P9-LE-NEXT: blr472;473; P10-LE-LABEL: foo6_int_le_reuse4B:474; P10-LE: # %bb.0: # %entry475; P10-LE-NEXT: plxv 0, .LCPI5_0@PCREL(0), 1476; P10-LE-NEXT: pli 4, 134810123477; P10-LE-NEXT: stw 4, 16(3)478; P10-LE-NEXT: stxv 0, 0(3)479; P10-LE-NEXT: blr480entry:481 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4482 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4483 store i32 134810123, ptr %arrayidx4, align 4484 ret void485}486 487define dso_local void @foo7_int_be_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {488; P8-BE-LABEL: foo7_int_be_reuse8B:489; P8-BE: # %bb.0: # %entry490; P8-BE-NEXT: ld 4, L..C6(2) # %const.0491; P8-BE-NEXT: lxvw4x 0, 0, 4492; P8-BE-NEXT: lis 4, 1493; P8-BE-NEXT: ori 4, 4, 515494; P8-BE-NEXT: rldic 4, 4, 32, 15495; P8-BE-NEXT: stxvw4x 0, 0, 3496; P8-BE-NEXT: oris 4, 4, 1029497; P8-BE-NEXT: ori 4, 4, 1543498; P8-BE-NEXT: std 4, 16(3)499; P8-BE-NEXT: blr500;501; P9-BE-LABEL: foo7_int_be_reuse8B:502; P9-BE: # %bb.0: # %entry503; P9-BE-NEXT: ld 4, L..C6(2) # %const.0504; P9-BE-NEXT: lxv 0, 0(4)505; P9-BE-NEXT: lis 4, 1506; P9-BE-NEXT: ori 4, 4, 515507; P9-BE-NEXT: rldic 4, 4, 32, 15508; P9-BE-NEXT: stxv 0, 0(3)509; P9-BE-NEXT: oris 4, 4, 1029510; P9-BE-NEXT: ori 4, 4, 1543511; P9-BE-NEXT: std 4, 16(3)512; P9-BE-NEXT: blr513;514; P10-BE-LABEL: foo7_int_be_reuse8B:515; P10-BE: # %bb.0: # %entry516; P10-BE-NEXT: ld 4, L..C6(2) # %const.0517; P10-BE-NEXT: pli 5, 67438087518; P10-BE-NEXT: lxv 0, 0(4)519; P10-BE-NEXT: pli 4, 66051520; P10-BE-NEXT: rldimi 5, 4, 32, 0521; P10-BE-NEXT: std 5, 16(3)522; P10-BE-NEXT: stxv 0, 0(3)523; P10-BE-NEXT: blr524;525; P8-LE-LABEL: foo7_int_be_reuse8B:526; P8-LE: # %bb.0: # %entry527; P8-LE-NEXT: addis 4, 2, .LCPI6_0@toc@ha528; P8-LE-NEXT: addi 4, 4, .LCPI6_0@toc@l529; P8-LE-NEXT: lxvd2x 0, 0, 4530; P8-LE-NEXT: lis 4, 449531; P8-LE-NEXT: ori 4, 4, 33089532; P8-LE-NEXT: rldic 4, 4, 34, 5533; P8-LE-NEXT: stxvd2x 0, 0, 3534; P8-LE-NEXT: oris 4, 4, 770535; P8-LE-NEXT: ori 4, 4, 256536; P8-LE-NEXT: std 4, 16(3)537; P8-LE-NEXT: blr538;539; P9-LE-LABEL: foo7_int_be_reuse8B:540; P9-LE: # %bb.0: # %entry541; P9-LE-NEXT: addis 4, 2, .LCPI6_0@toc@ha542; P9-LE-NEXT: addi 4, 4, .LCPI6_0@toc@l543; P9-LE-NEXT: lxv 0, 0(4)544; P9-LE-NEXT: lis 4, 449545; P9-LE-NEXT: ori 4, 4, 33089546; P9-LE-NEXT: rldic 4, 4, 34, 5547; P9-LE-NEXT: stxv 0, 0(3)548; P9-LE-NEXT: oris 4, 4, 770549; P9-LE-NEXT: ori 4, 4, 256550; P9-LE-NEXT: std 4, 16(3)551; P9-LE-NEXT: blr552;553; P10-LE-LABEL: foo7_int_be_reuse8B:554; P10-LE: # %bb.0: # %entry555; P10-LE-NEXT: plxv 0, .LCPI6_0@PCREL(0), 1556; P10-LE-NEXT: pli 4, 117835012557; P10-LE-NEXT: pli 5, 50462976558; P10-LE-NEXT: rldimi 5, 4, 32, 0559; P10-LE-NEXT: std 5, 16(3)560; P10-LE-NEXT: stxv 0, 0(3)561; P10-LE-NEXT: blr562entry:563 store <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, ptr %a, align 1564 %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16565 store i8 0, ptr %arrayidx16, align 1566 %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17567 store i8 1, ptr %arrayidx17, align 1568 %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18569 store i8 2, ptr %arrayidx18, align 1570 %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19571 store i8 3, ptr %arrayidx19, align 1572 %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20573 store i8 4, ptr %arrayidx20, align 1574 %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21575 store i8 5, ptr %arrayidx21, align 1576 %arrayidx22 = getelementptr inbounds i8, ptr %a, i64 22577 store i8 6, ptr %arrayidx22, align 1578 %arrayidx23 = getelementptr inbounds i8, ptr %a, i64 23579 store i8 7, ptr %arrayidx23, align 1580 ret void581}582 583define dso_local void @foo8_int_le_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {584; P8-BE-LABEL: foo8_int_le_reuse8B:585; P8-BE: # %bb.0: # %entry586; P8-BE-NEXT: ld 4, L..C7(2) # %const.0587; P8-BE-NEXT: lxvw4x 0, 0, 4588; P8-BE-NEXT: lis 4, 2057589; P8-BE-NEXT: ori 4, 4, 2571590; P8-BE-NEXT: rldic 4, 4, 32, 4591; P8-BE-NEXT: stxvw4x 0, 0, 3592; P8-BE-NEXT: oris 4, 4, 3085593; P8-BE-NEXT: ori 4, 4, 3599594; P8-BE-NEXT: std 4, 16(3)595; P8-BE-NEXT: blr596;597; P9-BE-LABEL: foo8_int_le_reuse8B:598; P9-BE: # %bb.0: # %entry599; P9-BE-NEXT: ld 4, L..C7(2) # %const.0600; P9-BE-NEXT: lxv 0, 0(4)601; P9-BE-NEXT: lis 4, 2057602; P9-BE-NEXT: ori 4, 4, 2571603; P9-BE-NEXT: rldic 4, 4, 32, 4604; P9-BE-NEXT: stxv 0, 0(3)605; P9-BE-NEXT: oris 4, 4, 3085606; P9-BE-NEXT: ori 4, 4, 3599607; P9-BE-NEXT: std 4, 16(3)608; P9-BE-NEXT: blr609;610; P10-BE-LABEL: foo8_int_le_reuse8B:611; P10-BE: # %bb.0: # %entry612; P10-BE-NEXT: ld 4, L..C7(2) # %const.0613; P10-BE-NEXT: pli 5, 202182159614; P10-BE-NEXT: lxv 0, 0(4)615; P10-BE-NEXT: pli 4, 134810123616; P10-BE-NEXT: rldimi 5, 4, 32, 0617; P10-BE-NEXT: std 5, 16(3)618; P10-BE-NEXT: stxv 0, 0(3)619; P10-BE-NEXT: blr620;621; P8-LE-LABEL: foo8_int_le_reuse8B:622; P8-LE: # %bb.0: # %entry623; P8-LE-NEXT: addis 4, 2, .LCPI7_0@toc@ha624; P8-LE-NEXT: addi 4, 4, .LCPI7_0@toc@l625; P8-LE-NEXT: lxvd2x 0, 0, 4626; P8-LE-NEXT: lis 4, 963627; P8-LE-NEXT: ori 4, 4, 33603628; P8-LE-NEXT: rldic 4, 4, 34, 4629; P8-LE-NEXT: stxvd2x 0, 0, 3630; P8-LE-NEXT: oris 4, 4, 2826631; P8-LE-NEXT: ori 4, 4, 2312632; P8-LE-NEXT: std 4, 16(3)633; P8-LE-NEXT: blr634;635; P9-LE-LABEL: foo8_int_le_reuse8B:636; P9-LE: # %bb.0: # %entry637; P9-LE-NEXT: addis 4, 2, .LCPI7_0@toc@ha638; P9-LE-NEXT: addi 4, 4, .LCPI7_0@toc@l639; P9-LE-NEXT: lxv 0, 0(4)640; P9-LE-NEXT: lis 4, 963641; P9-LE-NEXT: ori 4, 4, 33603642; P9-LE-NEXT: rldic 4, 4, 34, 4643; P9-LE-NEXT: stxv 0, 0(3)644; P9-LE-NEXT: oris 4, 4, 2826645; P9-LE-NEXT: ori 4, 4, 2312646; P9-LE-NEXT: std 4, 16(3)647; P9-LE-NEXT: blr648;649; P10-LE-LABEL: foo8_int_le_reuse8B:650; P10-LE: # %bb.0: # %entry651; P10-LE-NEXT: plxv 0, .LCPI7_0@PCREL(0), 1652; P10-LE-NEXT: pli 4, 252579084653; P10-LE-NEXT: pli 5, 185207048654; P10-LE-NEXT: rldimi 5, 4, 32, 0655; P10-LE-NEXT: std 5, 16(3)656; P10-LE-NEXT: stxv 0, 0(3)657; P10-LE-NEXT: blr658entry:659 store <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, ptr %a, align 1660 %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16661 store i8 8, ptr %arrayidx16, align 1662 %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17663 store i8 9, ptr %arrayidx17, align 1664 %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18665 store i8 10, ptr %arrayidx18, align 1666 %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19667 store i8 11, ptr %arrayidx19, align 1668 %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20669 store i8 12, ptr %arrayidx20, align 1670 %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21671 store i8 13, ptr %arrayidx21, align 1672 %arrayidx22 = getelementptr inbounds i8, ptr %a, i64 22673 store i8 14, ptr %arrayidx22, align 1674 %arrayidx23 = getelementptr inbounds i8, ptr %a, i64 23675 store i8 15, ptr %arrayidx23, align 1676 ret void677}678 679define dso_local void @foo9_int_be_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {680; P8-BE-LABEL: foo9_int_be_reuse8B:681; P8-BE: # %bb.0: # %entry682; P8-BE-NEXT: ld 4, L..C8(2) # %const.0683; P8-BE-NEXT: lxvw4x 0, 0, 4684; P8-BE-NEXT: lis 4, 1685; P8-BE-NEXT: ori 4, 4, 515686; P8-BE-NEXT: rldic 4, 4, 32, 15687; P8-BE-NEXT: stxvw4x 0, 0, 3688; P8-BE-NEXT: oris 4, 4, 1029689; P8-BE-NEXT: ori 4, 4, 1543690; P8-BE-NEXT: std 4, 16(3)691; P8-BE-NEXT: blr692;693; P9-BE-LABEL: foo9_int_be_reuse8B:694; P9-BE: # %bb.0: # %entry695; P9-BE-NEXT: ld 4, L..C8(2) # %const.0696; P9-BE-NEXT: lxv 0, 0(4)697; P9-BE-NEXT: lis 4, 1698; P9-BE-NEXT: ori 4, 4, 515699; P9-BE-NEXT: rldic 4, 4, 32, 15700; P9-BE-NEXT: stxv 0, 0(3)701; P9-BE-NEXT: oris 4, 4, 1029702; P9-BE-NEXT: ori 4, 4, 1543703; P9-BE-NEXT: std 4, 16(3)704; P9-BE-NEXT: blr705;706; P10-BE-LABEL: foo9_int_be_reuse8B:707; P10-BE: # %bb.0: # %entry708; P10-BE-NEXT: ld 4, L..C8(2) # %const.0709; P10-BE-NEXT: pli 5, 67438087710; P10-BE-NEXT: lxv 0, 0(4)711; P10-BE-NEXT: pli 4, 66051712; P10-BE-NEXT: rldimi 5, 4, 32, 0713; P10-BE-NEXT: std 5, 16(3)714; P10-BE-NEXT: stxv 0, 0(3)715; P10-BE-NEXT: blr716;717; P8-LE-LABEL: foo9_int_be_reuse8B:718; P8-LE: # %bb.0: # %entry719; P8-LE-NEXT: addis 4, 2, .LCPI8_0@toc@ha720; P8-LE-NEXT: addi 4, 4, .LCPI8_0@toc@l721; P8-LE-NEXT: lxvd2x 0, 0, 4722; P8-LE-NEXT: lis 4, 1543723; P8-LE-NEXT: ori 4, 4, 1029724; P8-LE-NEXT: rldic 4, 4, 32, 5725; P8-LE-NEXT: stxvd2x 0, 0, 3726; P8-LE-NEXT: oris 4, 4, 515727; P8-LE-NEXT: ori 4, 4, 1728; P8-LE-NEXT: std 4, 16(3)729; P8-LE-NEXT: blr730;731; P9-LE-LABEL: foo9_int_be_reuse8B:732; P9-LE: # %bb.0: # %entry733; P9-LE-NEXT: addis 4, 2, .LCPI8_0@toc@ha734; P9-LE-NEXT: addi 4, 4, .LCPI8_0@toc@l735; P9-LE-NEXT: lxv 0, 0(4)736; P9-LE-NEXT: lis 4, 1543737; P9-LE-NEXT: ori 4, 4, 1029738; P9-LE-NEXT: rldic 4, 4, 32, 5739; P9-LE-NEXT: stxv 0, 0(3)740; P9-LE-NEXT: oris 4, 4, 515741; P9-LE-NEXT: ori 4, 4, 1742; P9-LE-NEXT: std 4, 16(3)743; P9-LE-NEXT: blr744;745; P10-LE-LABEL: foo9_int_be_reuse8B:746; P10-LE: # %bb.0: # %entry747; P10-LE-NEXT: plxv 0, .LCPI8_0@PCREL(0), 1748; P10-LE-NEXT: pli 4, 101123077749; P10-LE-NEXT: pli 5, 33751041750; P10-LE-NEXT: rldimi 5, 4, 32, 0751; P10-LE-NEXT: std 5, 16(3)752; P10-LE-NEXT: stxv 0, 0(3)753; P10-LE-NEXT: blr754entry:755 store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2756 %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8757 store i16 1, ptr %arrayidx8, align 2758 %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9759 store i16 515, ptr %arrayidx9, align 2760 %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10761 store i16 1029, ptr %arrayidx10, align 2762 %arrayidx11 = getelementptr inbounds i16, ptr %a, i64 11763 store i16 1543, ptr %arrayidx11, align 2764 ret void765}766 767define dso_local void @foo10_int_le_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {768; P8-BE-LABEL: foo10_int_le_reuse8B:769; P8-BE: # %bb.0: # %entry770; P8-BE-NEXT: ld 4, L..C9(2) # %const.0771; P8-BE-NEXT: lxvw4x 0, 0, 4772; P8-BE-NEXT: lis 4, 2057773; P8-BE-NEXT: ori 4, 4, 2571774; P8-BE-NEXT: rldic 4, 4, 32, 4775; P8-BE-NEXT: stxvw4x 0, 0, 3776; P8-BE-NEXT: oris 4, 4, 3085777; P8-BE-NEXT: ori 4, 4, 3599778; P8-BE-NEXT: std 4, 16(3)779; P8-BE-NEXT: blr780;781; P9-BE-LABEL: foo10_int_le_reuse8B:782; P9-BE: # %bb.0: # %entry783; P9-BE-NEXT: ld 4, L..C9(2) # %const.0784; P9-BE-NEXT: lxv 0, 0(4)785; P9-BE-NEXT: lis 4, 2057786; P9-BE-NEXT: ori 4, 4, 2571787; P9-BE-NEXT: rldic 4, 4, 32, 4788; P9-BE-NEXT: stxv 0, 0(3)789; P9-BE-NEXT: oris 4, 4, 3085790; P9-BE-NEXT: ori 4, 4, 3599791; P9-BE-NEXT: std 4, 16(3)792; P9-BE-NEXT: blr793;794; P10-BE-LABEL: foo10_int_le_reuse8B:795; P10-BE: # %bb.0: # %entry796; P10-BE-NEXT: ld 4, L..C9(2) # %const.0797; P10-BE-NEXT: pli 5, 202182159798; P10-BE-NEXT: lxv 0, 0(4)799; P10-BE-NEXT: pli 4, 134810123800; P10-BE-NEXT: rldimi 5, 4, 32, 0801; P10-BE-NEXT: std 5, 16(3)802; P10-BE-NEXT: stxv 0, 0(3)803; P10-BE-NEXT: blr804;805; P8-LE-LABEL: foo10_int_le_reuse8B:806; P8-LE: # %bb.0: # %entry807; P8-LE-NEXT: addis 4, 2, .LCPI9_0@toc@ha808; P8-LE-NEXT: addi 4, 4, .LCPI9_0@toc@l809; P8-LE-NEXT: lxvd2x 0, 0, 4810; P8-LE-NEXT: lis 4, 3599811; P8-LE-NEXT: ori 4, 4, 3085812; P8-LE-NEXT: rldic 4, 4, 32, 4813; P8-LE-NEXT: stxvd2x 0, 0, 3814; P8-LE-NEXT: oris 4, 4, 2571815; P8-LE-NEXT: ori 4, 4, 2057816; P8-LE-NEXT: std 4, 16(3)817; P8-LE-NEXT: blr818;819; P9-LE-LABEL: foo10_int_le_reuse8B:820; P9-LE: # %bb.0: # %entry821; P9-LE-NEXT: addis 4, 2, .LCPI9_0@toc@ha822; P9-LE-NEXT: addi 4, 4, .LCPI9_0@toc@l823; P9-LE-NEXT: lxv 0, 0(4)824; P9-LE-NEXT: lis 4, 3599825; P9-LE-NEXT: ori 4, 4, 3085826; P9-LE-NEXT: rldic 4, 4, 32, 4827; P9-LE-NEXT: stxv 0, 0(3)828; P9-LE-NEXT: oris 4, 4, 2571829; P9-LE-NEXT: ori 4, 4, 2057830; P9-LE-NEXT: std 4, 16(3)831; P9-LE-NEXT: blr832;833; P10-LE-LABEL: foo10_int_le_reuse8B:834; P10-LE: # %bb.0: # %entry835; P10-LE-NEXT: plxv 0, .LCPI9_0@PCREL(0), 1836; P10-LE-NEXT: pli 4, 235867149837; P10-LE-NEXT: pli 5, 168495113838; P10-LE-NEXT: rldimi 5, 4, 32, 0839; P10-LE-NEXT: std 5, 16(3)840; P10-LE-NEXT: stxv 0, 0(3)841; P10-LE-NEXT: blr842entry:843 store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2844 %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8845 store i16 2057, ptr %arrayidx8, align 2846 %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9847 store i16 2571, ptr %arrayidx9, align 2848 %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10849 store i16 3085, ptr %arrayidx10, align 2850 %arrayidx11 = getelementptr inbounds i16, ptr %a, i64 11851 store i16 3599, ptr %arrayidx11, align 2852 ret void853}854 855define dso_local void @foo11_int_be_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {856; P8-BE-LABEL: foo11_int_be_reuse8B:857; P8-BE: # %bb.0: # %entry858; P8-BE-NEXT: ld 4, L..C10(2) # %const.0859; P8-BE-NEXT: lxvw4x 0, 0, 4860; P8-BE-NEXT: lis 4, 1861; P8-BE-NEXT: ori 4, 4, 515862; P8-BE-NEXT: rldic 4, 4, 32, 15863; P8-BE-NEXT: stxvw4x 0, 0, 3864; P8-BE-NEXT: oris 4, 4, 1029865; P8-BE-NEXT: ori 4, 4, 1543866; P8-BE-NEXT: std 4, 16(3)867; P8-BE-NEXT: blr868;869; P9-BE-LABEL: foo11_int_be_reuse8B:870; P9-BE: # %bb.0: # %entry871; P9-BE-NEXT: ld 4, L..C10(2) # %const.0872; P9-BE-NEXT: lxv 0, 0(4)873; P9-BE-NEXT: lis 4, 1874; P9-BE-NEXT: ori 4, 4, 515875; P9-BE-NEXT: rldic 4, 4, 32, 15876; P9-BE-NEXT: stxv 0, 0(3)877; P9-BE-NEXT: oris 4, 4, 1029878; P9-BE-NEXT: ori 4, 4, 1543879; P9-BE-NEXT: std 4, 16(3)880; P9-BE-NEXT: blr881;882; P10-BE-LABEL: foo11_int_be_reuse8B:883; P10-BE: # %bb.0: # %entry884; P10-BE-NEXT: ld 4, L..C10(2) # %const.0885; P10-BE-NEXT: pli 5, 67438087886; P10-BE-NEXT: lxv 0, 0(4)887; P10-BE-NEXT: pli 4, 66051888; P10-BE-NEXT: rldimi 5, 4, 32, 0889; P10-BE-NEXT: std 5, 16(3)890; P10-BE-NEXT: stxv 0, 0(3)891; P10-BE-NEXT: blr892;893; P8-LE-LABEL: foo11_int_be_reuse8B:894; P8-LE: # %bb.0: # %entry895; P8-LE-NEXT: addis 4, 2, .LCPI10_0@toc@ha896; P8-LE-NEXT: addi 4, 4, .LCPI10_0@toc@l897; P8-LE-NEXT: lxvd2x 0, 0, 4898; P8-LE-NEXT: lis 4, 1029899; P8-LE-NEXT: ori 4, 4, 1543900; P8-LE-NEXT: rldic 4, 4, 32, 5901; P8-LE-NEXT: stxvd2x 0, 0, 3902; P8-LE-NEXT: oris 4, 4, 1903; P8-LE-NEXT: ori 4, 4, 515904; P8-LE-NEXT: std 4, 16(3)905; P8-LE-NEXT: blr906;907; P9-LE-LABEL: foo11_int_be_reuse8B:908; P9-LE: # %bb.0: # %entry909; P9-LE-NEXT: addis 4, 2, .LCPI10_0@toc@ha910; P9-LE-NEXT: addi 4, 4, .LCPI10_0@toc@l911; P9-LE-NEXT: lxv 0, 0(4)912; P9-LE-NEXT: lis 4, 1029913; P9-LE-NEXT: ori 4, 4, 1543914; P9-LE-NEXT: rldic 4, 4, 32, 5915; P9-LE-NEXT: stxv 0, 0(3)916; P9-LE-NEXT: oris 4, 4, 1917; P9-LE-NEXT: ori 4, 4, 515918; P9-LE-NEXT: std 4, 16(3)919; P9-LE-NEXT: blr920;921; P10-LE-LABEL: foo11_int_be_reuse8B:922; P10-LE: # %bb.0: # %entry923; P10-LE-NEXT: plxv 0, .LCPI10_0@PCREL(0), 1924; P10-LE-NEXT: pli 4, 67438087925; P10-LE-NEXT: pli 5, 66051926; P10-LE-NEXT: rldimi 5, 4, 32, 0927; P10-LE-NEXT: std 5, 16(3)928; P10-LE-NEXT: stxv 0, 0(3)929; P10-LE-NEXT: blr930entry:931 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4932 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4933 store i32 66051, ptr %arrayidx4, align 4934 %arrayidx5 = getelementptr inbounds i32, ptr %a, i64 5935 store i32 67438087, ptr %arrayidx5, align 4936 ret void937}938 939define dso_local void @foo12_int_le_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {940; P8-BE-LABEL: foo12_int_le_reuse8B:941; P8-BE: # %bb.0: # %entry942; P8-BE-NEXT: ld 4, L..C11(2) # %const.0943; P8-BE-NEXT: lxvw4x 0, 0, 4944; P8-BE-NEXT: lis 4, 2057945; P8-BE-NEXT: ori 4, 4, 2571946; P8-BE-NEXT: rldic 4, 4, 32, 4947; P8-BE-NEXT: stxvw4x 0, 0, 3948; P8-BE-NEXT: oris 4, 4, 3085949; P8-BE-NEXT: ori 4, 4, 3599950; P8-BE-NEXT: std 4, 16(3)951; P8-BE-NEXT: blr952;953; P9-BE-LABEL: foo12_int_le_reuse8B:954; P9-BE: # %bb.0: # %entry955; P9-BE-NEXT: ld 4, L..C11(2) # %const.0956; P9-BE-NEXT: lxv 0, 0(4)957; P9-BE-NEXT: lis 4, 2057958; P9-BE-NEXT: ori 4, 4, 2571959; P9-BE-NEXT: rldic 4, 4, 32, 4960; P9-BE-NEXT: stxv 0, 0(3)961; P9-BE-NEXT: oris 4, 4, 3085962; P9-BE-NEXT: ori 4, 4, 3599963; P9-BE-NEXT: std 4, 16(3)964; P9-BE-NEXT: blr965;966; P10-BE-LABEL: foo12_int_le_reuse8B:967; P10-BE: # %bb.0: # %entry968; P10-BE-NEXT: ld 4, L..C11(2) # %const.0969; P10-BE-NEXT: pli 5, 202182159970; P10-BE-NEXT: lxv 0, 0(4)971; P10-BE-NEXT: pli 4, 134810123972; P10-BE-NEXT: rldimi 5, 4, 32, 0973; P10-BE-NEXT: std 5, 16(3)974; P10-BE-NEXT: stxv 0, 0(3)975; P10-BE-NEXT: blr976;977; P8-LE-LABEL: foo12_int_le_reuse8B:978; P8-LE: # %bb.0: # %entry979; P8-LE-NEXT: addis 4, 2, .LCPI11_0@toc@ha980; P8-LE-NEXT: addi 4, 4, .LCPI11_0@toc@l981; P8-LE-NEXT: lxvd2x 0, 0, 4982; P8-LE-NEXT: lis 4, 3085983; P8-LE-NEXT: ori 4, 4, 3599984; P8-LE-NEXT: rldic 4, 4, 32, 4985; P8-LE-NEXT: stxvd2x 0, 0, 3986; P8-LE-NEXT: oris 4, 4, 2057987; P8-LE-NEXT: ori 4, 4, 2571988; P8-LE-NEXT: std 4, 16(3)989; P8-LE-NEXT: blr990;991; P9-LE-LABEL: foo12_int_le_reuse8B:992; P9-LE: # %bb.0: # %entry993; P9-LE-NEXT: addis 4, 2, .LCPI11_0@toc@ha994; P9-LE-NEXT: addi 4, 4, .LCPI11_0@toc@l995; P9-LE-NEXT: lxv 0, 0(4)996; P9-LE-NEXT: lis 4, 3085997; P9-LE-NEXT: ori 4, 4, 3599998; P9-LE-NEXT: rldic 4, 4, 32, 4999; P9-LE-NEXT: stxv 0, 0(3)1000; P9-LE-NEXT: oris 4, 4, 20571001; P9-LE-NEXT: ori 4, 4, 25711002; P9-LE-NEXT: std 4, 16(3)1003; P9-LE-NEXT: blr1004;1005; P10-LE-LABEL: foo12_int_le_reuse8B:1006; P10-LE: # %bb.0: # %entry1007; P10-LE-NEXT: plxv 0, .LCPI11_0@PCREL(0), 11008; P10-LE-NEXT: pli 4, 2021821591009; P10-LE-NEXT: pli 5, 1348101231010; P10-LE-NEXT: rldimi 5, 4, 32, 01011; P10-LE-NEXT: std 5, 16(3)1012; P10-LE-NEXT: stxv 0, 0(3)1013; P10-LE-NEXT: blr1014entry:1015 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 41016 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 41017 store i32 134810123, ptr %arrayidx4, align 41018 %arrayidx5 = getelementptr inbounds i32, ptr %a, i64 51019 store i32 202182159, ptr %arrayidx5, align 41020 ret void1021}1022 1023define dso_local void @foo13_int_be_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {1024; P8-BE-LABEL: foo13_int_be_reuse8B:1025; P8-BE: # %bb.0: # %entry1026; P8-BE-NEXT: ld 4, L..C12(2) # %const.01027; P8-BE-NEXT: lxvd2x 0, 0, 41028; P8-BE-NEXT: lis 4, 11029; P8-BE-NEXT: ori 4, 4, 5151030; P8-BE-NEXT: rldic 4, 4, 32, 151031; P8-BE-NEXT: stxvd2x 0, 0, 31032; P8-BE-NEXT: oris 4, 4, 10291033; P8-BE-NEXT: ori 4, 4, 15431034; P8-BE-NEXT: std 4, 16(3)1035; P8-BE-NEXT: blr1036;1037; P9-BE-LABEL: foo13_int_be_reuse8B:1038; P9-BE: # %bb.0: # %entry1039; P9-BE-NEXT: ld 4, L..C12(2) # %const.01040; P9-BE-NEXT: lxv 0, 0(4)1041; P9-BE-NEXT: lis 4, 11042; P9-BE-NEXT: ori 4, 4, 5151043; P9-BE-NEXT: rldic 4, 4, 32, 151044; P9-BE-NEXT: stxv 0, 0(3)1045; P9-BE-NEXT: oris 4, 4, 10291046; P9-BE-NEXT: ori 4, 4, 15431047; P9-BE-NEXT: std 4, 16(3)1048; P9-BE-NEXT: blr1049;1050; P10-BE-LABEL: foo13_int_be_reuse8B:1051; P10-BE: # %bb.0: # %entry1052; P10-BE-NEXT: ld 4, L..C12(2) # %const.01053; P10-BE-NEXT: pli 5, 674380871054; P10-BE-NEXT: lxv 0, 0(4)1055; P10-BE-NEXT: pli 4, 660511056; P10-BE-NEXT: rldimi 5, 4, 32, 01057; P10-BE-NEXT: std 5, 16(3)1058; P10-BE-NEXT: stxv 0, 0(3)1059; P10-BE-NEXT: blr1060;1061; P8-LE-LABEL: foo13_int_be_reuse8B:1062; P8-LE: # %bb.0: # %entry1063; P8-LE-NEXT: addis 4, 2, .LCPI12_0@toc@ha1064; P8-LE-NEXT: addi 4, 4, .LCPI12_0@toc@l1065; P8-LE-NEXT: lxvd2x 0, 0, 41066; P8-LE-NEXT: lis 4, 11067; P8-LE-NEXT: ori 4, 4, 5151068; P8-LE-NEXT: rldic 4, 4, 32, 151069; P8-LE-NEXT: stxvd2x 0, 0, 31070; P8-LE-NEXT: oris 4, 4, 10291071; P8-LE-NEXT: ori 4, 4, 15431072; P8-LE-NEXT: std 4, 16(3)1073; P8-LE-NEXT: blr1074;1075; P9-LE-LABEL: foo13_int_be_reuse8B:1076; P9-LE: # %bb.0: # %entry1077; P9-LE-NEXT: addis 4, 2, .LCPI12_0@toc@ha1078; P9-LE-NEXT: addi 4, 4, .LCPI12_0@toc@l1079; P9-LE-NEXT: lxv 0, 0(4)1080; P9-LE-NEXT: lis 4, 11081; P9-LE-NEXT: ori 4, 4, 5151082; P9-LE-NEXT: rldic 4, 4, 32, 151083; P9-LE-NEXT: stxv 0, 0(3)1084; P9-LE-NEXT: oris 4, 4, 10291085; P9-LE-NEXT: ori 4, 4, 15431086; P9-LE-NEXT: std 4, 16(3)1087; P9-LE-NEXT: blr1088;1089; P10-LE-LABEL: foo13_int_be_reuse8B:1090; P10-LE: # %bb.0: # %entry1091; P10-LE-NEXT: plxv 0, .LCPI12_0@PCREL(0), 11092; P10-LE-NEXT: pli 4, 660511093; P10-LE-NEXT: pli 5, 674380871094; P10-LE-NEXT: rldimi 5, 4, 32, 01095; P10-LE-NEXT: std 5, 16(3)1096; P10-LE-NEXT: stxv 0, 0(3)1097; P10-LE-NEXT: blr1098entry:1099 store <2 x i64> <i64 283686952306183, i64 579005069656919567>, ptr %a, align 81100 %arrayidx2 = getelementptr inbounds i64, ptr %a, i64 21101 store i64 283686952306183, ptr %arrayidx2, align 81102 ret void1103}1104 1105define dso_local void @foo14_int_le_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {1106; P8-BE-LABEL: foo14_int_le_reuse8B:1107; P8-BE: # %bb.0: # %entry1108; P8-BE-NEXT: ld 4, L..C13(2) # %const.01109; P8-BE-NEXT: lxvd2x 0, 0, 41110; P8-BE-NEXT: lis 4, 20571111; P8-BE-NEXT: ori 4, 4, 25711112; P8-BE-NEXT: rldic 4, 4, 32, 41113; P8-BE-NEXT: stxvd2x 0, 0, 31114; P8-BE-NEXT: oris 4, 4, 30851115; P8-BE-NEXT: ori 4, 4, 35991116; P8-BE-NEXT: std 4, 16(3)1117; P8-BE-NEXT: blr1118;1119; P9-BE-LABEL: foo14_int_le_reuse8B:1120; P9-BE: # %bb.0: # %entry1121; P9-BE-NEXT: ld 4, L..C13(2) # %const.01122; P9-BE-NEXT: lxv 0, 0(4)1123; P9-BE-NEXT: lis 4, 20571124; P9-BE-NEXT: ori 4, 4, 25711125; P9-BE-NEXT: rldic 4, 4, 32, 41126; P9-BE-NEXT: stxv 0, 0(3)1127; P9-BE-NEXT: oris 4, 4, 30851128; P9-BE-NEXT: ori 4, 4, 35991129; P9-BE-NEXT: std 4, 16(3)1130; P9-BE-NEXT: blr1131;1132; P10-BE-LABEL: foo14_int_le_reuse8B:1133; P10-BE: # %bb.0: # %entry1134; P10-BE-NEXT: ld 4, L..C13(2) # %const.01135; P10-BE-NEXT: pli 5, 2021821591136; P10-BE-NEXT: lxv 0, 0(4)1137; P10-BE-NEXT: pli 4, 1348101231138; P10-BE-NEXT: rldimi 5, 4, 32, 01139; P10-BE-NEXT: std 5, 16(3)1140; P10-BE-NEXT: stxv 0, 0(3)1141; P10-BE-NEXT: blr1142;1143; P8-LE-LABEL: foo14_int_le_reuse8B:1144; P8-LE: # %bb.0: # %entry1145; P8-LE-NEXT: addis 4, 2, .LCPI13_0@toc@ha1146; P8-LE-NEXT: addi 4, 4, .LCPI13_0@toc@l1147; P8-LE-NEXT: lxvd2x 0, 0, 41148; P8-LE-NEXT: lis 4, 20571149; P8-LE-NEXT: ori 4, 4, 25711150; P8-LE-NEXT: rldic 4, 4, 32, 41151; P8-LE-NEXT: stxvd2x 0, 0, 31152; P8-LE-NEXT: oris 4, 4, 30851153; P8-LE-NEXT: ori 4, 4, 35991154; P8-LE-NEXT: std 4, 16(3)1155; P8-LE-NEXT: blr1156;1157; P9-LE-LABEL: foo14_int_le_reuse8B:1158; P9-LE: # %bb.0: # %entry1159; P9-LE-NEXT: addis 4, 2, .LCPI13_0@toc@ha1160; P9-LE-NEXT: addi 4, 4, .LCPI13_0@toc@l1161; P9-LE-NEXT: lxv 0, 0(4)1162; P9-LE-NEXT: lis 4, 20571163; P9-LE-NEXT: ori 4, 4, 25711164; P9-LE-NEXT: rldic 4, 4, 32, 41165; P9-LE-NEXT: stxv 0, 0(3)1166; P9-LE-NEXT: oris 4, 4, 30851167; P9-LE-NEXT: ori 4, 4, 35991168; P9-LE-NEXT: std 4, 16(3)1169; P9-LE-NEXT: blr1170;1171; P10-LE-LABEL: foo14_int_le_reuse8B:1172; P10-LE: # %bb.0: # %entry1173; P10-LE-NEXT: plxv 0, .LCPI13_0@PCREL(0), 11174; P10-LE-NEXT: pli 4, 1348101231175; P10-LE-NEXT: pli 5, 2021821591176; P10-LE-NEXT: rldimi 5, 4, 32, 01177; P10-LE-NEXT: std 5, 16(3)1178; P10-LE-NEXT: stxv 0, 0(3)1179; P10-LE-NEXT: blr1180entry:1181 store <2 x i64> <i64 283686952306183, i64 579005069656919567>, ptr %a, align 81182 %arrayidx2 = getelementptr inbounds i64, ptr %a, i64 21183 store i64 579005069656919567, ptr %arrayidx2, align 81184 ret void1185}1186 1187define dso_local void @foo15_int_noreuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {1188; P8-BE-LABEL: foo15_int_noreuse4B:1189; P8-BE: # %bb.0: # %entry1190; P8-BE-NEXT: ld 4, L..C14(2) # %const.01191; P8-BE-NEXT: lxvw4x 0, 0, 41192; P8-BE-NEXT: lis 4, 10291193; P8-BE-NEXT: ori 4, 4, 15441194; P8-BE-NEXT: stw 4, 16(3)1195; P8-BE-NEXT: stxvw4x 0, 0, 31196; P8-BE-NEXT: blr1197;1198; P9-BE-LABEL: foo15_int_noreuse4B:1199; P9-BE: # %bb.0: # %entry1200; P9-BE-NEXT: ld 4, L..C14(2) # %const.01201; P9-BE-NEXT: lxv 0, 0(4)1202; P9-BE-NEXT: lis 4, 10291203; P9-BE-NEXT: ori 4, 4, 15441204; P9-BE-NEXT: stw 4, 16(3)1205; P9-BE-NEXT: stxv 0, 0(3)1206; P9-BE-NEXT: blr1207;1208; P10-BE-LABEL: foo15_int_noreuse4B:1209; P10-BE: # %bb.0: # %entry1210; P10-BE-NEXT: ld 4, L..C14(2) # %const.01211; P10-BE-NEXT: lxv 0, 0(4)1212; P10-BE-NEXT: pli 4, 674380881213; P10-BE-NEXT: stw 4, 16(3)1214; P10-BE-NEXT: stxv 0, 0(3)1215; P10-BE-NEXT: blr1216;1217; P8-LE-LABEL: foo15_int_noreuse4B:1218; P8-LE: # %bb.0: # %entry1219; P8-LE-NEXT: addis 4, 2, .LCPI14_0@toc@ha1220; P8-LE-NEXT: addi 4, 4, .LCPI14_0@toc@l1221; P8-LE-NEXT: lxvd2x 0, 0, 41222; P8-LE-NEXT: lis 4, 10291223; P8-LE-NEXT: ori 4, 4, 15441224; P8-LE-NEXT: stw 4, 16(3)1225; P8-LE-NEXT: stxvd2x 0, 0, 31226; P8-LE-NEXT: blr1227;1228; P9-LE-LABEL: foo15_int_noreuse4B:1229; P9-LE: # %bb.0: # %entry1230; P9-LE-NEXT: addis 4, 2, .LCPI14_0@toc@ha1231; P9-LE-NEXT: addi 4, 4, .LCPI14_0@toc@l1232; P9-LE-NEXT: lxv 0, 0(4)1233; P9-LE-NEXT: lis 4, 10291234; P9-LE-NEXT: ori 4, 4, 15441235; P9-LE-NEXT: stw 4, 16(3)1236; P9-LE-NEXT: stxv 0, 0(3)1237; P9-LE-NEXT: blr1238;1239; P10-LE-LABEL: foo15_int_noreuse4B:1240; P10-LE: # %bb.0: # %entry1241; P10-LE-NEXT: plxv 0, .LCPI14_0@PCREL(0), 11242; P10-LE-NEXT: pli 4, 674380881243; P10-LE-NEXT: stw 4, 16(3)1244; P10-LE-NEXT: stxv 0, 0(3)1245; P10-LE-NEXT: blr1246entry:1247 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 41248 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 41249 store i32 67438088, ptr %arrayidx4, align 41250 ret void1251}1252 1253define dso_local void @foo16_int_noreuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {1254; P8-BE-LABEL: foo16_int_noreuse8B:1255; P8-BE: # %bb.0: # %entry1256; P8-BE-NEXT: ld 4, L..C15(2) # %const.01257; P8-BE-NEXT: lxvw4x 0, 0, 41258; P8-BE-NEXT: lis 4, 11259; P8-BE-NEXT: ori 4, 4, 5151260; P8-BE-NEXT: rldic 4, 4, 32, 151261; P8-BE-NEXT: stxvw4x 0, 0, 31262; P8-BE-NEXT: oris 4, 4, 10291263; P8-BE-NEXT: ori 4, 4, 15441264; P8-BE-NEXT: std 4, 16(3)1265; P8-BE-NEXT: blr1266;1267; P9-BE-LABEL: foo16_int_noreuse8B:1268; P9-BE: # %bb.0: # %entry1269; P9-BE-NEXT: ld 4, L..C15(2) # %const.01270; P9-BE-NEXT: lxv 0, 0(4)1271; P9-BE-NEXT: lis 4, 11272; P9-BE-NEXT: ori 4, 4, 5151273; P9-BE-NEXT: rldic 4, 4, 32, 151274; P9-BE-NEXT: stxv 0, 0(3)1275; P9-BE-NEXT: oris 4, 4, 10291276; P9-BE-NEXT: ori 4, 4, 15441277; P9-BE-NEXT: std 4, 16(3)1278; P9-BE-NEXT: blr1279;1280; P10-BE-LABEL: foo16_int_noreuse8B:1281; P10-BE: # %bb.0: # %entry1282; P10-BE-NEXT: ld 4, L..C15(2) # %const.01283; P10-BE-NEXT: pli 5, 674380881284; P10-BE-NEXT: lxv 0, 0(4)1285; P10-BE-NEXT: pli 4, 660511286; P10-BE-NEXT: rldimi 5, 4, 32, 01287; P10-BE-NEXT: std 5, 16(3)1288; P10-BE-NEXT: stxv 0, 0(3)1289; P10-BE-NEXT: blr1290;1291; P8-LE-LABEL: foo16_int_noreuse8B:1292; P8-LE: # %bb.0: # %entry1293; P8-LE-NEXT: addis 4, 2, .LCPI15_0@toc@ha1294; P8-LE-NEXT: addi 4, 4, .LCPI15_0@toc@l1295; P8-LE-NEXT: lxvd2x 0, 0, 41296; P8-LE-NEXT: lis 4, 1281297; P8-LE-NEXT: ori 4, 4, 411531298; P8-LE-NEXT: rldic 4, 4, 35, 51299; P8-LE-NEXT: stxvd2x 0, 0, 31300; P8-LE-NEXT: oris 4, 4, 11301; P8-LE-NEXT: ori 4, 4, 5151302; P8-LE-NEXT: std 4, 16(3)1303; P8-LE-NEXT: blr1304;1305; P9-LE-LABEL: foo16_int_noreuse8B:1306; P9-LE: # %bb.0: # %entry1307; P9-LE-NEXT: addis 4, 2, .LCPI15_0@toc@ha1308; P9-LE-NEXT: addi 4, 4, .LCPI15_0@toc@l1309; P9-LE-NEXT: lxv 0, 0(4)1310; P9-LE-NEXT: lis 4, 1281311; P9-LE-NEXT: ori 4, 4, 411531312; P9-LE-NEXT: rldic 4, 4, 35, 51313; P9-LE-NEXT: stxv 0, 0(3)1314; P9-LE-NEXT: oris 4, 4, 11315; P9-LE-NEXT: ori 4, 4, 5151316; P9-LE-NEXT: std 4, 16(3)1317; P9-LE-NEXT: blr1318;1319; P10-LE-LABEL: foo16_int_noreuse8B:1320; P10-LE: # %bb.0: # %entry1321; P10-LE-NEXT: plxv 0, .LCPI15_0@PCREL(0), 11322; P10-LE-NEXT: pli 4, 674380881323; P10-LE-NEXT: pli 5, 660511324; P10-LE-NEXT: rldimi 5, 4, 32, 01325; P10-LE-NEXT: std 5, 16(3)1326; P10-LE-NEXT: stxv 0, 0(3)1327; P10-LE-NEXT: blr1328entry:1329 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 41330 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 41331 store i32 66051, ptr %arrayidx4, align 41332 %arrayidx5 = getelementptr inbounds i32, ptr %a, i64 51333 store i32 67438088, ptr %arrayidx5, align 41334 ret void1335}1336 1337define dso_local void @foo17_fp_be_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {1338; P8-BE-LABEL: foo17_fp_be_reuse4B:1339; P8-BE: # %bb.0: # %entry1340; P8-BE-NEXT: ld 4, L..C16(2) # %const.01341; P8-BE-NEXT: lxvw4x 0, 0, 41342; P8-BE-NEXT: lis 4, 166731343; P8-BE-NEXT: ori 4, 4, 393221344; P8-BE-NEXT: stw 4, 16(3)1345; P8-BE-NEXT: stxvw4x 0, 0, 31346; P8-BE-NEXT: blr1347;1348; P9-BE-LABEL: foo17_fp_be_reuse4B:1349; P9-BE: # %bb.0: # %entry1350; P9-BE-NEXT: ld 4, L..C16(2) # %const.01351; P9-BE-NEXT: lxv 0, 0(4)1352; P9-BE-NEXT: lis 4, 166731353; P9-BE-NEXT: ori 4, 4, 393221354; P9-BE-NEXT: stw 4, 16(3)1355; P9-BE-NEXT: stxv 0, 0(3)1356; P9-BE-NEXT: blr1357;1358; P10-BE-LABEL: foo17_fp_be_reuse4B:1359; P10-BE: # %bb.0: # %entry1360; P10-BE-NEXT: ld 4, L..C16(2) # %const.01361; P10-BE-NEXT: lxv 0, 0(4)1362; P10-BE-NEXT: pli 4, 10927210501363; P10-BE-NEXT: stw 4, 16(3)1364; P10-BE-NEXT: stxv 0, 0(3)1365; P10-BE-NEXT: blr1366;1367; P8-LE-LABEL: foo17_fp_be_reuse4B:1368; P8-LE: # %bb.0: # %entry1369; P8-LE-NEXT: addis 4, 2, .LCPI16_0@toc@ha1370; P8-LE-NEXT: addi 4, 4, .LCPI16_0@toc@l1371; P8-LE-NEXT: lxvd2x 0, 0, 41372; P8-LE-NEXT: lis 4, 166731373; P8-LE-NEXT: ori 4, 4, 393221374; P8-LE-NEXT: stw 4, 16(3)1375; P8-LE-NEXT: stxvd2x 0, 0, 31376; P8-LE-NEXT: blr1377;1378; P9-LE-LABEL: foo17_fp_be_reuse4B:1379; P9-LE: # %bb.0: # %entry1380; P9-LE-NEXT: addis 4, 2, .LCPI16_0@toc@ha1381; P9-LE-NEXT: addi 4, 4, .LCPI16_0@toc@l1382; P9-LE-NEXT: lxv 0, 0(4)1383; P9-LE-NEXT: lis 4, 166731384; P9-LE-NEXT: ori 4, 4, 393221385; P9-LE-NEXT: stw 4, 16(3)1386; P9-LE-NEXT: stxv 0, 0(3)1387; P9-LE-NEXT: blr1388;1389; P10-LE-LABEL: foo17_fp_be_reuse4B:1390; P10-LE: # %bb.0: # %entry1391; P10-LE-NEXT: plxv 0, .LCPI16_0@PCREL(0), 11392; P10-LE-NEXT: pli 4, 10927210501393; P10-LE-NEXT: stw 4, 16(3)1394; P10-LE-NEXT: stxv 0, 0(3)1395; P10-LE-NEXT: blr1396entry:1397 store <4 x float> <float 1.000000e+00, float 0x4024333340000000, float 0x3FF3333340000000, float 0x3FF4CCCCC0000000>, ptr %a, align 41398 %arrayidx4 = getelementptr inbounds float, ptr %a, i64 41399 store float 0x4024333340000000, ptr %arrayidx4, align 41400 ret void1401}1402 1403define dso_local void @foo18_fp_le_reuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr {1404; P8-BE-LABEL: foo18_fp_le_reuse4B:1405; P8-BE: # %bb.0: # %entry1406; P8-BE-NEXT: ld 4, L..C17(2) # %const.01407; P8-BE-NEXT: lxvw4x 0, 0, 41408; P8-BE-NEXT: lis 4, 166751409; P8-BE-NEXT: ori 4, 4, 131071410; P8-BE-NEXT: stw 4, 16(3)1411; P8-BE-NEXT: stxvw4x 0, 0, 31412; P8-BE-NEXT: blr1413;1414; P9-BE-LABEL: foo18_fp_le_reuse4B:1415; P9-BE: # %bb.0: # %entry1416; P9-BE-NEXT: ld 4, L..C17(2) # %const.01417; P9-BE-NEXT: lxv 0, 0(4)1418; P9-BE-NEXT: lis 4, 166751419; P9-BE-NEXT: ori 4, 4, 131071420; P9-BE-NEXT: stw 4, 16(3)1421; P9-BE-NEXT: stxv 0, 0(3)1422; P9-BE-NEXT: blr1423;1424; P10-BE-LABEL: foo18_fp_le_reuse4B:1425; P10-BE: # %bb.0: # %entry1426; P10-BE-NEXT: ld 4, L..C17(2) # %const.01427; P10-BE-NEXT: lxv 0, 0(4)1428; P10-BE-NEXT: pli 4, 10928259071429; P10-BE-NEXT: stw 4, 16(3)1430; P10-BE-NEXT: stxv 0, 0(3)1431; P10-BE-NEXT: blr1432;1433; P8-LE-LABEL: foo18_fp_le_reuse4B:1434; P8-LE: # %bb.0: # %entry1435; P8-LE-NEXT: addis 4, 2, .LCPI17_0@toc@ha1436; P8-LE-NEXT: addi 4, 4, .LCPI17_0@toc@l1437; P8-LE-NEXT: lxvd2x 0, 0, 41438; P8-LE-NEXT: lis 4, 166751439; P8-LE-NEXT: ori 4, 4, 131071440; P8-LE-NEXT: stw 4, 16(3)1441; P8-LE-NEXT: stxvd2x 0, 0, 31442; P8-LE-NEXT: blr1443;1444; P9-LE-LABEL: foo18_fp_le_reuse4B:1445; P9-LE: # %bb.0: # %entry1446; P9-LE-NEXT: addis 4, 2, .LCPI17_0@toc@ha1447; P9-LE-NEXT: addi 4, 4, .LCPI17_0@toc@l1448; P9-LE-NEXT: lxv 0, 0(4)1449; P9-LE-NEXT: lis 4, 166751450; P9-LE-NEXT: ori 4, 4, 131071451; P9-LE-NEXT: stw 4, 16(3)1452; P9-LE-NEXT: stxv 0, 0(3)1453; P9-LE-NEXT: blr1454;1455; P10-LE-LABEL: foo18_fp_le_reuse4B:1456; P10-LE: # %bb.0: # %entry1457; P10-LE-NEXT: plxv 0, .LCPI17_0@PCREL(0), 11458; P10-LE-NEXT: pli 4, 10928259071459; P10-LE-NEXT: stw 4, 16(3)1460; P10-LE-NEXT: stxv 0, 0(3)1461; P10-LE-NEXT: blr1462entry:1463 store <4 x float> <float 1.000000e+00, float 0x3FF19999A0000000, float 0x4024666660000000, float 0x3FF4CCCCC0000000>, ptr %a, align 41464 %arrayidx4 = getelementptr inbounds float, ptr %a, i64 41465 store float 0x4024666660000000, ptr %arrayidx4, align 41466 ret void1467}1468 1469define dso_local void @foo19_fp_be_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {1470; P8-BE-LABEL: foo19_fp_be_reuse8B:1471; P8-BE: # %bb.0: # %entry1472; P8-BE-NEXT: ld 4, L..C18(2) # %const.01473; P8-BE-NEXT: lxvd2x 0, 0, 41474; P8-BE-NEXT: li 4, 41051475; P8-BE-NEXT: rldic 4, 4, 50, 11476; P8-BE-NEXT: std 4, 16(3)1477; P8-BE-NEXT: stxvd2x 0, 0, 31478; P8-BE-NEXT: blr1479;1480; P9-BE-LABEL: foo19_fp_be_reuse8B:1481; P9-BE: # %bb.0: # %entry1482; P9-BE-NEXT: ld 4, L..C18(2) # %const.01483; P9-BE-NEXT: lxv 0, 0(4)1484; P9-BE-NEXT: li 4, 41051485; P9-BE-NEXT: rldic 4, 4, 50, 11486; P9-BE-NEXT: std 4, 16(3)1487; P9-BE-NEXT: stxv 0, 0(3)1488; P9-BE-NEXT: blr1489;1490; P10-BE-LABEL: foo19_fp_be_reuse8B:1491; P10-BE: # %bb.0: # %entry1492; P10-BE-NEXT: ld 4, L..C18(2) # %const.01493; P10-BE-NEXT: lxv 0, 0(4)1494; P10-BE-NEXT: li 4, 41051495; P10-BE-NEXT: rldic 4, 4, 50, 11496; P10-BE-NEXT: std 4, 16(3)1497; P10-BE-NEXT: stxv 0, 0(3)1498; P10-BE-NEXT: blr1499;1500; P8-LE-LABEL: foo19_fp_be_reuse8B:1501; P8-LE: # %bb.0: # %entry1502; P8-LE-NEXT: addis 4, 2, .LCPI18_0@toc@ha1503; P8-LE-NEXT: addi 4, 4, .LCPI18_0@toc@l1504; P8-LE-NEXT: lxvd2x 0, 0, 41505; P8-LE-NEXT: li 4, 41051506; P8-LE-NEXT: rldic 4, 4, 50, 11507; P8-LE-NEXT: std 4, 16(3)1508; P8-LE-NEXT: stxvd2x 0, 0, 31509; P8-LE-NEXT: blr1510;1511; P9-LE-LABEL: foo19_fp_be_reuse8B:1512; P9-LE: # %bb.0: # %entry1513; P9-LE-NEXT: addis 4, 2, .LCPI18_0@toc@ha1514; P9-LE-NEXT: addi 4, 4, .LCPI18_0@toc@l1515; P9-LE-NEXT: lxv 0, 0(4)1516; P9-LE-NEXT: li 4, 41051517; P9-LE-NEXT: rldic 4, 4, 50, 11518; P9-LE-NEXT: std 4, 16(3)1519; P9-LE-NEXT: stxv 0, 0(3)1520; P9-LE-NEXT: blr1521;1522; P10-LE-LABEL: foo19_fp_be_reuse8B:1523; P10-LE: # %bb.0: # %entry1524; P10-LE-NEXT: plxv 0, .LCPI18_0@PCREL(0), 11525; P10-LE-NEXT: li 4, 41051526; P10-LE-NEXT: rldic 4, 4, 50, 11527; P10-LE-NEXT: std 4, 16(3)1528; P10-LE-NEXT: stxv 0, 0(3)1529; P10-LE-NEXT: blr1530entry:1531 store <2 x double> <double 1.000000e+01, double 1.100000e+00>, ptr %a, align 81532 %arrayidx2 = getelementptr inbounds double, ptr %a, i64 21533 store double 1.000000e+01, ptr %arrayidx2, align 81534 ret void1535}1536 1537define dso_local void @foo20_fp_le_reuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {1538; P8-BE-LABEL: foo20_fp_le_reuse8B:1539; P8-BE: # %bb.0: # %entry1540; P8-BE-NEXT: ld 4, L..C19(2) # %const.01541; P8-BE-NEXT: lxvd2x 0, 0, 41542; P8-BE-NEXT: lis 4, 164201543; P8-BE-NEXT: ori 4, 4, 131071544; P8-BE-NEXT: rldimi 4, 4, 32, 01545; P8-BE-NEXT: stxvd2x 0, 0, 31546; P8-BE-NEXT: rlwimi 4, 4, 16, 0, 151547; P8-BE-NEXT: std 4, 16(3)1548; P8-BE-NEXT: blr1549;1550; P9-BE-LABEL: foo20_fp_le_reuse8B:1551; P9-BE: # %bb.0: # %entry1552; P9-BE-NEXT: ld 4, L..C19(2) # %const.01553; P9-BE-NEXT: lxv 0, 0(4)1554; P9-BE-NEXT: lis 4, 164201555; P9-BE-NEXT: ori 4, 4, 131071556; P9-BE-NEXT: rldimi 4, 4, 32, 01557; P9-BE-NEXT: stxv 0, 0(3)1558; P9-BE-NEXT: rlwimi 4, 4, 16, 0, 151559; P9-BE-NEXT: std 4, 16(3)1560; P9-BE-NEXT: blr1561;1562; P10-BE-LABEL: foo20_fp_le_reuse8B:1563; P10-BE: # %bb.0: # %entry1564; P10-BE-NEXT: ld 4, L..C19(2) # %const.01565; P10-BE-NEXT: pli 5, 8589934591566; P10-BE-NEXT: lxv 0, 0(4)1567; P10-BE-NEXT: pli 4, 10761142271568; P10-BE-NEXT: rldimi 5, 4, 32, 01569; P10-BE-NEXT: std 5, 16(3)1570; P10-BE-NEXT: stxv 0, 0(3)1571; P10-BE-NEXT: blr1572;1573; P8-LE-LABEL: foo20_fp_le_reuse8B:1574; P8-LE: # %bb.0: # %entry1575; P8-LE-NEXT: addis 4, 2, .LCPI19_0@toc@ha1576; P8-LE-NEXT: addi 4, 4, .LCPI19_0@toc@l1577; P8-LE-NEXT: lxvd2x 0, 0, 41578; P8-LE-NEXT: lis 4, 164201579; P8-LE-NEXT: ori 4, 4, 131071580; P8-LE-NEXT: rldimi 4, 4, 32, 01581; P8-LE-NEXT: stxvd2x 0, 0, 31582; P8-LE-NEXT: rlwimi 4, 4, 16, 0, 151583; P8-LE-NEXT: std 4, 16(3)1584; P8-LE-NEXT: blr1585;1586; P9-LE-LABEL: foo20_fp_le_reuse8B:1587; P9-LE: # %bb.0: # %entry1588; P9-LE-NEXT: addis 4, 2, .LCPI19_0@toc@ha1589; P9-LE-NEXT: addi 4, 4, .LCPI19_0@toc@l1590; P9-LE-NEXT: lxv 0, 0(4)1591; P9-LE-NEXT: lis 4, 164201592; P9-LE-NEXT: ori 4, 4, 131071593; P9-LE-NEXT: rldimi 4, 4, 32, 01594; P9-LE-NEXT: stxv 0, 0(3)1595; P9-LE-NEXT: rlwimi 4, 4, 16, 0, 151596; P9-LE-NEXT: std 4, 16(3)1597; P9-LE-NEXT: blr1598;1599; P10-LE-LABEL: foo20_fp_le_reuse8B:1600; P10-LE: # %bb.0: # %entry1601; P10-LE-NEXT: plxv 0, .LCPI19_0@PCREL(0), 11602; P10-LE-NEXT: pli 4, 10761142271603; P10-LE-NEXT: pli 5, 8589934591604; P10-LE-NEXT: rldimi 5, 4, 32, 01605; P10-LE-NEXT: std 5, 16(3)1606; P10-LE-NEXT: stxv 0, 0(3)1607; P10-LE-NEXT: blr1608entry:1609 store <2 x double> <double 1.000000e+00, double 1.010000e+01>, ptr %a, align 81610 %arrayidx2 = getelementptr inbounds double, ptr %a, i64 21611 store double 1.010000e+01, ptr %arrayidx2, align 81612 ret void1613}1614 1615define dso_local void @foo21_fp_noreuse4B(ptr nocapture noundef writeonly %a) local_unnamed_addr #0 {1616; P8-BE-LABEL: foo21_fp_noreuse4B:1617; P8-BE: # %bb.0: # %entry1618; P8-BE-NEXT: ld 4, L..C20(2) # %const.01619; P8-BE-NEXT: lxvw4x 0, 0, 41620; P8-BE-NEXT: lis 4, 162681621; P8-BE-NEXT: ori 4, 4, 524301622; P8-BE-NEXT: stw 4, 16(3)1623; P8-BE-NEXT: stxvw4x 0, 0, 31624; P8-BE-NEXT: blr1625;1626; P9-BE-LABEL: foo21_fp_noreuse4B:1627; P9-BE: # %bb.0: # %entry1628; P9-BE-NEXT: ld 4, L..C20(2) # %const.01629; P9-BE-NEXT: lxv 0, 0(4)1630; P9-BE-NEXT: lis 4, 162681631; P9-BE-NEXT: ori 4, 4, 524301632; P9-BE-NEXT: stw 4, 16(3)1633; P9-BE-NEXT: stxv 0, 0(3)1634; P9-BE-NEXT: blr1635;1636; P10-BE-LABEL: foo21_fp_noreuse4B:1637; P10-BE: # %bb.0: # %entry1638; P10-BE-NEXT: ld 4, L..C20(2) # %const.01639; P10-BE-NEXT: lxv 0, 0(4)1640; P10-BE-NEXT: pli 4, 10661920781641; P10-BE-NEXT: stw 4, 16(3)1642; P10-BE-NEXT: stxv 0, 0(3)1643; P10-BE-NEXT: blr1644;1645; P8-LE-LABEL: foo21_fp_noreuse4B:1646; P8-LE: # %bb.0: # %entry1647; P8-LE-NEXT: addis 4, 2, .LCPI20_0@toc@ha1648; P8-LE-NEXT: addi 4, 4, .LCPI20_0@toc@l1649; P8-LE-NEXT: lxvd2x 0, 0, 41650; P8-LE-NEXT: lis 4, 162681651; P8-LE-NEXT: ori 4, 4, 524301652; P8-LE-NEXT: stw 4, 16(3)1653; P8-LE-NEXT: stxvd2x 0, 0, 31654; P8-LE-NEXT: blr1655;1656; P9-LE-LABEL: foo21_fp_noreuse4B:1657; P9-LE: # %bb.0: # %entry1658; P9-LE-NEXT: addis 4, 2, .LCPI20_0@toc@ha1659; P9-LE-NEXT: addi 4, 4, .LCPI20_0@toc@l1660; P9-LE-NEXT: lxv 0, 0(4)1661; P9-LE-NEXT: lis 4, 162681662; P9-LE-NEXT: ori 4, 4, 524301663; P9-LE-NEXT: stw 4, 16(3)1664; P9-LE-NEXT: stxv 0, 0(3)1665; P9-LE-NEXT: blr1666;1667; P10-LE-LABEL: foo21_fp_noreuse4B:1668; P10-LE: # %bb.0: # %entry1669; P10-LE-NEXT: plxv 0, .LCPI20_0@PCREL(0), 11670; P10-LE-NEXT: pli 4, 10661920781671; P10-LE-NEXT: stw 4, 16(3)1672; P10-LE-NEXT: stxv 0, 0(3)1673; P10-LE-NEXT: blr1674entry:1675 store <4 x float> <float 1.000000e+00, float 0x3FF19999A0000000, float 0x3FF3333340000000, float 0x3FF4CCCCC0000000>, ptr %a, align 41676 %arrayidx4 = getelementptr inbounds float, ptr %a, i64 41677 store float 0x3FF19999C0000000, ptr %arrayidx4, align 41678 ret void1679}1680 1681define dso_local void @foo22_fp_noreuse8B(ptr nocapture noundef writeonly %a) local_unnamed_addr {1682; P8-BE-LABEL: foo22_fp_noreuse8B:1683; P8-BE: # %bb.0: # %entry1684; P8-BE-NEXT: ld 4, L..C21(2) # %const.01685; P8-BE-NEXT: lxvd2x 0, 0, 41686; P8-BE-NEXT: li 4, 215031687; P8-BE-NEXT: rotldi 4, 4, 521688; P8-BE-NEXT: std 4, 16(3)1689; P8-BE-NEXT: stxvd2x 0, 0, 31690; P8-BE-NEXT: blr1691;1692; P9-BE-LABEL: foo22_fp_noreuse8B:1693; P9-BE: # %bb.0: # %entry1694; P9-BE-NEXT: ld 4, L..C21(2) # %const.01695; P9-BE-NEXT: lxv 0, 0(4)1696; P9-BE-NEXT: li 4, 215031697; P9-BE-NEXT: rotldi 4, 4, 521698; P9-BE-NEXT: std 4, 16(3)1699; P9-BE-NEXT: stxv 0, 0(3)1700; P9-BE-NEXT: blr1701;1702; P10-BE-LABEL: foo22_fp_noreuse8B:1703; P10-BE: # %bb.0: # %entry1704; P10-BE-NEXT: ld 4, L..C21(2) # %const.01705; P10-BE-NEXT: lxv 0, 0(4)1706; P10-BE-NEXT: li 4, 215031707; P10-BE-NEXT: rotldi 4, 4, 521708; P10-BE-NEXT: std 4, 16(3)1709; P10-BE-NEXT: stxv 0, 0(3)1710; P10-BE-NEXT: blr1711;1712; P8-LE-LABEL: foo22_fp_noreuse8B:1713; P8-LE: # %bb.0: # %entry1714; P8-LE-NEXT: addis 4, 2, .LCPI21_0@toc@ha1715; P8-LE-NEXT: addi 4, 4, .LCPI21_0@toc@l1716; P8-LE-NEXT: lxvd2x 0, 0, 41717; P8-LE-NEXT: li 4, 215031718; P8-LE-NEXT: rotldi 4, 4, 521719; P8-LE-NEXT: std 4, 16(3)1720; P8-LE-NEXT: stxvd2x 0, 0, 31721; P8-LE-NEXT: blr1722;1723; P9-LE-LABEL: foo22_fp_noreuse8B:1724; P9-LE: # %bb.0: # %entry1725; P9-LE-NEXT: addis 4, 2, .LCPI21_0@toc@ha1726; P9-LE-NEXT: addi 4, 4, .LCPI21_0@toc@l1727; P9-LE-NEXT: lxv 0, 0(4)1728; P9-LE-NEXT: li 4, 215031729; P9-LE-NEXT: rotldi 4, 4, 521730; P9-LE-NEXT: std 4, 16(3)1731; P9-LE-NEXT: stxv 0, 0(3)1732; P9-LE-NEXT: blr1733;1734; P10-LE-LABEL: foo22_fp_noreuse8B:1735; P10-LE: # %bb.0: # %entry1736; P10-LE-NEXT: plxv 0, .LCPI21_0@PCREL(0), 11737; P10-LE-NEXT: li 4, 215031738; P10-LE-NEXT: rotldi 4, 4, 521739; P10-LE-NEXT: std 4, 16(3)1740; P10-LE-NEXT: stxv 0, 0(3)1741; P10-LE-NEXT: blr1742entry:1743 store <2 x double> <double 1.000000e+00, double 1.100000e+00>, ptr %a, align 81744 %arrayidx2 = getelementptr inbounds double, ptr %a, i64 21745 store double 0x3FF0000000000005, ptr %arrayidx2, align 81746 ret void1747}1748