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-12 Michael Meissner <meissner@linux.ibm.com> gcc/ * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable value to to long. * 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.
This commit is contained in:
parent
07bcbf9cc2
commit
7591309696
@ -863,7 +863,7 @@
|
||||
UNSPEC_XXSPLTIW))]
|
||||
"TARGET_POWER10"
|
||||
{
|
||||
long long value = rs6000_const_f32_to_i32 (operands[1]);
|
||||
long value = rs6000_const_f32_to_i32 (operands[1]);
|
||||
emit_insn (gen_xxspltiw_v4sf_inst (operands[0], GEN_INT (value)));
|
||||
DONE;
|
||||
})
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user