aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2018-02-01 17:04:18 +0100
committerUros Bizjak <uros@gcc.gnu.org>2018-02-01 17:04:18 +0100
commitff814010dd090ceb7dded8eae598f0532e59513b (patch)
tree3f347d51dba9f488d550eb9c7ab63e3e7e450f37
parent19416210b37db0584cd0b3f3b3961324b8973d25 (diff)
downloadgcc-ff814010dd090ceb7dded8eae598f0532e59513b.zip
gcc-ff814010dd090ceb7dded8eae598f0532e59513b.tar.gz
gcc-ff814010dd090ceb7dded8eae598f0532e59513b.tar.bz2
re PR rtl-optimization/84157 ([nvptx] ICE: RTL check: expected code 'reg', have 'lshiftrt')
PR rtl-optimization/84157 * combine.c (change_zero_ext): Use REG_P predicate in front of HARD_REGISTER_P predicate. From-SVN: r257302
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/combine.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4dcc364..2f44038 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2018-02-01 Uros Bizjak <ubizjak@gmail.com>
+
+ PR rtl-optimization/84157
+ * combine.c (change_zero_ext): Use REG_P predicate in
+ front of HARD_REGISTER_P predicate.
+
2018-02-01 Georg-Johann Lay <avr@gjlay.de>
* config/avr/avr.c (avr_option_override): Move disabling of
diff --git a/gcc/combine.c b/gcc/combine.c
index 970dd26..a9929f2 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -11483,7 +11483,7 @@ change_zero_ext (rtx pat)
if (mode != inner_mode)
{
- if (HARD_REGISTER_P (x)
+ if (REG_P (x) && HARD_REGISTER_P (x)
&& !can_change_dest_mode (x, 0, mode))
continue;
@@ -11501,7 +11501,7 @@ change_zero_ext (rtx pat)
x = SUBREG_REG (XEXP (x, 0));
if (GET_MODE (x) != mode)
{
- if (HARD_REGISTER_P (x)
+ if (REG_P (x) && HARD_REGISTER_P (x)
&& !can_change_dest_mode (x, 0, mode))
continue;