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
This commit is contained in:
parent
6cf67b62c8
commit
7964e40de3
2 changed files with 15 additions and 7 deletions
|
@ -1,3 +1,9 @@
|
|||
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>
|
||||
|
||||
* cgraph.h (struct cgraph_node): Add ipcp_clone flag.
|
||||
|
|
|
@ -7220,13 +7220,15 @@
|
|||
""
|
||||
"")
|
||||
|
||||
(define_insn "*movcc_internal1"
|
||||
[(set (match_operand:CC 0 "nonimmediate_operand"
|
||||
"=y,x,?y,y,r,r,r,r, r,*c*l,r,m")
|
||||
(match_operand:CC 1 "general_operand"
|
||||
" y,r, r,O,x,y,r,I,*h, r,m,r"))]
|
||||
"register_operand (operands[0], CCmode)
|
||||
|| register_operand (operands[1], CCmode)"
|
||||
(define_mode_iterator CC_any [CC CCUNS CCEQ CCFP])
|
||||
|
||||
(define_insn "*movcc_<mode>"
|
||||
[(set (match_operand:CC_any 0 "nonimmediate_operand"
|
||||
"=y,x,?y,y,r,r,r,r, r,*c*l,r,m")
|
||||
(match_operand:CC_any 1 "general_operand"
|
||||
" 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
|
||||
mtcrf 128,%1
|
||||
|
|
Loading…
Add table
Reference in a new issue