mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 05:29:24 +00:00
Convert the intrinsic function definitions to use llvm_i32_ty instead of
llvm_uint_ty or llvm_int_ty. Similarly for i8, i16 and i64 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32802 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6359618e43
commit
90668345a1
@ -65,26 +65,22 @@ class LLVMPackedType<ValueType VT, int numelts, LLVMType elty>
|
||||
|
||||
def llvm_void_ty : LLVMType<isVoid, "Type::VoidTyID">;
|
||||
def llvm_bool_ty : LLVMType<i1 , "Type::BoolTyID">;
|
||||
def llvm_sbyte_ty : LLVMType<i8 , "Type::Int8TyID">;
|
||||
def llvm_short_ty : LLVMType<i16, "Type::Int16TyID">;
|
||||
def llvm_int_ty : LLVMType<i32, "Type::Int32TyID">;
|
||||
def llvm_long_ty : LLVMType<i64, "Type::Int64TyID">;
|
||||
def llvm_ubyte_ty : LLVMType<i8, "Type::Int8TyID">;
|
||||
def llvm_ushort_ty : LLVMType<i16, "Type::Int16TyID">;
|
||||
def llvm_uint_ty : LLVMType<i32, "Type::Int32TyID">;
|
||||
def llvm_ulong_ty : LLVMType<i64, "Type::Int64TyID">;
|
||||
def llvm_i8_ty : LLVMType<i8 , "Type::Int8TyID">;
|
||||
def llvm_i16_ty : LLVMType<i16, "Type::Int16TyID">;
|
||||
def llvm_i32_ty : LLVMType<i32, "Type::Int32TyID">;
|
||||
def llvm_i64_ty : LLVMType<i64, "Type::Int64TyID">;
|
||||
def llvm_float_ty : LLVMType<f32, "Type::FloatTyID">;
|
||||
def llvm_double_ty : LLVMType<f64, "Type::DoubleTyID">;
|
||||
def llvm_ptr_ty : LLVMType<iPTR, "Type::PointerTyID">; // sbyte*
|
||||
def llvm_ptrptr_ty : LLVMType<iPTR, "Type::PointerTyID">; // sbyte**
|
||||
def llvm_descriptor_ty : LLVMType<iPTR, "Type::PointerTyID">; // global*
|
||||
|
||||
def llvm_v16i8_ty : LLVMPackedType<v16i8,16, llvm_sbyte_ty>; // 16 x sbyte
|
||||
def llvm_v8i16_ty : LLVMPackedType<v8i16, 8, llvm_short_ty>; // 8 x short
|
||||
def llvm_v16i8_ty : LLVMPackedType<v16i8,16, llvm_i8_ty>; // 16 x sbyte
|
||||
def llvm_v8i16_ty : LLVMPackedType<v8i16, 8, llvm_i16_ty>; // 8 x short
|
||||
|
||||
def llvm_v2i64_ty : LLVMPackedType<v2i64, 2, llvm_long_ty>; // 2 x long
|
||||
def llvm_v2i32_ty : LLVMPackedType<v2i32, 2, llvm_int_ty>; // 2 x int
|
||||
def llvm_v4i32_ty : LLVMPackedType<v4i32, 4, llvm_int_ty>; // 4 x int
|
||||
def llvm_v2i64_ty : LLVMPackedType<v2i64, 2, llvm_i64_ty>; // 2 x long
|
||||
def llvm_v2i32_ty : LLVMPackedType<v2i32, 2, llvm_i32_ty>; // 2 x int
|
||||
def llvm_v4i32_ty : LLVMPackedType<v4i32, 4, llvm_i32_ty>; // 4 x int
|
||||
def llvm_v4f32_ty : LLVMPackedType<v4f32, 4, llvm_float_ty>; // 4 x float
|
||||
def llvm_v2f64_ty : LLVMPackedType<v2f64, 2, llvm_double_ty>; // 2 x double
|
||||
|
||||
@ -136,32 +132,32 @@ def int_gcwrite : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ptr_ty,
|
||||
|
||||
//===--------------------- Code Generator Intrinsics ----------------------===//
|
||||
//
|
||||
def int_returnaddress : Intrinsic<[llvm_ptr_ty, llvm_uint_ty], [IntrNoMem]>;
|
||||
def int_frameaddress : Intrinsic<[llvm_ptr_ty, llvm_uint_ty], [IntrNoMem]>;
|
||||
def int_returnaddress : Intrinsic<[llvm_ptr_ty, llvm_i32_ty], [IntrNoMem]>;
|
||||
def int_frameaddress : Intrinsic<[llvm_ptr_ty, llvm_i32_ty], [IntrNoMem]>;
|
||||
def int_stacksave : Intrinsic<[llvm_ptr_ty], [IntrReadMem]>;
|
||||
def int_stackrestore : Intrinsic<[llvm_void_ty, llvm_ptr_ty]>;
|
||||
def int_prefetch : Intrinsic<[llvm_void_ty, llvm_ptr_ty,
|
||||
llvm_uint_ty, llvm_uint_ty]>;
|
||||
def int_pcmarker : Intrinsic<[llvm_void_ty, llvm_uint_ty]>;
|
||||
llvm_i32_ty, llvm_i32_ty]>;
|
||||
def int_pcmarker : Intrinsic<[llvm_void_ty, llvm_i32_ty]>;
|
||||
|
||||
def int_readcyclecounter : Intrinsic<[llvm_ulong_ty]>;
|
||||
def int_readcyclecounter : Intrinsic<[llvm_i64_ty]>;
|
||||
|
||||
//===------------------- Standard C Library Intrinsics --------------------===//
|
||||
//
|
||||
|
||||
let Properties = [IntrWriteArgMem] in {
|
||||
def int_memcpy_i32 : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ptr_ty,
|
||||
llvm_uint_ty, llvm_uint_ty]>;
|
||||
llvm_i32_ty, llvm_i32_ty]>;
|
||||
def int_memcpy_i64 : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ptr_ty,
|
||||
llvm_ulong_ty, llvm_uint_ty]>;
|
||||
llvm_i64_ty, llvm_i32_ty]>;
|
||||
def int_memmove_i32 : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ptr_ty,
|
||||
llvm_uint_ty, llvm_uint_ty]>;
|
||||
llvm_i32_ty, llvm_i32_ty]>;
|
||||
def int_memmove_i64 : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ptr_ty,
|
||||
llvm_ulong_ty, llvm_uint_ty]>;
|
||||
def int_memset_i32 : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ubyte_ty,
|
||||
llvm_uint_ty, llvm_uint_ty]>;
|
||||
def int_memset_i64 : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ubyte_ty,
|
||||
llvm_ulong_ty, llvm_uint_ty]>;
|
||||
llvm_i64_ty, llvm_i32_ty]>;
|
||||
def int_memset_i32 : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_i8_ty,
|
||||
llvm_i32_ty, llvm_i32_ty]>;
|
||||
def int_memset_i64 : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_i8_ty,
|
||||
llvm_i64_ty, llvm_i32_ty]>;
|
||||
}
|
||||
|
||||
let Properties = [IntrNoMem] in {
|
||||
@ -172,46 +168,46 @@ let Properties = [IntrNoMem] in {
|
||||
def int_sqrt_f32 : Intrinsic<[llvm_float_ty , llvm_float_ty]>;
|
||||
def int_sqrt_f64 : Intrinsic<[llvm_double_ty, llvm_double_ty]>;
|
||||
|
||||
def int_powi_f32 : Intrinsic<[llvm_float_ty , llvm_float_ty, llvm_int_ty]>;
|
||||
def int_powi_f64 : Intrinsic<[llvm_double_ty, llvm_double_ty, llvm_int_ty]>;
|
||||
def int_powi_f32 : Intrinsic<[llvm_float_ty , llvm_float_ty, llvm_i32_ty]>;
|
||||
def int_powi_f64 : Intrinsic<[llvm_double_ty, llvm_double_ty, llvm_i32_ty]>;
|
||||
}
|
||||
|
||||
// NOTE: these are internal interfaces.
|
||||
def int_setjmp : Intrinsic<[llvm_int_ty , llvm_ptr_ty]>;
|
||||
def int_longjmp : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_int_ty]>;
|
||||
def int_sigsetjmp : Intrinsic<[llvm_int_ty , llvm_ptr_ty, llvm_int_ty]>;
|
||||
def int_siglongjmp : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_int_ty]>;
|
||||
def int_setjmp : Intrinsic<[llvm_i32_ty , llvm_ptr_ty]>;
|
||||
def int_longjmp : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_i32_ty]>;
|
||||
def int_sigsetjmp : Intrinsic<[llvm_i32_ty , llvm_ptr_ty, llvm_i32_ty]>;
|
||||
def int_siglongjmp : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_i32_ty]>;
|
||||
|
||||
//===-------------------- Bit Manipulation Intrinsics ---------------------===//
|
||||
//
|
||||
|
||||
// None of these intrinsics accesses memory at all.
|
||||
let Properties = [IntrNoMem] in {
|
||||
def int_bswap_i16 : Intrinsic<[llvm_ushort_ty, llvm_ushort_ty]>;
|
||||
def int_bswap_i32 : Intrinsic<[llvm_uint_ty, llvm_uint_ty]>;
|
||||
def int_bswap_i64 : Intrinsic<[llvm_ulong_ty, llvm_ulong_ty]>;
|
||||
def int_bswap_i16 : Intrinsic<[llvm_i16_ty, llvm_i16_ty]>;
|
||||
def int_bswap_i32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty]>;
|
||||
def int_bswap_i64 : Intrinsic<[llvm_i64_ty, llvm_i64_ty]>;
|
||||
|
||||
def int_ctpop_i8 : Intrinsic<[llvm_ubyte_ty, llvm_ubyte_ty]>;
|
||||
def int_ctpop_i16 : Intrinsic<[llvm_ushort_ty, llvm_ushort_ty]>;
|
||||
def int_ctpop_i32 : Intrinsic<[llvm_uint_ty, llvm_uint_ty]>;
|
||||
def int_ctpop_i64 : Intrinsic<[llvm_ulong_ty, llvm_ulong_ty]>;
|
||||
def int_ctpop_i8 : Intrinsic<[llvm_i8_ty, llvm_i8_ty]>;
|
||||
def int_ctpop_i16 : Intrinsic<[llvm_i16_ty, llvm_i16_ty]>;
|
||||
def int_ctpop_i32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty]>;
|
||||
def int_ctpop_i64 : Intrinsic<[llvm_i64_ty, llvm_i64_ty]>;
|
||||
|
||||
def int_ctlz_i8 : Intrinsic<[llvm_ubyte_ty, llvm_ubyte_ty]>;
|
||||
def int_ctlz_i16 : Intrinsic<[llvm_ushort_ty, llvm_ushort_ty]>;
|
||||
def int_ctlz_i32 : Intrinsic<[llvm_uint_ty, llvm_uint_ty]>;
|
||||
def int_ctlz_i64 : Intrinsic<[llvm_ulong_ty, llvm_ulong_ty]>;
|
||||
def int_ctlz_i8 : Intrinsic<[llvm_i8_ty, llvm_i8_ty]>;
|
||||
def int_ctlz_i16 : Intrinsic<[llvm_i16_ty, llvm_i16_ty]>;
|
||||
def int_ctlz_i32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty]>;
|
||||
def int_ctlz_i64 : Intrinsic<[llvm_i64_ty, llvm_i64_ty]>;
|
||||
|
||||
def int_cttz_i8 : Intrinsic<[llvm_ubyte_ty, llvm_ubyte_ty]>;
|
||||
def int_cttz_i16 : Intrinsic<[llvm_ushort_ty, llvm_ushort_ty]>;
|
||||
def int_cttz_i32 : Intrinsic<[llvm_uint_ty, llvm_uint_ty]>;
|
||||
def int_cttz_i64 : Intrinsic<[llvm_ulong_ty, llvm_ulong_ty]>;
|
||||
def int_cttz_i8 : Intrinsic<[llvm_i8_ty, llvm_i8_ty]>;
|
||||
def int_cttz_i16 : Intrinsic<[llvm_i16_ty, llvm_i16_ty]>;
|
||||
def int_cttz_i32 : Intrinsic<[llvm_i32_ty, llvm_i32_ty]>;
|
||||
def int_cttz_i64 : Intrinsic<[llvm_i64_ty, llvm_i64_ty]>;
|
||||
}
|
||||
|
||||
//===------------------------ Debugger Intrinsics -------------------------===//
|
||||
//
|
||||
|
||||
def int_dbg_stoppoint : Intrinsic<[llvm_void_ty,
|
||||
llvm_uint_ty, llvm_uint_ty,
|
||||
llvm_i32_ty, llvm_i32_ty,
|
||||
llvm_descriptor_ty]>;
|
||||
def int_dbg_region_start : Intrinsic<[llvm_void_ty, llvm_descriptor_ty]>;
|
||||
def int_dbg_region_end : Intrinsic<[llvm_void_ty, llvm_descriptor_ty]>;
|
||||
|
@ -82,20 +82,20 @@ class PowerPC_Vec_WWW_Intrinsic<string GCCIntSuffix>
|
||||
let TargetPrefix = "ppc" in { // All intrinsics start with "llvm.ppc.".
|
||||
// Data Stream Control.
|
||||
def int_ppc_altivec_dss : GCCBuiltin<"__builtin_altivec_dss">,
|
||||
Intrinsic<[llvm_void_ty, llvm_int_ty], [IntrWriteMem]>;
|
||||
Intrinsic<[llvm_void_ty, llvm_i32_ty], [IntrWriteMem]>;
|
||||
def int_ppc_altivec_dssall : GCCBuiltin<"__builtin_altivec_dssall">,
|
||||
Intrinsic<[llvm_void_ty], [IntrWriteMem]>;
|
||||
def int_ppc_altivec_dst : GCCBuiltin<"__builtin_altivec_dst">,
|
||||
Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_int_ty, llvm_int_ty],
|
||||
Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty],
|
||||
[IntrWriteMem]>;
|
||||
def int_ppc_altivec_dstt : GCCBuiltin<"__builtin_altivec_dstt">,
|
||||
Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_int_ty, llvm_int_ty],
|
||||
Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty],
|
||||
[IntrWriteMem]>;
|
||||
def int_ppc_altivec_dstst : GCCBuiltin<"__builtin_altivec_dstst">,
|
||||
Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_int_ty, llvm_int_ty],
|
||||
Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty],
|
||||
[IntrWriteMem]>;
|
||||
def int_ppc_altivec_dststt : GCCBuiltin<"__builtin_altivec_dststt">,
|
||||
Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_int_ty, llvm_int_ty],
|
||||
Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_i32_ty, llvm_i32_ty],
|
||||
[IntrWriteMem]>;
|
||||
|
||||
// VSCR access.
|
||||
@ -182,46 +182,46 @@ let TargetPrefix = "ppc" in { // All intrinsics start with "llvm.ppc.".
|
||||
|
||||
// Predicate Comparisons. The first operand specifies interpretation of CR6.
|
||||
def int_ppc_altivec_vcmpbfp_p : GCCBuiltin<"__builtin_altivec_vcmpbfp_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v4f32_ty,llvm_v4f32_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v4f32_ty,llvm_v4f32_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpeqfp_p : GCCBuiltin<"__builtin_altivec_vcmpeqfp_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v4f32_ty,llvm_v4f32_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v4f32_ty,llvm_v4f32_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgefp_p : GCCBuiltin<"__builtin_altivec_vcmpgefp_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v4f32_ty,llvm_v4f32_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v4f32_ty,llvm_v4f32_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtfp_p : GCCBuiltin<"__builtin_altivec_vcmpgtfp_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v4f32_ty,llvm_v4f32_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v4f32_ty,llvm_v4f32_ty],
|
||||
[IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vcmpequw_p : GCCBuiltin<"__builtin_altivec_vcmpequw_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v4i32_ty,llvm_v4i32_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v4i32_ty,llvm_v4i32_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtsw_p : GCCBuiltin<"__builtin_altivec_vcmpgtsw_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v4i32_ty,llvm_v4i32_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v4i32_ty,llvm_v4i32_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtuw_p : GCCBuiltin<"__builtin_altivec_vcmpgtuw_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v4i32_ty,llvm_v4i32_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v4i32_ty,llvm_v4i32_ty],
|
||||
[IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vcmpequh_p : GCCBuiltin<"__builtin_altivec_vcmpequh_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v8i16_ty,llvm_v8i16_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v8i16_ty,llvm_v8i16_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtsh_p : GCCBuiltin<"__builtin_altivec_vcmpgtsh_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v8i16_ty,llvm_v8i16_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v8i16_ty,llvm_v8i16_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtuh_p : GCCBuiltin<"__builtin_altivec_vcmpgtuh_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v8i16_ty,llvm_v8i16_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v8i16_ty,llvm_v8i16_ty],
|
||||
[IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vcmpequb_p : GCCBuiltin<"__builtin_altivec_vcmpequb_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v16i8_ty,llvm_v16i8_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v16i8_ty,llvm_v16i8_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtsb_p : GCCBuiltin<"__builtin_altivec_vcmpgtsb_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v16i8_ty,llvm_v16i8_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v16i8_ty,llvm_v16i8_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtub_p : GCCBuiltin<"__builtin_altivec_vcmpgtub_p">,
|
||||
Intrinsic<[llvm_int_ty, llvm_int_ty, llvm_v16i8_ty,llvm_v16i8_ty],
|
||||
Intrinsic<[llvm_i32_ty, llvm_i32_ty, llvm_v16i8_ty,llvm_v16i8_ty],
|
||||
[IntrNoMem]>;
|
||||
}
|
||||
|
||||
@ -396,16 +396,16 @@ let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.".
|
||||
|
||||
// FP <-> integer conversion.
|
||||
def int_ppc_altivec_vcfsx : GCCBuiltin<"__builtin_altivec_vcfsx">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4i32_ty, llvm_int_ty],
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcfux : GCCBuiltin<"__builtin_altivec_vcfux">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4i32_ty, llvm_int_ty],
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4i32_ty, llvm_i32_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vctsxs : GCCBuiltin<"__builtin_altivec_vctsxs">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4f32_ty, llvm_int_ty],
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vctuxs : GCCBuiltin<"__builtin_altivec_vctuxs">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4f32_ty, llvm_int_ty],
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4f32_ty, llvm_i32_ty],
|
||||
[IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vrfim : GCCBuiltin<"__builtin_altivec_vrfim">,
|
||||
|
@ -65,45 +65,45 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse_cmp_ss :
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty, llvm_sbyte_ty], [IntrNoMem]>;
|
||||
llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_cmp_ps :
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty, llvm_sbyte_ty], [IntrNoMem]>;
|
||||
llvm_v4f32_ty, llvm_i8_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comieq_ss : GCCBuiltin<"__builtin_ia32_comieq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comilt_ss : GCCBuiltin<"__builtin_ia32_comilt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comile_ss : GCCBuiltin<"__builtin_ia32_comile">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comigt_ss : GCCBuiltin<"__builtin_ia32_comigt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comige_ss : GCCBuiltin<"__builtin_ia32_comige">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comineq_ss : GCCBuiltin<"__builtin_ia32_comineq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomieq_ss : GCCBuiltin<"__builtin_ia32_ucomieq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomilt_ss : GCCBuiltin<"__builtin_ia32_ucomilt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomile_ss : GCCBuiltin<"__builtin_ia32_ucomile">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomigt_ss : GCCBuiltin<"__builtin_ia32_ucomigt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomige_ss : GCCBuiltin<"__builtin_ia32_ucomige">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomineq_ss : GCCBuiltin<"__builtin_ia32_ucomineq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
@ -111,12 +111,12 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
// Conversion ops
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse_cvtss2si : GCCBuiltin<"__builtin_ia32_cvtss2si">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_cvttss2si : GCCBuiltin<"__builtin_ia32_cvttss2si">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_cvtsi2ss : GCCBuiltin<"__builtin_ia32_cvtsi2ss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_int_ty], [IntrNoMem]>;
|
||||
llvm_i32_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
// SIMD load ops
|
||||
@ -152,7 +152,7 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
// Misc.
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse_movmsk_ps : GCCBuiltin<"__builtin_ia32_movmskps">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
Intrinsic<[llvm_i32_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -208,45 +208,45 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse2_cmp_sd :
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty, llvm_sbyte_ty], [IntrNoMem]>;
|
||||
llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_cmp_pd :
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty, llvm_sbyte_ty], [IntrNoMem]>;
|
||||
llvm_v2f64_ty, llvm_i8_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comieq_sd : GCCBuiltin<"__builtin_ia32_comisdeq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comilt_sd : GCCBuiltin<"__builtin_ia32_comisdlt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comile_sd : GCCBuiltin<"__builtin_ia32_comisdle">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comigt_sd : GCCBuiltin<"__builtin_ia32_comisdgt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comige_sd : GCCBuiltin<"__builtin_ia32_comisdge">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comineq_sd : GCCBuiltin<"__builtin_ia32_comisdneq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomieq_sd : GCCBuiltin<"__builtin_ia32_ucomisdeq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomilt_sd : GCCBuiltin<"__builtin_ia32_ucomisdlt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomile_sd : GCCBuiltin<"__builtin_ia32_ucomisdle">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomigt_sd : GCCBuiltin<"__builtin_ia32_ucomisdgt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomige_sd : GCCBuiltin<"__builtin_ia32_ucomisdge">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomineq_sd : GCCBuiltin<"__builtin_ia32_ucomisdneq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
@ -324,7 +324,7 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_psll_dq : GCCBuiltin<"__builtin_ia32_pslldqi128">,
|
||||
Intrinsic<[llvm_v2i64_ty, llvm_v2i64_ty,
|
||||
llvm_int_ty], [IntrNoMem]>;
|
||||
llvm_i32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_psrl_w :
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
@ -336,7 +336,7 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_psrl_dq : GCCBuiltin<"__builtin_ia32_psrldqi128">,
|
||||
Intrinsic<[llvm_v2i64_ty, llvm_v2i64_ty,
|
||||
llvm_int_ty], [IntrNoMem]>;
|
||||
llvm_i32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_psra_w :
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
@ -386,12 +386,12 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse2_cvtps2pd : GCCBuiltin<"__builtin_ia32_cvtps2pd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_cvtsd2si : GCCBuiltin<"__builtin_ia32_cvtsd2si">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty], [IntrNoMem]>;
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_cvttsd2si : GCCBuiltin<"__builtin_ia32_cvttsd2si">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty], [IntrNoMem]>;
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_cvtsi2sd : GCCBuiltin<"__builtin_ia32_cvtsi2sd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_int_ty], [IntrNoMem]>;
|
||||
llvm_i32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_cvtsd2ss : GCCBuiltin<"__builtin_ia32_cvtsd2ss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
@ -431,7 +431,7 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
llvm_v2f64_ty], [IntrWriteMem]>;
|
||||
def int_x86_sse2_movnt_i : GCCBuiltin<"__builtin_ia32_movnti">,
|
||||
Intrinsic<[llvm_void_ty, llvm_ptr_ty,
|
||||
llvm_int_ty], [IntrWriteMem]>;
|
||||
llvm_i32_ty], [IntrWriteMem]>;
|
||||
}
|
||||
|
||||
// Misc.
|
||||
@ -448,9 +448,9 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse2_movl_dq : GCCBuiltin<"__builtin_ia32_movqv4si">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_movmsk_pd : GCCBuiltin<"__builtin_ia32_movmskpd">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty], [IntrNoMem]>;
|
||||
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_pmovmskb_128 : GCCBuiltin<"__builtin_ia32_pmovmskb128">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v16i8_ty], [IntrNoMem]>;
|
||||
Intrinsic<[llvm_i32_ty, llvm_v16i8_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_maskmov_dqu : GCCBuiltin<"__builtin_ia32_maskmovdqu">,
|
||||
Intrinsic<[llvm_void_ty, llvm_v16i8_ty,
|
||||
llvm_v16i8_ty, llvm_ptr_ty], [IntrWriteMem]>;
|
||||
@ -476,7 +476,7 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
llvm_ptr_ty], [IntrReadMem]>;
|
||||
def int_x86_sse2_shuf_pd : GCCBuiltin<"__builtin_ia32_shufpd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty, llvm_int_ty], [IntrNoMem]>;
|
||||
llvm_v2f64_ty, llvm_i32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_unpckh_pd : GCCBuiltin<"__builtin_ia32_unpckhpd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
@ -530,8 +530,8 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse3_monitor : GCCBuiltin<"__builtin_ia32_monitor">,
|
||||
Intrinsic<[llvm_void_ty, llvm_ptr_ty,
|
||||
llvm_uint_ty, llvm_uint_ty], [IntrWriteMem]>;
|
||||
llvm_i32_ty, llvm_i32_ty], [IntrWriteMem]>;
|
||||
def int_x86_sse3_mwait : GCCBuiltin<"__builtin_ia32_mwait">,
|
||||
Intrinsic<[llvm_void_ty, llvm_uint_ty,
|
||||
llvm_uint_ty], [IntrWriteMem]>;
|
||||
Intrinsic<[llvm_void_ty, llvm_i32_ty,
|
||||
llvm_i32_ty], [IntrWriteMem]>;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user