mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-26 23:32:58 +00:00
Fix a typo: Instr* -> Intr*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27568 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a956db2a63
commit
4b2362e247
@ -24,24 +24,24 @@ class IntrinsicProperty;
|
||||
// if correct) to the least aggressive. If no property is set, the worst case
|
||||
// is assumed (IntrWriteMem).
|
||||
|
||||
// InstrNoMem - The intrinsic does not access memory or have any other side
|
||||
// IntrNoMem - The intrinsic does not access memory or have any other side
|
||||
// effects. It may be CSE'd deleted if dead, etc.
|
||||
def InstrNoMem : IntrinsicProperty;
|
||||
def IntrNoMem : IntrinsicProperty;
|
||||
|
||||
// InstrReadArgMem - This intrinsic reads only from memory that one of its
|
||||
// IntrReadArgMem - This intrinsic reads only from memory that one of its
|
||||
// arguments points to, but may read an unspecified amount.
|
||||
def InstrReadArgMem : IntrinsicProperty;
|
||||
def IntrReadArgMem : IntrinsicProperty;
|
||||
|
||||
// IntrReadMem - This intrinsic reads from unspecified memory, so it cannot be
|
||||
// moved across stores. However, it can be reordered otherwise and can be
|
||||
// deleted if dead.
|
||||
def IntrReadMem : IntrinsicProperty;
|
||||
|
||||
// InstrWriteArgMem - This intrinsic reads and writes only from memory that one
|
||||
// IntrWriteArgMem - This intrinsic reads and writes only from memory that one
|
||||
// of its arguments points to, but may access an unspecified amount. It has no
|
||||
// other side effects. This may only be used if the intrinsic doesn't "capture"
|
||||
// the argument pointer (e.g. storing it someplace).
|
||||
def InstrWriteArgMem : IntrinsicProperty;
|
||||
def IntrWriteArgMem : IntrinsicProperty;
|
||||
|
||||
// IntrWriteMem - This intrinsic may read or modify unspecified memory or has
|
||||
// other side effects. It cannot be modified by the optimizer. This is the
|
||||
@ -130,14 +130,14 @@ def int_vaend : Intrinsic<[llvm_void_ty, llvm_ptrptr_ty], [], "llvm.va_end">;
|
||||
//
|
||||
def int_gcroot : Intrinsic<[llvm_void_ty, llvm_ptrptr_ty, llvm_ptr_ty]>;
|
||||
def int_gcread : Intrinsic<[llvm_ptr_ty, llvm_ptr_ty, llvm_ptrptr_ty],
|
||||
[InstrReadArgMem]>;
|
||||
[IntrReadArgMem]>;
|
||||
def int_gcwrite : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ptr_ty,
|
||||
llvm_ptrptr_ty], [InstrWriteArgMem]>;
|
||||
llvm_ptrptr_ty], [IntrWriteArgMem]>;
|
||||
|
||||
//===--------------------- Code Generator Intrinsics ----------------------===//
|
||||
//
|
||||
def int_returnaddress : Intrinsic<[llvm_ptr_ty, llvm_uint_ty], [InstrNoMem]>;
|
||||
def int_frameaddress : Intrinsic<[llvm_ptr_ty, llvm_uint_ty], [InstrNoMem]>;
|
||||
def int_returnaddress : Intrinsic<[llvm_ptr_ty, llvm_uint_ty], [IntrNoMem]>;
|
||||
def int_frameaddress : Intrinsic<[llvm_ptr_ty, llvm_uint_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,
|
||||
@ -149,7 +149,7 @@ def int_readcyclecounter : Intrinsic<[llvm_ulong_ty]>;
|
||||
//===------------------- Standard C Library Intrinsics --------------------===//
|
||||
//
|
||||
|
||||
let Properties = [InstrWriteArgMem] in {
|
||||
let Properties = [IntrWriteArgMem] in {
|
||||
def int_memcpy_i32 : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ptr_ty,
|
||||
llvm_uint_ty, llvm_uint_ty]>;
|
||||
def int_memcpy_i64 : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ptr_ty,
|
||||
@ -164,7 +164,7 @@ let Properties = [InstrWriteArgMem] in {
|
||||
llvm_ulong_ty, llvm_uint_ty]>;
|
||||
}
|
||||
|
||||
let Properties = [InstrNoMem] in {
|
||||
let Properties = [IntrNoMem] in {
|
||||
def int_isunordered_f32 : Intrinsic<[llvm_bool_ty,
|
||||
llvm_float_ty, llvm_float_ty]>;
|
||||
def int_isunordered_f64 : Intrinsic<[llvm_bool_ty,
|
||||
@ -183,7 +183,7 @@ def int_siglongjmp : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_int_ty]>;
|
||||
//
|
||||
|
||||
// None of these intrinsics accesses memory at all.
|
||||
let Properties = [InstrNoMem] in {
|
||||
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]>;
|
||||
|
@ -31,35 +31,35 @@ let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.".
|
||||
/// vector and returns one. These intrinsics have no side effects.
|
||||
class PowerPC_Vec_FF_Intrinsic<string GCCIntSuffix>
|
||||
: PowerPC_Vec_Intrinsic<GCCIntSuffix,
|
||||
[llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
|
||||
[llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
|
||||
/// PowerPC_Vec_FFF_Intrinsic - A PowerPC intrinsic that takes two v4f32
|
||||
/// vectors and returns one. These intrinsics have no side effects.
|
||||
class PowerPC_Vec_FFF_Intrinsic<string GCCIntSuffix>
|
||||
: PowerPC_Vec_Intrinsic<GCCIntSuffix,
|
||||
[llvm_v4f32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
/// PowerPC_Vec_BBB_Intrinsic - A PowerPC intrinsic that takes two v16f8
|
||||
/// vectors and returns one. These intrinsics have no side effects.
|
||||
class PowerPC_Vec_BBB_Intrinsic<string GCCIntSuffix>
|
||||
: PowerPC_Vec_Intrinsic<GCCIntSuffix,
|
||||
[llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
/// PowerPC_Vec_HHH_Intrinsic - A PowerPC intrinsic that takes two v8i16
|
||||
/// vectors and returns one. These intrinsics have no side effects.
|
||||
class PowerPC_Vec_HHH_Intrinsic<string GCCIntSuffix>
|
||||
: PowerPC_Vec_Intrinsic<GCCIntSuffix,
|
||||
[llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
/// PowerPC_Vec_WWW_Intrinsic - A PowerPC intrinsic that takes two v4i32
|
||||
/// vectors and returns one. These intrinsics have no side effects.
|
||||
class PowerPC_Vec_WWW_Intrinsic<string GCCIntSuffix>
|
||||
: PowerPC_Vec_Intrinsic<GCCIntSuffix,
|
||||
[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -125,90 +125,90 @@ let TargetPrefix = "ppc" in { // All intrinsics start with "llvm.ppc.".
|
||||
// Comparisons setting a vector.
|
||||
def int_ppc_altivec_vcmpbfp : GCCBuiltin<"__builtin_altivec_vcmpbfp">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpeqfp : GCCBuiltin<"__builtin_altivec_vcmpeqfp">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgefp : GCCBuiltin<"__builtin_altivec_vcmpgefp">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtfp : GCCBuiltin<"__builtin_altivec_vcmpgtfp">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vcmpequw : GCCBuiltin<"__builtin_altivec_vcmpequw">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtsw : GCCBuiltin<"__builtin_altivec_vcmpgtsw">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtuw : GCCBuiltin<"__builtin_altivec_vcmpgtuw">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vcmpequh : GCCBuiltin<"__builtin_altivec_vcmpequh">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtsh : GCCBuiltin<"__builtin_altivec_vcmpgtsh">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtuh : GCCBuiltin<"__builtin_altivec_vcmpgtuh">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vcmpequb : GCCBuiltin<"__builtin_altivec_vcmpequb">,
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtsb : GCCBuiltin<"__builtin_altivec_vcmpgtsb">,
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcmpgtub : GCCBuiltin<"__builtin_altivec_vcmpgtub">,
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
// 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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[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],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
}
|
||||
|
||||
// Vector average.
|
||||
@ -259,149 +259,149 @@ let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.".
|
||||
// Saturating multiply-adds.
|
||||
def int_ppc_altivec_vmhaddshs : GCCBuiltin<"__builtin_altivec_vmhaddshs">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v8i16_ty, llvm_v8i16_ty], [InstrNoMem]>;
|
||||
llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vmhraddshs : GCCBuiltin<"__builtin_altivec_vmhraddshs">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v8i16_ty, llvm_v8i16_ty], [InstrNoMem]>;
|
||||
llvm_v8i16_ty, llvm_v8i16_ty], [IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vmaddfp : GCCBuiltin<"__builtin_altivec_vmaddfp">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vnmsubfp : GCCBuiltin<"__builtin_altivec_vnmsubfp">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
|
||||
// Vector Multiply Sum Instructions.
|
||||
// Vector Multiply Sum Intructions.
|
||||
def int_ppc_altivec_vmsummbm : GCCBuiltin<"__builtin_altivec_vmsummbm">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v16i8_ty, llvm_v16i8_ty,
|
||||
llvm_v4i32_ty], [InstrNoMem]>;
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vmsumshm : GCCBuiltin<"__builtin_altivec_vmsumshm">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v4i32_ty], [InstrNoMem]>;
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vmsumshs : GCCBuiltin<"__builtin_altivec_vmsumshs">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v4i32_ty], [InstrNoMem]>;
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vmsumubm : GCCBuiltin<"__builtin_altivec_vmsumubm">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v16i8_ty, llvm_v16i8_ty,
|
||||
llvm_v4i32_ty], [InstrNoMem]>;
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vmsumuhm : GCCBuiltin<"__builtin_altivec_vmsumuhm">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v4i32_ty], [InstrNoMem]>;
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vmsumuhs : GCCBuiltin<"__builtin_altivec_vmsumuhs">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v4i32_ty], [InstrNoMem]>;
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
|
||||
// Vector Multiply Instructions.
|
||||
// Vector Multiply Intructions.
|
||||
def int_ppc_altivec_vmulesb : GCCBuiltin<"__builtin_altivec_vmulesb">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vmulesh : GCCBuiltin<"__builtin_altivec_vmulesh">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vmuleub : GCCBuiltin<"__builtin_altivec_vmuleub">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vmuleuh : GCCBuiltin<"__builtin_altivec_vmuleuh">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vmulosb : GCCBuiltin<"__builtin_altivec_vmulosb">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vmulosh : GCCBuiltin<"__builtin_altivec_vmulosh">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vmuloub : GCCBuiltin<"__builtin_altivec_vmuloub">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v16i8_ty, llvm_v16i8_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vmulouh : GCCBuiltin<"__builtin_altivec_vmulouh">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
// Vector Sum Instructions.
|
||||
// Vector Sum Intructions.
|
||||
def int_ppc_altivec_vsumsws : GCCBuiltin<"__builtin_altivec_vsumsws">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vsum2sws : GCCBuiltin<"__builtin_altivec_vsum2sws">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vsum4sbs : GCCBuiltin<"__builtin_altivec_vsum4sbs">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v16i8_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vsum4shs : GCCBuiltin<"__builtin_altivec_vsum4shs">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vsum4ubs : GCCBuiltin<"__builtin_altivec_vsum4ubs">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v16i8_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
// Other multiplies.
|
||||
def int_ppc_altivec_vmladduhm : GCCBuiltin<"__builtin_altivec_vmladduhm">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v8i16_ty], [InstrNoMem]>;
|
||||
llvm_v8i16_ty], [IntrNoMem]>;
|
||||
|
||||
// Packs.
|
||||
def int_ppc_altivec_vpkpx : GCCBuiltin<"__builtin_altivec_vpkpx">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v4i32_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vpkshss : GCCBuiltin<"__builtin_altivec_vpkshss">,
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vpkshus : GCCBuiltin<"__builtin_altivec_vpkshus">,
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vpkswss : GCCBuiltin<"__builtin_altivec_vpkswss">,
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_v4i32_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vpkswus : GCCBuiltin<"__builtin_altivec_vpkswus">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v4i32_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
// vpkuhum is lowered to a shuffle.
|
||||
def int_ppc_altivec_vpkuhus : GCCBuiltin<"__builtin_altivec_vpkuhus">,
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_v8i16_ty, llvm_v8i16_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
// vpkuwum is lowered to a shuffle.
|
||||
def int_ppc_altivec_vpkuwus : GCCBuiltin<"__builtin_altivec_vpkuwus">,
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_v4i32_ty, llvm_v4i32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
// Unpacks.
|
||||
def int_ppc_altivec_vupkhpx : GCCBuiltin<"__builtin_altivec_vupkhpx">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vupkhsb : GCCBuiltin<"__builtin_altivec_vupkhsb">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v16i8_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v16i8_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vupkhsh : GCCBuiltin<"__builtin_altivec_vupkhsh">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vupklpx : GCCBuiltin<"__builtin_altivec_vupklpx">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vupklsb : GCCBuiltin<"__builtin_altivec_vupklsb">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v16i8_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v16i8_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vupklsh : GCCBuiltin<"__builtin_altivec_vupklsh">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v8i16_ty], [IntrNoMem]>;
|
||||
|
||||
|
||||
// FP <-> integer conversion.
|
||||
def int_ppc_altivec_vcfsx : GCCBuiltin<"__builtin_altivec_vcfsx">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4i32_ty, llvm_int_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vcfux : GCCBuiltin<"__builtin_altivec_vcfux">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4i32_ty, llvm_int_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vctsxs : GCCBuiltin<"__builtin_altivec_vctsxs">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4f32_ty, llvm_int_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_ppc_altivec_vctuxs : GCCBuiltin<"__builtin_altivec_vctuxs">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4f32_ty, llvm_int_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vrfim : GCCBuiltin<"__builtin_altivec_vrfim">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vrfin : GCCBuiltin<"__builtin_altivec_vrfin">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vrfip : GCCBuiltin<"__builtin_altivec_vrfip">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vrfiz : GCCBuiltin<"__builtin_altivec_vrfiz">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
def int_ppc_altivec_vsl : PowerPC_Vec_WWW_Intrinsic<"vsl">;
|
||||
@ -430,16 +430,16 @@ def int_ppc_altivec_vrlw : PowerPC_Vec_WWW_Intrinsic<"vrlw">;
|
||||
let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.".
|
||||
// Miscellaneous.
|
||||
def int_ppc_altivec_lvsl :
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_ptr_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_ptr_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_lvsr :
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_ptr_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v16i8_ty, llvm_ptr_ty], [IntrNoMem]>;
|
||||
|
||||
def int_ppc_altivec_vperm : GCCBuiltin<"__builtin_altivec_vperm_4si">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty,
|
||||
llvm_v4i32_ty, llvm_v16i8_ty], [InstrNoMem]>;
|
||||
llvm_v4i32_ty, llvm_v16i8_ty], [IntrNoMem]>;
|
||||
def int_ppc_altivec_vsel : GCCBuiltin<"__builtin_altivec_vsel_4si">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty,
|
||||
llvm_v4i32_ty, llvm_v4i32_ty], [InstrNoMem]>;
|
||||
llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
def int_ppc_altivec_vexptefp : PowerPC_Vec_FF_Intrinsic<"vexptefp">;
|
||||
|
@ -19,109 +19,109 @@
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse_add_ss : GCCBuiltin<"__builtin_ia32_addss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_sub_ss : GCCBuiltin<"__builtin_ia32_subss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_mul_ss : GCCBuiltin<"__builtin_ia32_mulss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_div_ss : GCCBuiltin<"__builtin_ia32_divss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_sqrt_ss : GCCBuiltin<"__builtin_ia32_sqrtss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse_sqrt_ps : GCCBuiltin<"__builtin_ia32_sqrtps">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse_rcp_ss : GCCBuiltin<"__builtin_ia32_rcpss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse_rcp_ps : GCCBuiltin<"__builtin_ia32_rcpps">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse_rsqrt_ss : GCCBuiltin<"__builtin_ia32_rsqrtss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse_rsqrt_ps : GCCBuiltin<"__builtin_ia32_rsqrtps">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse_min_ss : GCCBuiltin<"__builtin_ia32_minss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_min_ps : GCCBuiltin<"__builtin_ia32_minps">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_max_ss : GCCBuiltin<"__builtin_ia32_maxss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_max_ps : GCCBuiltin<"__builtin_ia32_maxps">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
// Comparison ops
|
||||
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], [InstrNoMem]>;
|
||||
llvm_v4f32_ty, llvm_sbyte_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_cmp_ps :
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty, llvm_sbyte_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty, llvm_sbyte_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comieq_ss : GCCBuiltin<"__builtin_ia32_comieq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comilt_ss : GCCBuiltin<"__builtin_ia32_comilt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comile_ss : GCCBuiltin<"__builtin_ia32_comile">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comigt_ss : GCCBuiltin<"__builtin_ia32_comigt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comige_ss : GCCBuiltin<"__builtin_ia32_comige">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_comineq_ss : GCCBuiltin<"__builtin_ia32_comineq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomieq_ss : GCCBuiltin<"__builtin_ia32_ucomieq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomilt_ss : GCCBuiltin<"__builtin_ia32_ucomilt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomile_ss : GCCBuiltin<"__builtin_ia32_ucomile">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomigt_ss : GCCBuiltin<"__builtin_ia32_ucomigt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomige_ss : GCCBuiltin<"__builtin_ia32_ucomige">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_ucomineq_ss : GCCBuiltin<"__builtin_ia32_ucomineq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
|
||||
// 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], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_cvtps2pi : GCCBuiltin<"__builtin_ia32_cvtps2pi">,
|
||||
Intrinsic<[llvm_v2i32_ty, llvm_v4i32_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v2i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_cvttss2si : GCCBuiltin<"__builtin_ia32_cvttss2si">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_cvttps2pi : GCCBuiltin<"__builtin_ia32_cvttps2pi">,
|
||||
Intrinsic<[llvm_v2i32_ty, llvm_v4i32_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v2i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_cvtsi2ss : GCCBuiltin<"__builtin_ia32_cvtsi2ss">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_int_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_int_ty], [IntrNoMem]>;
|
||||
def int_x86_sse_cvtpi2ps : GCCBuiltin<"__builtin_ia32_cvtpi2ps">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v2i32_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v2i32_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
// SIMD load ops
|
||||
@ -160,7 +160,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], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -170,102 +170,102 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse2_add_sd : GCCBuiltin<"__builtin_ia32_addsd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_sub_sd : GCCBuiltin<"__builtin_ia32_subsd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_mul_sd : GCCBuiltin<"__builtin_ia32_mulsd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_div_sd : GCCBuiltin<"__builtin_ia32_divsd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_sqrt_sd : GCCBuiltin<"__builtin_ia32_sqrtsd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse2_sqrt_pd : GCCBuiltin<"__builtin_ia32_sqrtpd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse2_rcp_sd : GCCBuiltin<"__builtin_ia32_rcpsd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse2_rcp_pd : GCCBuiltin<"__builtin_ia32_rcppd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse2_rsqrt_sd : GCCBuiltin<"__builtin_ia32_rsqrtsd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse2_rsqrt_pd : GCCBuiltin<"__builtin_ia32_rsqrtpd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
|
||||
[InstrNoMem]>;
|
||||
[IntrNoMem]>;
|
||||
def int_x86_sse2_min_sd : GCCBuiltin<"__builtin_ia32_minsd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_min_pd : GCCBuiltin<"__builtin_ia32_minpd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_max_sd : GCCBuiltin<"__builtin_ia32_maxsd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_max_pd : GCCBuiltin<"__builtin_ia32_maxpd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
// FP comparison ops
|
||||
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], [InstrNoMem]>;
|
||||
llvm_v2f64_ty, llvm_sbyte_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_cmp_pd :
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty, llvm_sbyte_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty, llvm_sbyte_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comieq_sd : GCCBuiltin<"__builtin_ia32_comisdeq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comilt_sd : GCCBuiltin<"__builtin_ia32_comisdlt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comile_sd : GCCBuiltin<"__builtin_ia32_comisdle">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comigt_sd : GCCBuiltin<"__builtin_ia32_comisdgt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comige_sd : GCCBuiltin<"__builtin_ia32_comisdge">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_comineq_sd : GCCBuiltin<"__builtin_ia32_comisdneq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomieq_sd : GCCBuiltin<"__builtin_ia32_ucomisdeq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomilt_sd : GCCBuiltin<"__builtin_ia32_ucomisdlt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomile_sd : GCCBuiltin<"__builtin_ia32_ucomisdle">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomigt_sd : GCCBuiltin<"__builtin_ia32_ucomisdgt">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomige_sd : GCCBuiltin<"__builtin_ia32_ucomisdge">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_ucomineq_sd : GCCBuiltin<"__builtin_ia32_ucomisdneq">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
// Integer shift ops.
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse2_psll_dq : GCCBuiltin<"__builtin_ia32_pslldqi128">,
|
||||
Intrinsic<[llvm_v2i64_ty, llvm_v2i64_ty,
|
||||
llvm_int_ty], [InstrNoMem]>;
|
||||
llvm_int_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_psrl_dq : GCCBuiltin<"__builtin_ia32_psrldqi128">,
|
||||
Intrinsic<[llvm_v2i64_ty, llvm_v2i64_ty,
|
||||
llvm_int_ty], [InstrNoMem]>;
|
||||
llvm_int_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
// SIMD load ops
|
||||
@ -285,17 +285,17 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse2_packsswb_128 : GCCBuiltin<"__builtin_ia32_packsswb128">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v8i16_ty], [InstrNoMem]>;
|
||||
llvm_v8i16_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_packssdw_128 : GCCBuiltin<"__builtin_ia32_packssdw128">,
|
||||
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty,
|
||||
llvm_v4i32_ty], [InstrNoMem]>;
|
||||
llvm_v4i32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_packuswb_128 : GCCBuiltin<"__builtin_ia32_packuswb128">,
|
||||
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty,
|
||||
llvm_v8i16_ty], [InstrNoMem]>;
|
||||
llvm_v8i16_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_movmskpd : GCCBuiltin<"__builtin_ia32_movmskpd">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_int_ty, llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse2_pmovmskb_128 : GCCBuiltin<"__builtin_ia32_pmovmskb128">,
|
||||
Intrinsic<[llvm_int_ty, llvm_v16i8_ty], [InstrNoMem]>;
|
||||
Intrinsic<[llvm_int_ty, llvm_v16i8_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -305,14 +305,14 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
|
||||
def int_x86_sse3_hadd_ps : GCCBuiltin<"__builtin_ia32_haddps">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse3_hadd_pd : GCCBuiltin<"__builtin_ia32_haddpd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
def int_x86_sse3_hsub_ps : GCCBuiltin<"__builtin_ia32_hsubps">,
|
||||
Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
|
||||
llvm_v4f32_ty], [InstrNoMem]>;
|
||||
llvm_v4f32_ty], [IntrNoMem]>;
|
||||
def int_x86_sse3_hsub_pd : GCCBuiltin<"__builtin_ia32_hsubpd">,
|
||||
Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
|
||||
llvm_v2f64_ty], [InstrNoMem]>;
|
||||
llvm_v2f64_ty], [IntrNoMem]>;
|
||||
}
|
||||
|
@ -439,13 +439,13 @@ CodeGenIntrinsic::CodeGenIntrinsic(Record *R, CodeGenTarget *CGT) {
|
||||
assert(Property->isSubClassOf("IntrinsicProperty") &&
|
||||
"Expected a property!");
|
||||
|
||||
if (Property->getName() == "InstrNoMem")
|
||||
if (Property->getName() == "IntrNoMem")
|
||||
ModRef = NoMem;
|
||||
else if (Property->getName() == "InstrReadArgMem")
|
||||
else if (Property->getName() == "IntrReadArgMem")
|
||||
ModRef = ReadArgMem;
|
||||
else if (Property->getName() == "IntrReadMem")
|
||||
ModRef = ReadMem;
|
||||
else if (Property->getName() == "InstrWriteArgMem")
|
||||
else if (Property->getName() == "IntrWriteArgMem")
|
||||
ModRef = WriteArgMem;
|
||||
else if (Property->getName() == "IntrWriteMem")
|
||||
ModRef = WriteMem;
|
||||
|
Loading…
x
Reference in New Issue
Block a user