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?

Reply via email to