diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2015-11-09 15:55:56 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2015-11-09 15:55:56 +0000 |
commit | ee78df47b1543f412622ae05601f7ee6f6862820 (patch) | |
tree | a54f90a5295188c9bd76daa1dd0679c5c886001d | |
parent | 2ca5b4303bd5ff0a01888dce671eb7f33eb99850 (diff) | |
download | gcc-ee78df47b1543f412622ae05601f7ee6f6862820.zip gcc-ee78df47b1543f412622ae05601f7ee6f6862820.tar.gz gcc-ee78df47b1543f412622ae05601f7ee6f6862820.tar.bz2 |
[AArch64][cleanup] Remove uses of CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW
* config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
Remove integer CONST_DOUBLE handling. It should never occur.
From-SVN: r230030
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 32 |
2 files changed, 13 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c07c5d6..ebd537c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2015-11-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): + Remove integer CONST_DOUBLE handling. It should never occur. + +2015-11-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> + PR target/68129 * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1. * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE): diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 83b7044..a4d824b 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -10158,32 +10158,16 @@ aarch64_simd_valid_immediate (rtx op, machine_mode mode, bool inverse, it must be laid out in the vector register in reverse order. */ rtx el = CONST_VECTOR_ELT (op, BYTES_BIG_ENDIAN ? (n_elts - 1 - i) : i); unsigned HOST_WIDE_INT elpart; - unsigned int part, parts; - if (CONST_INT_P (el)) - { - elpart = INTVAL (el); - parts = 1; - } - else if (GET_CODE (el) == CONST_DOUBLE) - { - elpart = CONST_DOUBLE_LOW (el); - parts = 2; - } - else - gcc_unreachable (); + gcc_assert (CONST_INT_P (el)); + elpart = INTVAL (el); + + for (unsigned int byte = 0; byte < innersize; byte++) + { + bytes[idx++] = (elpart & 0xff) ^ invmask; + elpart >>= BITS_PER_UNIT; + } - 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 (GET_CODE (el) == CONST_DOUBLE) - elpart = CONST_DOUBLE_HIGH (el); - } } /* Sanity check. */ |