i386: Remove unnecessary clobbers from combine splitters.

There is no need for combine splitters to emit insn patterns with clobbers,
the pass is smart enough to add clobbers to patterns  as necessary.

2020-12-30  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
	* config/i386/i386.md: Remove unnecessary clobbers
	from combine splitters.
This commit is contained in:
Uros Bizjak 2020-12-30 17:41:21 +01:00
parent 209da90b40
commit 0696141107

View file

@ -12693,12 +12693,10 @@
[(not:SWI (match_operand:SWI 2 "register_operand"))
(match_operand:SWI 3 "nonimmediate_operand")]))]
""
[(parallel
[(set (reg:CCC FLAGS_REG)
(compare:CCC
(plus:SWI (match_dup 2) (match_dup 3))
(match_dup 2)))
(clobber (scratch:SWI))])
[(set (reg:CCC FLAGS_REG)
(compare:CCC
(plus:SWI (match_dup 2) (match_dup 3))
(match_dup 2)))
(set (match_dup 0)
(match_op_dup 1 [(reg:CCC FLAGS_REG) (const_int 0)]))])
@ -12709,12 +12707,10 @@
(match_operand 3 "const_int_operand")]))]
"TARGET_64BIT
&& IN_RANGE (exact_log2 (UINTVAL (operands[3]) + 1), 32, 63)"
[(parallel
[(set (reg:CCZ FLAGS_REG)
(compare:CCZ
(lshiftrt:DI (match_dup 2) (match_dup 4))
(const_int 0)))
(clobber (scratch:DI))])
[(set (reg:CCZ FLAGS_REG)
(compare:CCZ
(lshiftrt:DI (match_dup 2) (match_dup 4))
(const_int 0)))
(set (match_dup 0)
(match_op_dup 1 [(reg:CCZ FLAGS_REG) (const_int 0)]))]
{
@ -12905,12 +12901,10 @@
(label_ref (match_operand 0))
(pc)))]
""
[(parallel
[(set (reg:CCC FLAGS_REG)
(compare:CCC
(plus:SWI (match_dup 2) (match_dup 3))
(match_dup 2)))
(clobber (scratch:SWI))])
[(set (reg:CCC FLAGS_REG)
(compare:CCC
(plus:SWI (match_dup 2) (match_dup 3))
(match_dup 2)))
(set (pc)
(if_then_else (match_op_dup 1 [(reg:CCC FLAGS_REG) (const_int 0)])
(label_ref (match_operand 0))
@ -12926,12 +12920,10 @@
(pc)))]
"TARGET_64BIT
&& IN_RANGE (exact_log2 (UINTVAL (operands[3]) + 1), 32, 63)"
[(parallel
[(set (reg:CCZ FLAGS_REG)
(compare:CCZ
(lshiftrt:DI (match_dup 2) (match_dup 4))
(const_int 0)))
(clobber (scratch:DI))])
[(set (reg:CCZ FLAGS_REG)
(compare:CCZ
(lshiftrt:DI (match_dup 2) (match_dup 4))
(const_int 0)))
(set (pc)
(if_then_else (match_op_dup 1 [(reg:CCZ FLAGS_REG) (const_int 0)])
(label_ref (match_operand 0))
@ -18581,9 +18573,8 @@
&& INTVAL (operands[2]) != -1
&& INTVAL (operands[2]) != 2147483647"
[(set (reg:CC FLAGS_REG) (compare:CC (match_dup 1) (match_dup 2)))
(parallel [(set (match_dup 0)
(neg:SWI48 (ltu:SWI48 (reg:CC FLAGS_REG) (const_int 0))))
(clobber (reg:CC FLAGS_REG))])]
(set (match_dup 0)
(neg:SWI48 (ltu:SWI48 (reg:CC FLAGS_REG) (const_int 0))))]
"operands[2] = GEN_INT (INTVAL (operands[2]) + 1);")
(define_split
@ -18594,9 +18585,8 @@
(const_int 0))))]
""
[(set (reg:CC FLAGS_REG) (compare:CC (match_dup 1) (const_int 1)))
(parallel [(set (match_dup 0)
(neg:SWI (ltu:SWI (reg:CC FLAGS_REG) (const_int 0))))
(clobber (reg:CC FLAGS_REG))])])
(set (match_dup 0)
(neg:SWI (ltu:SWI (reg:CC FLAGS_REG) (const_int 0))))])
(define_split
[(set (match_operand:SWI 0 "register_operand")
@ -18605,13 +18595,10 @@
(match_operand 1 "int_nonimmediate_operand")
(const_int 0))))]
""
[(parallel [(set (reg:CCC FLAGS_REG)
(ne:CCC (match_dup 1) (const_int 0)))
(clobber (match_dup 2))])
(parallel [(set (match_dup 0)
(neg:SWI (ltu:SWI (reg:CCC FLAGS_REG) (const_int 0))))
(clobber (reg:CC FLAGS_REG))])]
"operands[2] = gen_rtx_SCRATCH (GET_MODE (operands[1]));")
[(set (reg:CCC FLAGS_REG)
(ne:CCC (match_dup 1) (const_int 0)))
(set (match_dup 0)
(neg:SWI (ltu:SWI (reg:CCC FLAGS_REG) (const_int 0))))])
(define_insn "*mov<mode>cc_noc"
[(set (match_operand:SWI248 0 "register_operand" "=r,r")