Hi!

On Tue, Dec 21, 2021 at 04:08:06PM +0800, HAO CHEN GUI wrote:
>   This patch defines a pattern for mffscrni. If the RN is a constant, it can 
> call
> gen_rs6000_mffscrni directly.

And that isn't more work than just falling through to the general case.
Okay.

> The "rs6000-builtin-new.def" defines prototype for builtin arguments.
> The pattern "rs6000_set_fpscr_rn" is then broken as the mode of its argument 
> is DI while its
> corresponding builtin has a const int argument.

I don't understand that bit.  Do you mean it is a const_int, or do you
mean it is an "int" as in C source code, i.e. a 32-bit integer?

>       * config/rs6000/rs6000-call.c
>       (rs6000_expand_set_fpscr_rn_builtin): Not copy argument to a reg if
>       it's a constant.  The pattern for constant can be recognized now.

"Do not copy"

>       * config/rs6000/rs6000.md (rs6000_mffscrni): Defined.

"Define".

>       (rs6000_set_fpscr_rn): Change the type of operand[0] form DI to SI.

"from"

>       Call gen_rs6000_mffscrni when operand[0] is a const int[0,3].

"if operands[0] is a const_0_to_3_operand"

>       * gcc.target/powerpc/mffscrni_p9.c: New testcase for mffscrni.
>       * gcc.target/powerpc/test_fpscr_rn_builtin.c: Modify the test cases to
>       test mffscrn and mffscrni separately.

"Test for mffscrn and mffscrni separately."

Everything you say in a changelog is "modify this" or "modify that", and
(almost) all things in gcc/testsuite/ are testcases :-)

> @@ -6357,7 +6370,8 @@ (define_expand "rs6000_set_fpscr_rn"
>        rtx tmp_di = gen_reg_rtx (DImode);
> 
>        /* Extract new RN mode from operand.  */
> -      emit_insn (gen_anddi3 (tmp_rn, operands[0], GEN_INT (0x3)));
> +      rtx op0 = convert_to_mode (DImode, operands[0], false);
> +      emit_insn (gen_anddi3 (tmp_rn, op0, GEN_INT (3)));
> 
>        /* Insert new RN mode into FSCPR.  */
>        emit_insn (gen_rs6000_mffs (tmp_df));

It doesn't seem correct to use DImode with -m32, hrm.  Not new of
course, but I wonder how this worked.

Okay for trunk with such changelog fixes.  Thanks!


Segher

Reply via email to