;; Base name for insn mnemonic.
(define_code_attr rotate [(rotate "rol") (rotatert "ror")])
-;; Counter rotate.
-(define_code_attr crotate [(rotate "rotatert") (rotatert "rotate")])
+;; Mapping to the inverse rotation RTL code.
+(define_code_attr inv_rotate [(rotate "rotatert") (rotatert "rotate")])
;; Mapping of abs neg operators
(define_code_iterator absneg [abs neg])
"&& 1"
[(parallel
[(set (match_dup 0)
- (<crotate>:SWI (match_dup 1) (match_dup 2)))
+ (<inv_rotate>:SWI (match_dup 1) (match_dup 2)))
(clobber (reg:CC FLAGS_REG))])]
{
operands[2] = force_reg (GET_MODE (operands[2]), operands[2]);
"(INTVAL (operands[3]) & (<MODE_SIZE> * BITS_PER_UNIT - 1)) == 0"
[(set (match_dup 4) (match_dup 1))
(set (match_dup 0)
- (<crotate>:SWI (match_dup 4) (subreg:QI (match_dup 2) 0)))]
+ (<inv_rotate>:SWI (match_dup 4) (subreg:QI (match_dup 2) 0)))]
"operands[4] = gen_reg_rtx (<MODE>mode);")
(define_insn_and_split "*<insn><mode>3_sub_1"
"&& 1"
[(parallel
[(set (match_dup 0)
- (<crotate>:SWI (match_dup 1) (match_dup 2)))
+ (<inv_rotate>:SWI (match_dup 1) (match_dup 2)))
(clobber (reg:CC FLAGS_REG))])]
"operands[2] = force_reg (GET_MODE (operands[2]), operands[2]);")
"(INTVAL (operands[3]) & (<MODE_SIZE> * BITS_PER_UNIT - 1)) == 0"
[(set (match_dup 4) (match_dup 1))
(set (match_dup 0)
- (<crotate>:SWI (match_dup 4) (match_dup 2)))]
+ (<inv_rotate>:SWI (match_dup 4) (match_dup 2)))]
"operands[4] = gen_reg_rtx (<MODE>mode);")
;; Implement rotation using two double-precision