aboutsummaryrefslogtreecommitdiff
path: root/gcc/machmode.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2011-12-10 12:42:55 -0800
committerRichard Henderson <rth@gcc.gnu.org>2011-12-10 12:42:55 -0800
commita7de2c2a71940a25408c1320498c1c1ca2472313 (patch)
tree914df35ba46de67da8ba88eabaff049134debfe9 /gcc/machmode.h
parentbe94c03412ea6b8613033c2e0fd07e628ef7b4af (diff)
downloadgcc-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.h2
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])