Lines Matching refs:f32

712                       [(set f32:$XT, (fneg (fabs f32:$XB)))]>;
772 [(set f32:$XT, (PPCany_fctidz f32:$XB))]>;
781 [(set f32:$XT, (PPCany_fctiwz f32:$XB))]>;
790 [(set f32:$XT, (PPCany_fctiduz f32:$XB))]>;
799 [(set f32:$XT, (PPCany_fctiwuz f32:$XB))]>;
1032 [(set f32:$XT, (fpimm0))]>;
1123 [(set f32:$XT, (load XForm:$src))]>;
1146 [(store f32:$XT, XForm:$dst)]>;
1159 [(set f32:$XT, (any_fadd f32:$XA, f32:$XB))]>;
1163 [(set f32:$XT, (any_fmul f32:$XA, f32:$XB))]>;
1169 [(set f32:$XT, (any_fsub f32:$XA, f32:$XB))]>;
1173 [(set f32:$XT, (any_fdiv f32:$XA, f32:$XB))]>;
1178 [(set f32:$XT, (PPCfre f32:$XB))]>;
1184 [(set f32:$XT, (any_fpround f64:$XB))]>;
1188 [(set f32:$XT, (any_fsqrt f32:$XB))]>;
1192 [(set f32:$XT, (PPCfrsqrte f32:$XB))]>;
1201 [(set f32:$XT, (any_fma f32:$XA, f32:$XB, f32:$XTi))]>,
1220 [(set f32:$XT, (any_fma f32:$XA, f32:$XB,
1221 (fneg f32:$XTi)))]>,
1240 [(set f32:$XT, (fneg (any_fma f32:$XA, f32:$XB,
1241 f32:$XTi)))]>,
1260 [(set f32:$XT, (fneg (any_fma f32:$XA, f32:$XB,
1261 (fneg f32:$XTi))))]>,
1278 [(set f32:$XT, (PPCany_fcfids f64:$XB))]>;
1282 [(set f32:$XT, (PPCany_fcfidus f64:$XB))]>;
1751 [(set f32:$XT, (load DSForm:$src))]>;
1757 [(store f32:$XT, DSForm:$dst)]>;
1807 [(set f32:$dst,
1808 (select i1:$cond, f32:$T, f32:$F))]>;
1814 // Output dag used to bitcast f32 to i32 and f64 to i64
1846 dag El0US1 = (f32 (PPCfcfidus
1848 dag El1US1 = (f32 (PPCfcfidus
1850 dag El0US2 = (f32 (PPCfcfidus
1852 dag El1US2 = (f32 (PPCfcfidus
1854 dag El0SS1 = (f32 (PPCfcfids
1856 dag El1SS1 = (f32 (PPCfcfids
1858 dag El0SS2 = (f32 (PPCfcfids
1860 dag El1SS2 = (f32 (PPCfcfids
2224 dag A0 = (f32 (any_fpround (f64 (extractelt v2f64:$A, 0))));
2225 dag A1 = (f32 (any_fpround (f64 (extractelt v2f64:$A, 1))));
2226 dag B0 = (f32 (any_fpround (f64 (extractelt v2f64:$B, 0))));
2227 dag B1 = (f32 (any_fpround (f64 (extractelt v2f64:$B, 1))));
2311 dag A = (i64 (PPCmfvsr (f64 (PPCfctidz (fpextend f32:$A)))));
2314 dag A = (i64 (PPCmfvsr (f64 (PPCfctiduz (fpextend f32:$A)))));
2353 // FP load dags (for f32 -> v4f32)
2355 dag A = (f32 (load ForceXForm:$A));
2356 dag B = (f32 (load ForceXForm:$B));
2357 dag C = (f32 (load ForceXForm:$C));
2358 dag D = (f32 (load ForceXForm:$D));
2361 // FP merge dags (for f32 -> v4f32)
2725 // f32 abs
2726 def : Pat<(f32 (fabs f32:$S)),
2727 (f32 (COPY_TO_REGCLASS (XSABSDP
2730 // f32 nabs
2731 def : Pat<(f32 (fneg (fabs f32:$S))),
2732 (f32 (COPY_TO_REGCLASS (XSNABSDP
2735 // f32 Min.
2736 def : Pat<(f32 (fminnum_ieee f32:$A, f32:$B)),
2737 (f32 FpMinMax.F32Min)>;
2738 def : Pat<(f32 (fminnum_ieee (fcanonicalize f32:$A), f32:$B)),
2739 (f32 FpMinMax.F32Min)>;
2740 def : Pat<(f32 (fminnum_ieee f32:$A, (fcanonicalize f32:$B))),
2741 (f32 FpMinMax.F32Min)>;
2742 def : Pat<(f32 (fminnum_ieee (fcanonicalize f32:$A), (fcanonicalize f32:$B))),
2743 (f32 FpMinMax.F32Min)>;
2745 def : Pat<(f32 (fmaxnum_ieee f32:$A, f32:$B)),
2746 (f32 FpMinMax.F32Max)>;
2747 def : Pat<(f32 (fmaxnum_ieee (fcanonicalize f32:$A), f32:$B)),
2748 (f32 FpMinMax.F32Max)>;
2749 def : Pat<(f32 (fmaxnum_ieee f32:$A, (fcanonicalize f32:$B))),
2750 (f32 FpMinMax.F32Max)>;
2751 def : Pat<(f32 (fmaxnum_ieee (fcanonicalize f32:$A), (fcanonicalize f32:$B))),
2752 (f32 FpMinMax.F32Max)>;
2781 def : Pat<(f32 (any_fround f32:$S)),
2782 (f32 (COPY_TO_REGCLASS (XSRDPI
2784 def : Pat<(f32 (any_ffloor f32:$S)),
2785 (f32 (COPY_TO_REGCLASS (XSRDPIM
2787 def : Pat<(f32 (any_fceil f32:$S)),
2788 (f32 (COPY_TO_REGCLASS (XSRDPIP
2790 def : Pat<(f32 (any_ftrunc f32:$S)),
2791 (f32 (COPY_TO_REGCLASS (XSRDPIZ
2793 def : Pat<(f32 (any_frint f32:$S)),
2794 (f32 (COPY_TO_REGCLASS (XSRDPIC
2805 def : Pat<(f32 (fnearbyint f32:$S)),
2806 (f32 (COPY_TO_REGCLASS (XSRDPIC
2844 def : Pat<(v4f32 (build_vector (f32 (fpround f64:$A)), (f32 (fpround f64:$A)),
2845 (f32 (fpround f64:$A)), (f32 (fpround f64:$A)))),
2848 def : Pat<(v4f32 (build_vector f32:$A, f32:$A, f32:$A, f32:$A)),
2895 def : Pat<(int_ppc_fnabss f32:$A), (XSNABSDPs $A)>;
2960 def : Pat<(v4f32 (build_vector f32:$A, f32:$B, f32:$C, f32:$D)),
3085 def : Pat<(v4f32 (build_vector f32:$D, f32:$C, f32:$B, f32:$A)),
3248 def : Pat<(f32 (fpimm0neg)),
3249 (f32 (COPY_TO_REGCLASS (XSNEGDP (XXLXORdpz)), F4RC))>;
3251 def : Pat<(f32 (nzFPImmExactInti5:$A)),
3263 def : Pat<(f32 (fpround (f64 (extloadf32 ForceXForm:$src)))),
3264 (f32 (XFLOADf32 ForceXForm:$src))>;
3265 def : Pat<(f64 (any_fpextend f32:$src)),
3268 def : Pat<(f32 (fpimm0neg)),
3269 (f32 (COPY_TO_REGCLASS (XSNEGDP (XXLXORdpz)), VSSRC))>;
3271 def : Pat<(f32 (nzFPImmExactInti5:$A)),
3275 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETLT)),
3277 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETULT)),
3279 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETLE)),
3281 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETULE)),
3283 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETEQ)),
3285 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETGE)),
3287 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETUGE)),
3289 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETGT)),
3291 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETUGT)),
3293 def : Pat<(f32 (selectcc i1:$lhs, i1:$rhs, f32:$tval, f32:$fval, SETNE)),
3297 def : Pat<(PPCfnmsub f32:$A, f32:$B, f32:$C),
3299 def : Pat<(fneg (PPCfnmsub f32:$A, f32:$B, f32:$C)),
3301 def : Pat<(PPCfnmsub f32:$A, f32:$B, (fneg f32:$C)),
3304 // f32 neg
3308 def : Pat<(f32 (fneg f32:$S)),
3309 (f32 (COPY_TO_REGCLASS (XSNEGDP
3346 def : Pat<(int_ppc_fmsubs f32:$A, f32:$B, f32:$C), (XSMSUBMSP $A, $B, $C)>;
3347 def : Pat<(int_ppc_fnmadds f32:$A, f32:$B, f32:$C), (XSNMADDMSP $A, $B, $C)>;
3348 def : Pat<(int_ppc_fres f32:$A), (XSRESP $A)>;
3364 (f32 (XSCVSXDSP (COPY_TO_REGCLASS $S1, VSFRC)))>;
3366 (f32 (XSCVSXDSP (COPY_TO_REGCLASS (XXPERMDI $S1, $S1, 2), VSFRC)))>;
3368 (f32 (XSCVUXDSP (COPY_TO_REGCLASS $S1, VSFRC)))>;
3370 (f32 (XSCVUXDSP (COPY_TO_REGCLASS (XXPERMDI $S1, $S1, 2), VSFRC)))>;
3373 defm : ScalToVecWPermute<v4f32, (f32 f32:$A), (XSCVDPSPN $A), (XSCVDPSPN $A)>;
3374 def : Pat<(f32 (vector_extract v4f32:$S, 0)),
3375 (f32 (XSCVSPDPN $S))>;
3376 def : Pat<(f32 (vector_extract v4f32:$S, 1)),
3377 (f32 (XSCVSPDPN (XXSLDWI $S, $S, 1)))>;
3378 def : Pat<(f32 (vector_extract v4f32:$S, 2)),
3379 (f32 (XSCVSPDPN (XXPERMDI $S, $S, 2)))>;
3380 def : Pat<(f32 (vector_extract v4f32:$S, 3)),
3381 (f32 (XSCVSPDPN (XXSLDWI $S, $S, 3)))>;
3383 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 0)))))),
3384 (f32 (XSCVSPDPN (XVCVSXWSP (XXSPLTW $A, 0))))>;
3385 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 1)))))),
3386 (f32 (XSCVSPDPN (XVCVSXWSP (XXSPLTW $A, 1))))>;
3387 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 2)))))),
3388 (f32 (XSCVSPDPN (XVCVSXWSP (XXSPLTW $A, 2))))>;
3389 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 3)))))),
3390 (f32 (XSCVSPDPN (XVCVSXWSP (XXSPLTW $A, 3))))>;
3400 def : Pat<(f32 (vector_extract v4f32:$S, i32:$Idx)),
3401 (f32 VectorExtractions.BE_32B_VARIABLE_FLOAT)>;
3411 v4f32, (f32 (load ForceXForm:$src)),
3418 def : Pat<(f32 (vector_extract v4f32:$S, i64:$Idx)),
3419 (f32 VectorExtractions.BE_VARIABLE_FLOAT)>;
3422 // LIWZX - This instruction will be emitted for i32, f32, and when
3437 def : Pat<(store (f32 (extractelt v4f32:$A, 1)), ForceXForm:$src),
3448 def : Pat<(store (f32 (extractelt v4f32:$A, !head(Idx))), ForceXForm:$src),
3457 (f32 (XSCVSXDSP (COPY_TO_REGCLASS (XXPERMDI $S1, $S1, 2), VSFRC)))>;
3459 (f32 (XSCVSXDSP (COPY_TO_REGCLASS
3462 (f32 (XSCVUXDSP (COPY_TO_REGCLASS (XXPERMDI $S1, $S1, 2), VSFRC)))>;
3464 (f32 (XSCVUXDSP (COPY_TO_REGCLASS
3468 defm : ScalToVecWPermute<v4f32, (f32 f32:$A),
3471 def : Pat<(f32 (vector_extract v4f32:$S, 0)),
3472 (f32 (XSCVSPDPN (XXSLDWI $S, $S, 3)))>;
3473 def : Pat<(f32 (vector_extract v4f32:$S, 1)),
3474 (f32 (XSCVSPDPN (XXPERMDI $S, $S, 2)))>;
3475 def : Pat<(f32 (vector_extract v4f32:$S, 2)),
3476 (f32 (XSCVSPDPN (XXSLDWI $S, $S, 1)))>;
3477 def : Pat<(f32 (vector_extract v4f32:$S, 3)),
3478 (f32 (XSCVSPDPN $S))>;
3479 def : Pat<(f32 (vector_extract v4f32:$S, i64:$Idx)),
3480 (f32 VectorExtractions.LE_VARIABLE_FLOAT)>;
3482 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 0)))))),
3483 (f32 (XSCVSPDPN (XVCVSXWSP (XXSPLTW $A, 3))))>;
3484 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 1)))))),
3485 (f32 (XSCVSPDPN (XVCVSXWSP (XXSPLTW $A, 2))))>;
3486 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 2)))))),
3487 (f32 (XSCVSPDPN (XVCVSXWSP (XXSPLTW $A, 1))))>;
3488 def : Pat<(f32 (PPCfcfids (f64 (PPCmtvsra (i32 (extractelt v4i32:$A, 3)))))),
3489 (f32 (XSCVSPDPN (XVCVSXWSP (XXSPLTW $A, 0))))>;
3500 // LIWZX - This instruction will be emitted for i32, f32, and when
3518 v4f32, (f32 (load ForceXForm:$src)),
3530 def : Pat<(store (f32 (extractelt v4f32:$A, 2)), ForceXForm:$src),
3541 def : Pat<(store (f32 (extractelt v4f32:$A, !head(Idx))), ForceXForm:$src),
3577 // bitconvert f32 -> i32
3579 def : Pat<(i32 (bitconvert f32:$A)), Bitcast.FltToInt>;
3581 // bitconvert i32 -> f32
3583 def : Pat<(f32 (bitconvert i32:$A)),
3584 (f32 (XSCVSPDPN
3599 def : Pat<(i64 (lrint f32:$S)),
3603 def : Pat<(i64 (llrint f32:$S)),
3607 def : Pat<(i64 (lround f32:$S)),
3611 def : Pat<(i64 (llround f32:$S)),
4000 def : Pat<(f32 (extloadf16 ForceXForm:$src)),
4001 (f32 (COPY_TO_REGCLASS (XSCVHPDP (LXSIHZX ForceXForm:$src)), VSSRC))>;
4002 def : Pat<(truncstoref16 f32:$src, ForceXForm:$dst),
4006 def : Pat<(f32 (f16_to_fp i32:$A)),
4007 (f32 (COPY_TO_REGCLASS (XSCVHPDP (MTVSRWZ $A)), VSSRC))>;
4008 def : Pat<(i32 (fp_to_f16 f32:$A)),
4020 def : Pat<(f32 (fpround (f64 (extloadf32 DSForm:$src)))),
4021 (f32 (DFLOADf32 DSForm:$src))>;
4071 def : Pat<(f32 (any_fpround f128:$src)), (f32 (XSRSP (XSCVQPDPO $src)))>;
4074 def : Pat<(f128 (any_fpextend f32:$src)),
4077 def : Pat<(f32 (PPCxsmaxc f32:$XA, f32:$XB)),
4078 (f32 (COPY_TO_REGCLASS (XSMAXCDP (COPY_TO_REGCLASS $XA, VSSRC),
4081 def : Pat<(f32 (PPCxsminc f32:$XA, f32:$XB)),
4082 (f32 (COPY_TO_REGCLASS (XSMINCDP (COPY_TO_REGCLASS $XA, VSSRC),
4175 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 0)))))),
4176 (f32 (XSCVUXDSP (XXEXTRACTUW $A, 0)))>;
4177 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 1)))))),
4178 (f32 (XSCVUXDSP (XXEXTRACTUW $A, 4)))>;
4179 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 2)))))),
4180 (f32 (XSCVUXDSP (XXEXTRACTUW $A, 8)))>;
4181 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 3)))))),
4182 (f32 (XSCVUXDSP (XXEXTRACTUW $A, 12)))>;
4239 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 0)),
4241 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 1)),
4243 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 2)),
4245 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 3)),
4248 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 0)),
4251 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 1)),
4254 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 2)),
4257 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 3)),
4384 def : Pat<(f32 (PPCfcfidus
4387 (f32 (XSCVUXDSP (EXTRACT_SUBREG
4389 def : Pat<(f32 (PPCfcfids
4393 (f32 (XSCVSXDSP (EXTRACT_SUBREG
4423 def : Pat<(f32 (PPCfcfidus
4427 (f32 (XSCVUXDSP (EXTRACT_SUBREG
4429 def : Pat<(f32 (PPCfcfids
4433 (f32 (XSCVSXDSP (EXTRACT_SUBREG
4459 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 0)))))),
4460 (f32 (XSCVUXDSP (XXEXTRACTUW $A, 12)))>;
4461 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 1)))))),
4462 (f32 (XSCVUXDSP (XXEXTRACTUW $A, 8)))>;
4463 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 2)))))),
4464 (f32 (XSCVUXDSP (XXEXTRACTUW $A, 4)))>;
4465 def : Pat<(f32 (PPCfcfidus (f64 (PPCmtvsrz (i32 (extractelt v4i32:$A, 3)))))),
4466 (f32 (XSCVUXDSP (XXEXTRACTUW $A, 0)))>;
4523 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 0)),
4525 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 1)),
4527 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 2)),
4529 def : Pat<(v4f32 (insertelt v4f32:$A, f32:$B, 3)),
4532 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 0)),
4535 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 1)),
4538 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 2)),
4541 def : Pat<(v4f32 (insertelt v4f32:$A, (f32 (fpround f64:$B)), 3)),
4688 def : Pat<(f32 (PPCfcfidus
4692 (f32 (XSCVUXDSP (EXTRACT_SUBREG
4694 def : Pat<(f32 (PPCfcfids
4698 (f32 (XSCVSXDSP
4735 def : Pat<(f32 (PPCfcfidus
4739 (f32 (XSCVUXDSP (EXTRACT_SUBREG
4741 def : Pat<(f32 (PPCfcfids
4745 (f32 (XSCVSXDSP