/*
 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 * See https://llvm.org/LICENSE.txt for license information.
 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 *
 */

MTHINTRIN(atan2, ss   , em64t      , __mth_i_atan2         , __mth_i_atan2         , __mth_i_atan2         ,__math_dispatch_error)
MTHINTRIN(atan2, ds   , em64t      , __mth_i_datan2        , __mth_i_datan2        , __mth_i_datan2        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4  , em64t      , __gs_atan2_4_f        , __gs_atan2_4_r        , __gs_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv2  , em64t      , __gd_atan2_2_f        , __gd_atan2_2_r        , __gd_atan2_2_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4m , em64t      , __fs_atan2_4_mn       , __rs_atan2_4_mn       , __ps_atan2_4_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv2m , em64t      , __fd_atan2_2_mn       , __rd_atan2_2_mn       , __pd_atan2_2_mn       ,__math_dispatch_error)

MTHINTRIN(atan2, ss   , sse4       , __mth_i_atan2         , __mth_i_atan2         , __mth_i_atan2         ,__math_dispatch_error)
MTHINTRIN(atan2, ds   , sse4       , __mth_i_datan2        , __mth_i_datan2        , __mth_i_datan2        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4  , sse4       , __gs_atan2_4_f        , __gs_atan2_4_r        , __gs_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv2  , sse4       , __gd_atan2_2_f        , __gd_atan2_2_r        , __gd_atan2_2_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4m , sse4       , __fs_atan2_4_mn       , __rs_atan2_4_mn       , __ps_atan2_4_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv2m , sse4       , __fd_atan2_2_mn       , __rd_atan2_2_mn       , __pd_atan2_2_mn       ,__math_dispatch_error)

MTHINTRIN(atan2, ss   , avx        , __mth_i_atan2         , __mth_i_atan2         , __mth_i_atan2         ,__math_dispatch_error)
MTHINTRIN(atan2, ds   , avx        , __mth_i_datan2        , __mth_i_datan2        , __mth_i_datan2        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4  , avx        , __gs_atan2_4_f        , __gs_atan2_4_r        , __gs_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv2  , avx        , __gd_atan2_2_f        , __gd_atan2_2_r        , __gd_atan2_2_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv8  , avx        , __gs_atan2_8_f        , __gs_atan2_8_r        , __gs_atan2_8_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv4  , avx        , __gd_atan2_4_f        , __gd_atan2_4_r        , __gd_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4m , avx        , __fs_atan2_4_mn       , __rs_atan2_4_mn       , __ps_atan2_4_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv2m , avx        , __fd_atan2_2_mn       , __rd_atan2_2_mn       , __pd_atan2_2_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, sv8m , avx        , __fs_atan2_8_mn       , __rs_atan2_8_mn       , __ps_atan2_8_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv4m , avx        , __fd_atan2_4_mn       , __rd_atan2_4_mn       , __pd_atan2_4_mn       ,__math_dispatch_error)


MTHINTRIN(atan2, ss   , avxfma4    , __mth_i_atan2         , __mth_i_atan2         , __mth_i_atan2         ,__math_dispatch_error)
MTHINTRIN(atan2, ds   , avxfma4    , __mth_i_datan2        , __mth_i_datan2        , __mth_i_datan2        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4  , avxfma4    , __gs_atan2_4_f        , __gs_atan2_4_r        , __gs_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv2  , avxfma4    , __gd_atan2_2_f        , __gd_atan2_2_r        , __gd_atan2_2_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv8  , avxfma4    , __gs_atan2_8_f        , __gs_atan2_8_r        , __gs_atan2_8_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv4  , avxfma4    , __gd_atan2_4_f        , __gd_atan2_4_r        , __gd_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4m , avxfma4    , __fs_atan2_4_mn       , __rs_atan2_4_mn       , __ps_atan2_4_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv2m , avxfma4    , __fd_atan2_2_mn       , __rd_atan2_2_mn       , __pd_atan2_2_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, sv8m , avxfma4    , __fs_atan2_8_mn       , __rs_atan2_8_mn       , __ps_atan2_8_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv4m , avxfma4    , __fd_atan2_4_mn       , __rd_atan2_4_mn       , __pd_atan2_4_mn       ,__math_dispatch_error)


MTHINTRIN(atan2, ss   , avx2       , __fs_atan2_1_avx2     , __fs_atan2_1_avx2     , __mth_i_atan2_avx2    ,__math_dispatch_error)
MTHINTRIN(atan2, ds   , avx2       , __fd_atan2_1_avx2     , __fd_atan2_1_avx2     , __mth_i_datan2_avx2   ,__math_dispatch_error)
MTHINTRIN(atan2, sv4  , avx2       , __fs_atan2_4_avx2     , __fs_atan2_4_avx2     , __gs_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv2  , avx2       , __fd_atan2_2_avx2     , __fd_atan2_2_avx2     , __gd_atan2_2_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv8  , avx2       , __fs_atan2_8_avx2     , __fs_atan2_8_avx2     , __gs_atan2_8_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv4  , avx2       , __fd_atan2_4_avx2     , __fd_atan2_4_avx2     , __gd_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4m , avx2       , __fs_atan2_4_mn       , __rs_atan2_4_mn       , __ps_atan2_4_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv2m , avx2       , __fd_atan2_2_mn       , __rd_atan2_2_mn       , __pd_atan2_2_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, sv8m , avx2       , __fs_atan2_8_mn       , __rs_atan2_8_mn       , __ps_atan2_8_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv4m , avx2       , __fd_atan2_4_mn       , __rd_atan2_4_mn       , __pd_atan2_4_mn       ,__math_dispatch_error)

MTHINTRIN(atan2, ss   , avx512knl  , __fs_atan2_1_avx2     , __fs_atan2_1_avx2     , __mth_i_atan2_avx2    ,__math_dispatch_error)
MTHINTRIN(atan2, ds   , avx512knl  , __fd_atan2_1_avx2     , __fd_atan2_1_avx2     , __mth_i_datan2_avx2   ,__math_dispatch_error)
MTHINTRIN(atan2, sv4  , avx512knl  , __fs_atan2_4_avx2     , __fs_atan2_4_avx2     , __gs_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv2  , avx512knl  , __fd_atan2_2_avx2     , __fd_atan2_2_avx2     , __gd_atan2_2_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv8  , avx512knl  , __fs_atan2_8_avx2     , __fs_atan2_8_avx2     , __gs_atan2_8_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv4  , avx512knl  , __fd_atan2_4_avx2     , __fd_atan2_4_avx2     , __gd_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv16 , avx512knl  , __fs_atan2_16_avx512  , __fs_atan2_16_avx512  , __gs_atan2_16_p       ,__math_dispatch_error)
MTHINTRIN(atan2, dv8  , avx512knl  , __fd_atan2_8_avx512   , __fd_atan2_8_avx512   , __gd_atan2_8_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4m , avx512knl  , __fs_atan2_4_mn       , __rs_atan2_4_mn       , __ps_atan2_4_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv2m , avx512knl  , __fd_atan2_2_mn       , __rd_atan2_2_mn       , __pd_atan2_2_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, sv8m , avx512knl  , __fs_atan2_8_mn       , __rs_atan2_8_mn       , __ps_atan2_8_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv4m , avx512knl  , __fd_atan2_4_mn       , __rd_atan2_4_mn       , __pd_atan2_4_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, sv16m, avx512knl  , __fs_atan2_16_mn      , __rs_atan2_16_mn      , __ps_atan2_16_mn      ,__math_dispatch_error)
MTHINTRIN(atan2, dv8m , avx512knl  , __fd_atan2_8_mn       , __rd_atan2_8_mn       , __pd_atan2_8_mn       ,__math_dispatch_error)

MTHINTRIN(atan2, ss   , avx512     , __fs_atan2_1_avx2     , __fs_atan2_1_avx2     , __mth_i_atan2_avx2    ,__math_dispatch_error)
MTHINTRIN(atan2, ds   , avx512     , __fd_atan2_1_avx2     , __fd_atan2_1_avx2     , __mth_i_datan2_avx2   ,__math_dispatch_error)
MTHINTRIN(atan2, sv4  , avx512     , __fs_atan2_4_avx2     , __fs_atan2_4_avx2     , __gs_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv2  , avx512     , __fd_atan2_2_avx2     , __fd_atan2_2_avx2     , __gd_atan2_2_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv8  , avx512     , __fs_atan2_8_avx2     , __fs_atan2_8_avx2     , __gs_atan2_8_p        ,__math_dispatch_error)
MTHINTRIN(atan2, dv4  , avx512     , __fd_atan2_4_avx2     , __fd_atan2_4_avx2     , __gd_atan2_4_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv16 , avx512     , __fs_atan2_16_avx512  , __fs_atan2_16_avx512    , __gs_atan2_16_p       ,__math_dispatch_error)
MTHINTRIN(atan2, dv8  , avx512     , __fd_atan2_8_avx512   , __fd_atan2_8_avx512   , __gd_atan2_8_p        ,__math_dispatch_error)
MTHINTRIN(atan2, sv4m , avx512     , __fs_atan2_4_mn       , __rs_atan2_4_mn       , __ps_atan2_4_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv2m , avx512     , __fd_atan2_2_mn       , __rd_atan2_2_mn       , __pd_atan2_2_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, sv8m , avx512     , __fs_atan2_8_mn       , __rs_atan2_8_mn       , __ps_atan2_8_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, dv4m , avx512     , __fd_atan2_4_mn       , __rd_atan2_4_mn       , __pd_atan2_4_mn       ,__math_dispatch_error)
MTHINTRIN(atan2, sv16m, avx512     , __fs_atan2_16_mn      , __rs_atan2_16_mn      , __ps_atan2_16_mn      ,__math_dispatch_error)
MTHINTRIN(atan2, dv8m , avx512     , __fd_atan2_8_mn       , __rd_atan2_8_mn       , __pd_atan2_8_mn       ,__math_dispatch_error)
