rs6000: Define a pattern for mffscrni. If the RN is a constant, it can call gen_rs60...
authorHaochen Gui <guihaoc@gcc.gnu.org>
Fri, 7 Jan 2022 06:20:44 +0000 (14:20 +0800)
committerHaochen Gui <guihaoc@gcc.gnu.org>
Fri, 7 Jan 2022 06:36:42 +0000 (14:36 +0800)
commitadd37d3bf4f375bb202abdc7cf7768f27fc968d7
tree6b1e73061a6c6f645bc43c64885244e50dbbe5ac
parent765693be1c8dc91fe612e7a499c5e41ba398ab96
rs6000: Define a pattern for mffscrni.  If the RN is a constant, it can call gen_rs6000_mffscrni directly.

gcc/
* config/rs6000/rs6000.md (rs6000_mffscrni): Define.
(rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.

gcc/testsuite/
* gcc.target/powerpc/mffscrni_p9.c: New testcase for mffscrni.
* gcc.target/powerpc/test_fpscr_rn_builtin.c: Test mffscrn and mffscrni
separately.
gcc/config/rs6000/rs6000.md
gcc/testsuite/gcc.target/powerpc/mffscrni_p9.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin.c