diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2014-04-22 12:46:07 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-04-22 12:46:07 +0000 |
commit | dbf23a7900dfa15dd4b6cc681c3310ca17276d6a (patch) | |
tree | 6254ef8bed13933fcdfb55163f89625f1932c652 /gcc/builtins.c | |
parent | d9f069ab4f645085b7d439e166b7501b9fb6ce8a (diff) | |
download | gcc-dbf23a7900dfa15dd4b6cc681c3310ca17276d6a.zip gcc-dbf23a7900dfa15dd4b6cc681c3310ca17276d6a.tar.gz gcc-dbf23a7900dfa15dd4b6cc681c3310ca17276d6a.tar.bz2 |
machmode.h (bitwise_mode_for_mode): Declare.
gcc/
* machmode.h (bitwise_mode_for_mode): Declare.
* stor-layout.h (bitwise_type_for_mode): Likewise.
* stor-layout.c (bitwise_mode_for_mode): New function.
(bitwise_type_for_mode): Likewise.
* builtins.c (fold_builtin_memory_op): Use it instead of
int_mode_for_mode and build_nonstandard_integer_type.
gcc/testsuite/
* gcc.dg/memcpy-5.c: New test.
From-SVN: r209622
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 22 |
1 files changed, 2 insertions, 20 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index dd57b1a..42e4af2 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -8921,29 +8921,11 @@ fold_builtin_memory_op (location_t loc, tree dest, tree src, if (FLOAT_MODE_P (TYPE_MODE (desttype)) || TREE_CODE (desttype) == BOOLEAN_TYPE || TREE_CODE (desttype) == ENUMERAL_TYPE) - { - /* A more suitable int_mode_for_mode would return a vector - integer mode for a vector float mode or a integer complex - mode for a float complex mode if there isn't a regular - integer mode covering the mode of desttype. */ - enum machine_mode mode = int_mode_for_mode (TYPE_MODE (desttype)); - if (mode == BLKmode) - desttype = NULL_TREE; - else - desttype = build_nonstandard_integer_type (GET_MODE_BITSIZE (mode), - 1); - } + desttype = bitwise_type_for_mode (TYPE_MODE (desttype)); if (FLOAT_MODE_P (TYPE_MODE (srctype)) || TREE_CODE (srctype) == BOOLEAN_TYPE || TREE_CODE (srctype) == ENUMERAL_TYPE) - { - enum machine_mode mode = int_mode_for_mode (TYPE_MODE (srctype)); - if (mode == BLKmode) - srctype = NULL_TREE; - else - srctype = build_nonstandard_integer_type (GET_MODE_BITSIZE (mode), - 1); - } + srctype = bitwise_type_for_mode (TYPE_MODE (srctype)); if (!srctype) srctype = desttype; if (!desttype) |