[AArch64] Fix another ICE with -mgeneral-regs-only
authorAlan Lawrence <alan.lawrence@arm.com>
Wed, 24 Jun 2015 16:26:38 +0000 (16:26 +0000)
committerAlan Lawrence <alalaw01@gcc.gnu.org>
Wed, 24 Jun 2015 16:26:38 +0000 (16:26 +0000)
gcc/:

* config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
Condition on TARGET_FLOAT.

gcc/testsuite/:

* gcc.target/aarch64/mgeneral-regs_3.c: New.

From-SVN: r224910

gcc/ChangeLog
gcc/config/aarch64/aarch64.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/mgeneral-regs_3.c [new file with mode: 0644]

index bf4f27c3d519216de397050f97d5aaa1ed90d820..944e89c5fa5f96164b941264007666cfc12c2c0e 100644 (file)
@@ -1,3 +1,8 @@
+2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
+
+       * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
+       Condition on TARGET_FLOAT.
+
 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
 
        * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
index 934c8faf6d6ecd90a21fbc3243b8b79ab328177c..dbc4d1fbfee85bc8bc686babc63b82ff8371dfc4 100644 (file)
 (define_insn "<optab><fcvt_target><GPF:mode>2"
   [(set (match_operand:GPF 0 "register_operand" "=w,w")
         (FLOATUORS:GPF (match_operand:<FCVT_TARGET> 1 "register_operand" "w,r")))]
-  ""
+  "TARGET_FLOAT"
   "@
    <su_optab>cvtf\t%<GPF:s>0, %<s>1
    <su_optab>cvtf\t%<GPF:s>0, %<w1>1"
index b9084a6e393ad753790879a404720426304f0506..61045d38d2a5a0d5f948ea7c672dca3f9b1694a5 100644 (file)
@@ -1,3 +1,7 @@
+2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
+
+       * gcc.target/aarch64/mgeneral-regs_3.c: New.
+
 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
 
        * gcc.target/aarch64/mgeneral-regs_1.c: New file.
diff --git a/gcc/testsuite/gcc.target/aarch64/mgeneral-regs_3.c b/gcc/testsuite/gcc.target/aarch64/mgeneral-regs_3.c
new file mode 100644 (file)
index 0000000..f6b5fba
--- /dev/null
@@ -0,0 +1,11 @@
+/* { dg-options "-mgeneral-regs-only -O2" } */
+
+extern void abort (void);
+
+int
+test (int i, ...)
+{
+  float f = (float) i; /* { dg-error "'-mgeneral-regs-only' is incompatible with floating-point code" } */
+  if (f != f) abort ();
+  return 2;
+}