Hi All, This patch adds support for creating floating point constants using mov immediate instructions. The movi SIMD instruction can be used for HFmode and SFmode constants, eg. for -0.0f we generate: movi v0.2s, 0x80, lsl 24 More complex constants can be generated using an integer MOV or MOV+MOVK: mov w0, 48128 movk w0, 0x47f0, lsl 16 fmov s0, w0 We allow up to 3 instructions as this allows all HF, SF and most DF constants to be generated without a literal load, and is overall best for codesize. Regression tested on aarch64-none-linux-gnu and no regressions. OK for trunk? Thanks, Tamar gcc/ 2017-06-07 Tamar Christina * config/aarch64/aarch64.md (mov): Generalize. (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): Add integer and movi cases.