https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64821
--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>: https://gcc.gnu.org/g:cbcf4a50fa21abd7a4a50a7ce47ada80b115febc commit r12-6824-gcbcf4a50fa21abd7a4a50a7ce47ada80b115febc Author: Andrew Pinski <apin...@marvell.com> Date: Sun Jan 9 23:39:31 2022 -0800 [aarch64/64821]: Simplify __builtin_aarch64_sqrt* into internal function .SQRT. This is a simple patch which simplifies the __builtin_aarch64_sqrt* builtins into the internal function SQRT which allows for constant folding and other optimizations at the gimple level. It was originally suggested we do to __builtin_sqrt just for __builtin_aarch64_sqrtdf when -fno-math-errno but since r6-4969-g686ee9719a4 we have the internal function SQRT which does the same so it makes we don't need to check -fno-math-errno either now. Applied as approved after bootstrapped and tested on aarch64-linux-gnu with no regressions. PR target/64821 gcc/ChangeLog: * config/aarch64/aarch64-builtins.cc (aarch64_general_gimple_fold_builtin): Handle __builtin_aarch64_sqrt* and simplify into SQRT internal function. gcc/testsuite/ChangeLog: * gcc.target/aarch64/vsqrt-1.c: New test. * gcc.target/aarch64/vsqrt-2.c: New test.