This fixes test failures in gcc.target/aarch64/f16_mov_immediate_*.c after fixing PR82964 (https://gcc.gnu.org/ml/gcc-patches/2018-01/msg01636.html). The check for a scalar floating point constant didn't include 16-bit floating point modes, so use GET_MODE_CLASS instead.
This fixes the failures and has no effect otherwise. Committed as trivial fix. ChangeLog: 2018-01-18 Wilco Dijkstra <wdijk...@arm.com> gcc/ PR target/82964 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Use GET_MODE_CLASS for scalar floating point. -- diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 671168cc3f32ac3f2669fc79835435fdf618a56d..c6a83c881038873d8b68e36f906783be63ddde56 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -11813,8 +11813,7 @@ aarch64_legitimate_constant_p (machine_mode mode, rtx x) { /* Support CSE and rematerialization of common constants. */ if (CONST_INT_P (x) - || (CONST_DOUBLE_P (x) - && (mode == SFmode || mode == DFmode || mode == TFmode)) + || (CONST_DOUBLE_P (x) && GET_MODE_CLASS (mode) == MODE_FLOAT) || GET_CODE (x) == CONST_VECTOR) return true;