aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2017-12-28 20:42:43 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2017-12-28 20:42:43 +0000
commitec8a1b8d931ccdfa87d712028226a03ff17f6cef (patch)
tree7817dbb1de82a324fd7024ff21ee7c158bedbbcc /gcc
parentaf2e447568c939acf8c55eea529b2ac85c5753a7 (diff)
downloadgcc-ec8a1b8d931ccdfa87d712028226a03ff17f6cef.zip
gcc-ec8a1b8d931ccdfa87d712028226a03ff17f6cef.tar.gz
gcc-ec8a1b8d931ccdfa87d712028226a03ff17f6cef.tar.bz2
[rs6000] Use gen_int_mode in ieee_128bit_negative_zero
Previously we'd generate a non-canonical zero-extended CONST_INT instead of a sign-extended one, which tripped the assert for canonical CONST_INTs after a later patch. 2017-12-28 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * config/powerpcspe/powerpcspe.md (ieee_128bit_negative_zero): Use gen_int_mode rather than GEN_INT. * config/rs6000/rs6000.md (ieee_128bit_negative_zero): Likewise. From-SVN: r256024
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/powerpcspe/powerpcspe.md2
-rw-r--r--gcc/config/rs6000/rs6000.md2
3 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 680a63a..ad395ef 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2017-12-28 Richard Sandiford <richard.sandiford@linaro.org>
+ * config/powerpcspe/powerpcspe.md (ieee_128bit_negative_zero): Use
+ gen_int_mode rather than GEN_INT.
+ * config/rs6000/rs6000.md (ieee_128bit_negative_zero): Likewise.
+
+2017-12-28 Richard Sandiford <richard.sandiford@linaro.org>
+
* emit-rtl.c (gen_const_vec_series): Use valid_for_const_vector_p
instead of CONSTANT_P.
(gen_vec_series): Likewise.
diff --git a/gcc/config/powerpcspe/powerpcspe.md b/gcc/config/powerpcspe/powerpcspe.md
index 78dd79e..df93f6d 100644
--- a/gcc/config/powerpcspe/powerpcspe.md
+++ b/gcc/config/powerpcspe/powerpcspe.md
@@ -8113,7 +8113,7 @@
RTVEC_ELT (v, i) = const0_rtx;
high = (BYTES_BIG_ENDIAN) ? 0 : 15;
- RTVEC_ELT (v, high) = GEN_INT (0x80);
+ RTVEC_ELT (v, high) = gen_int_mode (0x80, QImode);
rs6000_expand_vector_init (operands[0], gen_rtx_PARALLEL (V16QImode, v));
DONE;
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 6e27f1f..2c310d7 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -8055,7 +8055,7 @@
RTVEC_ELT (v, i) = const0_rtx;
high = (BYTES_BIG_ENDIAN) ? 0 : 15;
- RTVEC_ELT (v, high) = GEN_INT (0x80);
+ RTVEC_ELT (v, high) = gen_int_mode (0x80, QImode);
rs6000_expand_vector_init (operands[0], gen_rtx_PARALLEL (V16QImode, v));
DONE;