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?