summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-10 17:27:42 +0000
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-10 17:27:42 +0000
commit39d83642f9c780255059d67e9ea18725d274cd09 (patch)
tree1999e7ff40af26df6888c1878bdff0cb9d92d93b
parentc6af80bfafd1134693c861fa1d36d1fd4e58d866 (diff)
downloadgcc-39d83642f9c780255059d67e9ea18725d274cd09.tar.gz
[ARM][cleanup] Remove uses of CONST_DOUBLE_HIGH/LOW
* config/arm/arm.c (neon_valid_immediate): Remove integer CONST_DOUBLE handling. It should never occur. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230115 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.c31
2 files changed, 12 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 75dc765b34a..07f574f17b1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/arm/arm.c (neon_valid_immediate): Remove integer
+ CONST_DOUBLE handling. It should never occur.
+
2015-11-10 Matthew Wahab <matthew.wahab@arm.com>
* config/aarch64/atomics.md (unspecv): Move to iterators.md.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index f4ebbc80f16..f5c88253204 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -12339,32 +12339,15 @@ neon_valid_immediate (rtx op, machine_mode mode, int inverse,
{
rtx el = vector ? CONST_VECTOR_ELT (op, i) : op;
unsigned HOST_WIDE_INT elpart;
- unsigned int part, parts;
- if (CONST_INT_P (el))
- {
- elpart = INTVAL (el);
- parts = 1;
- }
- else if (CONST_DOUBLE_P (el))
- {
- elpart = CONST_DOUBLE_LOW (el);
- parts = 2;
- }
- else
- gcc_unreachable ();
+ gcc_assert (CONST_INT_P (el));
+ elpart = INTVAL (el);
- for (part = 0; part < parts; part++)
- {
- unsigned int byte;
- for (byte = 0; byte < innersize; byte++)
- {
- bytes[idx++] = (elpart & 0xff) ^ invmask;
- elpart >>= BITS_PER_UNIT;
- }
- if (CONST_DOUBLE_P (el))
- elpart = CONST_DOUBLE_HIGH (el);
- }
+ for (unsigned int byte = 0; byte < innersize; byte++)
+ {
+ bytes[idx++] = (elpart & 0xff) ^ invmask;
+ elpart >>= BITS_PER_UNIT;
+ }
}
/* Sanity check. */