Commit 7964e40d by Segher Boessenkool Committed by Segher Boessenkool

rs6000: Allow any CC mode in movcc

Sometimes combine wants to do a move in CCFPmode, but we don't currently
handle moves in any CC mode other than CCmode.  Fix that oversight.


	* config/rs6000/rs6000.md (CC_any): New mode iterator.
	(*movcc_internal1): Rename to...
	(*movcc_<mode> for CC_any): ... this.  Support moves of all CC modes.

From-SVN: r278017
parent 6cf67b62
2019-11-10 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (CC_any): New mode iterator.
(*movcc_internal1): Rename to...
(*movcc_<mode> for CC_any): ... this. Support moves of all CC modes.
2019-11-09 Jan Hubicka <hubicka@ucw.cz> 2019-11-09 Jan Hubicka <hubicka@ucw.cz>
* cgraph.h (struct cgraph_node): Add ipcp_clone flag. * cgraph.h (struct cgraph_node): Add ipcp_clone flag.
...@@ -7220,13 +7220,15 @@ ...@@ -7220,13 +7220,15 @@
"" ""
"") "")
(define_insn "*movcc_internal1" (define_mode_iterator CC_any [CC CCUNS CCEQ CCFP])
[(set (match_operand:CC 0 "nonimmediate_operand"
"=y,x,?y,y,r,r,r,r, r,*c*l,r,m") (define_insn "*movcc_<mode>"
(match_operand:CC 1 "general_operand" [(set (match_operand:CC_any 0 "nonimmediate_operand"
" y,r, r,O,x,y,r,I,*h, r,m,r"))] "=y,x,?y,y,r,r,r,r, r,*c*l,r,m")
"register_operand (operands[0], CCmode) (match_operand:CC_any 1 "general_operand"
|| register_operand (operands[1], CCmode)" " y,r, r,O,x,y,r,I,*h, r,m,r"))]
"register_operand (operands[0], <MODE>mode)
|| register_operand (operands[1], <MODE>mode)"
"@ "@
mcrf %0,%1 mcrf %0,%1
mtcrf 128,%1 mtcrf 128,%1
......
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