Commit 2812a284 by Richard Sandiford

Revert g-465c7c89

The patch caused regressions in gcc.target/sh/pr64345-1.c on
sh3-linux-gnu and gcc.target/m68k/pr39726.c on m68k-linux-gnu.
It didn't look like they would be fixable in an acceptably
non-invasive and unhacky way, so punting till future releases.

2020-01-29  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	Revert:

	2020-01-28  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/87763
	* simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
	simplification to handle subregs as well as bare regs.
	* config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
parent e3b60da8
2020-01-29 Richard Sandiford <richard.sandiford@arm.com>
Revert:
2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
PR rtl-optimization/87763
* simplify-rtx.c (simplify_truncation): Extend sign/zero_extract
simplification to handle subregs as well as bare regs.
* config/i386/i386.md (*testqi_ext_3): Match QI extracts too.
2020-01-29 Joel Hutton <Joel.Hutton@arm.com> 2020-01-29 Joel Hutton <Joel.Hutton@arm.com>
PR target/93221 PR target/93221
......
...@@ -8925,7 +8925,7 @@ ...@@ -8925,7 +8925,7 @@
(define_insn_and_split "*testqi_ext_3" (define_insn_and_split "*testqi_ext_3"
[(set (match_operand 0 "flags_reg_operand") [(set (match_operand 0 "flags_reg_operand")
(match_operator 1 "compare_operator" (match_operator 1 "compare_operator"
[(zero_extract:SWI [(zero_extract:SWI248
(match_operand 2 "nonimmediate_operand" "rm") (match_operand 2 "nonimmediate_operand" "rm")
(match_operand 3 "const_int_operand" "n") (match_operand 3 "const_int_operand" "n")
(match_operand 4 "const_int_operand" "n")) (match_operand 4 "const_int_operand" "n"))
......
...@@ -736,9 +736,7 @@ simplify_truncation (machine_mode mode, rtx op, ...@@ -736,9 +736,7 @@ simplify_truncation (machine_mode mode, rtx op,
(*_extract:M1 (truncate:M1 (reg:M2)) (len) (pos')) if possible without (*_extract:M1 (truncate:M1 (reg:M2)) (len) (pos')) if possible without
changing len. */ changing len. */
if ((GET_CODE (op) == ZERO_EXTRACT || GET_CODE (op) == SIGN_EXTRACT) if ((GET_CODE (op) == ZERO_EXTRACT || GET_CODE (op) == SIGN_EXTRACT)
&& (REG_P (XEXP (op, 0)) && REG_P (XEXP (op, 0))
|| (SUBREG_P (XEXP (op, 0))
&& REG_P (SUBREG_REG (XEXP (op, 0)))))
&& GET_MODE (XEXP (op, 0)) == GET_MODE (op) && GET_MODE (XEXP (op, 0)) == GET_MODE (op)
&& CONST_INT_P (XEXP (op, 1)) && CONST_INT_P (XEXP (op, 1))
&& CONST_INT_P (XEXP (op, 2))) && CONST_INT_P (XEXP (op, 2)))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment