diff options
| author | Yunzhong Gao <Yunzhong_Gao@playstation.sony.com> | 2013-09-27 18:38:42 +0000 |
|---|---|---|
| committer | Yunzhong Gao <Yunzhong_Gao@playstation.sony.com> | 2013-09-27 18:38:42 +0000 |
| commit | b8bbcbfcc81bb6101322c34fb4c770afb090a68c (patch) | |
| tree | b6d32284fd95ddb89884d0fc945b79d44b13326d /llvm/include | |
| parent | 0ed04fc9ab27a7794c65b0b419de56d084319064 (diff) | |
| download | bcm5719-llvm-b8bbcbfcc81bb6101322c34fb4c770afb090a68c.tar.gz bcm5719-llvm-b8bbcbfcc81bb6101322c34fb4c770afb090a68c.zip | |
Adding intrinsics to the llvm backend for TBM instruction set.
Phabricator code review is located here: http://llvm-reviews.chandlerc.com/D1750
llvm-svn: 191539
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/IR/IntrinsicsX86.td | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/llvm/include/llvm/IR/IntrinsicsX86.td b/llvm/include/llvm/IR/IntrinsicsX86.td index ac48bc00044..3352d6740a5 100644 --- a/llvm/include/llvm/IR/IntrinsicsX86.td +++ b/llvm/include/llvm/IR/IntrinsicsX86.td @@ -2594,6 +2594,72 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". } //===----------------------------------------------------------------------===// +// TBM + +let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". + def int_x86_tbm_bextri_u32 : GCCBuiltin<"__builtin_ia32_bextri_u32">, + Intrinsic<[llvm_i32_ty], [llvm_i32_ty, + llvm_i32_ty], [IntrNoMem]>; + def int_x86_tbm_bextri_u64 : GCCBuiltin<"__builtin_ia32_bextri_u64">, + Intrinsic<[llvm_i64_ty], [llvm_i64_ty, + llvm_i32_ty], [IntrNoMem]>; + def int_x86_tbm_blcfill_u32 : GCCBuiltin<"__builtin_ia32_blcfill_u32">, + Intrinsic<[llvm_i32_ty], [llvm_i32_ty], + [IntrNoMem]>; + def int_x86_tbm_blcfill_u64 : GCCBuiltin<"__builtin_ia32_blcfill_u64">, + Intrinsic<[llvm_i64_ty], [llvm_i64_ty], + [IntrNoMem]>; + def int_x86_tbm_blci_u32 : GCCBuiltin<"__builtin_ia32_blci_u32">, + Intrinsic<[llvm_i32_ty], [llvm_i32_ty], + [IntrNoMem]>; + def int_x86_tbm_blci_u64 : GCCBuiltin<"__builtin_ia32_blci_u64">, + Intrinsic<[llvm_i64_ty], [llvm_i64_ty], + [IntrNoMem]>; + def int_x86_tbm_blcic_u32 : GCCBuiltin<"__builtin_ia32_blcic_u32">, + Intrinsic<[llvm_i32_ty], [llvm_i32_ty], + [IntrNoMem]>; + def int_x86_tbm_blcic_u64 : GCCBuiltin<"__builtin_ia32_blcic_u64">, + Intrinsic<[llvm_i64_ty], [llvm_i64_ty], + [IntrNoMem]>; + def int_x86_tbm_blcmsk_u32 : GCCBuiltin<"__builtin_ia32_blcmsk_u32">, + Intrinsic<[llvm_i32_ty], [llvm_i32_ty], + [IntrNoMem]>; + def int_x86_tbm_blcmsk_u64 : GCCBuiltin<"__builtin_ia32_blcmsk_u64">, + Intrinsic<[llvm_i64_ty], [llvm_i64_ty], + [IntrNoMem]>; + def int_x86_tbm_blcs_u32 : GCCBuiltin<"__builtin_ia32_blcs_u32">, + Intrinsic<[llvm_i32_ty], [llvm_i32_ty], + [IntrNoMem]>; + def int_x86_tbm_blcs_u64 : GCCBuiltin<"__builtin_ia32_blcs_u64">, + Intrinsic<[llvm_i64_ty], [llvm_i64_ty], + [IntrNoMem]>; + def int_x86_tbm_blsfill_u32 : GCCBuiltin<"__builtin_ia32_blsfill_u32">, + Intrinsic<[llvm_i32_ty], [llvm_i32_ty], + [IntrNoMem]>; + def int_x86_tbm_blsfill_u64 : GCCBuiltin<"__builtin_ia32_blsfill_u64">, + Intrinsic<[llvm_i64_ty], [llvm_i64_ty], + [IntrNoMem]>; + def int_x86_tbm_blsic_u32 : GCCBuiltin<"__builtin_ia32_blsic_u32">, + Intrinsic<[llvm_i32_ty], [llvm_i32_ty], + [IntrNoMem]>; + def int_x86_tbm_blsic_u64 : GCCBuiltin<"__builtin_ia32_blsic_u64">, + Intrinsic<[llvm_i64_ty], [llvm_i64_ty], + [IntrNoMem]>; + def int_x86_tbm_t1mskc_u32 : GCCBuiltin<"__builtin_ia32_t1mskc_u32">, + Intrinsic<[llvm_i32_ty], [llvm_i32_ty], + [IntrNoMem]>; + def int_x86_tbm_t1mskc_u64 : GCCBuiltin<"__builtin_ia32_t1mskc_u64">, + Intrinsic<[llvm_i64_ty], [llvm_i64_ty], + [IntrNoMem]>; + def int_x86_tbm_tzmsk_u32 : GCCBuiltin<"__builtin_ia32_tzmsk_u32">, + Intrinsic<[llvm_i32_ty], [llvm_i32_ty], + [IntrNoMem]>; + def int_x86_tbm_tzmsk_u64 : GCCBuiltin<"__builtin_ia32_tzmsk_u64">, + Intrinsic<[llvm_i64_ty], [llvm_i64_ty], + [IntrNoMem]>; +} + +//===----------------------------------------------------------------------===// // RDRAND intrinsics - Return a random value and whether it is valid. // RDSEED intrinsics - Return a NIST SP800-90B & C compliant random value and // whether it is valid. |

