https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96030
--- Comment #2 from Bu Le <bule1 at huawei dot com> ---
(In reply to Jakub Jelinek from comment #1)
> The directive should be doing what
> #pragma omp declare simd
> does on the target and it is an ABI decision what exactly it does.
I tried this test case. But I haven't found a way to prevent V2SF 64 bits
simdclone (e.g. _ZGVnN2v_cosf )from being generated.
!GCC$ builtin (cosf) attributes simd (notinbranch)
subroutine test_cos(a_cos, b_cos, is_cos, ie_cos)
integer, intent(in) :: is_cos, ie_cos
REAL(4), dimension(is_cos:ie_cos), intent(inout) :: a_cos, b_cos
do i = 1, 3
b_cos(i) = cos(a_cos(i))
enddo
end subroutine test_cos
Are you suggesting we already have a way to prevent the generation of
_ZGVnN2v_cosf with !GCC$ builtin derivative? Or We haven' solve the problem
yet, but the correct way to solve this problem is to implement more feature for
the !GCC$ builtin derivative?