On 07/13/2017 02:41 AM, Richard Sandiford wrote: > This patch adds a macro that extracts the TYPE_MODE and forcibly > converts it to a scalar_float_mode. The forcible conversion > includes a gcc_checking_assert that the mode is a SCALAR_FLOAT_MODE_P. > > This becomes important as more static type checking is added by > later patches. It has the additional benefit of bypassing the > VECTOR_TYPE_P (...) ? vector_type_mode (...) : ... condition > in TYPE_MODE; in release builds the new macro is a simple > field access. > > 2017-07-13 Richard Sandiford <richard.sandif...@linaro.org> > Alan Hayward <alan.hayw...@arm.com> > David Sherwood <david.sherw...@arm.com> > > gcc/ > * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro. > * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE. > * fold-const.c (fold_convert_const_real_from_fixed): Likewise. > (native_encode_real): Likewise. > (native_interpret_real): Likewise. > * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise. > * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. > > gcc/cp/ > * mangle.c (write_real_cst): Use SCALAR_FLOAT_TYPE_MODE > instead of TYPE_MODE. > > gcc/fortran/ > * target-memory.c (size_float): Use SCALAR_FLOAT_TYPE_MODE > instead of TYPE_MODE. > > gcc/objc/ > * objc-encoding.c (encode_type): Use SCALAR_FLOAT_TYPE_MODE > instead of TYPE_MODE. OK. jeff