Hi! Some more nitpicking...
On Wed, May 18, 2022 at 04:52:26PM +0800, HAO CHEN GUI wrote: > const double __builtin_vsx_xsmaxdp (double, double); > - XSMAXDP smaxdf3 {} > + XSMAXDP fmaxdf3 {} > > const double __builtin_vsx_xsmindp (double, double); > - XSMINDP smindf3 {} > + XSMINDP fmindf3 {} Are s{min,max}df3 still used after this? > + UNSPEC_FMAX > + UNSPEC_FMIN Pity we have to do this as an unspec still, this should be handled by some generic code, with some new operator (fmin/fmax would be obvious names :-) ) > +(define_insn "f<minmax_op><mode>3" > + [(set (match_operand:SFDF 0 "vsx_register_operand" "=wa") > + (unspec:SFDF [(match_operand:SFDF 1 "vsx_register_operand" "wa") > + (match_operand:SFDF 2 "vsx_register_operand" "wa")] > + FMINMAX))] > +"TARGET_VSX" > +"xs<minmax_op>dp %x0,%x1,%x2" > +[(set_attr "type" "fp")] > +) Indentation is broken here, correct is (define_insn "f<minmax_op><mode>3" [(set (match_operand:SFDF 0 "vsx_register_operand" "=wa") (unspec:SFDF [(match_operand:SFDF 1 "vsx_register_operand" "wa") (match_operand:SFDF 2 "vsx_register_operand" "wa")] FMINMAX))] "TARGET_VSX" "xs<minmax_op>dp %x0,%x1,%x2" [(set_attr "type" "fp")]) (FMINMAX has the same indent as the preceding [, its sibling; "TARGET_VSX" and the next two lines are indented like the same thing before it at the same level (the "[(set"); the finishing ) does never start a new line). Segher