Skip to content

Commit 10cbc37

Browse files
committed
Add intrinsics for x86 bit manipulation instruction sets: BMI 1.0, BMI 2.0, and TBM.
1 parent 1520554 commit 10cbc37

File tree

4 files changed

+952
-849
lines changed

4 files changed

+952
-849
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"intrinsic_prefix": "_bmi",
3+
"llvm_prefix": "llvm.x86.bmi.",
4+
"intrinsics": [
5+
{
6+
"intrinsic": "_bextr_{0.bitwidth}",
7+
"width": ["0"],
8+
"llvm": "bextr.{0.bitwidth}",
9+
"ret": "S(32-64)u",
10+
"args": ["0", "0"]
11+
}
12+
]
13+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"intrinsic_prefix": "_bmi2",
3+
"llvm_prefix": "llvm.x86.bmi.",
4+
"intrinsics": [
5+
{
6+
"intrinsic": "_bzhi_{0.bitwidth}",
7+
"width": ["0"],
8+
"llvm": "bzhi.{0.bitwidth}",
9+
"ret": "S(32-64)u",
10+
"args": ["0", "0"]
11+
},
12+
{
13+
"intrinsic": "_pdep_{0.bitwidth}",
14+
"width": ["0"],
15+
"llvm": "pdep.{0.bitwidth}",
16+
"ret": "S(32-64)u",
17+
"args": ["0", "0"]
18+
},
19+
{
20+
"intrinsic": "_pext_{0.bitwidth}",
21+
"width": ["0"],
22+
"llvm": "pext.{0.bitwidth}",
23+
"ret": "S(32-64)u",
24+
"args": ["0", "0"]
25+
}
26+
]
27+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"intrinsic_prefix": "_tbm",
3+
"llvm_prefix": "llvm.x86.tbm.",
4+
"intrinsics": [
5+
{
6+
"intrinsic": "_bextri_u{0.bitwidth}",
7+
"width": ["0"],
8+
"llvm": "bextri.u{0.bitwidth}",
9+
"ret": "S(32-64)u",
10+
"args": ["0", "0"]
11+
}
12+
]
13+
}

0 commit comments

Comments
 (0)