blob: 1f41e2ecf3e6d29ba0eb6d4d7d52c981faf40d94 [file] [log] [blame]
{
"intrinsic_prefix": "_mm",
"llvm_prefix": "llvm.x86.avx.",
"intrinsics": [
{
"intrinsic": "256_addsub_{0.data_type}",
"width": [256],
"llvm": "addsub.{0.data_type}.256",
"ret": "f(32-64)",
"args": ["0", "0"]
},
{
"intrinsic": "256_blendv_{0.data_type}",
"width": [256],
"llvm": "blendv.{0.data_type}.256",
"ret": "f(32-64)",
"args": ["0", "0", "0"]
},
{
"intrinsic": "256_broadcast_{0.data_type}",
"width": [256],
"llvm": "vbroadcastf128.{0.data_type}.256",
"ret": "f(32-64)",
"args": ["s8SPc"]
},
{
"intrinsic": "256_cmp_{0.data_type}",
"width": [256],
"llvm": "cmp.{1.data_type}.256",
"ret": "f(32-64)",
"args": ["0", "0", "s8S"]
},
{
"intrinsic": "256_cvtepi32_pd",
"width": [256],
"llvm": "cvtdq2.pd.256",
"ret": "f64",
"args": ["s32h"]
},
{
"intrinsic": "256_cvtepi32_ps",
"width": [256],
"llvm": "cvtdq2.ps.256",
"ret": "f32",
"args": ["s32"]
},
{
"intrinsic": "256_cvtpd_epi32",
"width": [256],
"llvm": "cvt.pd2dq.256",
"ret": "s32h",
"args": ["f64"]
},
{
"intrinsic": "256_cvtpd_ps",
"width": [256],
"llvm": "cvt.pd2.ps.256",
"ret": "f32h",
"args": ["f64"]
},
{
"intrinsic": "256_cvtps_epi32",
"width": [256],
"llvm": "cvt.ps2dq.256",
"ret": "s32",
"args": ["f32"]
},
{
"intrinsic": "256_cvtps_pd",
"width": [256],
"llvm": "cvt.ps2.pd.256",
"ret": "f64",
"args": ["f32h"]
},
{
"intrinsic": "256_cvttpd_epi32",
"width": [256],
"llvm": "cvtt.pd2dq.256",
"ret": "s32h",
"args": ["f64"]
},
{
"intrinsic": "256_cvttps_epi32",
"width": [256],
"llvm": "cvtt.ps2dq.256",
"ret": "s32",
"args": ["f32"]
},
{
"intrinsic": "256_dp_ps",
"width": [256],
"llvm": "dp.ps.256",
"ret": "f32",
"args": ["0", "0", "S32/8"]
},
{
"intrinsic": "256_hadd_{0.data_type}",
"width": [256],
"llvm": "hadd.{0.data_type}.256",
"ret": "f(32-64)",
"args": ["0", "0"]
},
{
"intrinsic": "256_hsub_{0.data_type}",
"width": [256],
"llvm": "hsub.{0.data_type}.256",
"ret": "f(32-64)",
"args": ["0", "0"]
},
{
"intrinsic": "256_max_{0.data_type}",
"width": [256],
"llvm": "max.{0.data_type}.256",
"ret": "f(32-64)",
"args": ["0", "0"]
},
{
"intrinsic": "{0.width_mm}_maskload_{0.data_type}",
"width": [128, 256],
"llvm": "maskload.{0.data_type_short}{0.width_suffix}",
"ret": ["f(32-64)"],
"args": ["0SPc/S8", "0s->0"]
},
{
"intrinsic": "{3.width_mm}_maskstore_{3.data_type}",
"width": [128, 256],
"llvm": "maskstore.{3.data_type_short}{3.width_suffix}",
"ret": "V",
"args": ["F(32-64)Pm/S8", "1Dsv->1Dv", "1Dv"]
},
{
"intrinsic": "256_min_{0.data_type}",
"width": [256],
"llvm": "min.{0.data_type}.256",
"ret": "f(32-64)",
"args": ["0", "0"]
},
{
"intrinsic": "256_movemask_ps",
"width": [256],
"llvm": "movmsk.ps.256",
"ret": "S32",
"args": ["f32"]
},
{
"intrinsic": "256_movemask_pd",
"width": [256],
"llvm": "movmsk.pd.256",
"ret": "S32",
"args": ["f64"]
},
{
"intrinsic": "{0.width_mm}_permutevar_{0.data_type}",
"width": [128, 256],
"llvm": "vpermilvar.{0.data_type}{0.width_suffix}",
"ret": "f(32-64)",
"args": ["0", "0s"]
},
{
"intrinsic": "256_rcp_ps",
"width": [256],
"llvm": "rcp.ps.256",
"ret": "f32",
"args": ["f32"]
},
{
"intrinsic": "256_rsqrt_ps",
"width": [256],
"llvm": "rsqrt.ps.256",
"ret": "f32",
"args": ["f32"]
},
{
"intrinsic": "256_storeu_{2.data_type}",
"width": [256],
"llvm": "storeu.ps.256",
"ret": "V",
"args": ["f(32-64)Pm/U8", "1D"]
},
{
"intrinsic": "256_storeu_si256",
"width": [256],
"llvm": "storeu.dq.256",
"ret": "V",
"args": ["u8Pm/U8", "1D"]
},
{
"intrinsic": "256_sqrt_{0.data_type}",
"width": [256],
"llvm": "!llvm.sqrt.{0.llvm_name}",
"ret": "f(32-64)",
"args": ["0"]
},
{
"intrinsic": "{1.width_mm}_testc_ps",
"width": [128, 256],
"llvm": "vtestc.ps{1.width_suffix}",
"ret": "S32",
"args": ["f32", "f32"]
},
{
"intrinsic": "{1.width_mm}_testc_pd",
"width": [128, 256],
"llvm": "vtestc.pd{1.width_suffix}",
"ret": "S32",
"args": ["f64", "f64"]
},
{
"intrinsic": "256_testc_si256",
"width": [256],
"llvm": "ptestc.256",
"ret": "S32",
"args": ["u64", "u64"]
},
{
"intrinsic": "{1.width_mm}_testnzc_ps",
"width": [128, 256],
"llvm": "vtestnzc.ps{1.width_suffix}",
"ret": "S32",
"args": ["f32", "f32"]
},
{
"intrinsic": "{1.width_mm}_testnzc_pd",
"width": [128, 256],
"llvm": "vtestnzc.pd{1.width_suffix}",
"ret": "S32",
"args": ["f64", "f64"]
},
{
"intrinsic": "256_testnzc_si256",
"width": [256],
"llvm": "ptestnzc.256",
"ret": "S32",
"args": ["u64", "u64"]
},
{
"intrinsic": "{1.width_mm}_testz_ps",
"width": [128, 256],
"llvm": "vtestz.ps{1.width_suffix}",
"ret": "S32",
"args": ["f32", "f32"]
},
{
"intrinsic": "{1.width_mm}_testz_pd",
"width": [128, 256],
"llvm": "vtestz.pd{1.width_suffix}",
"ret": "S32",
"args": ["f64", "f64"]
},
{
"intrinsic": "256_testz_si256",
"width": [256],
"llvm": "ptestz.256",
"ret": "S32",
"args": ["u64", "u64"]
},
{
"intrinsic": "256_zeroall",
"width": [256],
"llvm": "vzeroall",
"ret": "V",
"args": []
},
{
"intrinsic": "256_zeroupper",
"width": [256],
"llvm": "vzeroupper",
"ret": "V",
"args": []
}
]
}