aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.ibm.com>2021-07-12 23:50:38 -0400
committerMichael Meissner <meissner@linux.ibm.com>2021-07-12 23:50:38 -0400
commit7591309696537212a1d0497bc09c09b7abc7e650 (patch)
tree347d767253f5da708291c5e911f40fc6dabe9a94 /gcc
parent07bcbf9cc2a031ba5abcff368b452bfc99bf707e (diff)
downloadgcc-7591309696537212a1d0497bc09c09b7abc7e650.zip
gcc-7591309696537212a1d0497bc09c09b7abc7e650.tar.gz
gcc-7591309696537212a1d0497bc09c09b7abc7e650.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/altivec.md2
-rw-r--r--gcc/config/rs6000/rs6000-protos.h2
-rw-r--r--gcc/config/rs6000/rs6000.c6
3 files changed, 6 insertions, 4 deletions
diff --git a/gcc/config/rs6000/altivec.md b/gcc/config/rs6000/altivec.md
index dad3a07..a20d6ac 100644
--- a/gcc/config/rs6000/altivec.md
+++ b/gcc/config/rs6000/altivec.md
@@ -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;
})
diff --git a/gcc/config/rs6000/rs6000-protos.h b/gcc/config/rs6000/rs6000-protos.h
index 9de294d..94bf961 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 9a5db63..de11de5 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);