https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95218
--- Comment #17 from Uroš Bizjak <ubizjak at gmail dot com> ---
The problem is with commutative operands, these somehow confuse postreload
pass.
I'll commit partial revert that basically puts back:
(define_insn_and_split "*<code><mode>2"
- [(set (match_operand:VF 0 "register_operand" "=x,v")
+ [(set (match_operand:VF 0 "register_operand" "=x,x,v,v")
(absneg:VF
- (match_operand:VF 1 "vector_operand" "%0,v")))
- (use (match_operand:VF 2 "vector_operand" "xBm,vm"))]
+ (match_operand:VF 1 "vector_operand" "0,xBm,v,m")))
+ (use (match_operand:VF 2 "vector_operand" "xBm,0,vm,v"))]
with manual swapping of operands.