Lines Matching refs:f32
19 def SDT_VMOVSR : SDTypeProfile<1, 1, [SDTCisVT<0, f32>, SDTCisVT<1, i32>]>;
63 def vfp_f32f16imm : PatLeaf<(f32 fpimm), [{
76 def vfp_f32imm : Operand<f32>,
77 PatLeaf<(f32 fpimm), [{
435 IIC_fpALU32, "vadd", ".f32\t$Sd, $Sn, $Sm",
460 IIC_fpALU32, "vsub", ".f32\t$Sd, $Sn, $Sm",
485 IIC_fpDIV32, "vdiv", ".f32\t$Sd, $Sn, $Sm",
506 IIC_fpMUL32, "vmul", ".f32\t$Sd, $Sn, $Sm",
531 IIC_fpMUL32, "vnmul", ".f32\t$Sd, $Sn, $Sm",
557 NoItinerary, !strconcat("vsel", op, ".f32\t$Sd, $Sn, $Sm"),
586 NoItinerary, !strconcat(op, ".f32\t$Sd, $Sn, $Sm"),
617 IIC_fpCMP32, "vcmpe", ".f32\t$Sd, $Sm", "",
636 IIC_fpCMP32, "vcmp", ".f32\t$Sd, $Sm", "",
660 IIC_fpUNA32, "vabs", ".f32\t$Sd, $Sm",
683 IIC_fpCMP32, "vcmpe", ".f32\t$Sd, #0", "",
711 IIC_fpCMP32, "vcmp", ".f32\t$Sd, #0", "",
732 IIC_fpCVTDS, "vcvt", ".f64.f32\t$Dd, $Sm", "",
751 IIC_fpCVTSD, "vcvt", ".f32.f64\t$Sd, $Dm", "",
777 /* FIXME */ IIC_fpCVTSH, "vcvtb", ".f32.f16\t$Sd, $Sm", "",
782 def : FP16Pat<(f32 (fpextend (f16 HPR:$Sm))),
789 /* FIXME */ IIC_fpCVTHS, "vcvtb", ".f16.f32\t$Sd, $Sm", "$Sd = $Sda",
798 def : FP16Pat<(insertelt (v8f16 MQPR:$src1), (f16 (fpround (f32 SPR:$src2))), imm_even:$lane),
803 def : FP16Pat<(insertelt (v4f16 DPR:$src1), (f16 (fpround (f32 SPR:$src2))), imm_even:$lane),
811 /* FIXME */ IIC_fpCVTSH, "vcvtt", ".f32.f16\t$Sd, $Sm", "",
816 def : FP16Pat<(f32 (fpextend (extractelt (v8f16 MQPR:$src), imm_odd:$lane))),
818 def : FP16Pat<(f32 (fpextend (extractelt (v4f16 DPR:$src), imm_odd:$lane))),
825 /* FIXME */ IIC_fpCVTHS, "vcvtt", ".f16.f32\t$Sd, $Sm", "$Sd = $Sda",
830 def : FP16Pat<(insertelt (v8f16 MQPR:$src1), (f16 (fpround (f32 SPR:$src2))), imm_odd:$lane),
835 def : FP16Pat<(insertelt (v4f16 DPR:$src1), (f16 (fpround (f32 SPR:$src2))), imm_odd:$lane),
941 NoItinerary, !strconcat("vcvt", opc, ".s32.f32\t$Sd, $Sm"),
949 NoItinerary, !strconcat("vcvt", opc, ".u32.f32\t$Sd, $Sm"),
1031 IIC_fpUNA32, "vneg", ".f32\t$Sd, $Sm",
1055 NoItinerary, !strconcat("vrint", opc), ".f32\t$Sd, $Sm", "",
1056 [(set (f32 SPR:$Sd), (node (f32 SPR:$Sm)))]>,
1073 def : InstAlias<!strconcat("vrint", opc, "$p.f32.f32\t$Sd, $Sm"),
1098 NoItinerary, !strconcat("vrint", opc, ".f32\t$Sd, $Sm"),
1099 [(set (f32 SPR:$Sd), (node (f32 SPR:$Sm)))]>,
1115 def : InstAlias<!strconcat("vrint", opc, ".f32.f32\t$Sd, $Sm"),
1136 IIC_fpSQRT32, "vsqrt", ".f32\t$Sd, $Sm", "",
1154 IIC_fpUNA32, "vmov", ".f32\t$Sd, $Sm", "", []>,
1202 // Bitcast i32 -> f32. NEON prefers to use VMOVDRR.
1492 IIC_fpCVTIS, "vcvt", ".f32.s32\t$Sd, $Sm",
1502 def : VFPNoNEONPat<(f32 (sint_to_fp GPR:$a)),
1505 def : VFPNoNEONPat<(f32 (sint_to_fp (i32 (alignedload32 addrmode5:$a)))),
1538 IIC_fpCVTIS, "vcvt", ".f32.u32\t$Sd, $Sm",
1548 def : VFPNoNEONPat<(f32 (uint_to_fp GPR:$a)),
1551 def : VFPNoNEONPat<(f32 (uint_to_fp (i32 (alignedload32 addrmode5:$a)))),
1650 IIC_fpCVTSI, "vcvt", ".s32.f32\t$Sd, $Sm",
1665 def : VFPNoNEONPat<(alignedstore32 (i32 (fp_to_sint (f32 SPR:$a))),
1668 def : VFPPat<(alignedstore32 (i32 (fp_to_sint_sat (f32 SPR:$a), i32)),
1708 IIC_fpCVTSI, "vcvt", ".u32.f32\t$Sd, $Sm",
1723 def : VFPNoNEONPat<(alignedstore32 (i32 (fp_to_uint (f32 SPR:$a))),
1726 def : VFPPat<(alignedstore32 (i32 (fp_to_uint_sat (f32 SPR:$a), i32)),
1756 IIC_fpCVTSI, "vcvtr", ".s32.f32\t$Sd, $Sm",
1781 IIC_fpCVTSI, "vcvtr", ".u32.f32\t$Sd, $Sm",
1874 IIC_fpCVTSI, "vcvt", ".s16.f32\t$dst, $a, $fbits", []>,
1883 IIC_fpCVTSI, "vcvt", ".u16.f32\t$dst, $a, $fbits", []>,
1892 IIC_fpCVTSI, "vcvt", ".s32.f32\t$dst, $a, $fbits", []>,
1901 IIC_fpCVTSI, "vcvt", ".u32.f32\t$dst, $a, $fbits", []>,
1960 IIC_fpCVTIS, "vcvt", ".f32.s16\t$dst, $a, $fbits", []>,
1969 IIC_fpCVTIS, "vcvt", ".f32.u16\t$dst, $a, $fbits", []>,
1978 IIC_fpCVTIS, "vcvt", ".f32.s32\t$dst, $a, $fbits", []>,
1987 IIC_fpCVTIS, "vcvt", ".f32.u32\t$dst, $a, $fbits", []>,
2020 opc, ".bf16.f32\t$Sd, $Sm", "", []>,
2062 IIC_fpMAC32, "vmla", ".f32\t$Sd, $Sn, $Sm",
2103 IIC_fpMAC32, "vmls", ".f32\t$Sd, $Sn, $Sm",
2143 IIC_fpMAC32, "vnmla", ".f32\t$Sd, $Sn, $Sm",
2195 IIC_fpMAC32, "vnmls", ".f32\t$Sd, $Sn, $Sm",
2236 IIC_fpFMAC32, "vfma", ".f32\t$Sd, $Sn, $Sm",
2270 def : Pat<(f32 (fma SPR:$Sn, SPR:$Sm, SPR:$Sdin)),
2288 IIC_fpFMAC32, "vfms", ".f32\t$Sd, $Sn, $Sm",
2322 def : Pat<(f32 (fma (fneg SPR:$Sn), SPR:$Sm, SPR:$Sdin)),
2340 IIC_fpFMAC32, "vfnma", ".f32\t$Sd, $Sn, $Sm",
2371 def : Pat<(fneg (fma (f32 SPR:$Sn), (f32 SPR:$Sm), (f32 SPR:$Sdin))),
2381 def : Pat<(f32 (fma (fneg SPR:$Sn), SPR:$Sm, (fneg SPR:$Sdin))),
2399 IIC_fpFMAC32, "vfnms", ".f32\t$Sd, $Sn, $Sm",
2429 def : Pat<(f32 (fma SPR:$Sn, SPR:$Sm, (fneg SPR:$Sdin))),
2439 def : Pat<(fneg (f32 (fma (fneg SPR:$Sn), SPR:$Sm, SPR:$Sdin))),
2459 [(set (f32 SPR:$Sd),
2653 "vmov", ".f32\t$Sd, $imm", "",
2690 def : Pat<(f32 (vfp_f32f16imm:$imm)),
2691 (f32 (COPY_TO_REGCLASS (f16 (FCONSTH (vfp_f32f16imm_xform (f32 $imm)))), SPR))> {
2714 def : VFP2MnemonicAlias<"fadds", "vadd.f32">;
2720 def : VFP2MnemonicAlias<"fmuls", "vmul.f32">;
2722 def : VFP2MnemonicAlias<"fnegs", "vneg.f32">;
2726 def : VFP2MnemonicAlias<"ftosizs", "vcvt.s32.f32">;
2727 def : VFP2MnemonicAlias<"ftosis", "vcvtr.s32.f32">;
2730 def : VFP2MnemonicAlias<"ftouizs", "vcvt.u32.f32">;
2731 def : VFP2MnemonicAlias<"ftouis", "vcvtr.u32.f32">;
2733 def : VFP2MnemonicAlias<"fsitos", "vcvt.f32.s32">;
2735 def : VFP2MnemonicAlias<"fuitos", "vcvt.f32.u32">;
2739 def : VFP2MnemonicAlias<"fmacs", "vmla.f32">;
2740 def : VFP2MnemonicAlias<"fcpys", "vmov.f32">;
2742 def : VFP2MnemonicAlias<"fcmps", "vcmp.f32">;
2744 def : VFP2MnemonicAlias<"fdivs", "vdiv.f32">;
2797 // VMOVS doesn't need the .f32 to disambiguate from the NEON encoding the way
2802 // FCONSTD/FCONSTS alias for vmov.f64/vmov.f32