[AArch64] Fix fp16 test failures after PR82964 fix
authorWilco Dijkstra <wdijkstr@arm.com>
Thu, 18 Jan 2018 16:37:44 +0000 (16:37 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Thu, 18 Jan 2018 16:37:44 +0000 (16:37 +0000)
This fixes test failures in gcc.target/aarch64/f16_mov_immediate_*.c
after fixing PR82964.  The check for a scalar floating point constant
didn't include 16-bit floating point modes, so use GET_MODE_CLASS
instead.

    gcc/
PR target/82964
* config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
Use GET_MODE_CLASS for scalar floating point.

From-SVN: r256854

gcc/ChangeLog
gcc/config/aarch64/aarch64.c

index 8f37ed18192b3add5fe2a7daf51caf4e502b4b12..1341714cc951f72d5451e64bfce267b062e55d37 100644 (file)
@@ -1,3 +1,9 @@
+2018-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
+
+       PR target/82964
+       * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
+       Use GET_MODE_CLASS for scalar floating point.
+
 2018-01-18  Jan Hubicka  <hubicka@ucw.cz>
 
        PR ipa/82256
index 17efac7a727bc1c5b16891af6af041faaf3116ef..174310c9f1bce3c0a85ff9d9711df1faf6103bad 100644 (file)
@@ -11757,8 +11757,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;