Lines Matching refs:f16
45 def vfp_f16imm : Operand<f16>,
46 PatLeaf<(f16 fpimm), [{
171 [(set HPR:$Sd, (f16 (alignedload16 addrmode5fp16:$addr)))]>,
206 [(alignedstore16 (f16 HPR:$Sd), addrmode5fp16:$addr)]>,
446 IIC_fpALU16, "vadd", ".f16\t$Sd, $Sn, $Sm",
447 [(set (f16 HPR:$Sd), (fadd (f16 HPR:$Sn), (f16 HPR:$Sm)))]>,
471 IIC_fpALU16, "vsub", ".f16\t$Sd, $Sn, $Sm",
472 [(set (f16 HPR:$Sd), (fsub (f16 HPR:$Sn), (f16 HPR:$Sm)))]>,
492 IIC_fpDIV16, "vdiv", ".f16\t$Sd, $Sn, $Sm",
493 [(set (f16 HPR:$Sd), (fdiv (f16 HPR:$Sn), (f16 HPR:$Sm)))]>,
517 IIC_fpMUL16, "vmul", ".f16\t$Sd, $Sn, $Sm",
518 [(set (f16 HPR:$Sd), (fmul (f16 HPR:$Sn), (f16 HPR:$Sm)))]>,
542 IIC_fpMUL16, "vnmul", ".f16\t$Sd, $Sn, $Sm",
543 [(set (f16 HPR:$Sd), (fneg (fmul (f16 HPR:$Sn), (f16 HPR:$Sm))))]>,
551 NoItinerary, !strconcat("vsel", op, ".f16\t$Sd, $Sn, $Sm"),
552 [(set (f16 HPR:$Sd), (ARMcmov (f16 HPR:$Sm), (f16 HPR:$Sn), CC))]>,
580 NoItinerary, !strconcat(op, ".f16\t$Sd, $Sn, $Sm"),
581 [(set (f16 HPR:$Sd), (SD (f16 HPR:$Sn), (f16 HPR:$Sm)))]>,
626 IIC_fpCMP16, "vcmpe", ".f16\t$Sd, $Sm",
627 [(arm_cmpfpe (f16 HPR:$Sd), (f16 HPR:$Sm))]>;
645 IIC_fpCMP16, "vcmp", ".f16\t$Sd, $Sm",
646 [(arm_cmpfp (f16 HPR:$Sd), (f16 HPR:$Sm))]>;
669 IIC_fpUNA16, "vabs", ".f16\t$Sd, $Sm",
670 [(set (f16 HPR:$Sd), (fabs (f16 HPR:$Sm)))]>;
695 IIC_fpCMP16, "vcmpe", ".f16\t$Sd, #0",
696 [(arm_cmpfpe0 (f16 HPR:$Sd))]> {
723 IIC_fpCMP16, "vcmp", ".f16\t$Sd, #0",
724 [(arm_cmpfp0 (f16 HPR:$Sd))]> {
777 /* FIXME */ IIC_fpCVTSH, "vcvtb", ".f32.f16\t$Sd, $Sm", "",
782 def : FP16Pat<(f32 (fpextend (f16 HPR:$Sm))),
783 (VCVTBHS (COPY_TO_REGCLASS (f16 HPR:$Sm), SPR))>;
789 /* FIXME */ IIC_fpCVTHS, "vcvtb", ".f16.f32\t$Sd, $Sm", "$Sd = $Sda",
794 def : FP16Pat<(f16 (fpround SPR:$Sm)),
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", "",
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),
843 NoItinerary, "vcvtb", ".f64.f16\t$Dd, $Sm", "",
857 def : FullFP16Pat<(f64 (fpextend (f16 HPR:$Sm))),
858 (VCVTBHD (COPY_TO_REGCLASS (f16 HPR:$Sm), SPR))>,
866 NoItinerary, "vcvtb", ".f16.f64\t$Sd, $Dm", "$Sd = $Sda",
882 def : FullFP16Pat<(f16 (fpround DPR:$Dm)),
891 NoItinerary, "vcvtt", ".f64.f16\t$Dd, $Sm", "",
905 NoItinerary, "vcvtt", ".f16.f64\t$Sd, $Dm", "$Sd = $Sda",
925 NoItinerary, !strconcat("vcvt", opc, ".s32.f16\t$Sd, $Sm"),
933 NoItinerary, !strconcat("vcvt", opc, ".u32.f16\t$Sd, $Sm"),
988 def : Pat<(i32 (fp_to_sint (node (f16 HPR:$a)))),
990 (!cast<Instruction>(NAME#"SH") (f16 HPR:$a)),
993 def : Pat<(i32 (fp_to_uint (node (f16 HPR:$a)))),
995 (!cast<Instruction>(NAME#"UH") (f16 HPR:$a)),
1040 IIC_fpUNA16, "vneg", ".f16\t$Sd, $Sm",
1041 [(set (f16 HPR:$Sd), (fneg (f16 HPR:$Sm)))]>;
1046 NoItinerary, !strconcat("vrint", opc), ".f16\t$Sd, $Sm",
1047 [(set (f16 HPR:$Sd), (node (f16 HPR:$Sm)))]>,
1070 def : InstAlias<!strconcat("vrint", opc, "$p.f16.f16\t$Sd, $Sm"),
1091 NoItinerary, !strconcat("vrint", opc, ".f16\t$Sd, $Sm"),
1092 [(set (f16 HPR:$Sd), (node (f16 HPR:$Sm)))]>,
1112 def : InstAlias<!strconcat("vrint", opc, ".f16.f16\t$Sd, $Sm"),
1142 IIC_fpSQRT16, "vsqrt", ".f16\t$Sd, $Sm",
1143 [(set (f16 HPR:$Sd), (fsqrt (f16 HPR:$Sm)))]>;
1161 IIC_fpUNA16, "vmovx.f16\t$Sd, $Sm", []>,
1166 IIC_fpUNA16, "vins.f16\t$Sd, $Sm", []>,
1360 IIC_fpMOVSI, "vmov", ".f16\t$Rt, $Sn",
1382 IIC_fpMOVIS, "vmov", ".f16\t$Sn, $Rt",
1401 def : FPRegs16Pat<(arm_vmovrh (f16 HPR:$Sn)), (VMOVRH (f16 HPR:$Sn))>;
1403 def : FPRegs16Pat<(f16 (arm_vmovhr rGPR:$Rt)), (VMOVHR rGPR:$Rt)>;
1510 IIC_fpCVTIH, "vcvt", ".f16.s32\t$Sd, $Sm",
1517 def : VFPNoNEONPat<(f16 (sint_to_fp GPR:$a)),
1556 IIC_fpCVTIH, "vcvt", ".f16.u32\t$Sd, $Sm",
1563 def : VFPNoNEONPat<(f16 (uint_to_fp GPR:$a)),
1674 IIC_fpCVTHI, "vcvt", ".s32.f16\t$Sd, $Sm",
1681 def : VFPNoNEONPat<(i32 (fp_to_sint (f16 HPR:$a))),
1682 (COPY_TO_REGCLASS (VTOSIZH (f16 HPR:$a)), GPR)>;
1683 def : VFPPat<(i32 (fp_to_sint_sat (f16 HPR:$a), i32)),
1684 (COPY_TO_REGCLASS (VTOSIZH (f16 HPR:$a)), GPR)>;
1732 IIC_fpCVTHI, "vcvt", ".u32.f16\t$Sd, $Sm",
1739 def : VFPNoNEONPat<(i32 (fp_to_uint (f16 HPR:$a))),
1740 (COPY_TO_REGCLASS (VTOUIZH (f16 HPR:$a)), GPR)>;
1741 def : VFPPat<(i32 (fp_to_uint_sat (f16 HPR:$a), i32)),
1742 (COPY_TO_REGCLASS (VTOUIZH (f16 HPR:$a)), GPR)>;
1764 IIC_fpCVTHI, "vcvtr", ".s32.f16\t$Sd, $Sm",
1789 IIC_fpCVTHI, "vcvtr", ".u32.f16\t$Sd, $Sm",
1848 IIC_fpCVTHI, "vcvt", ".s16.f16\t$dst, $a, $fbits", []>,
1854 IIC_fpCVTHI, "vcvt", ".u16.f16\t$dst, $a, $fbits", []>,
1860 IIC_fpCVTHI, "vcvt", ".s32.f16\t$dst, $a, $fbits", []>,
1866 IIC_fpCVTHI, "vcvt", ".u32.f16\t$dst, $a, $fbits", []>,
1934 IIC_fpCVTIH, "vcvt", ".f16.s16\t$dst, $a, $fbits", []>,
1940 IIC_fpCVTIH, "vcvt", ".f16.u16\t$dst, $a, $fbits", []>,
1946 IIC_fpCVTIH, "vcvt", ".f16.s32\t$dst, $a, $fbits", []>,
1952 IIC_fpCVTIH, "vcvt", ".f16.u32\t$dst, $a, $fbits", []>,
2075 IIC_fpMAC16, "vmla", ".f16\t$Sd, $Sn, $Sm",
2076 [(set (f16 HPR:$Sd), (fadd_mlx (fmul_su (f16 HPR:$Sn), (f16 HPR:$Sm)),
2077 (f16 HPR:$Sdin)))]>,
2087 def : Pat<(fadd_mlx HPR:$dstin, (fmul_su (f16 HPR:$a), HPR:$b)),
2088 (VMLAH HPR:$dstin, (f16 HPR:$a), HPR:$b)>,
2116 IIC_fpMAC16, "vmls", ".f16\t$Sd, $Sn, $Sm",
2117 [(set (f16 HPR:$Sd), (fadd_mlx (fneg (fmul_su (f16 HPR:$Sn), (f16 HPR:$Sm))),
2118 (f16 HPR:$Sdin)))]>,
2128 def : Pat<(fsub_mlx HPR:$dstin, (fmul_su (f16 HPR:$a), HPR:$b)),
2129 (VMLSH HPR:$dstin, (f16 HPR:$a), HPR:$b)>,
2156 IIC_fpMAC16, "vnmla", ".f16\t$Sd, $Sn, $Sm",
2157 [(set (f16 HPR:$Sd), (fsub_mlx (fneg (fmul_su (f16 HPR:$Sn), (f16 HPR:$Sm))),
2158 (f16 HPR:$Sdin)))]>,
2169 def : Pat<(fsub_mlx (fneg (fmul_su (f16 HPR:$a), HPR:$b)), HPR:$dstin),
2170 (VNMLAH HPR:$dstin, (f16 HPR:$a), HPR:$b)>,
2180 def : Pat<(fsub_mlx (fneg HPR:$dstin), (fmul_su (f16 HPR:$a), HPR:$b)),
2181 (VNMLAH HPR:$dstin, (f16 HPR:$a), HPR:$b)>,
2207 IIC_fpMAC16, "vnmls", ".f16\t$Sd, $Sn, $Sm",
2208 … [(set (f16 HPR:$Sd), (fsub_mlx (fmul_su (f16 HPR:$Sn), (f16 HPR:$Sm)), (f16 HPR:$Sdin)))]>,
2218 def : Pat<(fsub_mlx (fmul_su (f16 HPR:$a), HPR:$b), HPR:$dstin),
2219 (VNMLSH HPR:$dstin, (f16 HPR:$a), HPR:$b)>,
2248 IIC_fpFMAC16, "vfma", ".f16\t$Sd, $Sn, $Sm",
2249 [(set (f16 HPR:$Sd), (fadd_mlx (fmul_su (f16 HPR:$Sn), (f16 HPR:$Sm)),
2250 (f16 HPR:$Sdin)))]>,
2261 def : Pat<(fadd_mlx HPR:$dstin, (fmul_su (f16 HPR:$a), HPR:$b)),
2262 (VFMAH HPR:$dstin, (f16 HPR:$a), HPR:$b)>,
2273 def : Pat<(f16 (fma HPR:$Sn, HPR:$Sm, (f16 HPR:$Sdin))),
2274 (VFMAH (f16 HPR:$Sdin), (f16 HPR:$Sn), (f16 HPR:$Sm))>,
2300 IIC_fpFMAC16, "vfms", ".f16\t$Sd, $Sn, $Sm",
2301 [(set (f16 HPR:$Sd), (fadd_mlx (fneg (fmul_su (f16 HPR:$Sn), (f16 HPR:$Sm))),
2302 (f16 HPR:$Sdin)))]>,
2313 def : Pat<(fsub_mlx HPR:$dstin, (fmul_su (f16 HPR:$a), HPR:$b)),
2314 (VFMSH HPR:$dstin, (f16 HPR:$a), HPR:$b)>,
2325 def : Pat<(f16 (fma (fneg (f16 HPR:$Sn)), (f16 HPR:$Sm), (f16 HPR:$Sdin))),
2326 (VFMSH (f16 HPR:$Sdin), (f16 HPR:$Sn), (f16 HPR:$Sm))>,
2352 IIC_fpFMAC16, "vfnma", ".f16\t$Sd, $Sn, $Sm",
2353 [(set (f16 HPR:$Sd), (fsub_mlx (fneg (fmul_su (f16 HPR:$Sn), (f16 HPR:$Sm))),
2354 (f16 HPR:$Sdin)))]>,
2374 def : Pat<(fneg (fma (f16 HPR:$Sn), (f16 HPR:$Sm), (f16 (f16 HPR:$Sdin)))),
2375 (VFNMAH (f16 HPR:$Sdin), (f16 HPR:$Sn), (f16 HPR:$Sm))>,
2384 def : Pat<(f16 (fma (fneg (f16 HPR:$Sn)), (f16 HPR:$Sm), (fneg (f16 HPR:$Sdin)))),
2385 (VFNMAH (f16 HPR:$Sdin), (f16 HPR:$Sn), (f16 HPR:$Sm))>,
2410 IIC_fpFMAC16, "vfnms", ".f16\t$Sd, $Sn, $Sm",
2411 … [(set (f16 HPR:$Sd), (fsub_mlx (fmul_su (f16 HPR:$Sn), (f16 HPR:$Sm)), (f16 HPR:$Sdin)))]>,
2432 def : Pat<(f16 (fma (f16 HPR:$Sn), (f16 HPR:$Sm), (fneg (f16 HPR:$Sdin)))),
2433 (VFNMSH (f16 HPR:$Sdin), (f16 HPR:$Sn), (f16 HPR:$Sm))>,
2442 def : Pat<(fneg (f16 (fma (fneg (f16 HPR:$Sn)), (f16 HPR:$Sm), (f16 HPR:$Sdin)))),
2443 (VFNMSH (f16 HPR:$Sdin), (f16 HPR:$Sn), (f16 HPR:$Sm))>,
2465 [(set (f16 HPR:$Sd),
2466 (ARMcmov (f16 HPR:$Sn), (f16 HPR:$Sm), cmovpred:$p))]>,
2671 "vmov", ".f16\t$Sd, $imm", "",
2672 [(set (f16 HPR:$Sd), vfp_f16imm:$imm)]>,
2691 (f32 (COPY_TO_REGCLASS (f16 (FCONSTH (vfp_f32f16imm_xform (f32 $imm)))), SPR))> {