Add intrinsics for x86 bit manipulation instruction sets: BMI 1.0, BMI 2.0, and TBM.
This commit is contained in:
parent
152055451c
commit
10cbc37cdd
4 changed files with 984 additions and 881 deletions
13
src/etc/platform-intrinsics/x86/bmi.json
Normal file
13
src/etc/platform-intrinsics/x86/bmi.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"intrinsic_prefix": "_bmi",
|
||||
"llvm_prefix": "llvm.x86.bmi.",
|
||||
"intrinsics": [
|
||||
{
|
||||
"intrinsic": "_bextr_{0.bitwidth}",
|
||||
"width": ["0"],
|
||||
"llvm": "bextr.{0.bitwidth}",
|
||||
"ret": "S(32-64)u",
|
||||
"args": ["0", "0"]
|
||||
}
|
||||
]
|
||||
}
|
27
src/etc/platform-intrinsics/x86/bmi2.json
Normal file
27
src/etc/platform-intrinsics/x86/bmi2.json
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"intrinsic_prefix": "_bmi2",
|
||||
"llvm_prefix": "llvm.x86.bmi.",
|
||||
"intrinsics": [
|
||||
{
|
||||
"intrinsic": "_bzhi_{0.bitwidth}",
|
||||
"width": ["0"],
|
||||
"llvm": "bzhi.{0.bitwidth}",
|
||||
"ret": "S(32-64)u",
|
||||
"args": ["0", "0"]
|
||||
},
|
||||
{
|
||||
"intrinsic": "_pdep_{0.bitwidth}",
|
||||
"width": ["0"],
|
||||
"llvm": "pdep.{0.bitwidth}",
|
||||
"ret": "S(32-64)u",
|
||||
"args": ["0", "0"]
|
||||
},
|
||||
{
|
||||
"intrinsic": "_pext_{0.bitwidth}",
|
||||
"width": ["0"],
|
||||
"llvm": "pext.{0.bitwidth}",
|
||||
"ret": "S(32-64)u",
|
||||
"args": ["0", "0"]
|
||||
}
|
||||
]
|
||||
}
|
13
src/etc/platform-intrinsics/x86/tbm.json
Normal file
13
src/etc/platform-intrinsics/x86/tbm.json
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"intrinsic_prefix": "_tbm",
|
||||
"llvm_prefix": "llvm.x86.tbm.",
|
||||
"intrinsics": [
|
||||
{
|
||||
"intrinsic": "_bextri_u{0.bitwidth}",
|
||||
"width": ["0"],
|
||||
"llvm": "bextri.u{0.bitwidth}",
|
||||
"ret": "S(32-64)u",
|
||||
"args": ["0", "0"]
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue