From a7de2c2a71940a25408c1320498c1c1ca2472313 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sat, 10 Dec 2011 12:42:55 -0800 Subject: 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 --- gcc/machmode.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/machmode.h') 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]) -- cgit v1.1