diff options
author | Richard Henderson <rth@redhat.com> | 2011-12-10 12:42:55 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2011-12-10 12:42:55 -0800 |
commit | a7de2c2a71940a25408c1320498c1c1ca2472313 (patch) | |
tree | 914df35ba46de67da8ba88eabaff049134debfe9 /gcc/machmode.h | |
parent | be94c03412ea6b8613033c2e0fd07e628ef7b4af (diff) | |
download | gcc-a7de2c2a71940a25408c1320498c1c1ca2472313.zip gcc-a7de2c2a71940a25408c1320498c1c1ca2472313.tar.gz gcc-a7de2c2a71940a25408c1320498c1c1ca2472313.tar.bz2 |
Let GET_MODE_2XWIDER_MODE find a double-width vector mode.
* genmodes.c (struct mode_data): Remove wider_2x member.
(blank_mode): Adjust initializer.
(calc_wider_mode): Use XALLOCAVEC.
(emit_move_wider): Select double-width same-element vectors for
2xwider vectors.
* machmode.h (GET_MODE_2XWIDER_MODE): Update documentation.
* config/i386/i386.c (doublesize_vector_mode): Remove.
(expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead.
From-SVN: r182191
Diffstat (limited to 'gcc/machmode.h')
-rw-r--r-- | gcc/machmode.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/machmode.h b/gcc/machmode.h index b965d0f..4a3f6f5 100644 --- a/gcc/machmode.h +++ b/gcc/machmode.h @@ -221,6 +221,8 @@ extern const unsigned char mode_nunits[NUM_MACHINE_MODES]; extern const unsigned char mode_wider[NUM_MACHINE_MODES]; #define GET_MODE_WIDER_MODE(MODE) ((enum machine_mode) mode_wider[MODE]) +/* For scalars, this is a mode with twice the precision. For vectors, + this is a mode with the same inner mode but with twice the elements. */ extern const unsigned char mode_2xwider[NUM_MACHINE_MODES]; #define GET_MODE_2XWIDER_MODE(MODE) ((enum machine_mode) mode_2xwider[MODE]) |