Hello, The patch reworks some of the VRND and VCVT code added for the FP16 extension support to remove the redundant UNSPECS and related constructs. Tested for arm-none-linux-gnueabihf with native bootstrap and make check and for arm-none-eabi with cross-compiled check-gcc on an ARMv8.4-A emulator. Ok for trunk? If ok, could someone please commit the patch on my behalf, I don't have commit rights. 2019-05-29 Srinath Parvathaneni Matthew Wahab * config/arm/iterators.md (VCVT_HF_US_N): Remove. (VCVT_SI_US_N): Remove. (VCVT_HF_US): Remove. (VCVTH_US): Remove. (FP16_RND): Remove. (sup): Remove UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S, UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S, UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N, UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S, UNSPEC_VCVTH_U. (vcvth_op): Remove. (fp16_rnd_insn): Remove. * config/arm/unspecs.md: Remove UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N, UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S, UNSPEC_VCVTH_U, UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S, UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S, UNSPEC_VCVTP_U, UNSPEC_VRND, UNSPEC_VRNDA, UNSPEC_VRNDI, UNSPEC_VRNDM, UNSPEC_VRNDN, UNSPEC_VRNDP, UNSPEC_VRNDX. * config/arm/vfp.md (neon_vcvthhf): Replace VCVTH_US with VCVT_US. (neon_vcvthsi): Likewise. (neon_vcvth_nhf_unspec): Replace VCVTH_US_N with VCVT_US_N. (neon_vcvth_nhf): Likewise. (neon_vcvth_nsi_unspec): Replace VCVTH_SI_US_N with VCVT_US_N. (neon_vcvth_nsi): Likewise.