aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <dje.gcc@gmail.com>2020-07-14 15:31:23 -0400
committerDavid Edelsohn <dje.gcc@gmail.com>2020-07-14 15:32:44 -0400
commit0c78f438fafdc2f4b2fc3a4d385f814378e3d3f5 (patch)
tree5dd194f0ed38cd464fbfe896260941231bc2a081 /gcc
parent0257997968fc4b62547cdc2a5cf5e01777bd7ed7 (diff)
downloadgcc-0c78f438fafdc2f4b2fc3a4d385f814378e3d3f5.zip
gcc-0c78f438fafdc2f4b2fc3a4d385f814378e3d3f5.tar.gz
gcc-0c78f438fafdc2f4b2fc3a4d385f814378e3d3f5.tar.bz2
rs6000: Don't call movsi_from_sf in 32 bit mode.
movsi_from_sf uses rldimi instruction, which will cause the compiler to ICE in 32 bit mode. This patch limits the recently added pattern and call to TARGET_POWERPC64. 2020-07-14 David Edelsohn <dje.gcc@gmail.com> gcc/ChangeLog * config/rs6000/rs6000.md (rotldi3_insert_sf): Add TARGET_POWERPC64 condition. * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add TARGET_POWERPC64 requirement to TARGET_P8_VECTOR case.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.c2
-rw-r--r--gcc/config/rs6000/rs6000.md2
2 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 378f761..dda51d5 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -6498,7 +6498,7 @@ rs6000_expand_vector_init (rtx target, rtx vals)
}
else
{
- if (TARGET_P8_VECTOR)
+ if (TARGET_P8_VECTOR && TARGET_POWERPC64)
{
rtx tmp_sf[4];
rtx tmp_si[4];
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 3a33982..c0d9877 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -4251,7 +4251,7 @@
[(match_operand:SF 3 "memory_operand")]
UNSPEC_SI_FROM_SF))))
(clobber (match_scratch:V4SF 4))]
- "INTVAL (operands[2]) == <bits>"
+ "TARGET_POWERPC64 && INTVAL (operands[2]) == <bits>"
"#"
""
[(parallel [(set (match_dup 5)