brintos

brintos / llvm-project-archived public Read only

0
0
Text · 30.2 KiB · b5d23d1 Raw
1095 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mcpu=pwr9 -mtriple=powerpc64le-unknown-unknown -ppc-vsr-nums-as-vr \3; RUN:   -verify-machineinstrs < %s | FileCheck %s4; RUN: llc -mcpu=pwr8 -mtriple=powerpc64le-unknown-unknown -ppc-vsr-nums-as-vr \5; RUN:   -verify-machineinstrs < %s | FileCheck -check-prefix=CHECK-PWR8 %s6 7; ==========================================8; Tests for store of fp_to_sint converstions9; ==========================================10 11; Function Attrs: norecurse nounwind12define void @qpConv2sdw(ptr nocapture readonly %a, ptr nocapture %b) {13; CHECK-LABEL: qpConv2sdw:14; CHECK:       # %bb.0: # %entry15; CHECK-NEXT:    lxv 2, 0(3)16; CHECK-NEXT:    xscvqpsdz 2, 217; CHECK-NEXT:    stxsd 2, 0(4)18; CHECK-NEXT:    blr19;20; CHECK-PWR8-LABEL: qpConv2sdw:21; CHECK-PWR8:       # %bb.0: # %entry22; CHECK-PWR8-NEXT:    mflr 023; CHECK-PWR8-NEXT:    .cfi_def_cfa_offset 4824; CHECK-PWR8-NEXT:    .cfi_offset lr, 1625; CHECK-PWR8-NEXT:    .cfi_offset r30, -1626; CHECK-PWR8-NEXT:    std 30, -16(1) # 8-byte Folded Spill27; CHECK-PWR8-NEXT:    stdu 1, -48(1)28; CHECK-PWR8-NEXT:    std 0, 64(1)29; CHECK-PWR8-NEXT:    mr 30, 430; CHECK-PWR8-NEXT:    lxvd2x 0, 0, 331; CHECK-PWR8-NEXT:    xxswapd 2, 032; CHECK-PWR8-NEXT:    bl __fixkfdi33; CHECK-PWR8-NEXT:    nop34; CHECK-PWR8-NEXT:    std 3, 0(30)35; CHECK-PWR8-NEXT:    addi 1, 1, 4836; CHECK-PWR8-NEXT:    ld 0, 16(1)37; CHECK-PWR8-NEXT:    ld 30, -16(1) # 8-byte Folded Reload38; CHECK-PWR8-NEXT:    mtlr 039; CHECK-PWR8-NEXT:    blr40entry:41  %0 = load fp128, ptr %a, align 1642  %conv = fptosi fp128 %0 to i6443  store i64 %conv, ptr %b, align 844  ret void45 46 47}48 49; Function Attrs: norecurse nounwind50define void @qpConv2sw(ptr nocapture readonly %a, ptr nocapture %b) {51; CHECK-LABEL: qpConv2sw:52; CHECK:       # %bb.0: # %entry53; CHECK-NEXT:    lxv 2, 0(3)54; CHECK-NEXT:    xscvqpswz 2, 255; CHECK-NEXT:    stxsiwx 2, 0, 456; CHECK-NEXT:    blr57;58; CHECK-PWR8-LABEL: qpConv2sw:59; CHECK-PWR8:       # %bb.0: # %entry60; CHECK-PWR8-NEXT:    mflr 061; CHECK-PWR8-NEXT:    .cfi_def_cfa_offset 4862; CHECK-PWR8-NEXT:    .cfi_offset lr, 1663; CHECK-PWR8-NEXT:    .cfi_offset r30, -1664; CHECK-PWR8-NEXT:    std 30, -16(1) # 8-byte Folded Spill65; CHECK-PWR8-NEXT:    stdu 1, -48(1)66; CHECK-PWR8-NEXT:    std 0, 64(1)67; CHECK-PWR8-NEXT:    mr 30, 468; CHECK-PWR8-NEXT:    lxvd2x 0, 0, 369; CHECK-PWR8-NEXT:    xxswapd 2, 070; CHECK-PWR8-NEXT:    bl __fixkfsi71; CHECK-PWR8-NEXT:    nop72; CHECK-PWR8-NEXT:    stw 3, 0(30)73; CHECK-PWR8-NEXT:    addi 1, 1, 4874; CHECK-PWR8-NEXT:    ld 0, 16(1)75; CHECK-PWR8-NEXT:    ld 30, -16(1) # 8-byte Folded Reload76; CHECK-PWR8-NEXT:    mtlr 077; CHECK-PWR8-NEXT:    blr78entry:79  %0 = load fp128, ptr %a, align 1680  %conv = fptosi fp128 %0 to i3281  store i32 %conv, ptr %b, align 482  ret void83 84 85}86 87; Function Attrs: norecurse nounwind88define void @qpConv2udw(ptr nocapture readonly %a, ptr nocapture %b) {89; CHECK-LABEL: qpConv2udw:90; CHECK:       # %bb.0: # %entry91; CHECK-NEXT:    lxv 2, 0(3)92; CHECK-NEXT:    xscvqpudz 2, 293; CHECK-NEXT:    stxsd 2, 0(4)94; CHECK-NEXT:    blr95;96; CHECK-PWR8-LABEL: qpConv2udw:97; CHECK-PWR8:       # %bb.0: # %entry98; CHECK-PWR8-NEXT:    mflr 099; CHECK-PWR8-NEXT:    .cfi_def_cfa_offset 48100; CHECK-PWR8-NEXT:    .cfi_offset lr, 16101; CHECK-PWR8-NEXT:    .cfi_offset r30, -16102; CHECK-PWR8-NEXT:    std 30, -16(1) # 8-byte Folded Spill103; CHECK-PWR8-NEXT:    stdu 1, -48(1)104; CHECK-PWR8-NEXT:    std 0, 64(1)105; CHECK-PWR8-NEXT:    mr 30, 4106; CHECK-PWR8-NEXT:    lxvd2x 0, 0, 3107; CHECK-PWR8-NEXT:    xxswapd 2, 0108; CHECK-PWR8-NEXT:    bl __fixunskfdi109; CHECK-PWR8-NEXT:    nop110; CHECK-PWR8-NEXT:    std 3, 0(30)111; CHECK-PWR8-NEXT:    addi 1, 1, 48112; CHECK-PWR8-NEXT:    ld 0, 16(1)113; CHECK-PWR8-NEXT:    ld 30, -16(1) # 8-byte Folded Reload114; CHECK-PWR8-NEXT:    mtlr 0115; CHECK-PWR8-NEXT:    blr116entry:117  %0 = load fp128, ptr %a, align 16118  %conv = fptoui fp128 %0 to i64119  store i64 %conv, ptr %b, align 8120  ret void121 122 123}124 125; Function Attrs: norecurse nounwind126define void @qpConv2uw(ptr nocapture readonly %a, ptr nocapture %b) {127; CHECK-LABEL: qpConv2uw:128; CHECK:       # %bb.0: # %entry129; CHECK-NEXT:    lxv 2, 0(3)130; CHECK-NEXT:    xscvqpuwz 2, 2131; CHECK-NEXT:    stxsiwx 2, 0, 4132; CHECK-NEXT:    blr133;134; CHECK-PWR8-LABEL: qpConv2uw:135; CHECK-PWR8:       # %bb.0: # %entry136; CHECK-PWR8-NEXT:    mflr 0137; CHECK-PWR8-NEXT:    .cfi_def_cfa_offset 48138; CHECK-PWR8-NEXT:    .cfi_offset lr, 16139; CHECK-PWR8-NEXT:    .cfi_offset r30, -16140; CHECK-PWR8-NEXT:    std 30, -16(1) # 8-byte Folded Spill141; CHECK-PWR8-NEXT:    stdu 1, -48(1)142; CHECK-PWR8-NEXT:    std 0, 64(1)143; CHECK-PWR8-NEXT:    mr 30, 4144; CHECK-PWR8-NEXT:    lxvd2x 0, 0, 3145; CHECK-PWR8-NEXT:    xxswapd 2, 0146; CHECK-PWR8-NEXT:    bl __fixunskfsi147; CHECK-PWR8-NEXT:    nop148; CHECK-PWR8-NEXT:    stw 3, 0(30)149; CHECK-PWR8-NEXT:    addi 1, 1, 48150; CHECK-PWR8-NEXT:    ld 0, 16(1)151; CHECK-PWR8-NEXT:    ld 30, -16(1) # 8-byte Folded Reload152; CHECK-PWR8-NEXT:    mtlr 0153; CHECK-PWR8-NEXT:    blr154entry:155  %0 = load fp128, ptr %a, align 16156  %conv = fptoui fp128 %0 to i32157  store i32 %conv, ptr %b, align 4158  ret void159 160 161}162 163; Function Attrs: norecurse nounwind164define void @dpConv2sdw(ptr nocapture readonly %a, ptr nocapture %b) {165; CHECK-LABEL: dpConv2sdw:166; CHECK:       # %bb.0: # %entry167; CHECK-NEXT:    lfd 0, 0(3)168; CHECK-NEXT:    xscvdpsxds 2, 0169; CHECK-NEXT:    stxsd 2, 0(4)170; CHECK-NEXT:    blr171;172; CHECK-PWR8-LABEL: dpConv2sdw:173; CHECK-PWR8:       # %bb.0: # %entry174; CHECK-PWR8-NEXT:    lfd 0, 0(3)175; CHECK-PWR8-NEXT:    xscvdpsxds 0, 0176; CHECK-PWR8-NEXT:    stxsdx 0, 0, 4177; CHECK-PWR8-NEXT:    blr178entry:179  %0 = load double, ptr %a, align 8180  %conv = fptosi double %0 to i64181  store i64 %conv, ptr %b, align 8182  ret void183 184 185}186 187; Function Attrs: norecurse nounwind188define void @dpConv2sw(ptr nocapture readonly %a, ptr nocapture %b) {189; CHECK-LABEL: dpConv2sw:190; CHECK:       # %bb.0: # %entry191; CHECK-NEXT:    lfd 0, 0(3)192; CHECK-NEXT:    xscvdpsxws 0, 0193; CHECK-NEXT:    stfiwx 0, 0, 4194; CHECK-NEXT:    blr195;196; CHECK-PWR8-LABEL: dpConv2sw:197; CHECK-PWR8:       # %bb.0: # %entry198; CHECK-PWR8-NEXT:    lfd 0, 0(3)199; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0200; CHECK-PWR8-NEXT:    stfiwx 0, 0, 4201; CHECK-PWR8-NEXT:    blr202entry:203  %0 = load double, ptr %a, align 8204  %conv = fptosi double %0 to i32205  store i32 %conv, ptr %b, align 4206  ret void207 208 209}210 211; Function Attrs: norecurse nounwind212define void @dpConv2shw(ptr nocapture readonly %a, ptr nocapture %b) {213; CHECK-LABEL: dpConv2shw:214; CHECK:       # %bb.0: # %entry215; CHECK-NEXT:    lfd 0, 0(3)216; CHECK-NEXT:    xscvdpsxds 0, 0217; CHECK-NEXT:    stxsihx 0, 0, 4218; CHECK-NEXT:    blr219;220; CHECK-PWR8-LABEL: dpConv2shw:221; CHECK-PWR8:       # %bb.0: # %entry222; CHECK-PWR8-NEXT:    lfd 0, 0(3)223; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0224; CHECK-PWR8-NEXT:    mffprwz 3, 0225; CHECK-PWR8-NEXT:    sth 3, 0(4)226; CHECK-PWR8-NEXT:    blr227entry:228  %0 = load double, ptr %a, align 8229  %conv = fptosi double %0 to i16230  store i16 %conv, ptr %b, align 2231  ret void232 233 234}235 236; Function Attrs: norecurse nounwind237define void @dpConv2sb(ptr nocapture readonly %a, ptr nocapture %b) {238; CHECK-LABEL: dpConv2sb:239; CHECK:       # %bb.0: # %entry240; CHECK-NEXT:    lfd 0, 0(3)241; CHECK-NEXT:    xscvdpsxds 0, 0242; CHECK-NEXT:    stxsibx 0, 0, 4243; CHECK-NEXT:    blr244;245; CHECK-PWR8-LABEL: dpConv2sb:246; CHECK-PWR8:       # %bb.0: # %entry247; CHECK-PWR8-NEXT:    lfd 0, 0(3)248; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0249; CHECK-PWR8-NEXT:    mffprwz 3, 0250; CHECK-PWR8-NEXT:    stb 3, 0(4)251; CHECK-PWR8-NEXT:    blr252entry:253  %0 = load double, ptr %a, align 8254  %conv = fptosi double %0 to i8255  store i8 %conv, ptr %b, align 1256  ret void257 258 259}260 261; Function Attrs: norecurse nounwind262define void @spConv2sdw(ptr nocapture readonly %a, ptr nocapture %b) {263; CHECK-LABEL: spConv2sdw:264; CHECK:       # %bb.0: # %entry265; CHECK-NEXT:    lfs 0, 0(3)266; CHECK-NEXT:    xscvdpsxds 2, 0267; CHECK-NEXT:    stxsd 2, 0(4)268; CHECK-NEXT:    blr269;270; CHECK-PWR8-LABEL: spConv2sdw:271; CHECK-PWR8:       # %bb.0: # %entry272; CHECK-PWR8-NEXT:    lfs 0, 0(3)273; CHECK-PWR8-NEXT:    xscvdpsxds 0, 0274; CHECK-PWR8-NEXT:    stxsdx 0, 0, 4275; CHECK-PWR8-NEXT:    blr276entry:277  %0 = load float, ptr %a, align 4278  %conv = fptosi float %0 to i64279  store i64 %conv, ptr %b, align 8280  ret void281 282 283}284 285; Function Attrs: norecurse nounwind286define void @spConv2sw(ptr nocapture readonly %a, ptr nocapture %b) {287; CHECK-LABEL: spConv2sw:288; CHECK:       # %bb.0: # %entry289; CHECK-NEXT:    lfs 0, 0(3)290; CHECK-NEXT:    xscvdpsxws 0, 0291; CHECK-NEXT:    stfiwx 0, 0, 4292; CHECK-NEXT:    blr293;294; CHECK-PWR8-LABEL: spConv2sw:295; CHECK-PWR8:       # %bb.0: # %entry296; CHECK-PWR8-NEXT:    lfs 0, 0(3)297; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0298; CHECK-PWR8-NEXT:    stfiwx 0, 0, 4299; CHECK-PWR8-NEXT:    blr300entry:301  %0 = load float, ptr %a, align 4302  %conv = fptosi float %0 to i32303  store i32 %conv, ptr %b, align 4304  ret void305 306 307}308 309; Function Attrs: norecurse nounwind310define void @spConv2shw(ptr nocapture readonly %a, ptr nocapture %b) {311; CHECK-LABEL: spConv2shw:312; CHECK:       # %bb.0: # %entry313; CHECK-NEXT:    lfs 0, 0(3)314; CHECK-NEXT:    xscvdpsxds 0, 0315; CHECK-NEXT:    stxsihx 0, 0, 4316; CHECK-NEXT:    blr317;318; CHECK-PWR8-LABEL: spConv2shw:319; CHECK-PWR8:       # %bb.0: # %entry320; CHECK-PWR8-NEXT:    lfs 0, 0(3)321; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0322; CHECK-PWR8-NEXT:    mffprwz 3, 0323; CHECK-PWR8-NEXT:    sth 3, 0(4)324; CHECK-PWR8-NEXT:    blr325entry:326  %0 = load float, ptr %a, align 4327  %conv = fptosi float %0 to i16328  store i16 %conv, ptr %b, align 2329  ret void330 331 332}333 334; Function Attrs: norecurse nounwind335define void @spConv2sb(ptr nocapture readonly %a, ptr nocapture %b) {336; CHECK-LABEL: spConv2sb:337; CHECK:       # %bb.0: # %entry338; CHECK-NEXT:    lfs 0, 0(3)339; CHECK-NEXT:    xscvdpsxds 0, 0340; CHECK-NEXT:    stxsibx 0, 0, 4341; CHECK-NEXT:    blr342;343; CHECK-PWR8-LABEL: spConv2sb:344; CHECK-PWR8:       # %bb.0: # %entry345; CHECK-PWR8-NEXT:    lfs 0, 0(3)346; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0347; CHECK-PWR8-NEXT:    mffprwz 3, 0348; CHECK-PWR8-NEXT:    stb 3, 0(4)349; CHECK-PWR8-NEXT:    blr350entry:351  %0 = load float, ptr %a, align 4352  %conv = fptosi float %0 to i8353  store i8 %conv, ptr %b, align 1354  ret void355 356 357}358 359; Function Attrs: norecurse nounwind360define void @dpConv2sdw_x(ptr nocapture readonly %a, ptr nocapture %b,361; CHECK-LABEL: dpConv2sdw_x:362; CHECK:       # %bb.0: # %entry363; CHECK-NEXT:    lfd 0, 0(3)364; CHECK-NEXT:    sldi 3, 5, 3365; CHECK-NEXT:    xscvdpsxds 0, 0366; CHECK-NEXT:    stxsdx 0, 4, 3367; CHECK-NEXT:    blr368;369; CHECK-PWR8-LABEL: dpConv2sdw_x:370; CHECK-PWR8:       # %bb.0: # %entry371; CHECK-PWR8-NEXT:    lfd 0, 0(3)372; CHECK-PWR8-NEXT:    sldi 3, 5, 3373; CHECK-PWR8-NEXT:    xscvdpsxds 0, 0374; CHECK-PWR8-NEXT:    stxsdx 0, 4, 3375; CHECK-PWR8-NEXT:    blr376                          i32 signext %idx) {377entry:378  %0 = load double, ptr %a, align 8379  %conv = fptosi double %0 to i64380  %idxprom = sext i32 %idx to i64381  %arrayidx = getelementptr inbounds i64, ptr %b, i64 %idxprom382  store i64 %conv, ptr %arrayidx, align 8383  ret void384 385 386}387 388; Function Attrs: norecurse nounwind389define void @dpConv2sw_x(ptr nocapture readonly %a, ptr nocapture %b,390; CHECK-LABEL: dpConv2sw_x:391; CHECK:       # %bb.0: # %entry392; CHECK-NEXT:    lfd 0, 0(3)393; CHECK-NEXT:    sldi 3, 5, 2394; CHECK-NEXT:    xscvdpsxws 0, 0395; CHECK-NEXT:    stfiwx 0, 4, 3396; CHECK-NEXT:    blr397;398; CHECK-PWR8-LABEL: dpConv2sw_x:399; CHECK-PWR8:       # %bb.0: # %entry400; CHECK-PWR8-NEXT:    lfd 0, 0(3)401; CHECK-PWR8-NEXT:    sldi 3, 5, 2402; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0403; CHECK-PWR8-NEXT:    stfiwx 0, 4, 3404; CHECK-PWR8-NEXT:    blr405                          i32 signext %idx) {406entry:407  %0 = load double, ptr %a, align 8408  %conv = fptosi double %0 to i32409  %idxprom = sext i32 %idx to i64410  %arrayidx = getelementptr inbounds i32, ptr %b, i64 %idxprom411  store i32 %conv, ptr %arrayidx, align 4412  ret void413 414 415}416 417; Function Attrs: norecurse nounwind418define void @dpConv2shw_x(ptr nocapture readonly %a, ptr nocapture %b,419; CHECK-LABEL: dpConv2shw_x:420; CHECK:       # %bb.0: # %entry421; CHECK-NEXT:    lfd 0, 0(3)422; CHECK-NEXT:    sldi 3, 5, 1423; CHECK-NEXT:    xscvdpsxds 0, 0424; CHECK-NEXT:    stxsihx 0, 4, 3425; CHECK-NEXT:    blr426;427; CHECK-PWR8-LABEL: dpConv2shw_x:428; CHECK-PWR8:       # %bb.0: # %entry429; CHECK-PWR8-NEXT:    lfd 0, 0(3)430; CHECK-PWR8-NEXT:    sldi 5, 5, 1431; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0432; CHECK-PWR8-NEXT:    mffprwz 3, 0433; CHECK-PWR8-NEXT:    sthx 3, 4, 5434; CHECK-PWR8-NEXT:    blr435                          i32 signext %idx) {436entry:437  %0 = load double, ptr %a, align 8438  %conv = fptosi double %0 to i16439  %idxprom = sext i32 %idx to i64440  %arrayidx = getelementptr inbounds i16, ptr %b, i64 %idxprom441  store i16 %conv, ptr %arrayidx, align 2442  ret void443 444 445}446 447; Function Attrs: norecurse nounwind448define void @dpConv2sb_x(ptr nocapture readonly %a, ptr nocapture %b,449; CHECK-LABEL: dpConv2sb_x:450; CHECK:       # %bb.0: # %entry451; CHECK-NEXT:    lfd 0, 0(3)452; CHECK-NEXT:    xscvdpsxds 0, 0453; CHECK-NEXT:    stxsibx 0, 4, 5454; CHECK-NEXT:    blr455;456; CHECK-PWR8-LABEL: dpConv2sb_x:457; CHECK-PWR8:       # %bb.0: # %entry458; CHECK-PWR8-NEXT:    lfd 0, 0(3)459; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0460; CHECK-PWR8-NEXT:    mffprwz 3, 0461; CHECK-PWR8-NEXT:    stbx 3, 4, 5462; CHECK-PWR8-NEXT:    blr463                          i32 signext %idx) {464entry:465  %0 = load double, ptr %a, align 8466  %conv = fptosi double %0 to i8467  %idxprom = sext i32 %idx to i64468  %arrayidx = getelementptr inbounds i8, ptr %b, i64 %idxprom469  store i8 %conv, ptr %arrayidx, align 1470  ret void471 472 473}474 475; Function Attrs: norecurse nounwind476define void @spConv2sdw_x(ptr nocapture readonly %a, ptr nocapture %b,477; CHECK-LABEL: spConv2sdw_x:478; CHECK:       # %bb.0: # %entry479; CHECK-NEXT:    lfs 0, 0(3)480; CHECK-NEXT:    xscvdpsxds 0, 0481; CHECK-NEXT:    sldi 3, 5, 3482; CHECK-NEXT:    stxsdx 0, 4, 3483; CHECK-NEXT:    blr484;485; CHECK-PWR8-LABEL: spConv2sdw_x:486; CHECK-PWR8:       # %bb.0: # %entry487; CHECK-PWR8-NEXT:    lfs 0, 0(3)488; CHECK-PWR8-NEXT:    sldi 3, 5, 3489; CHECK-PWR8-NEXT:    xscvdpsxds 0, 0490; CHECK-PWR8-NEXT:    stxsdx 0, 4, 3491; CHECK-PWR8-NEXT:    blr492                          i32 signext %idx) {493entry:494  %0 = load float, ptr %a, align 4495  %conv = fptosi float %0 to i64496  %idxprom = sext i32 %idx to i64497  %arrayidx = getelementptr inbounds i64, ptr %b, i64 %idxprom498  store i64 %conv, ptr %arrayidx, align 8499  ret void500 501 502}503 504; Function Attrs: norecurse nounwind505define void @spConv2sw_x(ptr nocapture readonly %a, ptr nocapture %b,506; CHECK-LABEL: spConv2sw_x:507; CHECK:       # %bb.0: # %entry508; CHECK-NEXT:    lfs 0, 0(3)509; CHECK-NEXT:    xscvdpsxws 0, 0510; CHECK-NEXT:    sldi 3, 5, 2511; CHECK-NEXT:    stfiwx 0, 4, 3512; CHECK-NEXT:    blr513;514; CHECK-PWR8-LABEL: spConv2sw_x:515; CHECK-PWR8:       # %bb.0: # %entry516; CHECK-PWR8-NEXT:    lfs 0, 0(3)517; CHECK-PWR8-NEXT:    sldi 3, 5, 2518; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0519; CHECK-PWR8-NEXT:    stfiwx 0, 4, 3520; CHECK-PWR8-NEXT:    blr521                          i32 signext %idx) {522entry:523  %0 = load float, ptr %a, align 4524  %conv = fptosi float %0 to i32525  %idxprom = sext i32 %idx to i64526  %arrayidx = getelementptr inbounds i32, ptr %b, i64 %idxprom527  store i32 %conv, ptr %arrayidx, align 4528  ret void529 530 531}532 533; Function Attrs: norecurse nounwind534define void @spConv2shw_x(ptr nocapture readonly %a, ptr nocapture %b,535; CHECK-LABEL: spConv2shw_x:536; CHECK:       # %bb.0: # %entry537; CHECK-NEXT:    lfs 0, 0(3)538; CHECK-NEXT:    xscvdpsxds 0, 0539; CHECK-NEXT:    sldi 3, 5, 1540; CHECK-NEXT:    stxsihx 0, 4, 3541; CHECK-NEXT:    blr542;543; CHECK-PWR8-LABEL: spConv2shw_x:544; CHECK-PWR8:       # %bb.0: # %entry545; CHECK-PWR8-NEXT:    lfs 0, 0(3)546; CHECK-PWR8-NEXT:    sldi 5, 5, 1547; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0548; CHECK-PWR8-NEXT:    mffprwz 3, 0549; CHECK-PWR8-NEXT:    sthx 3, 4, 5550; CHECK-PWR8-NEXT:    blr551                          i32 signext %idx) {552entry:553  %0 = load float, ptr %a, align 4554  %conv = fptosi float %0 to i16555  %idxprom = sext i32 %idx to i64556  %arrayidx = getelementptr inbounds i16, ptr %b, i64 %idxprom557  store i16 %conv, ptr %arrayidx, align 2558  ret void559 560 561}562 563; Function Attrs: norecurse nounwind564define void @spConv2sb_x(ptr nocapture readonly %a, ptr nocapture %b,565; CHECK-LABEL: spConv2sb_x:566; CHECK:       # %bb.0: # %entry567; CHECK-NEXT:    lfs 0, 0(3)568; CHECK-NEXT:    xscvdpsxds 0, 0569; CHECK-NEXT:    stxsibx 0, 4, 5570; CHECK-NEXT:    blr571;572; CHECK-PWR8-LABEL: spConv2sb_x:573; CHECK-PWR8:       # %bb.0: # %entry574; CHECK-PWR8-NEXT:    lfs 0, 0(3)575; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0576; CHECK-PWR8-NEXT:    mffprwz 3, 0577; CHECK-PWR8-NEXT:    stbx 3, 4, 5578; CHECK-PWR8-NEXT:    blr579                          i32 signext %idx) {580entry:581  %0 = load float, ptr %a, align 4582  %conv = fptosi float %0 to i8583  %idxprom = sext i32 %idx to i64584  %arrayidx = getelementptr inbounds i8, ptr %b, i64 %idxprom585  store i8 %conv, ptr %arrayidx, align 1586  ret void587 588 589}590 591; ==========================================592; Tests for store of fp_to_uint converstions593; ==========================================594 595; Function Attrs: norecurse nounwind596define void @dpConv2udw(ptr nocapture readonly %a, ptr nocapture %b) {597; CHECK-LABEL: dpConv2udw:598; CHECK:       # %bb.0: # %entry599; CHECK-NEXT:    lfd 0, 0(3)600; CHECK-NEXT:    xscvdpuxds 2, 0601; CHECK-NEXT:    stxsd 2, 0(4)602; CHECK-NEXT:    blr603;604; CHECK-PWR8-LABEL: dpConv2udw:605; CHECK-PWR8:       # %bb.0: # %entry606; CHECK-PWR8-NEXT:    lfd 0, 0(3)607; CHECK-PWR8-NEXT:    xscvdpuxds 0, 0608; CHECK-PWR8-NEXT:    stxsdx 0, 0, 4609; CHECK-PWR8-NEXT:    blr610entry:611  %0 = load double, ptr %a, align 8612  %conv = fptoui double %0 to i64613  store i64 %conv, ptr %b, align 8614  ret void615 616 617}618 619; Function Attrs: norecurse nounwind620define void @dpConv2uw(ptr nocapture readonly %a, ptr nocapture %b) {621; CHECK-LABEL: dpConv2uw:622; CHECK:       # %bb.0: # %entry623; CHECK-NEXT:    lfd 0, 0(3)624; CHECK-NEXT:    xscvdpuxws 0, 0625; CHECK-NEXT:    stfiwx 0, 0, 4626; CHECK-NEXT:    blr627;628; CHECK-PWR8-LABEL: dpConv2uw:629; CHECK-PWR8:       # %bb.0: # %entry630; CHECK-PWR8-NEXT:    lfd 0, 0(3)631; CHECK-PWR8-NEXT:    xscvdpuxws 0, 0632; CHECK-PWR8-NEXT:    stfiwx 0, 0, 4633; CHECK-PWR8-NEXT:    blr634entry:635  %0 = load double, ptr %a, align 8636  %conv = fptoui double %0 to i32637  store i32 %conv, ptr %b, align 4638  ret void639 640 641}642 643; Function Attrs: norecurse nounwind644define void @dpConv2uhw(ptr nocapture readonly %a, ptr nocapture %b) {645; CHECK-LABEL: dpConv2uhw:646; CHECK:       # %bb.0: # %entry647; CHECK-NEXT:    lfd 0, 0(3)648; CHECK-NEXT:    xscvdpuxds 0, 0649; CHECK-NEXT:    stxsihx 0, 0, 4650; CHECK-NEXT:    blr651;652; CHECK-PWR8-LABEL: dpConv2uhw:653; CHECK-PWR8:       # %bb.0: # %entry654; CHECK-PWR8-NEXT:    lfd 0, 0(3)655; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0656; CHECK-PWR8-NEXT:    mffprwz 3, 0657; CHECK-PWR8-NEXT:    sth 3, 0(4)658; CHECK-PWR8-NEXT:    blr659entry:660  %0 = load double, ptr %a, align 8661  %conv = fptoui double %0 to i16662  store i16 %conv, ptr %b, align 2663  ret void664 665 666}667 668; Function Attrs: norecurse nounwind669define void @dpConv2ub(ptr nocapture readonly %a, ptr nocapture %b) {670; CHECK-LABEL: dpConv2ub:671; CHECK:       # %bb.0: # %entry672; CHECK-NEXT:    lfd 0, 0(3)673; CHECK-NEXT:    xscvdpuxds 0, 0674; CHECK-NEXT:    stxsibx 0, 0, 4675; CHECK-NEXT:    blr676;677; CHECK-PWR8-LABEL: dpConv2ub:678; CHECK-PWR8:       # %bb.0: # %entry679; CHECK-PWR8-NEXT:    lfd 0, 0(3)680; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0681; CHECK-PWR8-NEXT:    mffprwz 3, 0682; CHECK-PWR8-NEXT:    stb 3, 0(4)683; CHECK-PWR8-NEXT:    blr684entry:685  %0 = load double, ptr %a, align 8686  %conv = fptoui double %0 to i8687  store i8 %conv, ptr %b, align 1688  ret void689 690 691}692 693; Function Attrs: norecurse nounwind694define void @spConv2udw(ptr nocapture readonly %a, ptr nocapture %b) {695; CHECK-LABEL: spConv2udw:696; CHECK:       # %bb.0: # %entry697; CHECK-NEXT:    lfs 0, 0(3)698; CHECK-NEXT:    xscvdpuxds 2, 0699; CHECK-NEXT:    stxsd 2, 0(4)700; CHECK-NEXT:    blr701;702; CHECK-PWR8-LABEL: spConv2udw:703; CHECK-PWR8:       # %bb.0: # %entry704; CHECK-PWR8-NEXT:    lfs 0, 0(3)705; CHECK-PWR8-NEXT:    xscvdpuxds 0, 0706; CHECK-PWR8-NEXT:    stxsdx 0, 0, 4707; CHECK-PWR8-NEXT:    blr708entry:709  %0 = load float, ptr %a, align 4710  %conv = fptoui float %0 to i64711  store i64 %conv, ptr %b, align 8712  ret void713 714 715}716 717; Function Attrs: norecurse nounwind718define void @spConv2uw(ptr nocapture readonly %a, ptr nocapture %b) {719; CHECK-LABEL: spConv2uw:720; CHECK:       # %bb.0: # %entry721; CHECK-NEXT:    lfs 0, 0(3)722; CHECK-NEXT:    xscvdpuxws 0, 0723; CHECK-NEXT:    stfiwx 0, 0, 4724; CHECK-NEXT:    blr725;726; CHECK-PWR8-LABEL: spConv2uw:727; CHECK-PWR8:       # %bb.0: # %entry728; CHECK-PWR8-NEXT:    lfs 0, 0(3)729; CHECK-PWR8-NEXT:    xscvdpuxws 0, 0730; CHECK-PWR8-NEXT:    stfiwx 0, 0, 4731; CHECK-PWR8-NEXT:    blr732entry:733  %0 = load float, ptr %a, align 4734  %conv = fptoui float %0 to i32735  store i32 %conv, ptr %b, align 4736  ret void737 738 739}740 741; Function Attrs: norecurse nounwind742define void @spConv2uhw(ptr nocapture readonly %a, ptr nocapture %b) {743; CHECK-LABEL: spConv2uhw:744; CHECK:       # %bb.0: # %entry745; CHECK-NEXT:    lfs 0, 0(3)746; CHECK-NEXT:    xscvdpuxds 0, 0747; CHECK-NEXT:    stxsihx 0, 0, 4748; CHECK-NEXT:    blr749;750; CHECK-PWR8-LABEL: spConv2uhw:751; CHECK-PWR8:       # %bb.0: # %entry752; CHECK-PWR8-NEXT:    lfs 0, 0(3)753; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0754; CHECK-PWR8-NEXT:    mffprwz 3, 0755; CHECK-PWR8-NEXT:    sth 3, 0(4)756; CHECK-PWR8-NEXT:    blr757entry:758  %0 = load float, ptr %a, align 4759  %conv = fptoui float %0 to i16760  store i16 %conv, ptr %b, align 2761  ret void762 763 764}765 766; Function Attrs: norecurse nounwind767define void @spConv2ub(ptr nocapture readonly %a, ptr nocapture %b) {768; CHECK-LABEL: spConv2ub:769; CHECK:       # %bb.0: # %entry770; CHECK-NEXT:    lfs 0, 0(3)771; CHECK-NEXT:    xscvdpuxds 0, 0772; CHECK-NEXT:    stxsibx 0, 0, 4773; CHECK-NEXT:    blr774;775; CHECK-PWR8-LABEL: spConv2ub:776; CHECK-PWR8:       # %bb.0: # %entry777; CHECK-PWR8-NEXT:    lfs 0, 0(3)778; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0779; CHECK-PWR8-NEXT:    mffprwz 3, 0780; CHECK-PWR8-NEXT:    stb 3, 0(4)781; CHECK-PWR8-NEXT:    blr782entry:783  %0 = load float, ptr %a, align 4784  %conv = fptoui float %0 to i8785  store i8 %conv, ptr %b, align 1786  ret void787 788 789}790 791; Function Attrs: norecurse nounwind792define void @dpConv2udw_x(ptr nocapture readonly %a, ptr nocapture %b,793; CHECK-LABEL: dpConv2udw_x:794; CHECK:       # %bb.0: # %entry795; CHECK-NEXT:    lfd 0, 0(3)796; CHECK-NEXT:    sldi 3, 5, 3797; CHECK-NEXT:    xscvdpuxds 0, 0798; CHECK-NEXT:    stxsdx 0, 4, 3799; CHECK-NEXT:    blr800;801; CHECK-PWR8-LABEL: dpConv2udw_x:802; CHECK-PWR8:       # %bb.0: # %entry803; CHECK-PWR8-NEXT:    lfd 0, 0(3)804; CHECK-PWR8-NEXT:    sldi 3, 5, 3805; CHECK-PWR8-NEXT:    xscvdpuxds 0, 0806; CHECK-PWR8-NEXT:    stxsdx 0, 4, 3807; CHECK-PWR8-NEXT:    blr808                          i32 zeroext %idx) {809entry:810  %0 = load double, ptr %a, align 8811  %conv = fptoui double %0 to i64812  %idxprom = zext i32 %idx to i64813  %arrayidx = getelementptr inbounds i64, ptr %b, i64 %idxprom814  store i64 %conv, ptr %arrayidx, align 8815  ret void816 817 818}819 820; Function Attrs: norecurse nounwind821define void @dpConv2uw_x(ptr nocapture readonly %a, ptr nocapture %b,822; CHECK-LABEL: dpConv2uw_x:823; CHECK:       # %bb.0: # %entry824; CHECK-NEXT:    lfd 0, 0(3)825; CHECK-NEXT:    sldi 3, 5, 2826; CHECK-NEXT:    xscvdpuxws 0, 0827; CHECK-NEXT:    stfiwx 0, 4, 3828; CHECK-NEXT:    blr829;830; CHECK-PWR8-LABEL: dpConv2uw_x:831; CHECK-PWR8:       # %bb.0: # %entry832; CHECK-PWR8-NEXT:    lfd 0, 0(3)833; CHECK-PWR8-NEXT:    sldi 3, 5, 2834; CHECK-PWR8-NEXT:    xscvdpuxws 0, 0835; CHECK-PWR8-NEXT:    stfiwx 0, 4, 3836; CHECK-PWR8-NEXT:    blr837                          i32 zeroext %idx) {838entry:839  %0 = load double, ptr %a, align 8840  %conv = fptoui double %0 to i32841  %idxprom = zext i32 %idx to i64842  %arrayidx = getelementptr inbounds i32, ptr %b, i64 %idxprom843  store i32 %conv, ptr %arrayidx, align 4844  ret void845 846 847}848 849; Function Attrs: norecurse nounwind850define void @dpConv2uhw_x(ptr nocapture readonly %a, ptr nocapture %b,851; CHECK-LABEL: dpConv2uhw_x:852; CHECK:       # %bb.0: # %entry853; CHECK-NEXT:    lfd 0, 0(3)854; CHECK-NEXT:    sldi 3, 5, 1855; CHECK-NEXT:    xscvdpuxds 0, 0856; CHECK-NEXT:    stxsihx 0, 4, 3857; CHECK-NEXT:    blr858;859; CHECK-PWR8-LABEL: dpConv2uhw_x:860; CHECK-PWR8:       # %bb.0: # %entry861; CHECK-PWR8-NEXT:    lfd 0, 0(3)862; CHECK-PWR8-NEXT:    sldi 5, 5, 1863; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0864; CHECK-PWR8-NEXT:    mffprwz 3, 0865; CHECK-PWR8-NEXT:    sthx 3, 4, 5866; CHECK-PWR8-NEXT:    blr867                          i32 zeroext %idx) {868entry:869  %0 = load double, ptr %a, align 8870  %conv = fptoui double %0 to i16871  %idxprom = zext i32 %idx to i64872  %arrayidx = getelementptr inbounds i16, ptr %b, i64 %idxprom873  store i16 %conv, ptr %arrayidx, align 2874  ret void875 876 877}878 879; Function Attrs: norecurse nounwind880define void @dpConv2ub_x(ptr nocapture readonly %a, ptr nocapture %b,881; CHECK-LABEL: dpConv2ub_x:882; CHECK:       # %bb.0: # %entry883; CHECK-NEXT:    lfd 0, 0(3)884; CHECK-NEXT:    xscvdpuxds 0, 0885; CHECK-NEXT:    stxsibx 0, 4, 5886; CHECK-NEXT:    blr887;888; CHECK-PWR8-LABEL: dpConv2ub_x:889; CHECK-PWR8:       # %bb.0: # %entry890; CHECK-PWR8-NEXT:    lfd 0, 0(3)891; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0892; CHECK-PWR8-NEXT:    mffprwz 3, 0893; CHECK-PWR8-NEXT:    stbx 3, 4, 5894; CHECK-PWR8-NEXT:    blr895                          i32 zeroext %idx) {896entry:897  %0 = load double, ptr %a, align 8898  %conv = fptoui double %0 to i8899  %idxprom = zext i32 %idx to i64900  %arrayidx = getelementptr inbounds i8, ptr %b, i64 %idxprom901  store i8 %conv, ptr %arrayidx, align 1902  ret void903 904 905}906 907; Function Attrs: norecurse nounwind908define void @spConv2udw_x(ptr nocapture readonly %a, ptr nocapture %b,909; CHECK-LABEL: spConv2udw_x:910; CHECK:       # %bb.0: # %entry911; CHECK-NEXT:    lfs 0, 0(3)912; CHECK-NEXT:    xscvdpuxds 0, 0913; CHECK-NEXT:    sldi 3, 5, 3914; CHECK-NEXT:    stxsdx 0, 4, 3915; CHECK-NEXT:    blr916;917; CHECK-PWR8-LABEL: spConv2udw_x:918; CHECK-PWR8:       # %bb.0: # %entry919; CHECK-PWR8-NEXT:    lfs 0, 0(3)920; CHECK-PWR8-NEXT:    sldi 3, 5, 3921; CHECK-PWR8-NEXT:    xscvdpuxds 0, 0922; CHECK-PWR8-NEXT:    stxsdx 0, 4, 3923; CHECK-PWR8-NEXT:    blr924                          i32 zeroext %idx) {925entry:926  %0 = load float, ptr %a, align 4927  %conv = fptoui float %0 to i64928  %idxprom = zext i32 %idx to i64929  %arrayidx = getelementptr inbounds i64, ptr %b, i64 %idxprom930  store i64 %conv, ptr %arrayidx, align 8931  ret void932 933 934}935 936; Function Attrs: norecurse nounwind937define void @spConv2uw_x(ptr nocapture readonly %a, ptr nocapture %b,938; CHECK-LABEL: spConv2uw_x:939; CHECK:       # %bb.0: # %entry940; CHECK-NEXT:    lfs 0, 0(3)941; CHECK-NEXT:    xscvdpuxws 0, 0942; CHECK-NEXT:    sldi 3, 5, 2943; CHECK-NEXT:    stfiwx 0, 4, 3944; CHECK-NEXT:    blr945;946; CHECK-PWR8-LABEL: spConv2uw_x:947; CHECK-PWR8:       # %bb.0: # %entry948; CHECK-PWR8-NEXT:    lfs 0, 0(3)949; CHECK-PWR8-NEXT:    sldi 3, 5, 2950; CHECK-PWR8-NEXT:    xscvdpuxws 0, 0951; CHECK-PWR8-NEXT:    stfiwx 0, 4, 3952; CHECK-PWR8-NEXT:    blr953                          i32 zeroext %idx) {954entry:955  %0 = load float, ptr %a, align 4956  %conv = fptoui float %0 to i32957  %idxprom = zext i32 %idx to i64958  %arrayidx = getelementptr inbounds i32, ptr %b, i64 %idxprom959  store i32 %conv, ptr %arrayidx, align 4960  ret void961 962 963}964 965; Function Attrs: norecurse nounwind966define void @spConv2uhw_x(ptr nocapture readonly %a, ptr nocapture %b,967; CHECK-LABEL: spConv2uhw_x:968; CHECK:       # %bb.0: # %entry969; CHECK-NEXT:    lfs 0, 0(3)970; CHECK-NEXT:    xscvdpuxds 0, 0971; CHECK-NEXT:    sldi 3, 5, 1972; CHECK-NEXT:    stxsihx 0, 4, 3973; CHECK-NEXT:    blr974;975; CHECK-PWR8-LABEL: spConv2uhw_x:976; CHECK-PWR8:       # %bb.0: # %entry977; CHECK-PWR8-NEXT:    lfs 0, 0(3)978; CHECK-PWR8-NEXT:    sldi 5, 5, 1979; CHECK-PWR8-NEXT:    xscvdpsxws 0, 0980; CHECK-PWR8-NEXT:    mffprwz 3, 0981; CHECK-PWR8-NEXT:    sthx 3, 4, 5982; CHECK-PWR8-NEXT:    blr983                          i32 zeroext %idx) {984entry:985  %0 = load float, ptr %a, align 4986  %conv = fptoui float %0 to i16987  %idxprom = zext i32 %idx to i64988  %arrayidx = getelementptr inbounds i16, ptr %b, i64 %idxprom989  store i16 %conv, ptr %arrayidx, align 2990  ret void991 992 993}994 995; Function Attrs: norecurse nounwind996define void @spConv2ub_x(ptr nocapture readonly %a, ptr nocapture %b,997; CHECK-LABEL: spConv2ub_x:998; CHECK:       # %bb.0: # %entry999; CHECK-NEXT:    lfs 0, 0(3)1000; CHECK-NEXT:    xscvdpuxds 0, 01001; CHECK-NEXT:    stxsibx 0, 4, 51002; CHECK-NEXT:    blr1003;1004; CHECK-PWR8-LABEL: spConv2ub_x:1005; CHECK-PWR8:       # %bb.0: # %entry1006; CHECK-PWR8-NEXT:    lfs 0, 0(3)1007; CHECK-PWR8-NEXT:    xscvdpsxws 0, 01008; CHECK-PWR8-NEXT:    mffprwz 3, 01009; CHECK-PWR8-NEXT:    stbx 3, 4, 51010; CHECK-PWR8-NEXT:    blr1011                          i32 zeroext %idx) {1012entry:1013  %0 = load float, ptr %a, align 41014  %conv = fptoui float %0 to i81015  %idxprom = zext i32 %idx to i641016  %arrayidx = getelementptr inbounds i8, ptr %b, i64 %idxprom1017  store i8 %conv, ptr %arrayidx, align 11018  ret void1019 1020 1021}1022 1023define void @multiple_store_64(double %m, ptr %addr1, ptr %addr2, ptr %addr3) {1024; CHECK-LABEL: multiple_store_64:1025; CHECK:       # %bb.0: # %entry1026; CHECK-NEXT:    xscvdpsxds 2, 11027; CHECK-NEXT:    stxsd 2, 0(4)1028; CHECK-NEXT:    stxsd 2, 0(5)1029; CHECK-NEXT:    stxsd 2, 0(6)1030; CHECK-NEXT:    blr1031;1032; CHECK-PWR8-LABEL: multiple_store_64:1033; CHECK-PWR8:       # %bb.0: # %entry1034; CHECK-PWR8-NEXT:    xscvdpsxds 0, 11035; CHECK-PWR8-NEXT:    stxsdx 0, 0, 41036; CHECK-PWR8-NEXT:    stxsdx 0, 0, 51037; CHECK-PWR8-NEXT:    stxsdx 0, 0, 61038; CHECK-PWR8-NEXT:    blr1039entry:1040  %conv1 = fptosi double %m to i641041  store i64 %conv1, ptr %addr1, align 81042  store i64 %conv1, ptr %addr2, align 81043  store i64 %conv1, ptr %addr3, align 81044  ret void1045}1046 1047define void @multiple_store_32(double %m, ptr %addr1, ptr %addr2, ptr %addr3) {1048; CHECK-LABEL: multiple_store_32:1049; CHECK:       # %bb.0: # %entry1050; CHECK-NEXT:    xscvdpsxws 0, 11051; CHECK-NEXT:    stfiwx 0, 0, 41052; CHECK-NEXT:    stfiwx 0, 0, 51053; CHECK-NEXT:    stfiwx 0, 0, 61054; CHECK-NEXT:    blr1055;1056; CHECK-PWR8-LABEL: multiple_store_32:1057; CHECK-PWR8:       # %bb.0: # %entry1058; CHECK-PWR8-NEXT:    xscvdpsxws 0, 11059; CHECK-PWR8-NEXT:    stfiwx 0, 0, 41060; CHECK-PWR8-NEXT:    stfiwx 0, 0, 51061; CHECK-PWR8-NEXT:    stfiwx 0, 0, 61062; CHECK-PWR8-NEXT:    blr1063entry:1064  %conv1 = fptosi double %m to i321065  store i32 %conv1, ptr %addr1, align 81066  store i32 %conv1, ptr %addr2, align 81067  store i32 %conv1, ptr %addr3, align 81068  ret void1069}1070 1071define void @multiple_store_16(double %m, ptr %addr1, ptr %addr2, ptr %addr3) {1072; CHECK-LABEL: multiple_store_16:1073; CHECK:       # %bb.0: # %entry1074; CHECK-NEXT:    xscvdpsxds 0, 11075; CHECK-NEXT:    stxsihx 0, 0, 41076; CHECK-NEXT:    stxsihx 0, 0, 51077; CHECK-NEXT:    stxsihx 0, 0, 61078; CHECK-NEXT:    blr1079;1080; CHECK-PWR8-LABEL: multiple_store_16:1081; CHECK-PWR8:       # %bb.0: # %entry1082; CHECK-PWR8-NEXT:    xscvdpsxws 0, 11083; CHECK-PWR8-NEXT:    mffprwz 3, 01084; CHECK-PWR8-NEXT:    sth 3, 0(4)1085; CHECK-PWR8-NEXT:    sth 3, 0(5)1086; CHECK-PWR8-NEXT:    sth 3, 0(6)1087; CHECK-PWR8-NEXT:    blr1088entry:1089  %conv1 = fptosi double %m to i161090  store i16 %conv1, ptr %addr1, align 81091  store i16 %conv1, ptr %addr2, align 81092  store i16 %conv1, ptr %addr3, align 81093  ret void1094}1095