brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.0 KiB · 2ded721 Raw
442 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-- \3; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names < %s | FileCheck %s4; RUN: llc -verify-machineinstrs -target-abi=elfv2 -mtriple=powerpc64-- \5; RUN:   -mcpu=pwr10 -ppc-asm-full-reg-names < %s | FileCheck %s6; RUN: llc -verify-machineinstrs -target-abi=elfv2 -mtriple=powerpc64-- \7; RUN:   -mcpu=pwr9 -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefix=CHECK-P98 9 define float @FloatConstantPool() {10; CHECK-LABEL: FloatConstantPool:11; CHECK:       # %bb.0: # %entry12; CHECK-NEXT:    xxsplti32dx vs1, 0, 94057266413; CHECK-NEXT:    xxsplti32dx vs1, 1, 107374182414; CHECK-NEXT:    blr15;16; CHECK-P9-LABEL: FloatConstantPool:17; CHECK-P9:       # %bb.0: # %entry18; CHECK-P9-NEXT:    addis r3, r2, .LCPI0_0@toc@ha19; CHECK-P9-NEXT:    lfs f1, .LCPI0_0@toc@l(r3)20; CHECK-P9-NEXT:    blr21entry:22  ret float 0x380FFFF84000000023}24 25 define double @DoubleConstantPool() {26; CHECK-LABEL: DoubleConstantPool:27; CHECK:       # %bb.0: # %entry28; CHECK-NEXT:    xxsplti32dx vs1, 0, 104857429; CHECK-NEXT:    xxsplti32dx vs1, 1, 78022907230; CHECK-NEXT:    blr31;32; CHECK-P9-LABEL: DoubleConstantPool:33; CHECK-P9:       # %bb.0: # %entry34; CHECK-P9-NEXT:    addis r3, r2, .LCPI1_0@toc@ha35; CHECK-P9-NEXT:    lfd f1, .LCPI1_0@toc@l(r3)36; CHECK-P9-NEXT:    blr37entry:38  ret double 2.225070e-30839}40 41 define ppc_fp128 @LongDoubleConstantPool() {42; CHECK-LABEL: LongDoubleConstantPool:43; CHECK:       # %bb.0: # %entry44; CHECK-NEXT:    xxsplti32dx vs1, 0, 5662310445; CHECK-NEXT:    xxsplti32dx vs2, 0, -214662589746; CHECK-NEXT:    xxsplti32dx vs1, 1, -60971653247; CHECK-NEXT:    xxsplti32dx vs2, 1, 133967525948; CHECK-NEXT:    blr49;50; CHECK-P9-LABEL: LongDoubleConstantPool:51; CHECK-P9:       # %bb.0: # %entry52; CHECK-P9-NEXT:    addis r3, r2, .LCPI2_0@toc@ha53; CHECK-P9-NEXT:    lfd f1, .LCPI2_0@toc@l(r3)54; CHECK-P9-NEXT:    addis r3, r2, .LCPI2_1@toc@ha55; CHECK-P9-NEXT:    lfd f2, .LCPI2_1@toc@l(r3)56; CHECK-P9-NEXT:    blr57entry:58  ret ppc_fp128 0xM03600000DBA876CC800D16974FD9D27B59}60 61 define fp128 @__Float128ConstantPool() {62; CHECK-LABEL: __Float128ConstantPool:63; CHECK:       # %bb.0: # %entry64; CHECK-NEXT:    plxv vs34, .LCPI3_0@PCREL(0), 165; CHECK-NEXT:    blr66;67; CHECK-P9-LABEL: __Float128ConstantPool:68; CHECK-P9:       # %bb.0: # %entry69; CHECK-P9-NEXT:    addis r3, r2, .LCPI3_0@toc@ha70; CHECK-P9-NEXT:    addi r3, r3, .LCPI3_0@toc@l71; CHECK-P9-NEXT:    lxv vs34, 0(r3)72; CHECK-P9-NEXT:    blr73entry:74  ret fp128 0xL00000000000000003C00FFFFC5D02B3A75}76 77 define <16 x i8> @VectorCharConstantPool() {78; CHECK-LABEL: VectorCharConstantPool:79; CHECK:       # %bb.0: # %entry80; CHECK-NEXT:    plxv vs34, .LCPI4_0@PCREL(0), 181; CHECK-NEXT:    blr82;83; CHECK-P9-LABEL: VectorCharConstantPool:84; CHECK-P9:       # %bb.0: # %entry85; CHECK-P9-NEXT:    addis r3, r2, .LCPI4_0@toc@ha86; CHECK-P9-NEXT:    addi r3, r3, .LCPI4_0@toc@l87; CHECK-P9-NEXT:    lxv vs34, 0(r3)88; CHECK-P9-NEXT:    blr89entry:90  ret <16 x i8> <i8 -128, i8 -127, i8 -126, i8 -125, i8 -124, i8 -123, i8 -122, i8 -121, i8 -120, i8 -119, i8 -118, i8 -117, i8 -116, i8 -115, i8 -114, i8 -113>91}92 93 define <8 x i16> @VectorShortConstantPool() {94; CHECK-LABEL: VectorShortConstantPool:95; CHECK:       # %bb.0: # %entry96; CHECK-NEXT:    plxv vs34, .LCPI5_0@PCREL(0), 197; CHECK-NEXT:    blr98;99; CHECK-P9-LABEL: VectorShortConstantPool:100; CHECK-P9:       # %bb.0: # %entry101; CHECK-P9-NEXT:    addis r3, r2, .LCPI5_0@toc@ha102; CHECK-P9-NEXT:    addi r3, r3, .LCPI5_0@toc@l103; CHECK-P9-NEXT:    lxv vs34, 0(r3)104; CHECK-P9-NEXT:    blr105entry:106  ret <8 x i16> <i16 -32768, i16 -32767, i16 -32766, i16 -32765, i16 -32764, i16 -32763, i16 -32762, i16 -32761>107}108 109 define <4 x i32> @VectorIntConstantPool() {110; CHECK-LABEL: VectorIntConstantPool:111; CHECK:       # %bb.0: # %entry112; CHECK-NEXT:    plxv vs34, .LCPI6_0@PCREL(0), 1113; CHECK-NEXT:    blr114;115; CHECK-P9-LABEL: VectorIntConstantPool:116; CHECK-P9:       # %bb.0: # %entry117; CHECK-P9-NEXT:    addis r3, r2, .LCPI6_0@toc@ha118; CHECK-P9-NEXT:    addi r3, r3, .LCPI6_0@toc@l119; CHECK-P9-NEXT:    lxv vs34, 0(r3)120; CHECK-P9-NEXT:    blr121entry:122  ret <4 x i32> <i32 -2147483648, i32 -2147483647, i32 -2147483646, i32 -2147483645>123}124 125 define <2 x i64> @VectorLongLongConstantPool() {126; CHECK-LABEL: VectorLongLongConstantPool:127; CHECK:       # %bb.0: # %entry128; CHECK-NEXT:    plxv vs34, .LCPI7_0@PCREL(0), 1129; CHECK-NEXT:    blr130;131; CHECK-P9-LABEL: VectorLongLongConstantPool:132; CHECK-P9:       # %bb.0: # %entry133; CHECK-P9-NEXT:    addis r3, r2, .LCPI7_0@toc@ha134; CHECK-P9-NEXT:    addi r3, r3, .LCPI7_0@toc@l135; CHECK-P9-NEXT:    lxv vs34, 0(r3)136; CHECK-P9-NEXT:    blr137entry:138  ret <2 x i64> <i64 -9223372036854775808, i64 -9223372036854775807>139}140 141 define <1 x i128> @VectorInt128ConstantPool() {142; CHECK-LABEL: VectorInt128ConstantPool:143; CHECK:       # %bb.0: # %entry144; CHECK-NEXT:    plxv vs34, .LCPI8_0@PCREL(0), 1145; CHECK-NEXT:    blr146;147; CHECK-P9-LABEL: VectorInt128ConstantPool:148; CHECK-P9:       # %bb.0: # %entry149; CHECK-P9-NEXT:    addis r3, r2, .LCPI8_0@toc@ha150; CHECK-P9-NEXT:    addi r3, r3, .LCPI8_0@toc@l151; CHECK-P9-NEXT:    lxv vs34, 0(r3)152; CHECK-P9-NEXT:    blr153entry:154  ret <1 x i128> <i128 -27670116110564327424>155}156 157 define <4 x float> @VectorFloatConstantPool() {158; CHECK-LABEL: VectorFloatConstantPool:159; CHECK:       # %bb.0: # %entry160; CHECK-NEXT:    plxv vs34, .LCPI9_0@PCREL(0), 1161; CHECK-NEXT:    blr162;163; CHECK-P9-LABEL: VectorFloatConstantPool:164; CHECK-P9:       # %bb.0: # %entry165; CHECK-P9-NEXT:    addis r3, r2, .LCPI9_0@toc@ha166; CHECK-P9-NEXT:    addi r3, r3, .LCPI9_0@toc@l167; CHECK-P9-NEXT:    lxv vs34, 0(r3)168; CHECK-P9-NEXT:    blr169entry:170  ret <4 x float> <float 0x380FFFF840000000, float 0x380FFF57C0000000, float 0x3843FFFB20000000, float 0x3843FF96C0000000>171}172 173 define <2 x double> @VectorDoubleConstantPool() {174; CHECK-LABEL: VectorDoubleConstantPool:175; CHECK:       # %bb.0: # %entry176; CHECK-NEXT:    plxv vs34, .LCPI10_0@PCREL(0), 1177; CHECK-NEXT:    blr178;179; CHECK-P9-LABEL: VectorDoubleConstantPool:180; CHECK-P9:       # %bb.0: # %entry181; CHECK-P9-NEXT:    addis r3, r2, .LCPI10_0@toc@ha182; CHECK-P9-NEXT:    addi r3, r3, .LCPI10_0@toc@l183; CHECK-P9-NEXT:    lxv vs34, 0(r3)184; CHECK-P9-NEXT:    blr185entry:186  ret <2 x double> <double 2.225070e-308, double 2.225000e-308>187}188 189define double @two_constants(double %a) {190; CHECK-LABEL: two_constants:191; CHECK:       # %bb.0: # %entry192; CHECK-NEXT:    xxsplti32dx vs0, 0, 1074446467193; CHECK-NEXT:    xxsplti32dx vs0, 1, 309237645194; CHECK-NEXT:    xsadddp f0, f1, f0195; CHECK-NEXT:    xxsplti32dx vs1, 0, 1073922179196; CHECK-NEXT:    xxsplti32dx vs1, 1, 309237645197; CHECK-NEXT:    xsadddp f1, f0, f1198; CHECK-NEXT:    blr199;200; CHECK-P9-LABEL: two_constants:201; CHECK-P9:       # %bb.0: # %entry202; CHECK-P9-NEXT:    addis r3, r2, .LCPI11_0@toc@ha203; CHECK-P9-NEXT:    lfd f0, .LCPI11_0@toc@l(r3)204; CHECK-P9-NEXT:    addis r3, r2, .LCPI11_1@toc@ha205; CHECK-P9-NEXT:    xsadddp f0, f1, f0206; CHECK-P9-NEXT:    lfd f1, .LCPI11_1@toc@l(r3)207; CHECK-P9-NEXT:    xsadddp f1, f0, f1208; CHECK-P9-NEXT:    blr209entry:210  %0 = fadd double %a, 3.344000e+00211  %1 = fadd double %0, 2.344000e+00212  ret double %1213}214 215define double @two_constants_two_bb(i32 %m, double %a) {216; CHECK-LABEL: two_constants_two_bb:217; CHECK:       # %bb.0: # %entry218; CHECK-NEXT:    cmplwi r3, 0219; CHECK-NEXT:    beq cr0, .LBB12_2220; CHECK-NEXT:  # %bb.1:221; CHECK-NEXT:    xxsplti32dx vs1, 0, 1074935889222; CHECK-NEXT:    xxsplti32dx vs1, 1, -343597384223; CHECK-NEXT:    blr224; CHECK-NEXT:  .LBB12_2: # %if.end225; CHECK-NEXT:    xxsplti32dx vs0, 0, 1076085391226; CHECK-NEXT:    xxsplti32dx vs0, 1, 1546188227227; CHECK-NEXT:    xsadddp f1, f1, f0228; CHECK-NEXT:    blr229;230; CHECK-P9-LABEL: two_constants_two_bb:231; CHECK-P9:       # %bb.0: # %entry232; CHECK-P9-NEXT:    cmplwi r3, 0233; CHECK-P9-NEXT:    beq cr0, .LBB12_2234; CHECK-P9-NEXT:  # %bb.1:235; CHECK-P9-NEXT:    addis r3, r2, .LCPI12_0@toc@ha236; CHECK-P9-NEXT:    lfd f1, .LCPI12_0@toc@l(r3)237; CHECK-P9-NEXT:    blr238; CHECK-P9-NEXT:  .LBB12_2: # %if.end239; CHECK-P9-NEXT:    addis r3, r2, .LCPI12_1@toc@ha240; CHECK-P9-NEXT:    lfd f0, .LCPI12_1@toc@l(r3)241; CHECK-P9-NEXT:    xsadddp f1, f1, f0242; CHECK-P9-NEXT:    blr243entry:244  %tobool.not = icmp eq i32 %m, 0245  br i1 %tobool.not, label %if.end, label %return246 247if.end:248  %add = fadd double %a, 9.880000e+00249  br label %return250 251return:252  %retval.0 = phi double [ %add, %if.end ], [ 4.555000e+00, %entry ]253  ret double %retval.0254}255 256define double @three_constants_f64(double %a, double %c) {257; CHECK-LABEL: three_constants_f64:258; CHECK:       # %bb.0: # %entry259; CHECK-NEXT:    xxsplti32dx vs0, 0, 1074446467260; CHECK-NEXT:    xxsplti32dx vs0, 1, 309237645261; CHECK-NEXT:    xsadddp f0, f1, f0262; CHECK-NEXT:    xxsplti32dx vs1, 0, 1073922179263; CHECK-NEXT:    xxsplti32dx vs1, 1, 309237645264; CHECK-NEXT:    xsadddp f0, f0, f1265; CHECK-NEXT:    xxsplti32dx vs1, 0, 1073948393266; CHECK-NEXT:    xxsplti32dx vs1, 1, 2027224564267; CHECK-NEXT:    xsadddp f1, f0, f1268; CHECK-NEXT:    blr269;270; CHECK-P9-LABEL: three_constants_f64:271; CHECK-P9:       # %bb.0: # %entry272; CHECK-P9-NEXT:    addis r3, r2, .LCPI13_0@toc@ha273; CHECK-P9-NEXT:    lfd f0, .LCPI13_0@toc@l(r3)274; CHECK-P9-NEXT:    addis r3, r2, .LCPI13_1@toc@ha275; CHECK-P9-NEXT:    xsadddp f0, f1, f0276; CHECK-P9-NEXT:    lfd f1, .LCPI13_1@toc@l(r3)277; CHECK-P9-NEXT:    addis r3, r2, .LCPI13_2@toc@ha278; CHECK-P9-NEXT:    xsadddp f0, f0, f1279; CHECK-P9-NEXT:    lfd f1, .LCPI13_2@toc@l(r3)280; CHECK-P9-NEXT:    xsadddp f1, f0, f1281; CHECK-P9-NEXT:    blr282entry:283  %0 = fadd double %a, 3.344000e+00284  %1 = fadd double %0, 2.344000e+00285  %2 = fadd double %1, 2.394000e+00286  ret double %2287}288 289define float @three_constants_f32(float %a, float %c) {290; CHECK-LABEL: three_constants_f32:291; CHECK:       # %bb.0: # %entry292; CHECK-NEXT:    xxspltidp vs0, 1083294351293; CHECK-NEXT:    xsaddsp f0, f1, f0294; CHECK-NEXT:    xxspltidp vs1, 1083296911295; CHECK-NEXT:    xsaddsp f0, f0, f1296; CHECK-NEXT:    xxspltidp vs1, 1083292559297; CHECK-NEXT:    xsaddsp f1, f0, f1298; CHECK-NEXT:    blr299;300; CHECK-P9-LABEL: three_constants_f32:301; CHECK-P9:       # %bb.0: # %entry302; CHECK-P9-NEXT:    addis r3, r2, .LCPI14_0@toc@ha303; CHECK-P9-NEXT:    lfs f0, .LCPI14_0@toc@l(r3)304; CHECK-P9-NEXT:    addis r3, r2, .LCPI14_1@toc@ha305; CHECK-P9-NEXT:    xsaddsp f0, f1, f0306; CHECK-P9-NEXT:    lfs f1, .LCPI14_1@toc@l(r3)307; CHECK-P9-NEXT:    addis r3, r2, .LCPI14_2@toc@ha308; CHECK-P9-NEXT:    xsaddsp f0, f0, f1309; CHECK-P9-NEXT:    lfs f1, .LCPI14_2@toc@l(r3)310; CHECK-P9-NEXT:    xsaddsp f1, f0, f1311; CHECK-P9-NEXT:    blr312entry:313  %0 = fadd float %a, 0x40123851E0000000314  %1 = fadd float %0, 0x40123991E0000000315  %2 = fadd float %1, 0x40123771E0000000316  ret float %2317}318 319define fp128 @three_constants_f128(fp128 %a, fp128 %c) {320; CHECK-LABEL: three_constants_f128:321; CHECK:       # %bb.0: # %entry322; CHECK-NEXT:    plxv vs35, .LCPI15_0@PCREL(0), 1323; CHECK-NEXT:    xsaddqp v2, v2, v3324; CHECK-NEXT:    plxv vs35, .LCPI15_1@PCREL(0), 1325; CHECK-NEXT:    xsaddqp v2, v2, v3326; CHECK-NEXT:    plxv vs35, .LCPI15_2@PCREL(0), 1327; CHECK-NEXT:    xsaddqp v2, v2, v3328; CHECK-NEXT:    blr329;330; CHECK-P9-LABEL: three_constants_f128:331; CHECK-P9:       # %bb.0: # %entry332; CHECK-P9-NEXT:    addis r3, r2, .LCPI15_0@toc@ha333; CHECK-P9-NEXT:    addi r3, r3, .LCPI15_0@toc@l334; CHECK-P9-NEXT:    lxv vs35, 0(r3)335; CHECK-P9-NEXT:    addis r3, r2, .LCPI15_1@toc@ha336; CHECK-P9-NEXT:    addi r3, r3, .LCPI15_1@toc@l337; CHECK-P9-NEXT:    xsaddqp v2, v2, v3338; CHECK-P9-NEXT:    lxv vs35, 0(r3)339; CHECK-P9-NEXT:    addis r3, r2, .LCPI15_2@toc@ha340; CHECK-P9-NEXT:    addi r3, r3, .LCPI15_2@toc@l341; CHECK-P9-NEXT:    xsaddqp v2, v2, v3342; CHECK-P9-NEXT:    lxv vs35, 0(r3)343; CHECK-P9-NEXT:    xsaddqp v2, v2, v3344; CHECK-P9-NEXT:    blr345entry:346  %0 = fadd fp128 %a, 0xL8000000000000000400123851EB851EB347  %1 = fadd fp128 %0, 0xL8000000000000000400123851EB991EB348  %2 = fadd fp128 %1, 0xL8000000000000000400123851EB771EB349  ret fp128 %2350}351 352define ppc_fp128 @three_constants_ppcf128(ppc_fp128 %a, ppc_fp128 %c) {353; CHECK-LABEL: three_constants_ppcf128:354; CHECK:       # %bb.0: # %entry355; CHECK-NEXT:    mflr r0356; CHECK-NEXT:    std r0, 16(r1)357; CHECK-NEXT:    stdu r1, -48(r1)358; CHECK-NEXT:    .cfi_def_cfa_offset 48359; CHECK-NEXT:    .cfi_offset lr, 16360; CHECK-NEXT:    .cfi_offset v31, -16361; CHECK-NEXT:    xxsplti32dx vs3, 0, 1074935889362; CHECK-NEXT:    xxlxor f4, f4, f4363; CHECK-NEXT:    stxv vs63, 32(r1) # 16-byte Folded Spill364; CHECK-NEXT:    xxsplti32dx vs63, 0, 1074935889365; CHECK-NEXT:    xxsplti32dx vs3, 1, -343597384366; CHECK-NEXT:    bl __gcc_qadd@notoc367; CHECK-NEXT:    xxsplti32dx vs3, 0, 1074935889368; CHECK-NEXT:    xxlxor f4, f4, f4369; CHECK-NEXT:    xxsplti32dx vs3, 1, -1719329096370; CHECK-NEXT:    bl __gcc_qadd@notoc371; CHECK-NEXT:    xxsplti32dx vs63, 1, 8724152372; CHECK-NEXT:    xxlxor f4, f4, f4373; CHECK-NEXT:    xscpsgndp f3, vs63, vs63374; CHECK-NEXT:    bl __gcc_qadd@notoc375; CHECK-NEXT:    lxv vs63, 32(r1) # 16-byte Folded Reload376; CHECK-NEXT:    addi r1, r1, 48377; CHECK-NEXT:    ld r0, 16(r1)378; CHECK-NEXT:    mtlr r0379; CHECK-NEXT:    blr380;381; CHECK-P9-LABEL: three_constants_ppcf128:382; CHECK-P9:       # %bb.0: # %entry383; CHECK-P9-NEXT:    mflr r0384; CHECK-P9-NEXT:    stdu r1, -32(r1)385; CHECK-P9-NEXT:    std r0, 48(r1)386; CHECK-P9-NEXT:    .cfi_def_cfa_offset 32387; CHECK-P9-NEXT:    .cfi_offset lr, 16388; CHECK-P9-NEXT:    addis r3, r2, .LCPI16_0@toc@ha389; CHECK-P9-NEXT:    xxlxor f4, f4, f4390; CHECK-P9-NEXT:    lfd f3, .LCPI16_0@toc@l(r3)391; CHECK-P9-NEXT:    bl __gcc_qadd392; CHECK-P9-NEXT:    nop393; CHECK-P9-NEXT:    addis r3, r2, .LCPI16_1@toc@ha394; CHECK-P9-NEXT:    xxlxor f4, f4, f4395; CHECK-P9-NEXT:    lfd f3, .LCPI16_1@toc@l(r3)396; CHECK-P9-NEXT:    bl __gcc_qadd397; CHECK-P9-NEXT:    nop398; CHECK-P9-NEXT:    addis r3, r2, .LCPI16_2@toc@ha399; CHECK-P9-NEXT:    xxlxor f4, f4, f4400; CHECK-P9-NEXT:    lfd f3, .LCPI16_2@toc@l(r3)401; CHECK-P9-NEXT:    bl __gcc_qadd402; CHECK-P9-NEXT:    nop403; CHECK-P9-NEXT:    addi r1, r1, 32404; CHECK-P9-NEXT:    ld r0, 16(r1)405; CHECK-P9-NEXT:    mtlr r0406; CHECK-P9-NEXT:    blr407entry:408  %0 = fadd ppc_fp128 %a, 0xM40123851EB851EB80000000000000000409  %1 = fadd ppc_fp128 %0, 0xM4012385199851EB80000000000000000410  %2 = fadd ppc_fp128 %1, 0xM4012385100851EB80000000000000000411  ret ppc_fp128 %2412}413 414define <2 x double> @three_constants_vector(<2 x double> %a, <2 x double> %c) {415; CHECK-LABEL: three_constants_vector:416; CHECK:       # %bb.0: # %entry417; CHECK-NEXT:    plxv vs0, .LCPI17_0@PCREL(0), 1418; CHECK-NEXT:    plxv vs2, .LCPI17_1@PCREL(0), 1419; CHECK-NEXT:    xvadddp vs1, vs34, vs0420; CHECK-NEXT:    xvadddp vs1, vs1, vs2421; CHECK-NEXT:    xvadddp vs34, vs1, vs0422; CHECK-NEXT:    blr423;424; CHECK-P9-LABEL: three_constants_vector:425; CHECK-P9:       # %bb.0: # %entry426; CHECK-P9-NEXT:    addis r3, r2, .LCPI17_0@toc@ha427; CHECK-P9-NEXT:    addi r3, r3, .LCPI17_0@toc@l428; CHECK-P9-NEXT:    lxv vs0, 0(r3)429; CHECK-P9-NEXT:    addis r3, r2, .LCPI17_1@toc@ha430; CHECK-P9-NEXT:    addi r3, r3, .LCPI17_1@toc@l431; CHECK-P9-NEXT:    lxv vs2, 0(r3)432; CHECK-P9-NEXT:    xvadddp vs1, vs34, vs0433; CHECK-P9-NEXT:    xvadddp vs1, vs1, vs2434; CHECK-P9-NEXT:    xvadddp vs34, vs1, vs0435; CHECK-P9-NEXT:    blr436entry:437  %0 = fadd <2 x double> %a, <double 4.555000e+00, double 9.880000e+00>438  %1 = fadd <2 x double> %0, <double 4.555000e+00, double 9.980000e+00>439  %2 = fadd <2 x double> %1, <double 4.555000e+00, double 9.880000e+00>440  ret <2 x double> %2441}442