1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -verify-machineinstrs -mcpu=pwr8 \ 3; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P8-BE 4; RUN: llc -verify-machineinstrs -mcpu=pwr9 \ 5; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P9-BE 6; RUN: llc -verify-machineinstrs -mcpu=pwr10 \ 7; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P10-BE 8; RUN: llc -verify-machineinstrs -mcpu=pwr8 \ 9; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P8-LE 10; RUN: llc -verify-machineinstrs -mcpu=pwr9 \ 11; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P9-LE 12; RUN: llc -verify-machineinstrs -mcpu=pwr10 \ 13; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P10-LE 14 15define dso_local void @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: # %entry 18; P8-BE-NEXT: ld 4, L..C0(2) # %const.0 19; P8-BE-NEXT: lxvw4x 0, 0, 4 20; P8-BE-NEXT: lis 4, 1029 21; P8-BE-NEXT: ori 4, 4, 1543 22; P8-BE-NEXT: stw 4, 16(3) 23; P8-BE-NEXT: li 4, 2057 24; P8-BE-NEXT: stxvw4x 0, 0, 3 25; P8-BE-NEXT: sth 4, 20(3) 26; P8-BE-NEXT: blr 27; 28; P9-BE-LABEL: foo1_int_be_reuse4B: 29; P9-BE: # %bb.0: # %entry 30; P9-BE-NEXT: ld 4, L..C0(2) # %const.0 31; P9-BE-NEXT: lxv 0, 0(4) 32; P9-BE-NEXT: lis 4, 1029 33; P9-BE-NEXT: ori 4, 4, 1543 34; P9-BE-NEXT: stw 4, 16(3) 35; P9-BE-NEXT: li 4, 2057 36; P9-BE-NEXT: stxv 0, 0(3) 37; P9-BE-NEXT: sth 4, 20(3) 38; P9-BE-NEXT: blr 39; 40; P10-BE-LABEL: foo1_int_be_reuse4B: 41; P10-BE: # %bb.0: # %entry 42; P10-BE-NEXT: ld 4, L..C0(2) # %const.0 43; P10-BE-NEXT: lxv 0, 0(4) 44; P10-BE-NEXT: pli 4, 67438087 45; P10-BE-NEXT: stw 4, 16(3) 46; P10-BE-NEXT: li 4, 2057 47; P10-BE-NEXT: sth 4, 20(3) 48; P10-BE-NEXT: stxv 0, 0(3) 49; P10-BE-NEXT: blr 50; 51; P8-LE-LABEL: foo1_int_be_reuse4B: 52; P8-LE: # %bb.0: # %entry 53; P8-LE-NEXT: addis 4, 2, .LCPI0_0@toc@ha 54; P8-LE-NEXT: addi 4, 4, .LCPI0_0@toc@l 55; P8-LE-NEXT: lxvd2x 0, 0, 4 56; P8-LE-NEXT: lis 4, 1798 57; P8-LE-NEXT: ori 4, 4, 1284 58; P8-LE-NEXT: stw 4, 16(3) 59; P8-LE-NEXT: li 4, 2312 60; P8-LE-NEXT: stxvd2x 0, 0, 3 61; P8-LE-NEXT: sth 4, 20(3) 62; P8-LE-NEXT: blr 63; 64; P9-LE-LABEL: foo1_int_be_reuse4B: 65; P9-LE: # %bb.0: # %entry 66; P9-LE-NEXT: addis 4, 2, .LCPI0_0@toc@ha 67; P9-LE-NEXT: addi 4, 4, .LCPI0_0@toc@l 68; P9-LE-NEXT: lxv 0, 0(4) 69; P9-LE-NEXT: lis 4, 1798 70; P9-LE-NEXT: ori 4, 4, 1284 71; P9-LE-NEXT: stw 4, 16(3) 72; P9-LE-NEXT: li 4, 2312 73; P9-LE-NEXT: stxv 0, 0(3) 74; P9-LE-NEXT: sth 4, 20(3) 75; P9-LE-NEXT: blr 76; 77; P10-LE-LABEL: foo1_int_be_reuse4B: 78; P10-LE: # %bb.0: # %entry 79; P10-LE-NEXT: plxv 0, .LCPI0_0@PCREL(0), 1 80; P10-LE-NEXT: pli 4, 117835012 81; P10-LE-NEXT: stw 4, 16(3) 82; P10-LE-NEXT: li 4, 2312 83; P10-LE-NEXT: sth 4, 20(3) 84; P10-LE-NEXT: stxv 0, 0(3) 85; P10-LE-NEXT: blr 86entry: 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 1 88 %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16 89 store i8 4, ptr %arrayidx16, align 1 90 %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17 91 store i8 5, ptr %arrayidx17, align 1 92 %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18 93 store i8 6, ptr %arrayidx18, align 1 94 %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19 95 store i8 7, ptr %arrayidx19, align 1 96 %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20 97 store i8 8, ptr %arrayidx20, align 1 98 %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21 99 store i8 9, ptr %arrayidx21, align 1 100 ret void 101} 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: # %entry 106; P8-BE-NEXT: ld 4, L..C1(2) # %const.0 107; P8-BE-NEXT: lxvw4x 0, 0, 4 108; P8-BE-NEXT: lis 4, 2057 109; P8-BE-NEXT: ori 4, 4, 2571 110; P8-BE-NEXT: stw 4, 16(3) 111; P8-BE-NEXT: li 4, 3085 112; P8-BE-NEXT: stxvw4x 0, 0, 3 113; P8-BE-NEXT: sth 4, 20(3) 114; P8-BE-NEXT: blr 115; 116; P9-BE-LABEL: foo2_int_le_reuse4B: 117; P9-BE: # %bb.0: # %entry 118; P9-BE-NEXT: ld 4, L..C1(2) # %const.0 119; P9-BE-NEXT: lxv 0, 0(4) 120; P9-BE-NEXT: lis 4, 2057 121; P9-BE-NEXT: ori 4, 4, 2571 122; P9-BE-NEXT: stw 4, 16(3) 123; P9-BE-NEXT: li 4, 3085 124; P9-BE-NEXT: stxv 0, 0(3) 125; P9-BE-NEXT: sth 4, 20(3) 126; P9-BE-NEXT: blr 127; 128; P10-BE-LABEL: foo2_int_le_reuse4B: 129; P10-BE: # %bb.0: # %entry 130; P10-BE-NEXT: ld 4, L..C1(2) # %const.0 131; P10-BE-NEXT: lxv 0, 0(4) 132; P10-BE-NEXT: pli 4, 134810123 133; P10-BE-NEXT: stw 4, 16(3) 134; P10-BE-NEXT: li 4, 3085 135; P10-BE-NEXT: sth 4, 20(3) 136; P10-BE-NEXT: stxv 0, 0(3) 137; P10-BE-NEXT: blr 138; 139; P8-LE-LABEL: foo2_int_le_reuse4B: 140; P8-LE: # %bb.0: # %entry 141; P8-LE-NEXT: addis 4, 2, .LCPI1_0@toc@ha 142; P8-LE-NEXT: addi 4, 4, .LCPI1_0@toc@l 143; P8-LE-NEXT: lxvd2x 0, 0, 4 144; P8-LE-NEXT: lis 4, 2826 145; P8-LE-NEXT: ori 4, 4, 2312 146; P8-LE-NEXT: stw 4, 16(3) 147; P8-LE-NEXT: li 4, 3340 148; P8-LE-NEXT: stxvd2x 0, 0, 3 149; P8-LE-NEXT: sth 4, 20(3) 150; P8-LE-NEXT: blr 151; 152; P9-LE-LABEL: foo2_int_le_reuse4B: 153; P9-LE: # %bb.0: # %entry 154; P9-LE-NEXT: addis 4, 2, .LCPI1_0@toc@ha 155; P9-LE-NEXT: addi 4, 4, .LCPI1_0@toc@l 156; P9-LE-NEXT: lxv 0, 0(4) 157; P9-LE-NEXT: lis 4, 2826 158; P9-LE-NEXT: ori 4, 4, 2312 159; P9-LE-NEXT: stw 4, 16(3) 160; P9-LE-NEXT: li 4, 3340 161; P9-LE-NEXT: stxv 0, 0(3) 162; P9-LE-NEXT: sth 4, 20(3) 163; P9-LE-NEXT: blr 164; 165; P10-LE-LABEL: foo2_int_le_reuse4B: 166; P10-LE: # %bb.0: # %entry 167; P10-LE-NEXT: plxv 0, .LCPI1_0@PCREL(0), 1 168; P10-LE-NEXT: pli 4, 185207048 169; P10-LE-NEXT: stw 4, 16(3) 170; P10-LE-NEXT: li 4, 3340 171; P10-LE-NEXT: sth 4, 20(3) 172; P10-LE-NEXT: stxv 0, 0(3) 173; P10-LE-NEXT: blr 174entry: 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 1 176 %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16 177 store i8 8, ptr %arrayidx16, align 1 178 %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17 179 store i8 9, ptr %arrayidx17, align 1 180 %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18 181 store i8 10, ptr %arrayidx18, align 1 182 %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19 183 store i8 11, ptr %arrayidx19, align 1 184 %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20 185 store i8 12, ptr %arrayidx20, align 1 186 %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21 187 store i8 13, ptr %arrayidx21, align 1 188 ret void 189} 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: # %entry 194; P8-BE-NEXT: ld 4, L..C2(2) # %const.0 195; P8-BE-NEXT: lxvw4x 0, 0, 4 196; P8-BE-NEXT: lis 4, 1029 197; P8-BE-NEXT: ori 4, 4, 1543 198; P8-BE-NEXT: stw 4, 16(3) 199; P8-BE-NEXT: li 4, 2057 200; P8-BE-NEXT: stxvw4x 0, 0, 3 201; P8-BE-NEXT: sth 4, 20(3) 202; P8-BE-NEXT: blr 203; 204; P9-BE-LABEL: foo3_int_be_reuse4B: 205; P9-BE: # %bb.0: # %entry 206; P9-BE-NEXT: ld 4, L..C2(2) # %const.0 207; P9-BE-NEXT: lxv 0, 0(4) 208; P9-BE-NEXT: lis 4, 1029 209; P9-BE-NEXT: ori 4, 4, 1543 210; P9-BE-NEXT: stw 4, 16(3) 211; P9-BE-NEXT: li 4, 2057 212; P9-BE-NEXT: stxv 0, 0(3) 213; P9-BE-NEXT: sth 4, 20(3) 214; P9-BE-NEXT: blr 215; 216; P10-BE-LABEL: foo3_int_be_reuse4B: 217; P10-BE: # %bb.0: # %entry 218; P10-BE-NEXT: ld 4, L..C2(2) # %const.0 219; P10-BE-NEXT: lxv 0, 0(4) 220; P10-BE-NEXT: pli 4, 67438087 221; P10-BE-NEXT: stw 4, 16(3) 222; P10-BE-NEXT: li 4, 2057 223; P10-BE-NEXT: sth 4, 20(3) 224; P10-BE-NEXT: stxv 0, 0(3) 225; P10-BE-NEXT: blr 226; 227; P8-LE-LABEL: foo3_int_be_reuse4B: 228; P8-LE: # %bb.0: # %entry 229; P8-LE-NEXT: addis 4, 2, .LCPI2_0@toc@ha 230; P8-LE-NEXT: addi 4, 4, .LCPI2_0@toc@l 231; P8-LE-NEXT: lxvd2x 0, 0, 4 232; P8-LE-NEXT: lis 4, 1543 233; P8-LE-NEXT: ori 4, 4, 1029 234; P8-LE-NEXT: stw 4, 16(3) 235; P8-LE-NEXT: li 4, 2057 236; P8-LE-NEXT: stxvd2x 0, 0, 3 237; P8-LE-NEXT: sth 4, 20(3) 238; P8-LE-NEXT: blr 239; 240; P9-LE-LABEL: foo3_int_be_reuse4B: 241; P9-LE: # %bb.0: # %entry 242; P9-LE-NEXT: addis 4, 2, .LCPI2_0@toc@ha 243; P9-LE-NEXT: addi 4, 4, .LCPI2_0@toc@l 244; P9-LE-NEXT: lxv 0, 0(4) 245; P9-LE-NEXT: lis 4, 1543 246; P9-LE-NEXT: ori 4, 4, 1029 247; P9-LE-NEXT: stw 4, 16(3) 248; P9-LE-NEXT: li 4, 2057 249; P9-LE-NEXT: stxv 0, 0(3) 250; P9-LE-NEXT: sth 4, 20(3) 251; P9-LE-NEXT: blr 252; 253; P10-LE-LABEL: foo3_int_be_reuse4B: 254; P10-LE: # %bb.0: # %entry 255; P10-LE-NEXT: plxv 0, .LCPI2_0@PCREL(0), 1 256; P10-LE-NEXT: pli 4, 101123077 257; P10-LE-NEXT: stw 4, 16(3) 258; P10-LE-NEXT: li 4, 2057 259; P10-LE-NEXT: sth 4, 20(3) 260; P10-LE-NEXT: stxv 0, 0(3) 261; P10-LE-NEXT: blr 262entry: 263 store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2 264 %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8 265 store i16 1029, ptr %arrayidx8, align 2 266 %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9 267 store i16 1543, ptr %arrayidx9, align 2 268 %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10 269 store i16 2057, ptr %arrayidx10, align 2 270 ret void 271} 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: # %entry 276; P8-BE-NEXT: ld 4, L..C3(2) # %const.0 277; P8-BE-NEXT: lxvw4x 0, 0, 4 278; P8-BE-NEXT: lis 4, 2057 279; P8-BE-NEXT: ori 4, 4, 2571 280; P8-BE-NEXT: stw 4, 16(3) 281; P8-BE-NEXT: li 4, 3085 282; P8-BE-NEXT: stxvw4x 0, 0, 3 283; P8-BE-NEXT: sth 4, 20(3) 284; P8-BE-NEXT: blr 285; 286; P9-BE-LABEL: foo4_int_le_reuse4B: 287; P9-BE: # %bb.0: # %entry 288; P9-BE-NEXT: ld 4, L..C3(2) # %const.0 289; P9-BE-NEXT: lxv 0, 0(4) 290; P9-BE-NEXT: lis 4, 2057 291; P9-BE-NEXT: ori 4, 4, 2571 292; P9-BE-NEXT: stw 4, 16(3) 293; P9-BE-NEXT: li 4, 3085 294; P9-BE-NEXT: stxv 0, 0(3) 295; P9-BE-NEXT: sth 4, 20(3) 296; P9-BE-NEXT: blr 297; 298; P10-BE-LABEL: foo4_int_le_reuse4B: 299; P10-BE: # %bb.0: # %entry 300; P10-BE-NEXT: ld 4, L..C3(2) # %const.0 301; P10-BE-NEXT: lxv 0, 0(4) 302; P10-BE-NEXT: pli 4, 134810123 303; P10-BE-NEXT: stw 4, 16(3) 304; P10-BE-NEXT: li 4, 3085 305; P10-BE-NEXT: sth 4, 20(3) 306; P10-BE-NEXT: stxv 0, 0(3) 307; P10-BE-NEXT: blr 308; 309; P8-LE-LABEL: foo4_int_le_reuse4B: 310; P8-LE: # %bb.0: # %entry 311; P8-LE-NEXT: addis 4, 2, .LCPI3_0@toc@ha 312; P8-LE-NEXT: addi 4, 4, .LCPI3_0@toc@l 313; P8-LE-NEXT: lxvd2x 0, 0, 4 314; P8-LE-NEXT: lis 4, 2571 315; P8-LE-NEXT: ori 4, 4, 2057 316; P8-LE-NEXT: stw 4, 16(3) 317; P8-LE-NEXT: li 4, 3085 318; P8-LE-NEXT: stxvd2x 0, 0, 3 319; P8-LE-NEXT: sth 4, 20(3) 320; P8-LE-NEXT: blr 321; 322; P9-LE-LABEL: foo4_int_le_reuse4B: 323; P9-LE: # %bb.0: # %entry 324; P9-LE-NEXT: addis 4, 2, .LCPI3_0@toc@ha 325; P9-LE-NEXT: addi 4, 4, .LCPI3_0@toc@l 326; P9-LE-NEXT: lxv 0, 0(4) 327; P9-LE-NEXT: lis 4, 2571 328; P9-LE-NEXT: ori 4, 4, 2057 329; P9-LE-NEXT: stw 4, 16(3) 330; P9-LE-NEXT: li 4, 3085 331; P9-LE-NEXT: stxv 0, 0(3) 332; P9-LE-NEXT: sth 4, 20(3) 333; P9-LE-NEXT: blr 334; 335; P10-LE-LABEL: foo4_int_le_reuse4B: 336; P10-LE: # %bb.0: # %entry 337; P10-LE-NEXT: plxv 0, .LCPI3_0@PCREL(0), 1 338; P10-LE-NEXT: pli 4, 168495113 339; P10-LE-NEXT: stw 4, 16(3) 340; P10-LE-NEXT: li 4, 3085 341; P10-LE-NEXT: sth 4, 20(3) 342; P10-LE-NEXT: stxv 0, 0(3) 343; P10-LE-NEXT: blr 344entry: 345 store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2 346 %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8 347 store i16 2057, ptr %arrayidx8, align 2 348 %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9 349 store i16 2571, ptr %arrayidx9, align 2 350 %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10 351 store i16 3085, ptr %arrayidx10, align 2 352 ret void 353} 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: # %entry 358; P8-BE-NEXT: ld 4, L..C4(2) # %const.0 359; P8-BE-NEXT: lxvw4x 0, 0, 4 360; P8-BE-NEXT: lis 4, 1029 361; P8-BE-NEXT: ori 4, 4, 1543 362; P8-BE-NEXT: stw 4, 16(3) 363; P8-BE-NEXT: stxvw4x 0, 0, 3 364; P8-BE-NEXT: blr 365; 366; P9-BE-LABEL: foo5_int_be_reuse4B: 367; P9-BE: # %bb.0: # %entry 368; P9-BE-NEXT: ld 4, L..C4(2) # %const.0 369; P9-BE-NEXT: lxv 0, 0(4) 370; P9-BE-NEXT: lis 4, 1029 371; P9-BE-NEXT: ori 4, 4, 1543 372; P9-BE-NEXT: stw 4, 16(3) 373; P9-BE-NEXT: stxv 0, 0(3) 374; P9-BE-NEXT: blr 375; 376; P10-BE-LABEL: foo5_int_be_reuse4B: 377; P10-BE: # %bb.0: # %entry 378; P10-BE-NEXT: ld 4, L..C4(2) # %const.0 379; P10-BE-NEXT: lxv 0, 0(4) 380; P10-BE-NEXT: pli 4, 67438087 381; P10-BE-NEXT: stw 4, 16(3) 382; P10-BE-NEXT: stxv 0, 0(3) 383; P10-BE-NEXT: blr 384; 385; P8-LE-LABEL: foo5_int_be_reuse4B: 386; P8-LE: # %bb.0: # %entry 387; P8-LE-NEXT: addis 4, 2, .LCPI4_0@toc@ha 388; P8-LE-NEXT: addi 4, 4, .LCPI4_0@toc@l 389; P8-LE-NEXT: lxvd2x 0, 0, 4 390; P8-LE-NEXT: lis 4, 1029 391; P8-LE-NEXT: ori 4, 4, 1543 392; P8-LE-NEXT: stw 4, 16(3) 393; P8-LE-NEXT: stxvd2x 0, 0, 3 394; P8-LE-NEXT: blr 395; 396; P9-LE-LABEL: foo5_int_be_reuse4B: 397; P9-LE: # %bb.0: # %entry 398; P9-LE-NEXT: addis 4, 2, .LCPI4_0@toc@ha 399; P9-LE-NEXT: addi 4, 4, .LCPI4_0@toc@l 400; P9-LE-NEXT: lxv 0, 0(4) 401; P9-LE-NEXT: lis 4, 1029 402; P9-LE-NEXT: ori 4, 4, 1543 403; P9-LE-NEXT: stw 4, 16(3) 404; P9-LE-NEXT: stxv 0, 0(3) 405; P9-LE-NEXT: blr 406; 407; P10-LE-LABEL: foo5_int_be_reuse4B: 408; P10-LE: # %bb.0: # %entry 409; P10-LE-NEXT: plxv 0, .LCPI4_0@PCREL(0), 1 410; P10-LE-NEXT: pli 4, 67438087 411; P10-LE-NEXT: stw 4, 16(3) 412; P10-LE-NEXT: stxv 0, 0(3) 413; P10-LE-NEXT: blr 414entry: 415 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4 416 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4 417 store i32 67438087, ptr %arrayidx4, align 4 418 ret void 419} 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: # %entry 424; P8-BE-NEXT: ld 4, L..C5(2) # %const.0 425; P8-BE-NEXT: lxvw4x 0, 0, 4 426; P8-BE-NEXT: lis 4, 2057 427; P8-BE-NEXT: ori 4, 4, 2571 428; P8-BE-NEXT: stw 4, 16(3) 429; P8-BE-NEXT: stxvw4x 0, 0, 3 430; P8-BE-NEXT: blr 431; 432; P9-BE-LABEL: foo6_int_le_reuse4B: 433; P9-BE: # %bb.0: # %entry 434; P9-BE-NEXT: ld 4, L..C5(2) # %const.0 435; P9-BE-NEXT: lxv 0, 0(4) 436; P9-BE-NEXT: lis 4, 2057 437; P9-BE-NEXT: ori 4, 4, 2571 438; P9-BE-NEXT: stw 4, 16(3) 439; P9-BE-NEXT: stxv 0, 0(3) 440; P9-BE-NEXT: blr 441; 442; P10-BE-LABEL: foo6_int_le_reuse4B: 443; P10-BE: # %bb.0: # %entry 444; P10-BE-NEXT: ld 4, L..C5(2) # %const.0 445; P10-BE-NEXT: lxv 0, 0(4) 446; P10-BE-NEXT: pli 4, 134810123 447; P10-BE-NEXT: stw 4, 16(3) 448; P10-BE-NEXT: stxv 0, 0(3) 449; P10-BE-NEXT: blr 450; 451; P8-LE-LABEL: foo6_int_le_reuse4B: 452; P8-LE: # %bb.0: # %entry 453; P8-LE-NEXT: addis 4, 2, .LCPI5_0@toc@ha 454; P8-LE-NEXT: addi 4, 4, .LCPI5_0@toc@l 455; P8-LE-NEXT: lxvd2x 0, 0, 4 456; P8-LE-NEXT: lis 4, 2057 457; P8-LE-NEXT: ori 4, 4, 2571 458; P8-LE-NEXT: stw 4, 16(3) 459; P8-LE-NEXT: stxvd2x 0, 0, 3 460; P8-LE-NEXT: blr 461; 462; P9-LE-LABEL: foo6_int_le_reuse4B: 463; P9-LE: # %bb.0: # %entry 464; P9-LE-NEXT: addis 4, 2, .LCPI5_0@toc@ha 465; P9-LE-NEXT: addi 4, 4, .LCPI5_0@toc@l 466; P9-LE-NEXT: lxv 0, 0(4) 467; P9-LE-NEXT: lis 4, 2057 468; P9-LE-NEXT: ori 4, 4, 2571 469; P9-LE-NEXT: stw 4, 16(3) 470; P9-LE-NEXT: stxv 0, 0(3) 471; P9-LE-NEXT: blr 472; 473; P10-LE-LABEL: foo6_int_le_reuse4B: 474; P10-LE: # %bb.0: # %entry 475; P10-LE-NEXT: plxv 0, .LCPI5_0@PCREL(0), 1 476; P10-LE-NEXT: pli 4, 134810123 477; P10-LE-NEXT: stw 4, 16(3) 478; P10-LE-NEXT: stxv 0, 0(3) 479; P10-LE-NEXT: blr 480entry: 481 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4 482 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4 483 store i32 134810123, ptr %arrayidx4, align 4 484 ret void 485} 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: # %entry 490; P8-BE-NEXT: ld 4, L..C6(2) # %const.0 491; P8-BE-NEXT: lxvw4x 0, 0, 4 492; P8-BE-NEXT: lis 4, 1 493; P8-BE-NEXT: ori 4, 4, 515 494; P8-BE-NEXT: rldic 4, 4, 32, 15 495; P8-BE-NEXT: stxvw4x 0, 0, 3 496; P8-BE-NEXT: oris 4, 4, 1029 497; P8-BE-NEXT: ori 4, 4, 1543 498; P8-BE-NEXT: std 4, 16(3) 499; P8-BE-NEXT: blr 500; 501; P9-BE-LABEL: foo7_int_be_reuse8B: 502; P9-BE: # %bb.0: # %entry 503; P9-BE-NEXT: ld 4, L..C6(2) # %const.0 504; P9-BE-NEXT: lxv 0, 0(4) 505; P9-BE-NEXT: lis 4, 1 506; P9-BE-NEXT: ori 4, 4, 515 507; P9-BE-NEXT: rldic 4, 4, 32, 15 508; P9-BE-NEXT: stxv 0, 0(3) 509; P9-BE-NEXT: oris 4, 4, 1029 510; P9-BE-NEXT: ori 4, 4, 1543 511; P9-BE-NEXT: std 4, 16(3) 512; P9-BE-NEXT: blr 513; 514; P10-BE-LABEL: foo7_int_be_reuse8B: 515; P10-BE: # %bb.0: # %entry 516; P10-BE-NEXT: ld 4, L..C6(2) # %const.0 517; P10-BE-NEXT: pli 5, 67438087 518; P10-BE-NEXT: lxv 0, 0(4) 519; P10-BE-NEXT: pli 4, 66051 520; P10-BE-NEXT: rldimi 5, 4, 32, 0 521; P10-BE-NEXT: std 5, 16(3) 522; P10-BE-NEXT: stxv 0, 0(3) 523; P10-BE-NEXT: blr 524; 525; P8-LE-LABEL: foo7_int_be_reuse8B: 526; P8-LE: # %bb.0: # %entry 527; P8-LE-NEXT: addis 4, 2, .LCPI6_0@toc@ha 528; P8-LE-NEXT: addi 4, 4, .LCPI6_0@toc@l 529; P8-LE-NEXT: lxvd2x 0, 0, 4 530; P8-LE-NEXT: lis 4, 449 531; P8-LE-NEXT: ori 4, 4, 33089 532; P8-LE-NEXT: rldic 4, 4, 34, 5 533; P8-LE-NEXT: stxvd2x 0, 0, 3 534; P8-LE-NEXT: oris 4, 4, 770 535; P8-LE-NEXT: ori 4, 4, 256 536; P8-LE-NEXT: std 4, 16(3) 537; P8-LE-NEXT: blr 538; 539; P9-LE-LABEL: foo7_int_be_reuse8B: 540; P9-LE: # %bb.0: # %entry 541; P9-LE-NEXT: addis 4, 2, .LCPI6_0@toc@ha 542; P9-LE-NEXT: addi 4, 4, .LCPI6_0@toc@l 543; P9-LE-NEXT: lxv 0, 0(4) 544; P9-LE-NEXT: lis 4, 449 545; P9-LE-NEXT: ori 4, 4, 33089 546; P9-LE-NEXT: rldic 4, 4, 34, 5 547; P9-LE-NEXT: stxv 0, 0(3) 548; P9-LE-NEXT: oris 4, 4, 770 549; P9-LE-NEXT: ori 4, 4, 256 550; P9-LE-NEXT: std 4, 16(3) 551; P9-LE-NEXT: blr 552; 553; P10-LE-LABEL: foo7_int_be_reuse8B: 554; P10-LE: # %bb.0: # %entry 555; P10-LE-NEXT: plxv 0, .LCPI6_0@PCREL(0), 1 556; P10-LE-NEXT: pli 4, 117835012 557; P10-LE-NEXT: pli 5, 50462976 558; P10-LE-NEXT: rldimi 5, 4, 32, 0 559; P10-LE-NEXT: std 5, 16(3) 560; P10-LE-NEXT: stxv 0, 0(3) 561; P10-LE-NEXT: blr 562entry: 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 1 564 %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16 565 store i8 0, ptr %arrayidx16, align 1 566 %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17 567 store i8 1, ptr %arrayidx17, align 1 568 %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18 569 store i8 2, ptr %arrayidx18, align 1 570 %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19 571 store i8 3, ptr %arrayidx19, align 1 572 %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20 573 store i8 4, ptr %arrayidx20, align 1 574 %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21 575 store i8 5, ptr %arrayidx21, align 1 576 %arrayidx22 = getelementptr inbounds i8, ptr %a, i64 22 577 store i8 6, ptr %arrayidx22, align 1 578 %arrayidx23 = getelementptr inbounds i8, ptr %a, i64 23 579 store i8 7, ptr %arrayidx23, align 1 580 ret void 581} 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: # %entry 586; P8-BE-NEXT: ld 4, L..C7(2) # %const.0 587; P8-BE-NEXT: lxvw4x 0, 0, 4 588; P8-BE-NEXT: lis 4, 2057 589; P8-BE-NEXT: ori 4, 4, 2571 590; P8-BE-NEXT: rldic 4, 4, 32, 4 591; P8-BE-NEXT: stxvw4x 0, 0, 3 592; P8-BE-NEXT: oris 4, 4, 3085 593; P8-BE-NEXT: ori 4, 4, 3599 594; P8-BE-NEXT: std 4, 16(3) 595; P8-BE-NEXT: blr 596; 597; P9-BE-LABEL: foo8_int_le_reuse8B: 598; P9-BE: # %bb.0: # %entry 599; P9-BE-NEXT: ld 4, L..C7(2) # %const.0 600; P9-BE-NEXT: lxv 0, 0(4) 601; P9-BE-NEXT: lis 4, 2057 602; P9-BE-NEXT: ori 4, 4, 2571 603; P9-BE-NEXT: rldic 4, 4, 32, 4 604; P9-BE-NEXT: stxv 0, 0(3) 605; P9-BE-NEXT: oris 4, 4, 3085 606; P9-BE-NEXT: ori 4, 4, 3599 607; P9-BE-NEXT: std 4, 16(3) 608; P9-BE-NEXT: blr 609; 610; P10-BE-LABEL: foo8_int_le_reuse8B: 611; P10-BE: # %bb.0: # %entry 612; P10-BE-NEXT: ld 4, L..C7(2) # %const.0 613; P10-BE-NEXT: pli 5, 202182159 614; P10-BE-NEXT: lxv 0, 0(4) 615; P10-BE-NEXT: pli 4, 134810123 616; P10-BE-NEXT: rldimi 5, 4, 32, 0 617; P10-BE-NEXT: std 5, 16(3) 618; P10-BE-NEXT: stxv 0, 0(3) 619; P10-BE-NEXT: blr 620; 621; P8-LE-LABEL: foo8_int_le_reuse8B: 622; P8-LE: # %bb.0: # %entry 623; P8-LE-NEXT: addis 4, 2, .LCPI7_0@toc@ha 624; P8-LE-NEXT: addi 4, 4, .LCPI7_0@toc@l 625; P8-LE-NEXT: lxvd2x 0, 0, 4 626; P8-LE-NEXT: lis 4, 963 627; P8-LE-NEXT: ori 4, 4, 33603 628; P8-LE-NEXT: rldic 4, 4, 34, 4 629; P8-LE-NEXT: stxvd2x 0, 0, 3 630; P8-LE-NEXT: oris 4, 4, 2826 631; P8-LE-NEXT: ori 4, 4, 2312 632; P8-LE-NEXT: std 4, 16(3) 633; P8-LE-NEXT: blr 634; 635; P9-LE-LABEL: foo8_int_le_reuse8B: 636; P9-LE: # %bb.0: # %entry 637; P9-LE-NEXT: addis 4, 2, .LCPI7_0@toc@ha 638; P9-LE-NEXT: addi 4, 4, .LCPI7_0@toc@l 639; P9-LE-NEXT: lxv 0, 0(4) 640; P9-LE-NEXT: lis 4, 963 641; P9-LE-NEXT: ori 4, 4, 33603 642; P9-LE-NEXT: rldic 4, 4, 34, 4 643; P9-LE-NEXT: stxv 0, 0(3) 644; P9-LE-NEXT: oris 4, 4, 2826 645; P9-LE-NEXT: ori 4, 4, 2312 646; P9-LE-NEXT: std 4, 16(3) 647; P9-LE-NEXT: blr 648; 649; P10-LE-LABEL: foo8_int_le_reuse8B: 650; P10-LE: # %bb.0: # %entry 651; P10-LE-NEXT: plxv 0, .LCPI7_0@PCREL(0), 1 652; P10-LE-NEXT: pli 4, 252579084 653; P10-LE-NEXT: pli 5, 185207048 654; P10-LE-NEXT: rldimi 5, 4, 32, 0 655; P10-LE-NEXT: std 5, 16(3) 656; P10-LE-NEXT: stxv 0, 0(3) 657; P10-LE-NEXT: blr 658entry: 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 1 660 %arrayidx16 = getelementptr inbounds i8, ptr %a, i64 16 661 store i8 8, ptr %arrayidx16, align 1 662 %arrayidx17 = getelementptr inbounds i8, ptr %a, i64 17 663 store i8 9, ptr %arrayidx17, align 1 664 %arrayidx18 = getelementptr inbounds i8, ptr %a, i64 18 665 store i8 10, ptr %arrayidx18, align 1 666 %arrayidx19 = getelementptr inbounds i8, ptr %a, i64 19 667 store i8 11, ptr %arrayidx19, align 1 668 %arrayidx20 = getelementptr inbounds i8, ptr %a, i64 20 669 store i8 12, ptr %arrayidx20, align 1 670 %arrayidx21 = getelementptr inbounds i8, ptr %a, i64 21 671 store i8 13, ptr %arrayidx21, align 1 672 %arrayidx22 = getelementptr inbounds i8, ptr %a, i64 22 673 store i8 14, ptr %arrayidx22, align 1 674 %arrayidx23 = getelementptr inbounds i8, ptr %a, i64 23 675 store i8 15, ptr %arrayidx23, align 1 676 ret void 677} 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: # %entry 682; P8-BE-NEXT: ld 4, L..C8(2) # %const.0 683; P8-BE-NEXT: lxvw4x 0, 0, 4 684; P8-BE-NEXT: lis 4, 1 685; P8-BE-NEXT: ori 4, 4, 515 686; P8-BE-NEXT: rldic 4, 4, 32, 15 687; P8-BE-NEXT: stxvw4x 0, 0, 3 688; P8-BE-NEXT: oris 4, 4, 1029 689; P8-BE-NEXT: ori 4, 4, 1543 690; P8-BE-NEXT: std 4, 16(3) 691; P8-BE-NEXT: blr 692; 693; P9-BE-LABEL: foo9_int_be_reuse8B: 694; P9-BE: # %bb.0: # %entry 695; P9-BE-NEXT: ld 4, L..C8(2) # %const.0 696; P9-BE-NEXT: lxv 0, 0(4) 697; P9-BE-NEXT: lis 4, 1 698; P9-BE-NEXT: ori 4, 4, 515 699; P9-BE-NEXT: rldic 4, 4, 32, 15 700; P9-BE-NEXT: stxv 0, 0(3) 701; P9-BE-NEXT: oris 4, 4, 1029 702; P9-BE-NEXT: ori 4, 4, 1543 703; P9-BE-NEXT: std 4, 16(3) 704; P9-BE-NEXT: blr 705; 706; P10-BE-LABEL: foo9_int_be_reuse8B: 707; P10-BE: # %bb.0: # %entry 708; P10-BE-NEXT: ld 4, L..C8(2) # %const.0 709; P10-BE-NEXT: pli 5, 67438087 710; P10-BE-NEXT: lxv 0, 0(4) 711; P10-BE-NEXT: pli 4, 66051 712; P10-BE-NEXT: rldimi 5, 4, 32, 0 713; P10-BE-NEXT: std 5, 16(3) 714; P10-BE-NEXT: stxv 0, 0(3) 715; P10-BE-NEXT: blr 716; 717; P8-LE-LABEL: foo9_int_be_reuse8B: 718; P8-LE: # %bb.0: # %entry 719; P8-LE-NEXT: addis 4, 2, .LCPI8_0@toc@ha 720; P8-LE-NEXT: addi 4, 4, .LCPI8_0@toc@l 721; P8-LE-NEXT: lxvd2x 0, 0, 4 722; P8-LE-NEXT: lis 4, 1543 723; P8-LE-NEXT: ori 4, 4, 1029 724; P8-LE-NEXT: rldic 4, 4, 32, 5 725; P8-LE-NEXT: stxvd2x 0, 0, 3 726; P8-LE-NEXT: oris 4, 4, 515 727; P8-LE-NEXT: ori 4, 4, 1 728; P8-LE-NEXT: std 4, 16(3) 729; P8-LE-NEXT: blr 730; 731; P9-LE-LABEL: foo9_int_be_reuse8B: 732; P9-LE: # %bb.0: # %entry 733; P9-LE-NEXT: addis 4, 2, .LCPI8_0@toc@ha 734; P9-LE-NEXT: addi 4, 4, .LCPI8_0@toc@l 735; P9-LE-NEXT: lxv 0, 0(4) 736; P9-LE-NEXT: lis 4, 1543 737; P9-LE-NEXT: ori 4, 4, 1029 738; P9-LE-NEXT: rldic 4, 4, 32, 5 739; P9-LE-NEXT: stxv 0, 0(3) 740; P9-LE-NEXT: oris 4, 4, 515 741; P9-LE-NEXT: ori 4, 4, 1 742; P9-LE-NEXT: std 4, 16(3) 743; P9-LE-NEXT: blr 744; 745; P10-LE-LABEL: foo9_int_be_reuse8B: 746; P10-LE: # %bb.0: # %entry 747; P10-LE-NEXT: plxv 0, .LCPI8_0@PCREL(0), 1 748; P10-LE-NEXT: pli 4, 101123077 749; P10-LE-NEXT: pli 5, 33751041 750; P10-LE-NEXT: rldimi 5, 4, 32, 0 751; P10-LE-NEXT: std 5, 16(3) 752; P10-LE-NEXT: stxv 0, 0(3) 753; P10-LE-NEXT: blr 754entry: 755 store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2 756 %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8 757 store i16 1, ptr %arrayidx8, align 2 758 %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9 759 store i16 515, ptr %arrayidx9, align 2 760 %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10 761 store i16 1029, ptr %arrayidx10, align 2 762 %arrayidx11 = getelementptr inbounds i16, ptr %a, i64 11 763 store i16 1543, ptr %arrayidx11, align 2 764 ret void 765} 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: # %entry 770; P8-BE-NEXT: ld 4, L..C9(2) # %const.0 771; P8-BE-NEXT: lxvw4x 0, 0, 4 772; P8-BE-NEXT: lis 4, 2057 773; P8-BE-NEXT: ori 4, 4, 2571 774; P8-BE-NEXT: rldic 4, 4, 32, 4 775; P8-BE-NEXT: stxvw4x 0, 0, 3 776; P8-BE-NEXT: oris 4, 4, 3085 777; P8-BE-NEXT: ori 4, 4, 3599 778; P8-BE-NEXT: std 4, 16(3) 779; P8-BE-NEXT: blr 780; 781; P9-BE-LABEL: foo10_int_le_reuse8B: 782; P9-BE: # %bb.0: # %entry 783; P9-BE-NEXT: ld 4, L..C9(2) # %const.0 784; P9-BE-NEXT: lxv 0, 0(4) 785; P9-BE-NEXT: lis 4, 2057 786; P9-BE-NEXT: ori 4, 4, 2571 787; P9-BE-NEXT: rldic 4, 4, 32, 4 788; P9-BE-NEXT: stxv 0, 0(3) 789; P9-BE-NEXT: oris 4, 4, 3085 790; P9-BE-NEXT: ori 4, 4, 3599 791; P9-BE-NEXT: std 4, 16(3) 792; P9-BE-NEXT: blr 793; 794; P10-BE-LABEL: foo10_int_le_reuse8B: 795; P10-BE: # %bb.0: # %entry 796; P10-BE-NEXT: ld 4, L..C9(2) # %const.0 797; P10-BE-NEXT: pli 5, 202182159 798; P10-BE-NEXT: lxv 0, 0(4) 799; P10-BE-NEXT: pli 4, 134810123 800; P10-BE-NEXT: rldimi 5, 4, 32, 0 801; P10-BE-NEXT: std 5, 16(3) 802; P10-BE-NEXT: stxv 0, 0(3) 803; P10-BE-NEXT: blr 804; 805; P8-LE-LABEL: foo10_int_le_reuse8B: 806; P8-LE: # %bb.0: # %entry 807; P8-LE-NEXT: addis 4, 2, .LCPI9_0@toc@ha 808; P8-LE-NEXT: addi 4, 4, .LCPI9_0@toc@l 809; P8-LE-NEXT: lxvd2x 0, 0, 4 810; P8-LE-NEXT: lis 4, 3599 811; P8-LE-NEXT: ori 4, 4, 3085 812; P8-LE-NEXT: rldic 4, 4, 32, 4 813; P8-LE-NEXT: stxvd2x 0, 0, 3 814; P8-LE-NEXT: oris 4, 4, 2571 815; P8-LE-NEXT: ori 4, 4, 2057 816; P8-LE-NEXT: std 4, 16(3) 817; P8-LE-NEXT: blr 818; 819; P9-LE-LABEL: foo10_int_le_reuse8B: 820; P9-LE: # %bb.0: # %entry 821; P9-LE-NEXT: addis 4, 2, .LCPI9_0@toc@ha 822; P9-LE-NEXT: addi 4, 4, .LCPI9_0@toc@l 823; P9-LE-NEXT: lxv 0, 0(4) 824; P9-LE-NEXT: lis 4, 3599 825; P9-LE-NEXT: ori 4, 4, 3085 826; P9-LE-NEXT: rldic 4, 4, 32, 4 827; P9-LE-NEXT: stxv 0, 0(3) 828; P9-LE-NEXT: oris 4, 4, 2571 829; P9-LE-NEXT: ori 4, 4, 2057 830; P9-LE-NEXT: std 4, 16(3) 831; P9-LE-NEXT: blr 832; 833; P10-LE-LABEL: foo10_int_le_reuse8B: 834; P10-LE: # %bb.0: # %entry 835; P10-LE-NEXT: plxv 0, .LCPI9_0@PCREL(0), 1 836; P10-LE-NEXT: pli 4, 235867149 837; P10-LE-NEXT: pli 5, 168495113 838; P10-LE-NEXT: rldimi 5, 4, 32, 0 839; P10-LE-NEXT: std 5, 16(3) 840; P10-LE-NEXT: stxv 0, 0(3) 841; P10-LE-NEXT: blr 842entry: 843 store <8 x i16> <i16 1, i16 515, i16 1029, i16 1543, i16 2057, i16 2571, i16 3085, i16 3599>, ptr %a, align 2 844 %arrayidx8 = getelementptr inbounds i16, ptr %a, i64 8 845 store i16 2057, ptr %arrayidx8, align 2 846 %arrayidx9 = getelementptr inbounds i16, ptr %a, i64 9 847 store i16 2571, ptr %arrayidx9, align 2 848 %arrayidx10 = getelementptr inbounds i16, ptr %a, i64 10 849 store i16 3085, ptr %arrayidx10, align 2 850 %arrayidx11 = getelementptr inbounds i16, ptr %a, i64 11 851 store i16 3599, ptr %arrayidx11, align 2 852 ret void 853} 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: # %entry 858; P8-BE-NEXT: ld 4, L..C10(2) # %const.0 859; P8-BE-NEXT: lxvw4x 0, 0, 4 860; P8-BE-NEXT: lis 4, 1 861; P8-BE-NEXT: ori 4, 4, 515 862; P8-BE-NEXT: rldic 4, 4, 32, 15 863; P8-BE-NEXT: stxvw4x 0, 0, 3 864; P8-BE-NEXT: oris 4, 4, 1029 865; P8-BE-NEXT: ori 4, 4, 1543 866; P8-BE-NEXT: std 4, 16(3) 867; P8-BE-NEXT: blr 868; 869; P9-BE-LABEL: foo11_int_be_reuse8B: 870; P9-BE: # %bb.0: # %entry 871; P9-BE-NEXT: ld 4, L..C10(2) # %const.0 872; P9-BE-NEXT: lxv 0, 0(4) 873; P9-BE-NEXT: lis 4, 1 874; P9-BE-NEXT: ori 4, 4, 515 875; P9-BE-NEXT: rldic 4, 4, 32, 15 876; P9-BE-NEXT: stxv 0, 0(3) 877; P9-BE-NEXT: oris 4, 4, 1029 878; P9-BE-NEXT: ori 4, 4, 1543 879; P9-BE-NEXT: std 4, 16(3) 880; P9-BE-NEXT: blr 881; 882; P10-BE-LABEL: foo11_int_be_reuse8B: 883; P10-BE: # %bb.0: # %entry 884; P10-BE-NEXT: ld 4, L..C10(2) # %const.0 885; P10-BE-NEXT: pli 5, 67438087 886; P10-BE-NEXT: lxv 0, 0(4) 887; P10-BE-NEXT: pli 4, 66051 888; P10-BE-NEXT: rldimi 5, 4, 32, 0 889; P10-BE-NEXT: std 5, 16(3) 890; P10-BE-NEXT: stxv 0, 0(3) 891; P10-BE-NEXT: blr 892; 893; P8-LE-LABEL: foo11_int_be_reuse8B: 894; P8-LE: # %bb.0: # %entry 895; P8-LE-NEXT: addis 4, 2, .LCPI10_0@toc@ha 896; P8-LE-NEXT: addi 4, 4, .LCPI10_0@toc@l 897; P8-LE-NEXT: lxvd2x 0, 0, 4 898; P8-LE-NEXT: lis 4, 1029 899; P8-LE-NEXT: ori 4, 4, 1543 900; P8-LE-NEXT: rldic 4, 4, 32, 5 901; P8-LE-NEXT: stxvd2x 0, 0, 3 902; P8-LE-NEXT: oris 4, 4, 1 903; P8-LE-NEXT: ori 4, 4, 515 904; P8-LE-NEXT: std 4, 16(3) 905; P8-LE-NEXT: blr 906; 907; P9-LE-LABEL: foo11_int_be_reuse8B: 908; P9-LE: # %bb.0: # %entry 909; P9-LE-NEXT: addis 4, 2, .LCPI10_0@toc@ha 910; P9-LE-NEXT: addi 4, 4, .LCPI10_0@toc@l 911; P9-LE-NEXT: lxv 0, 0(4) 912; P9-LE-NEXT: lis 4, 1029 913; P9-LE-NEXT: ori 4, 4, 1543 914; P9-LE-NEXT: rldic 4, 4, 32, 5 915; P9-LE-NEXT: stxv 0, 0(3) 916; P9-LE-NEXT: oris 4, 4, 1 917; P9-LE-NEXT: ori 4, 4, 515 918; P9-LE-NEXT: std 4, 16(3) 919; P9-LE-NEXT: blr 920; 921; P10-LE-LABEL: foo11_int_be_reuse8B: 922; P10-LE: # %bb.0: # %entry 923; P10-LE-NEXT: plxv 0, .LCPI10_0@PCREL(0), 1 924; P10-LE-NEXT: pli 4, 67438087 925; P10-LE-NEXT: pli 5, 66051 926; P10-LE-NEXT: rldimi 5, 4, 32, 0 927; P10-LE-NEXT: std 5, 16(3) 928; P10-LE-NEXT: stxv 0, 0(3) 929; P10-LE-NEXT: blr 930entry: 931 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4 932 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4 933 store i32 66051, ptr %arrayidx4, align 4 934 %arrayidx5 = getelementptr inbounds i32, ptr %a, i64 5 935 store i32 67438087, ptr %arrayidx5, align 4 936 ret void 937} 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: # %entry 942; P8-BE-NEXT: ld 4, L..C11(2) # %const.0 943; P8-BE-NEXT: lxvw4x 0, 0, 4 944; P8-BE-NEXT: lis 4, 2057 945; P8-BE-NEXT: ori 4, 4, 2571 946; P8-BE-NEXT: rldic 4, 4, 32, 4 947; P8-BE-NEXT: stxvw4x 0, 0, 3 948; P8-BE-NEXT: oris 4, 4, 3085 949; P8-BE-NEXT: ori 4, 4, 3599 950; P8-BE-NEXT: std 4, 16(3) 951; P8-BE-NEXT: blr 952; 953; P9-BE-LABEL: foo12_int_le_reuse8B: 954; P9-BE: # %bb.0: # %entry 955; P9-BE-NEXT: ld 4, L..C11(2) # %const.0 956; P9-BE-NEXT: lxv 0, 0(4) 957; P9-BE-NEXT: lis 4, 2057 958; P9-BE-NEXT: ori 4, 4, 2571 959; P9-BE-NEXT: rldic 4, 4, 32, 4 960; P9-BE-NEXT: stxv 0, 0(3) 961; P9-BE-NEXT: oris 4, 4, 3085 962; P9-BE-NEXT: ori 4, 4, 3599 963; P9-BE-NEXT: std 4, 16(3) 964; P9-BE-NEXT: blr 965; 966; P10-BE-LABEL: foo12_int_le_reuse8B: 967; P10-BE: # %bb.0: # %entry 968; P10-BE-NEXT: ld 4, L..C11(2) # %const.0 969; P10-BE-NEXT: pli 5, 202182159 970; P10-BE-NEXT: lxv 0, 0(4) 971; P10-BE-NEXT: pli 4, 134810123 972; P10-BE-NEXT: rldimi 5, 4, 32, 0 973; P10-BE-NEXT: std 5, 16(3) 974; P10-BE-NEXT: stxv 0, 0(3) 975; P10-BE-NEXT: blr 976; 977; P8-LE-LABEL: foo12_int_le_reuse8B: 978; P8-LE: # %bb.0: # %entry 979; P8-LE-NEXT: addis 4, 2, .LCPI11_0@toc@ha 980; P8-LE-NEXT: addi 4, 4, .LCPI11_0@toc@l 981; P8-LE-NEXT: lxvd2x 0, 0, 4 982; P8-LE-NEXT: lis 4, 3085 983; P8-LE-NEXT: ori 4, 4, 3599 984; P8-LE-NEXT: rldic 4, 4, 32, 4 985; P8-LE-NEXT: stxvd2x 0, 0, 3 986; P8-LE-NEXT: oris 4, 4, 2057 987; P8-LE-NEXT: ori 4, 4, 2571 988; P8-LE-NEXT: std 4, 16(3) 989; P8-LE-NEXT: blr 990; 991; P9-LE-LABEL: foo12_int_le_reuse8B: 992; P9-LE: # %bb.0: # %entry 993; P9-LE-NEXT: addis 4, 2, .LCPI11_0@toc@ha 994; P9-LE-NEXT: addi 4, 4, .LCPI11_0@toc@l 995; P9-LE-NEXT: lxv 0, 0(4) 996; P9-LE-NEXT: lis 4, 3085 997; P9-LE-NEXT: ori 4, 4, 3599 998; P9-LE-NEXT: rldic 4, 4, 32, 4 999; P9-LE-NEXT: stxv 0, 0(3) 1000; P9-LE-NEXT: oris 4, 4, 2057 1001; P9-LE-NEXT: ori 4, 4, 2571 1002; P9-LE-NEXT: std 4, 16(3) 1003; P9-LE-NEXT: blr 1004; 1005; P10-LE-LABEL: foo12_int_le_reuse8B: 1006; P10-LE: # %bb.0: # %entry 1007; P10-LE-NEXT: plxv 0, .LCPI11_0@PCREL(0), 1 1008; P10-LE-NEXT: pli 4, 202182159 1009; P10-LE-NEXT: pli 5, 134810123 1010; P10-LE-NEXT: rldimi 5, 4, 32, 0 1011; P10-LE-NEXT: std 5, 16(3) 1012; P10-LE-NEXT: stxv 0, 0(3) 1013; P10-LE-NEXT: blr 1014entry: 1015 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4 1016 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4 1017 store i32 134810123, ptr %arrayidx4, align 4 1018 %arrayidx5 = getelementptr inbounds i32, ptr %a, i64 5 1019 store i32 202182159, ptr %arrayidx5, align 4 1020 ret void 1021} 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: # %entry 1026; P8-BE-NEXT: ld 4, L..C12(2) # %const.0 1027; P8-BE-NEXT: lxvd2x 0, 0, 4 1028; P8-BE-NEXT: lis 4, 1 1029; P8-BE-NEXT: ori 4, 4, 515 1030; P8-BE-NEXT: rldic 4, 4, 32, 15 1031; P8-BE-NEXT: stxvd2x 0, 0, 3 1032; P8-BE-NEXT: oris 4, 4, 1029 1033; P8-BE-NEXT: ori 4, 4, 1543 1034; P8-BE-NEXT: std 4, 16(3) 1035; P8-BE-NEXT: blr 1036; 1037; P9-BE-LABEL: foo13_int_be_reuse8B: 1038; P9-BE: # %bb.0: # %entry 1039; P9-BE-NEXT: ld 4, L..C12(2) # %const.0 1040; P9-BE-NEXT: lxv 0, 0(4) 1041; P9-BE-NEXT: lis 4, 1 1042; P9-BE-NEXT: ori 4, 4, 515 1043; P9-BE-NEXT: rldic 4, 4, 32, 15 1044; P9-BE-NEXT: stxv 0, 0(3) 1045; P9-BE-NEXT: oris 4, 4, 1029 1046; P9-BE-NEXT: ori 4, 4, 1543 1047; P9-BE-NEXT: std 4, 16(3) 1048; P9-BE-NEXT: blr 1049; 1050; P10-BE-LABEL: foo13_int_be_reuse8B: 1051; P10-BE: # %bb.0: # %entry 1052; P10-BE-NEXT: ld 4, L..C12(2) # %const.0 1053; P10-BE-NEXT: pli 5, 67438087 1054; P10-BE-NEXT: lxv 0, 0(4) 1055; P10-BE-NEXT: pli 4, 66051 1056; P10-BE-NEXT: rldimi 5, 4, 32, 0 1057; P10-BE-NEXT: std 5, 16(3) 1058; P10-BE-NEXT: stxv 0, 0(3) 1059; P10-BE-NEXT: blr 1060; 1061; P8-LE-LABEL: foo13_int_be_reuse8B: 1062; P8-LE: # %bb.0: # %entry 1063; P8-LE-NEXT: addis 4, 2, .LCPI12_0@toc@ha 1064; P8-LE-NEXT: addi 4, 4, .LCPI12_0@toc@l 1065; P8-LE-NEXT: lxvd2x 0, 0, 4 1066; P8-LE-NEXT: lis 4, 1 1067; P8-LE-NEXT: ori 4, 4, 515 1068; P8-LE-NEXT: rldic 4, 4, 32, 15 1069; P8-LE-NEXT: stxvd2x 0, 0, 3 1070; P8-LE-NEXT: oris 4, 4, 1029 1071; P8-LE-NEXT: ori 4, 4, 1543 1072; P8-LE-NEXT: std 4, 16(3) 1073; P8-LE-NEXT: blr 1074; 1075; P9-LE-LABEL: foo13_int_be_reuse8B: 1076; P9-LE: # %bb.0: # %entry 1077; P9-LE-NEXT: addis 4, 2, .LCPI12_0@toc@ha 1078; P9-LE-NEXT: addi 4, 4, .LCPI12_0@toc@l 1079; P9-LE-NEXT: lxv 0, 0(4) 1080; P9-LE-NEXT: lis 4, 1 1081; P9-LE-NEXT: ori 4, 4, 515 1082; P9-LE-NEXT: rldic 4, 4, 32, 15 1083; P9-LE-NEXT: stxv 0, 0(3) 1084; P9-LE-NEXT: oris 4, 4, 1029 1085; P9-LE-NEXT: ori 4, 4, 1543 1086; P9-LE-NEXT: std 4, 16(3) 1087; P9-LE-NEXT: blr 1088; 1089; P10-LE-LABEL: foo13_int_be_reuse8B: 1090; P10-LE: # %bb.0: # %entry 1091; P10-LE-NEXT: plxv 0, .LCPI12_0@PCREL(0), 1 1092; P10-LE-NEXT: pli 4, 66051 1093; P10-LE-NEXT: pli 5, 67438087 1094; P10-LE-NEXT: rldimi 5, 4, 32, 0 1095; P10-LE-NEXT: std 5, 16(3) 1096; P10-LE-NEXT: stxv 0, 0(3) 1097; P10-LE-NEXT: blr 1098entry: 1099 store <2 x i64> <i64 283686952306183, i64 579005069656919567>, ptr %a, align 8 1100 %arrayidx2 = getelementptr inbounds i64, ptr %a, i64 2 1101 store i64 283686952306183, ptr %arrayidx2, align 8 1102 ret void 1103} 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: # %entry 1108; P8-BE-NEXT: ld 4, L..C13(2) # %const.0 1109; P8-BE-NEXT: lxvd2x 0, 0, 4 1110; P8-BE-NEXT: lis 4, 2057 1111; P8-BE-NEXT: ori 4, 4, 2571 1112; P8-BE-NEXT: rldic 4, 4, 32, 4 1113; P8-BE-NEXT: stxvd2x 0, 0, 3 1114; P8-BE-NEXT: oris 4, 4, 3085 1115; P8-BE-NEXT: ori 4, 4, 3599 1116; P8-BE-NEXT: std 4, 16(3) 1117; P8-BE-NEXT: blr 1118; 1119; P9-BE-LABEL: foo14_int_le_reuse8B: 1120; P9-BE: # %bb.0: # %entry 1121; P9-BE-NEXT: ld 4, L..C13(2) # %const.0 1122; P9-BE-NEXT: lxv 0, 0(4) 1123; P9-BE-NEXT: lis 4, 2057 1124; P9-BE-NEXT: ori 4, 4, 2571 1125; P9-BE-NEXT: rldic 4, 4, 32, 4 1126; P9-BE-NEXT: stxv 0, 0(3) 1127; P9-BE-NEXT: oris 4, 4, 3085 1128; P9-BE-NEXT: ori 4, 4, 3599 1129; P9-BE-NEXT: std 4, 16(3) 1130; P9-BE-NEXT: blr 1131; 1132; P10-BE-LABEL: foo14_int_le_reuse8B: 1133; P10-BE: # %bb.0: # %entry 1134; P10-BE-NEXT: ld 4, L..C13(2) # %const.0 1135; P10-BE-NEXT: pli 5, 202182159 1136; P10-BE-NEXT: lxv 0, 0(4) 1137; P10-BE-NEXT: pli 4, 134810123 1138; P10-BE-NEXT: rldimi 5, 4, 32, 0 1139; P10-BE-NEXT: std 5, 16(3) 1140; P10-BE-NEXT: stxv 0, 0(3) 1141; P10-BE-NEXT: blr 1142; 1143; P8-LE-LABEL: foo14_int_le_reuse8B: 1144; P8-LE: # %bb.0: # %entry 1145; P8-LE-NEXT: addis 4, 2, .LCPI13_0@toc@ha 1146; P8-LE-NEXT: addi 4, 4, .LCPI13_0@toc@l 1147; P8-LE-NEXT: lxvd2x 0, 0, 4 1148; P8-LE-NEXT: lis 4, 2057 1149; P8-LE-NEXT: ori 4, 4, 2571 1150; P8-LE-NEXT: rldic 4, 4, 32, 4 1151; P8-LE-NEXT: stxvd2x 0, 0, 3 1152; P8-LE-NEXT: oris 4, 4, 3085 1153; P8-LE-NEXT: ori 4, 4, 3599 1154; P8-LE-NEXT: std 4, 16(3) 1155; P8-LE-NEXT: blr 1156; 1157; P9-LE-LABEL: foo14_int_le_reuse8B: 1158; P9-LE: # %bb.0: # %entry 1159; P9-LE-NEXT: addis 4, 2, .LCPI13_0@toc@ha 1160; P9-LE-NEXT: addi 4, 4, .LCPI13_0@toc@l 1161; P9-LE-NEXT: lxv 0, 0(4) 1162; P9-LE-NEXT: lis 4, 2057 1163; P9-LE-NEXT: ori 4, 4, 2571 1164; P9-LE-NEXT: rldic 4, 4, 32, 4 1165; P9-LE-NEXT: stxv 0, 0(3) 1166; P9-LE-NEXT: oris 4, 4, 3085 1167; P9-LE-NEXT: ori 4, 4, 3599 1168; P9-LE-NEXT: std 4, 16(3) 1169; P9-LE-NEXT: blr 1170; 1171; P10-LE-LABEL: foo14_int_le_reuse8B: 1172; P10-LE: # %bb.0: # %entry 1173; P10-LE-NEXT: plxv 0, .LCPI13_0@PCREL(0), 1 1174; P10-LE-NEXT: pli 4, 134810123 1175; P10-LE-NEXT: pli 5, 202182159 1176; P10-LE-NEXT: rldimi 5, 4, 32, 0 1177; P10-LE-NEXT: std 5, 16(3) 1178; P10-LE-NEXT: stxv 0, 0(3) 1179; P10-LE-NEXT: blr 1180entry: 1181 store <2 x i64> <i64 283686952306183, i64 579005069656919567>, ptr %a, align 8 1182 %arrayidx2 = getelementptr inbounds i64, ptr %a, i64 2 1183 store i64 579005069656919567, ptr %arrayidx2, align 8 1184 ret void 1185} 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: # %entry 1190; P8-BE-NEXT: ld 4, L..C14(2) # %const.0 1191; P8-BE-NEXT: lxvw4x 0, 0, 4 1192; P8-BE-NEXT: lis 4, 1029 1193; P8-BE-NEXT: ori 4, 4, 1544 1194; P8-BE-NEXT: stw 4, 16(3) 1195; P8-BE-NEXT: stxvw4x 0, 0, 3 1196; P8-BE-NEXT: blr 1197; 1198; P9-BE-LABEL: foo15_int_noreuse4B: 1199; P9-BE: # %bb.0: # %entry 1200; P9-BE-NEXT: ld 4, L..C14(2) # %const.0 1201; P9-BE-NEXT: lxv 0, 0(4) 1202; P9-BE-NEXT: lis 4, 1029 1203; P9-BE-NEXT: ori 4, 4, 1544 1204; P9-BE-NEXT: stw 4, 16(3) 1205; P9-BE-NEXT: stxv 0, 0(3) 1206; P9-BE-NEXT: blr 1207; 1208; P10-BE-LABEL: foo15_int_noreuse4B: 1209; P10-BE: # %bb.0: # %entry 1210; P10-BE-NEXT: ld 4, L..C14(2) # %const.0 1211; P10-BE-NEXT: lxv 0, 0(4) 1212; P10-BE-NEXT: pli 4, 67438088 1213; P10-BE-NEXT: stw 4, 16(3) 1214; P10-BE-NEXT: stxv 0, 0(3) 1215; P10-BE-NEXT: blr 1216; 1217; P8-LE-LABEL: foo15_int_noreuse4B: 1218; P8-LE: # %bb.0: # %entry 1219; P8-LE-NEXT: addis 4, 2, .LCPI14_0@toc@ha 1220; P8-LE-NEXT: addi 4, 4, .LCPI14_0@toc@l 1221; P8-LE-NEXT: lxvd2x 0, 0, 4 1222; P8-LE-NEXT: lis 4, 1029 1223; P8-LE-NEXT: ori 4, 4, 1544 1224; P8-LE-NEXT: stw 4, 16(3) 1225; P8-LE-NEXT: stxvd2x 0, 0, 3 1226; P8-LE-NEXT: blr 1227; 1228; P9-LE-LABEL: foo15_int_noreuse4B: 1229; P9-LE: # %bb.0: # %entry 1230; P9-LE-NEXT: addis 4, 2, .LCPI14_0@toc@ha 1231; P9-LE-NEXT: addi 4, 4, .LCPI14_0@toc@l 1232; P9-LE-NEXT: lxv 0, 0(4) 1233; P9-LE-NEXT: lis 4, 1029 1234; P9-LE-NEXT: ori 4, 4, 1544 1235; P9-LE-NEXT: stw 4, 16(3) 1236; P9-LE-NEXT: stxv 0, 0(3) 1237; P9-LE-NEXT: blr 1238; 1239; P10-LE-LABEL: foo15_int_noreuse4B: 1240; P10-LE: # %bb.0: # %entry 1241; P10-LE-NEXT: plxv 0, .LCPI14_0@PCREL(0), 1 1242; P10-LE-NEXT: pli 4, 67438088 1243; P10-LE-NEXT: stw 4, 16(3) 1244; P10-LE-NEXT: stxv 0, 0(3) 1245; P10-LE-NEXT: blr 1246entry: 1247 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4 1248 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4 1249 store i32 67438088, ptr %arrayidx4, align 4 1250 ret void 1251} 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: # %entry 1256; P8-BE-NEXT: ld 4, L..C15(2) # %const.0 1257; P8-BE-NEXT: lxvw4x 0, 0, 4 1258; P8-BE-NEXT: lis 4, 1 1259; P8-BE-NEXT: ori 4, 4, 515 1260; P8-BE-NEXT: rldic 4, 4, 32, 15 1261; P8-BE-NEXT: stxvw4x 0, 0, 3 1262; P8-BE-NEXT: oris 4, 4, 1029 1263; P8-BE-NEXT: ori 4, 4, 1544 1264; P8-BE-NEXT: std 4, 16(3) 1265; P8-BE-NEXT: blr 1266; 1267; P9-BE-LABEL: foo16_int_noreuse8B: 1268; P9-BE: # %bb.0: # %entry 1269; P9-BE-NEXT: ld 4, L..C15(2) # %const.0 1270; P9-BE-NEXT: lxv 0, 0(4) 1271; P9-BE-NEXT: lis 4, 1 1272; P9-BE-NEXT: ori 4, 4, 515 1273; P9-BE-NEXT: rldic 4, 4, 32, 15 1274; P9-BE-NEXT: stxv 0, 0(3) 1275; P9-BE-NEXT: oris 4, 4, 1029 1276; P9-BE-NEXT: ori 4, 4, 1544 1277; P9-BE-NEXT: std 4, 16(3) 1278; P9-BE-NEXT: blr 1279; 1280; P10-BE-LABEL: foo16_int_noreuse8B: 1281; P10-BE: # %bb.0: # %entry 1282; P10-BE-NEXT: ld 4, L..C15(2) # %const.0 1283; P10-BE-NEXT: pli 5, 67438088 1284; P10-BE-NEXT: lxv 0, 0(4) 1285; P10-BE-NEXT: pli 4, 66051 1286; P10-BE-NEXT: rldimi 5, 4, 32, 0 1287; P10-BE-NEXT: std 5, 16(3) 1288; P10-BE-NEXT: stxv 0, 0(3) 1289; P10-BE-NEXT: blr 1290; 1291; P8-LE-LABEL: foo16_int_noreuse8B: 1292; P8-LE: # %bb.0: # %entry 1293; P8-LE-NEXT: addis 4, 2, .LCPI15_0@toc@ha 1294; P8-LE-NEXT: addi 4, 4, .LCPI15_0@toc@l 1295; P8-LE-NEXT: lxvd2x 0, 0, 4 1296; P8-LE-NEXT: lis 4, 128 1297; P8-LE-NEXT: ori 4, 4, 41153 1298; P8-LE-NEXT: rldic 4, 4, 35, 5 1299; P8-LE-NEXT: stxvd2x 0, 0, 3 1300; P8-LE-NEXT: oris 4, 4, 1 1301; P8-LE-NEXT: ori 4, 4, 515 1302; P8-LE-NEXT: std 4, 16(3) 1303; P8-LE-NEXT: blr 1304; 1305; P9-LE-LABEL: foo16_int_noreuse8B: 1306; P9-LE: # %bb.0: # %entry 1307; P9-LE-NEXT: addis 4, 2, .LCPI15_0@toc@ha 1308; P9-LE-NEXT: addi 4, 4, .LCPI15_0@toc@l 1309; P9-LE-NEXT: lxv 0, 0(4) 1310; P9-LE-NEXT: lis 4, 128 1311; P9-LE-NEXT: ori 4, 4, 41153 1312; P9-LE-NEXT: rldic 4, 4, 35, 5 1313; P9-LE-NEXT: stxv 0, 0(3) 1314; P9-LE-NEXT: oris 4, 4, 1 1315; P9-LE-NEXT: ori 4, 4, 515 1316; P9-LE-NEXT: std 4, 16(3) 1317; P9-LE-NEXT: blr 1318; 1319; P10-LE-LABEL: foo16_int_noreuse8B: 1320; P10-LE: # %bb.0: # %entry 1321; P10-LE-NEXT: plxv 0, .LCPI15_0@PCREL(0), 1 1322; P10-LE-NEXT: pli 4, 67438088 1323; P10-LE-NEXT: pli 5, 66051 1324; P10-LE-NEXT: rldimi 5, 4, 32, 0 1325; P10-LE-NEXT: std 5, 16(3) 1326; P10-LE-NEXT: stxv 0, 0(3) 1327; P10-LE-NEXT: blr 1328entry: 1329 store <4 x i32> <i32 66051, i32 67438087, i32 134810123, i32 202182159>, ptr %a, align 4 1330 %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 4 1331 store i32 66051, ptr %arrayidx4, align 4 1332 %arrayidx5 = getelementptr inbounds i32, ptr %a, i64 5 1333 store i32 67438088, ptr %arrayidx5, align 4 1334 ret void 1335} 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: # %entry 1340; P8-BE-NEXT: ld 4, L..C16(2) # %const.0 1341; P8-BE-NEXT: lxvw4x 0, 0, 4 1342; P8-BE-NEXT: lis 4, 16673 1343; P8-BE-NEXT: ori 4, 4, 39322 1344; P8-BE-NEXT: stw 4, 16(3) 1345; P8-BE-NEXT: stxvw4x 0, 0, 3 1346; P8-BE-NEXT: blr 1347; 1348; P9-BE-LABEL: foo17_fp_be_reuse4B: 1349; P9-BE: # %bb.0: # %entry 1350; P9-BE-NEXT: ld 4, L..C16(2) # %const.0 1351; P9-BE-NEXT: lxv 0, 0(4) 1352; P9-BE-NEXT: lis 4, 16673 1353; P9-BE-NEXT: ori 4, 4, 39322 1354; P9-BE-NEXT: stw 4, 16(3) 1355; P9-BE-NEXT: stxv 0, 0(3) 1356; P9-BE-NEXT: blr 1357; 1358; P10-BE-LABEL: foo17_fp_be_reuse4B: 1359; P10-BE: # %bb.0: # %entry 1360; P10-BE-NEXT: ld 4, L..C16(2) # %const.0 1361; P10-BE-NEXT: lxv 0, 0(4) 1362; P10-BE-NEXT: pli 4, 1092721050 1363; P10-BE-NEXT: stw 4, 16(3) 1364; P10-BE-NEXT: stxv 0, 0(3) 1365; P10-BE-NEXT: blr 1366; 1367; P8-LE-LABEL: foo17_fp_be_reuse4B: 1368; P8-LE: # %bb.0: # %entry 1369; P8-LE-NEXT: addis 4, 2, .LCPI16_0@toc@ha 1370; P8-LE-NEXT: addi 4, 4, .LCPI16_0@toc@l 1371; P8-LE-NEXT: lxvd2x 0, 0, 4 1372; P8-LE-NEXT: lis 4, 16673 1373; P8-LE-NEXT: ori 4, 4, 39322 1374; P8-LE-NEXT: stw 4, 16(3) 1375; P8-LE-NEXT: stxvd2x 0, 0, 3 1376; P8-LE-NEXT: blr 1377; 1378; P9-LE-LABEL: foo17_fp_be_reuse4B: 1379; P9-LE: # %bb.0: # %entry 1380; P9-LE-NEXT: addis 4, 2, .LCPI16_0@toc@ha 1381; P9-LE-NEXT: addi 4, 4, .LCPI16_0@toc@l 1382; P9-LE-NEXT: lxv 0, 0(4) 1383; P9-LE-NEXT: lis 4, 16673 1384; P9-LE-NEXT: ori 4, 4, 39322 1385; P9-LE-NEXT: stw 4, 16(3) 1386; P9-LE-NEXT: stxv 0, 0(3) 1387; P9-LE-NEXT: blr 1388; 1389; P10-LE-LABEL: foo17_fp_be_reuse4B: 1390; P10-LE: # %bb.0: # %entry 1391; P10-LE-NEXT: plxv 0, .LCPI16_0@PCREL(0), 1 1392; P10-LE-NEXT: pli 4, 1092721050 1393; P10-LE-NEXT: stw 4, 16(3) 1394; P10-LE-NEXT: stxv 0, 0(3) 1395; P10-LE-NEXT: blr 1396entry: 1397 store <4 x float> <float 1.000000e+00, float 0x4024333340000000, float 0x3FF3333340000000, float 0x3FF4CCCCC0000000>, ptr %a, align 4 1398 %arrayidx4 = getelementptr inbounds float, ptr %a, i64 4 1399 store float 0x4024333340000000, ptr %arrayidx4, align 4 1400 ret void 1401} 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: # %entry 1406; P8-BE-NEXT: ld 4, L..C17(2) # %const.0 1407; P8-BE-NEXT: lxvw4x 0, 0, 4 1408; P8-BE-NEXT: lis 4, 16675 1409; P8-BE-NEXT: ori 4, 4, 13107 1410; P8-BE-NEXT: stw 4, 16(3) 1411; P8-BE-NEXT: stxvw4x 0, 0, 3 1412; P8-BE-NEXT: blr 1413; 1414; P9-BE-LABEL: foo18_fp_le_reuse4B: 1415; P9-BE: # %bb.0: # %entry 1416; P9-BE-NEXT: ld 4, L..C17(2) # %const.0 1417; P9-BE-NEXT: lxv 0, 0(4) 1418; P9-BE-NEXT: lis 4, 16675 1419; P9-BE-NEXT: ori 4, 4, 13107 1420; P9-BE-NEXT: stw 4, 16(3) 1421; P9-BE-NEXT: stxv 0, 0(3) 1422; P9-BE-NEXT: blr 1423; 1424; P10-BE-LABEL: foo18_fp_le_reuse4B: 1425; P10-BE: # %bb.0: # %entry 1426; P10-BE-NEXT: ld 4, L..C17(2) # %const.0 1427; P10-BE-NEXT: lxv 0, 0(4) 1428; P10-BE-NEXT: pli 4, 1092825907 1429; P10-BE-NEXT: stw 4, 16(3) 1430; P10-BE-NEXT: stxv 0, 0(3) 1431; P10-BE-NEXT: blr 1432; 1433; P8-LE-LABEL: foo18_fp_le_reuse4B: 1434; P8-LE: # %bb.0: # %entry 1435; P8-LE-NEXT: addis 4, 2, .LCPI17_0@toc@ha 1436; P8-LE-NEXT: addi 4, 4, .LCPI17_0@toc@l 1437; P8-LE-NEXT: lxvd2x 0, 0, 4 1438; P8-LE-NEXT: lis 4, 16675 1439; P8-LE-NEXT: ori 4, 4, 13107 1440; P8-LE-NEXT: stw 4, 16(3) 1441; P8-LE-NEXT: stxvd2x 0, 0, 3 1442; P8-LE-NEXT: blr 1443; 1444; P9-LE-LABEL: foo18_fp_le_reuse4B: 1445; P9-LE: # %bb.0: # %entry 1446; P9-LE-NEXT: addis 4, 2, .LCPI17_0@toc@ha 1447; P9-LE-NEXT: addi 4, 4, .LCPI17_0@toc@l 1448; P9-LE-NEXT: lxv 0, 0(4) 1449; P9-LE-NEXT: lis 4, 16675 1450; P9-LE-NEXT: ori 4, 4, 13107 1451; P9-LE-NEXT: stw 4, 16(3) 1452; P9-LE-NEXT: stxv 0, 0(3) 1453; P9-LE-NEXT: blr 1454; 1455; P10-LE-LABEL: foo18_fp_le_reuse4B: 1456; P10-LE: # %bb.0: # %entry 1457; P10-LE-NEXT: plxv 0, .LCPI17_0@PCREL(0), 1 1458; P10-LE-NEXT: pli 4, 1092825907 1459; P10-LE-NEXT: stw 4, 16(3) 1460; P10-LE-NEXT: stxv 0, 0(3) 1461; P10-LE-NEXT: blr 1462entry: 1463 store <4 x float> <float 1.000000e+00, float 0x3FF19999A0000000, float 0x4024666660000000, float 0x3FF4CCCCC0000000>, ptr %a, align 4 1464 %arrayidx4 = getelementptr inbounds float, ptr %a, i64 4 1465 store float 0x4024666660000000, ptr %arrayidx4, align 4 1466 ret void 1467} 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: # %entry 1472; P8-BE-NEXT: ld 4, L..C18(2) # %const.0 1473; P8-BE-NEXT: lxvd2x 0, 0, 4 1474; P8-BE-NEXT: li 4, 4105 1475; P8-BE-NEXT: rldic 4, 4, 50, 1 1476; P8-BE-NEXT: std 4, 16(3) 1477; P8-BE-NEXT: stxvd2x 0, 0, 3 1478; P8-BE-NEXT: blr 1479; 1480; P9-BE-LABEL: foo19_fp_be_reuse8B: 1481; P9-BE: # %bb.0: # %entry 1482; P9-BE-NEXT: ld 4, L..C18(2) # %const.0 1483; P9-BE-NEXT: lxv 0, 0(4) 1484; P9-BE-NEXT: li 4, 4105 1485; P9-BE-NEXT: rldic 4, 4, 50, 1 1486; P9-BE-NEXT: std 4, 16(3) 1487; P9-BE-NEXT: stxv 0, 0(3) 1488; P9-BE-NEXT: blr 1489; 1490; P10-BE-LABEL: foo19_fp_be_reuse8B: 1491; P10-BE: # %bb.0: # %entry 1492; P10-BE-NEXT: ld 4, L..C18(2) # %const.0 1493; P10-BE-NEXT: lxv 0, 0(4) 1494; P10-BE-NEXT: li 4, 4105 1495; P10-BE-NEXT: rldic 4, 4, 50, 1 1496; P10-BE-NEXT: std 4, 16(3) 1497; P10-BE-NEXT: stxv 0, 0(3) 1498; P10-BE-NEXT: blr 1499; 1500; P8-LE-LABEL: foo19_fp_be_reuse8B: 1501; P8-LE: # %bb.0: # %entry 1502; P8-LE-NEXT: addis 4, 2, .LCPI18_0@toc@ha 1503; P8-LE-NEXT: addi 4, 4, .LCPI18_0@toc@l 1504; P8-LE-NEXT: lxvd2x 0, 0, 4 1505; P8-LE-NEXT: li 4, 4105 1506; P8-LE-NEXT: rldic 4, 4, 50, 1 1507; P8-LE-NEXT: std 4, 16(3) 1508; P8-LE-NEXT: stxvd2x 0, 0, 3 1509; P8-LE-NEXT: blr 1510; 1511; P9-LE-LABEL: foo19_fp_be_reuse8B: 1512; P9-LE: # %bb.0: # %entry 1513; P9-LE-NEXT: addis 4, 2, .LCPI18_0@toc@ha 1514; P9-LE-NEXT: addi 4, 4, .LCPI18_0@toc@l 1515; P9-LE-NEXT: lxv 0, 0(4) 1516; P9-LE-NEXT: li 4, 4105 1517; P9-LE-NEXT: rldic 4, 4, 50, 1 1518; P9-LE-NEXT: std 4, 16(3) 1519; P9-LE-NEXT: stxv 0, 0(3) 1520; P9-LE-NEXT: blr 1521; 1522; P10-LE-LABEL: foo19_fp_be_reuse8B: 1523; P10-LE: # %bb.0: # %entry 1524; P10-LE-NEXT: plxv 0, .LCPI18_0@PCREL(0), 1 1525; P10-LE-NEXT: li 4, 4105 1526; P10-LE-NEXT: rldic 4, 4, 50, 1 1527; P10-LE-NEXT: std 4, 16(3) 1528; P10-LE-NEXT: stxv 0, 0(3) 1529; P10-LE-NEXT: blr 1530entry: 1531 store <2 x double> <double 1.000000e+01, double 1.100000e+00>, ptr %a, align 8 1532 %arrayidx2 = getelementptr inbounds double, ptr %a, i64 2 1533 store double 1.000000e+01, ptr %arrayidx2, align 8 1534 ret void 1535} 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: # %entry 1540; P8-BE-NEXT: ld 4, L..C19(2) # %const.0 1541; P8-BE-NEXT: lxvd2x 0, 0, 4 1542; P8-BE-NEXT: lis 4, 16420 1543; P8-BE-NEXT: ori 4, 4, 13107 1544; P8-BE-NEXT: rldimi 4, 4, 32, 0 1545; P8-BE-NEXT: stxvd2x 0, 0, 3 1546; P8-BE-NEXT: rlwimi 4, 4, 16, 0, 15 1547; P8-BE-NEXT: std 4, 16(3) 1548; P8-BE-NEXT: blr 1549; 1550; P9-BE-LABEL: foo20_fp_le_reuse8B: 1551; P9-BE: # %bb.0: # %entry 1552; P9-BE-NEXT: ld 4, L..C19(2) # %const.0 1553; P9-BE-NEXT: lxv 0, 0(4) 1554; P9-BE-NEXT: lis 4, 16420 1555; P9-BE-NEXT: ori 4, 4, 13107 1556; P9-BE-NEXT: rldimi 4, 4, 32, 0 1557; P9-BE-NEXT: stxv 0, 0(3) 1558; P9-BE-NEXT: rlwimi 4, 4, 16, 0, 15 1559; P9-BE-NEXT: std 4, 16(3) 1560; P9-BE-NEXT: blr 1561; 1562; P10-BE-LABEL: foo20_fp_le_reuse8B: 1563; P10-BE: # %bb.0: # %entry 1564; P10-BE-NEXT: ld 4, L..C19(2) # %const.0 1565; P10-BE-NEXT: pli 5, 858993459 1566; P10-BE-NEXT: lxv 0, 0(4) 1567; P10-BE-NEXT: pli 4, 1076114227 1568; P10-BE-NEXT: rldimi 5, 4, 32, 0 1569; P10-BE-NEXT: std 5, 16(3) 1570; P10-BE-NEXT: stxv 0, 0(3) 1571; P10-BE-NEXT: blr 1572; 1573; P8-LE-LABEL: foo20_fp_le_reuse8B: 1574; P8-LE: # %bb.0: # %entry 1575; P8-LE-NEXT: addis 4, 2, .LCPI19_0@toc@ha 1576; P8-LE-NEXT: addi 4, 4, .LCPI19_0@toc@l 1577; P8-LE-NEXT: lxvd2x 0, 0, 4 1578; P8-LE-NEXT: lis 4, 16420 1579; P8-LE-NEXT: ori 4, 4, 13107 1580; P8-LE-NEXT: rldimi 4, 4, 32, 0 1581; P8-LE-NEXT: stxvd2x 0, 0, 3 1582; P8-LE-NEXT: rlwimi 4, 4, 16, 0, 15 1583; P8-LE-NEXT: std 4, 16(3) 1584; P8-LE-NEXT: blr 1585; 1586; P9-LE-LABEL: foo20_fp_le_reuse8B: 1587; P9-LE: # %bb.0: # %entry 1588; P9-LE-NEXT: addis 4, 2, .LCPI19_0@toc@ha 1589; P9-LE-NEXT: addi 4, 4, .LCPI19_0@toc@l 1590; P9-LE-NEXT: lxv 0, 0(4) 1591; P9-LE-NEXT: lis 4, 16420 1592; P9-LE-NEXT: ori 4, 4, 13107 1593; P9-LE-NEXT: rldimi 4, 4, 32, 0 1594; P9-LE-NEXT: stxv 0, 0(3) 1595; P9-LE-NEXT: rlwimi 4, 4, 16, 0, 15 1596; P9-LE-NEXT: std 4, 16(3) 1597; P9-LE-NEXT: blr 1598; 1599; P10-LE-LABEL: foo20_fp_le_reuse8B: 1600; P10-LE: # %bb.0: # %entry 1601; P10-LE-NEXT: plxv 0, .LCPI19_0@PCREL(0), 1 1602; P10-LE-NEXT: pli 4, 1076114227 1603; P10-LE-NEXT: pli 5, 858993459 1604; P10-LE-NEXT: rldimi 5, 4, 32, 0 1605; P10-LE-NEXT: std 5, 16(3) 1606; P10-LE-NEXT: stxv 0, 0(3) 1607; P10-LE-NEXT: blr 1608entry: 1609 store <2 x double> <double 1.000000e+00, double 1.010000e+01>, ptr %a, align 8 1610 %arrayidx2 = getelementptr inbounds double, ptr %a, i64 2 1611 store double 1.010000e+01, ptr %arrayidx2, align 8 1612 ret void 1613} 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: # %entry 1618; P8-BE-NEXT: ld 4, L..C20(2) # %const.0 1619; P8-BE-NEXT: lxvw4x 0, 0, 4 1620; P8-BE-NEXT: lis 4, 16268 1621; P8-BE-NEXT: ori 4, 4, 52430 1622; P8-BE-NEXT: stw 4, 16(3) 1623; P8-BE-NEXT: stxvw4x 0, 0, 3 1624; P8-BE-NEXT: blr 1625; 1626; P9-BE-LABEL: foo21_fp_noreuse4B: 1627; P9-BE: # %bb.0: # %entry 1628; P9-BE-NEXT: ld 4, L..C20(2) # %const.0 1629; P9-BE-NEXT: lxv 0, 0(4) 1630; P9-BE-NEXT: lis 4, 16268 1631; P9-BE-NEXT: ori 4, 4, 52430 1632; P9-BE-NEXT: stw 4, 16(3) 1633; P9-BE-NEXT: stxv 0, 0(3) 1634; P9-BE-NEXT: blr 1635; 1636; P10-BE-LABEL: foo21_fp_noreuse4B: 1637; P10-BE: # %bb.0: # %entry 1638; P10-BE-NEXT: ld 4, L..C20(2) # %const.0 1639; P10-BE-NEXT: lxv 0, 0(4) 1640; P10-BE-NEXT: pli 4, 1066192078 1641; P10-BE-NEXT: stw 4, 16(3) 1642; P10-BE-NEXT: stxv 0, 0(3) 1643; P10-BE-NEXT: blr 1644; 1645; P8-LE-LABEL: foo21_fp_noreuse4B: 1646; P8-LE: # %bb.0: # %entry 1647; P8-LE-NEXT: addis 4, 2, .LCPI20_0@toc@ha 1648; P8-LE-NEXT: addi 4, 4, .LCPI20_0@toc@l 1649; P8-LE-NEXT: lxvd2x 0, 0, 4 1650; P8-LE-NEXT: lis 4, 16268 1651; P8-LE-NEXT: ori 4, 4, 52430 1652; P8-LE-NEXT: stw 4, 16(3) 1653; P8-LE-NEXT: stxvd2x 0, 0, 3 1654; P8-LE-NEXT: blr 1655; 1656; P9-LE-LABEL: foo21_fp_noreuse4B: 1657; P9-LE: # %bb.0: # %entry 1658; P9-LE-NEXT: addis 4, 2, .LCPI20_0@toc@ha 1659; P9-LE-NEXT: addi 4, 4, .LCPI20_0@toc@l 1660; P9-LE-NEXT: lxv 0, 0(4) 1661; P9-LE-NEXT: lis 4, 16268 1662; P9-LE-NEXT: ori 4, 4, 52430 1663; P9-LE-NEXT: stw 4, 16(3) 1664; P9-LE-NEXT: stxv 0, 0(3) 1665; P9-LE-NEXT: blr 1666; 1667; P10-LE-LABEL: foo21_fp_noreuse4B: 1668; P10-LE: # %bb.0: # %entry 1669; P10-LE-NEXT: plxv 0, .LCPI20_0@PCREL(0), 1 1670; P10-LE-NEXT: pli 4, 1066192078 1671; P10-LE-NEXT: stw 4, 16(3) 1672; P10-LE-NEXT: stxv 0, 0(3) 1673; P10-LE-NEXT: blr 1674entry: 1675 store <4 x float> <float 1.000000e+00, float 0x3FF19999A0000000, float 0x3FF3333340000000, float 0x3FF4CCCCC0000000>, ptr %a, align 4 1676 %arrayidx4 = getelementptr inbounds float, ptr %a, i64 4 1677 store float 0x3FF19999C0000000, ptr %arrayidx4, align 4 1678 ret void 1679} 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: # %entry 1684; P8-BE-NEXT: ld 4, L..C21(2) # %const.0 1685; P8-BE-NEXT: lxvd2x 0, 0, 4 1686; P8-BE-NEXT: li 4, 21503 1687; P8-BE-NEXT: rotldi 4, 4, 52 1688; P8-BE-NEXT: std 4, 16(3) 1689; P8-BE-NEXT: stxvd2x 0, 0, 3 1690; P8-BE-NEXT: blr 1691; 1692; P9-BE-LABEL: foo22_fp_noreuse8B: 1693; P9-BE: # %bb.0: # %entry 1694; P9-BE-NEXT: ld 4, L..C21(2) # %const.0 1695; P9-BE-NEXT: lxv 0, 0(4) 1696; P9-BE-NEXT: li 4, 21503 1697; P9-BE-NEXT: rotldi 4, 4, 52 1698; P9-BE-NEXT: std 4, 16(3) 1699; P9-BE-NEXT: stxv 0, 0(3) 1700; P9-BE-NEXT: blr 1701; 1702; P10-BE-LABEL: foo22_fp_noreuse8B: 1703; P10-BE: # %bb.0: # %entry 1704; P10-BE-NEXT: ld 4, L..C21(2) # %const.0 1705; P10-BE-NEXT: lxv 0, 0(4) 1706; P10-BE-NEXT: li 4, 21503 1707; P10-BE-NEXT: rotldi 4, 4, 52 1708; P10-BE-NEXT: std 4, 16(3) 1709; P10-BE-NEXT: stxv 0, 0(3) 1710; P10-BE-NEXT: blr 1711; 1712; P8-LE-LABEL: foo22_fp_noreuse8B: 1713; P8-LE: # %bb.0: # %entry 1714; P8-LE-NEXT: addis 4, 2, .LCPI21_0@toc@ha 1715; P8-LE-NEXT: addi 4, 4, .LCPI21_0@toc@l 1716; P8-LE-NEXT: lxvd2x 0, 0, 4 1717; P8-LE-NEXT: li 4, 21503 1718; P8-LE-NEXT: rotldi 4, 4, 52 1719; P8-LE-NEXT: std 4, 16(3) 1720; P8-LE-NEXT: stxvd2x 0, 0, 3 1721; P8-LE-NEXT: blr 1722; 1723; P9-LE-LABEL: foo22_fp_noreuse8B: 1724; P9-LE: # %bb.0: # %entry 1725; P9-LE-NEXT: addis 4, 2, .LCPI21_0@toc@ha 1726; P9-LE-NEXT: addi 4, 4, .LCPI21_0@toc@l 1727; P9-LE-NEXT: lxv 0, 0(4) 1728; P9-LE-NEXT: li 4, 21503 1729; P9-LE-NEXT: rotldi 4, 4, 52 1730; P9-LE-NEXT: std 4, 16(3) 1731; P9-LE-NEXT: stxv 0, 0(3) 1732; P9-LE-NEXT: blr 1733; 1734; P10-LE-LABEL: foo22_fp_noreuse8B: 1735; P10-LE: # %bb.0: # %entry 1736; P10-LE-NEXT: plxv 0, .LCPI21_0@PCREL(0), 1 1737; P10-LE-NEXT: li 4, 21503 1738; P10-LE-NEXT: rotldi 4, 4, 52 1739; P10-LE-NEXT: std 4, 16(3) 1740; P10-LE-NEXT: stxv 0, 0(3) 1741; P10-LE-NEXT: blr 1742entry: 1743 store <2 x double> <double 1.000000e+00, double 1.100000e+00>, ptr %a, align 8 1744 %arrayidx2 = getelementptr inbounds double, ptr %a, i64 2 1745 store double 0x3FF0000000000005, ptr %arrayidx2, align 8 1746 ret void 1747} 1748