From 432dd330807c633428562eb7d66ede067fd87262 Mon Sep 17 00:00:00 2001 From: glisse Date: Fri, 10 May 2013 11:15:14 +0000 Subject: 2013-05-10 Marc Glisse gcc/ * stor-layout.c (element_precision): New function. * machmode.h (element_precision): Declare it. * tree.c (build_minus_one_cst): New function. (element_precision): Likewise. * tree.h (build_minus_one_cst): Declare new function. (element_precision): Likewise. * fold-const.c (operand_equal_p): Use element_precision. (fold_binary_loc): Handle vector types. * convert.c (convert_to_integer): Use element_precision. * gimple.c (iterative_hash_canonical_type): Handle complex and vectors separately. gcc/c-family/ * c-common.c (vector_types_convertible_p): No TYPE_PRECISION for vectors. gcc/testsuite/ * gcc.dg/vector-shift.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198772 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/machmode.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gcc/machmode.h') diff --git a/gcc/machmode.h b/gcc/machmode.h index 2efd7b5aab3..981ee92a87a 100644 --- a/gcc/machmode.h +++ b/gcc/machmode.h @@ -297,6 +297,10 @@ extern unsigned get_mode_alignment (enum machine_mode); #define GET_MODE_ALIGNMENT(MODE) get_mode_alignment (MODE) +/* Get the precision of the mode or its inner mode if it has one. */ + +extern unsigned int element_precision (enum machine_mode); + /* For each class, get the narrowest mode in that class. */ extern const unsigned char class_narrowest_mode[MAX_MODE_CLASS]; -- cgit v1.2.1