Merge llvm, clang, compiler-rt, libc++, lld, and lldb release_80 branch
r355677 (effectively, 8.0.0 rc4), resolve conflicts, and bump version numbers. PR: 236062 MFC after: 1 month X-MFC-With: r344779
This commit is contained in:
parent
3f2d6e8d7e
commit
895b900a1e
@ -1677,71 +1677,73 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
|
||||
// Gather ops
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx2_gather_d_pd : GCCBuiltin<"__builtin_ia32_gatherd_pd">,
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v2f64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_pd_256 : GCCBuiltin<"__builtin_ia32_gatherd_pd256">,
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4f64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_pd : GCCBuiltin<"__builtin_ia32_gatherq_pd">,
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_pd_256 : GCCBuiltin<"__builtin_ia32_gatherq_pd256">,
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_ps : GCCBuiltin<"__builtin_ia32_gatherd_ps">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_ps_256 : GCCBuiltin<"__builtin_ia32_gatherd_ps256">,
|
||||
Intrinsic<[llvm_v8f32_ty],
|
||||
[llvm_v8f32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_ps : GCCBuiltin<"__builtin_ia32_gatherq_ps">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v4f32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_ps_256 : GCCBuiltin<"__builtin_ia32_gatherq_ps256">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4f32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx2_gather_d_q : GCCBuiltin<"__builtin_ia32_gatherd_q">,
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v2i64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_q_256 : GCCBuiltin<"__builtin_ia32_gatherd_q256">,
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_q : GCCBuiltin<"__builtin_ia32_gatherq_q">,
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_q_256 : GCCBuiltin<"__builtin_ia32_gatherq_q256">,
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_d : GCCBuiltin<"__builtin_ia32_gatherd_d">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_d_d_256 : GCCBuiltin<"__builtin_ia32_gatherd_d256">,
|
||||
Intrinsic<[llvm_v8i32_ty],
|
||||
[llvm_v8i32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_d : GCCBuiltin<"__builtin_ia32_gatherq_d">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v4i32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx2_gather_q_d_256 : GCCBuiltin<"__builtin_ia32_gatherq_d256">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i32_ty, llvm_i8_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
}
|
||||
|
||||
// Misc.
|
||||
@ -3564,530 +3566,542 @@ let TargetPrefix = "x86" in {
|
||||
// Gather and Scatter ops
|
||||
let TargetPrefix = "x86" in {
|
||||
// NOTE: These are deprecated in favor of the versions that take a vXi1 mask.
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_gather_dpd_512 : GCCBuiltin<"__builtin_ia32_gathersiv8df">,
|
||||
Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_ptr_ty,
|
||||
llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_dps_512 : GCCBuiltin<"__builtin_ia32_gathersiv16sf">,
|
||||
Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_ptr_ty,
|
||||
llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_qpd_512 : GCCBuiltin<"__builtin_ia32_gatherdiv8df">,
|
||||
Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_qps_512 : GCCBuiltin<"__builtin_ia32_gatherdiv16sf">,
|
||||
Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
|
||||
def int_x86_avx512_gather_dpq_512 : GCCBuiltin<"__builtin_ia32_gathersiv8di">,
|
||||
Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_dpi_512 : GCCBuiltin<"__builtin_ia32_gathersiv16si">,
|
||||
Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_ptr_ty,
|
||||
llvm_v16i32_ty, llvm_i16_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_qpq_512 : GCCBuiltin<"__builtin_ia32_gatherdiv8di">,
|
||||
Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_gather_qpi_512 : GCCBuiltin<"__builtin_ia32_gatherdiv16si">,
|
||||
Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div2_df :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div2df">,
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div2_di :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div2di">,
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div4_df :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div4df">,
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div4_di :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div4di">,
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div4_sf :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div4sf">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div4_si :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div4si">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div8_sf :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div8sf">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3div8_si :
|
||||
GCCBuiltin<"__builtin_ia32_gather3div8si">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv2_df :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv2df">,
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv2_di :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv2di">,
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv4_df :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv4df">,
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv4_di :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv4di">,
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv4_sf :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv4sf">,
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv4_si :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv4si">,
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv8_sf :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv8sf">,
|
||||
Intrinsic<[llvm_v8f32_ty],
|
||||
[llvm_v8f32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_gather3siv8_si :
|
||||
GCCBuiltin<"__builtin_ia32_gather3siv8si">,
|
||||
Intrinsic<[llvm_v8i32_ty],
|
||||
[llvm_v8i32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_i8_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
// scatter
|
||||
// NOTE: These are deprecated in favor of the versions that take a vXi1 mask.
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_scatter_dpd_512 : GCCBuiltin<"__builtin_ia32_scattersiv8df">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,
|
||||
llvm_v8i32_ty, llvm_v8f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_dps_512 : GCCBuiltin<"__builtin_ia32_scattersiv16sf">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i16_ty,
|
||||
llvm_v16i32_ty, llvm_v16f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_qpd_512 : GCCBuiltin<"__builtin_ia32_scatterdiv8df">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,
|
||||
llvm_v8i64_ty, llvm_v8f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_qps_512 : GCCBuiltin<"__builtin_ia32_scatterdiv16sf">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,
|
||||
llvm_v8i64_ty, llvm_v8f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
|
||||
def int_x86_avx512_scatter_dpq_512 : GCCBuiltin<"__builtin_ia32_scattersiv8di">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,
|
||||
llvm_v8i32_ty, llvm_v8i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_dpi_512 : GCCBuiltin<"__builtin_ia32_scattersiv16si">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i16_ty,
|
||||
llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_qpq_512 : GCCBuiltin<"__builtin_ia32_scatterdiv8di">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty,llvm_v8i64_ty, llvm_v8i64_ty,
|
||||
llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_scatter_qpi_512 : GCCBuiltin<"__builtin_ia32_scatterdiv16si">,
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_i8_ty, llvm_v8i64_ty, llvm_v8i32_ty,
|
||||
llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv2_df :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv2df">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv2_di :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv2di">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv4_df :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv4df">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv4_di :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv4di">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv4_sf :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv4sf">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv4_si :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv4si">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v2i64_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv8_sf :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv8sf">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scatterdiv8_si :
|
||||
GCCBuiltin<"__builtin_ia32_scatterdiv8si">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i64_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv2_df :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv2df">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v2f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv2_di :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv2di">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v2i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv4_df :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv4df">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv4_di :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv4di">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv4_sf :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv4sf">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv4_si :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv4si">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv8_sf :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv8sf">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_scattersiv8_si :
|
||||
GCCBuiltin<"__builtin_ia32_scattersiv8si">,
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_i8_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
// gather prefetch
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_gatherpf_dpd_512 : GCCBuiltin<"__builtin_ia32_gatherpfdpd">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i32_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_gatherpf_dps_512 : GCCBuiltin<"__builtin_ia32_gatherpfdps">,
|
||||
Intrinsic<[], [llvm_i16_ty, llvm_v16i32_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_gatherpf_qpd_512 : GCCBuiltin<"__builtin_ia32_gatherpfqpd">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_gatherpf_qps_512 : GCCBuiltin<"__builtin_ia32_gatherpfqps">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
|
||||
// scatter prefetch
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_scatterpf_dpd_512 : GCCBuiltin<"__builtin_ia32_scatterpfdpd">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i32_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_scatterpf_dps_512 : GCCBuiltin<"__builtin_ia32_scatterpfdps">,
|
||||
Intrinsic<[], [llvm_i16_ty, llvm_v16i32_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_scatterpf_qpd_512 : GCCBuiltin<"__builtin_ia32_scatterpfqpd">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
def int_x86_avx512_scatterpf_qps_512 : GCCBuiltin<"__builtin_ia32_scatterpfqps">,
|
||||
Intrinsic<[], [llvm_i8_ty, llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrArgMemOnly]>;
|
||||
llvm_i32_ty, llvm_i32_ty], []>;
|
||||
}
|
||||
|
||||
// AVX512 gather/scatter intrinsics that use vXi1 masks.
|
||||
let TargetPrefix = "x86" in {
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_mask_gather_dpd_512 :
|
||||
Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_ptr_ty,
|
||||
llvm_v8i32_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_dps_512 :
|
||||
Intrinsic<[llvm_v16f32_ty], [llvm_v16f32_ty, llvm_ptr_ty,
|
||||
llvm_v16i32_ty, llvm_v16i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_qpd_512 :
|
||||
Intrinsic<[llvm_v8f64_ty], [llvm_v8f64_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_qps_512 :
|
||||
Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
|
||||
def int_x86_avx512_mask_gather_dpq_512 :
|
||||
Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_v8i32_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_dpi_512 :
|
||||
Intrinsic<[llvm_v16i32_ty], [llvm_v16i32_ty, llvm_ptr_ty,
|
||||
llvm_v16i32_ty, llvm_v16i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_qpq_512 :
|
||||
Intrinsic<[llvm_v8i64_ty], [llvm_v8i64_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
def int_x86_avx512_mask_gather_qpi_512 :
|
||||
Intrinsic<[llvm_v8i32_ty], [llvm_v8i32_ty, llvm_ptr_ty,
|
||||
llvm_v8i64_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div2_df :
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div2_di :
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div4_df :
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div4_di :
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div4_sf :
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div4_si :
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v2i64_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div8_sf :
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3div8_si :
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i64_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv2_df :
|
||||
Intrinsic<[llvm_v2f64_ty],
|
||||
[llvm_v2f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv2_di :
|
||||
Intrinsic<[llvm_v2i64_ty],
|
||||
[llvm_v2i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v2i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv4_df :
|
||||
Intrinsic<[llvm_v4f64_ty],
|
||||
[llvm_v4f64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv4_di :
|
||||
Intrinsic<[llvm_v4i64_ty],
|
||||
[llvm_v4i64_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv4_sf :
|
||||
Intrinsic<[llvm_v4f32_ty],
|
||||
[llvm_v4f32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv4_si :
|
||||
Intrinsic<[llvm_v4i32_ty],
|
||||
[llvm_v4i32_ty, llvm_ptr_ty, llvm_v4i32_ty, llvm_v4i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv8_sf :
|
||||
Intrinsic<[llvm_v8f32_ty],
|
||||
[llvm_v8f32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_gather3siv8_si :
|
||||
Intrinsic<[llvm_v8i32_ty],
|
||||
[llvm_v8i32_ty, llvm_ptr_ty, llvm_v8i32_ty, llvm_v8i1_ty, llvm_i32_ty],
|
||||
[IntrReadMem, IntrArgMemOnly]>;
|
||||
[IntrReadMem]>;
|
||||
|
||||
def int_x86_avx512_mask_scatter_dpd_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty,
|
||||
llvm_v8i32_ty, llvm_v8f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_dps_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v16i1_ty,
|
||||
llvm_v16i32_ty, llvm_v16f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_qpd_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty,
|
||||
llvm_v8i64_ty, llvm_v8f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_qps_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty,
|
||||
llvm_v8i64_ty, llvm_v8f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
|
||||
// NOTE: These can't be ArgMemOnly because you can put the address completely
|
||||
// in the index register.
|
||||
def int_x86_avx512_mask_scatter_dpq_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty,
|
||||
llvm_v8i32_ty, llvm_v8i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_dpi_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v16i1_ty,
|
||||
llvm_v16i32_ty, llvm_v16i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_qpq_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty,llvm_v8i64_ty, llvm_v8i64_ty,
|
||||
llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
def int_x86_avx512_mask_scatter_qpi_512 :
|
||||
Intrinsic<[], [llvm_ptr_ty, llvm_v8i1_ty, llvm_v8i64_ty, llvm_v8i32_ty,
|
||||
llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv2_df :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v2i64_ty, llvm_v2f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv2_di :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v2i64_ty, llvm_v2i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv4_df :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i64_ty, llvm_v4f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv4_di :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i64_ty, llvm_v4i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv4_sf :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v2i64_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv4_si :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v2i64_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv8_sf :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i64_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scatterdiv8_si :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i64_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv2_df :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v4i32_ty, llvm_v2f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv2_di :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v2i1_ty, llvm_v4i32_ty, llvm_v2i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv4_df :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i32_ty, llvm_v4f64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv4_di :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i32_ty, llvm_v4i64_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv4_sf :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i32_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv4_si :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v4i1_ty, llvm_v4i32_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv8_sf :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v8i1_ty, llvm_v8i32_ty, llvm_v8f32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
|
||||
def int_x86_avx512_mask_scattersiv8_si :
|
||||
Intrinsic<[],
|
||||
[llvm_ptr_ty, llvm_v8i1_ty, llvm_v8i32_ty, llvm_v8i32_ty, llvm_i32_ty],
|
||||
[IntrArgMemOnly]>;
|
||||
[]>;
|
||||
}
|
||||
|
||||
// AVX-512 conflict detection instruction
|
||||
|
@ -395,7 +395,9 @@ def _SLASH_Zo_ : CLIgnoredFlag<"Zo-">;
|
||||
|
||||
// Unsupported:
|
||||
|
||||
def _SLASH_AI : CLJoined<"AI">;
|
||||
def _SLASH_await : CLFlag<"await">;
|
||||
def _SLASH_constexpr : CLJoined<"constexpr:">;
|
||||
def _SLASH_AI : CLJoinedOrSeparate<"AI">;
|
||||
def _SLASH_Bt : CLFlag<"Bt">;
|
||||
def _SLASH_Bt_plus : CLFlag<"Bt+">;
|
||||
def _SLASH_clr : CLJoined<"clr">;
|
||||
@ -430,6 +432,9 @@ def _SLASH_Qfast_transcendentals : CLFlag<"Qfast_transcendentals">;
|
||||
def _SLASH_QIfist : CLFlag<"QIfist">;
|
||||
def _SLASH_Qimprecise_fwaits : CLFlag<"Qimprecise_fwaits">;
|
||||
def _SLASH_Qpar : CLFlag<"Qpar">;
|
||||
def _SLASH_Qpar_report : CLJoined<"Qpar-report">;
|
||||
def _SLASH_Qsafe_fp_loads : CLFlag<"Qsafe_fp_loads">;
|
||||
def _SLASH_Qspectre : CLFlag<"Qspectre">;
|
||||
def _SLASH_Qvec_report : CLJoined<"Qvec-report">;
|
||||
def _SLASH_u : CLFlag<"u">;
|
||||
def _SLASH_V : CLFlag<"V">;
|
||||
|
@ -8,4 +8,4 @@
|
||||
|
||||
#define CLANG_VENDOR "FreeBSD "
|
||||
|
||||
#define SVN_REVISION "355313"
|
||||
#define SVN_REVISION "355677"
|
||||
|
@ -7,4 +7,4 @@
|
||||
|
||||
#define LLD_REPOSITORY_STRING "FreeBSD"
|
||||
// <Upstream revision at import>-<Local identifier in __FreeBSD_version style>
|
||||
#define LLD_REVISION_STRING "355313-1300002"
|
||||
#define LLD_REVISION_STRING "355677-1300002"
|
||||
|
@ -1,2 +1,2 @@
|
||||
/* $FreeBSD$ */
|
||||
#define LLVM_REVISION "svn-r355313"
|
||||
#define LLVM_REVISION "svn-r355677"
|
||||
|
Loading…
Reference in New Issue
Block a user