diff options
Diffstat (limited to 'gcc/config/fr30')
-rw-r--r-- | gcc/config/fr30/fr30.md | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/config/fr30/fr30.md b/gcc/config/fr30/fr30.md index 0398eccc005..0deda961e85 100644 --- a/gcc/config/fr30/fr30.md +++ b/gcc/config/fr30/fr30.md @@ -290,7 +290,9 @@ (define_split [(set (match_operand:SI 0 "register_operand" "") (match_operand:SI 1 "const_int_operand" ""))] - "INTVAL (operands[1]) <= -1 && INTVAL (operands[1]) >= -128" + "INTVAL (operands[1]) <= -1 && INTVAL (operands[1]) >= -128 + && (GET_CODE (operands[0]) != SUBREG + || SCALAR_INT_MODE_P (GET_MODE (XEXP (operands[0], 0))))" [(set:SI (match_dup 0) (match_dup 1)) (set:SI (match_dup 0) (sign_extend:SI (match_dup 2)))] "{ |