]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000: Implemented f[min/max]_optab by xs[min/max]dp
authorHaochen Gui <guihaoc@gcc.gnu.org>
Tue, 25 Jul 2023 02:40:37 +0000 (10:40 +0800)
committerHaochen Gui <guihaoc@gcc.gnu.org>
Tue, 25 Jul 2023 02:42:06 +0000 (10:42 +0800)
commit54ce3cbd285d453b954c281bb3ad38bee2f65330
tree2904ed13721afad833ab861302aab39799df0a60
parentc4637cbed3f23095b98962b41063380c4ab9eda9
rs6000: Implemented f[min/max]_optab by xs[min/max]dp

gcc/
PR target/103605
* config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Gimple
fold RS6000_BIF_XSMINDP and RS6000_BIF_XSMAXDP when fast-math is set.
* config/rs6000/rs6000.md (FMINMAX): New int iterator.
(minmax_op): New int attribute.
(UNSPEC_FMAX, UNSPEC_FMIN): New unspecs.
(f<minmax_op><mode>3): New pattern by UNSPEC_FMAX and UNSPEC_FMIN.
* config/rs6000/rs6000-builtins.def (__builtin_vsx_xsmaxdp): Set
pattern to fmaxdf3.
(__builtin_vsx_xsmindp): Set pattern to fmindf3.

gcc/testsuite/
PR target/103605
* gcc.target/powerpc/pr103605.h: New.
* gcc.target/powerpc/pr103605-1.c: New.
* gcc.target/powerpc/pr103605-2.c: New.
gcc/config/rs6000/rs6000-builtin.cc
gcc/config/rs6000/rs6000-builtins.def
gcc/config/rs6000/rs6000.md
gcc/testsuite/gcc.target/powerpc/pr103605-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/pr103605-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/pr103605.h [new file with mode: 0644]