On Mon, Jul 12, 2021 at 12:07 PM Bill Schmidt <wschm...@linux.ibm.com> wrote: > > Hi Mike, > > On 7/7/21 2:59 PM, Michael Meissner wrote: > > [PATCH] Change rs6000_const_f32_to_i32 return type. > > > > The function rs6000_const_f32_to_i32 called REAL_VALUE_TO_TARGET_SINGLE > > with a long long type and returns it. This patch changes the type to long > > which is the proper type for REAL_VALUE_TO_TARGET_SINGLE. > > > > 2021-07-07 Michael Meissner <meiss...@linux.ibm.com> > > > > gcc/ > > * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change > > return type to long. > > * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return > > type to long. > > --- > > gcc/config/rs6000/rs6000-protos.h | 2 +- > > gcc/config/rs6000/rs6000.c | 6 ++++-- > > 2 files changed, 5 insertions(+), 3 deletions(-) > > > > diff --git a/gcc/config/rs6000/rs6000-protos.h > > b/gcc/config/rs6000/rs6000-protos.h > > index 9de294d3b28..94bf961c6b7 100644 > > --- a/gcc/config/rs6000/rs6000-protos.h > > +++ b/gcc/config/rs6000/rs6000-protos.h > > @@ -281,7 +281,7 @@ extern void rs6000_asm_output_dwarf_pcrel (FILE *file, > > int size, > > const char *label); > > extern void rs6000_asm_output_dwarf_datarel (FILE *file, int size, > > const char *label); > > -extern long long rs6000_const_f32_to_i32 (rtx operand); > > +extern long rs6000_const_f32_to_i32 (rtx operand); > > > > /* Declare functions in rs6000-c.c */ > > > > diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c > > index 9a5db63d0ef..de11de5e079 100644 > > --- a/gcc/config/rs6000/rs6000.c > > +++ b/gcc/config/rs6000/rs6000.c > > @@ -27936,10 +27936,12 @@ rs6000_invalid_conversion (const_tree fromtype, > > const_tree totype) > > return NULL; > > } > > > > -long long > > +/* Convert a SFmode constant to the integer bit pattern. */ > > + > > +long > > rs6000_const_f32_to_i32 (rtx operand) > > { > > - long long value; > > + long value; > > const struct real_value *rv = CONST_DOUBLE_REAL_VALUE (operand); > > > > gcc_assert (GET_MODE (operand) == SFmode); > > These changes look OK. Can you please also fix the expander for > xxspltiw_v4sf, which incorrectly expects a long long? > > I can't approve, but recommend approval with that also fixed.
This is okay with the fix to xxspltiw_v4sf in altivec.md. And please update the ChangeLog appropriately. Thanks, David