diff options
| author | gnzlbg <gonzalobg88@gmail.com> | 2016-06-22 16:34:10 +0200 |
|---|---|---|
| committer | gnzlbg <gonzalobg88@gmail.com> | 2016-06-22 16:34:10 +0200 |
| commit | 10cbc37cddc9498532f87c299e120735b15f1adf (patch) | |
| tree | 2371311c81683625608e53a983e34014725e9963 /src/etc | |
| parent | 152055451c552121be35a179bb77194e02800baa (diff) | |
| download | rust-10cbc37cddc9498532f87c299e120735b15f1adf.tar.gz rust-10cbc37cddc9498532f87c299e120735b15f1adf.zip | |
Add intrinsics for x86 bit manipulation instruction sets: BMI 1.0, BMI 2.0, and TBM.
Diffstat (limited to 'src/etc')
| -rw-r--r-- | src/etc/platform-intrinsics/x86/bmi.json | 13 | ||||
| -rw-r--r-- | src/etc/platform-intrinsics/x86/bmi2.json | 27 | ||||
| -rw-r--r-- | src/etc/platform-intrinsics/x86/tbm.json | 13 |
3 files changed, 53 insertions, 0 deletions
diff --git a/src/etc/platform-intrinsics/x86/bmi.json b/src/etc/platform-intrinsics/x86/bmi.json new file mode 100644 index 00000000000..24e2cbcf8aa --- /dev/null +++ b/src/etc/platform-intrinsics/x86/bmi.json @@ -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"] + } + ] +} diff --git a/src/etc/platform-intrinsics/x86/bmi2.json b/src/etc/platform-intrinsics/x86/bmi2.json new file mode 100644 index 00000000000..f5a0db5ef51 --- /dev/null +++ b/src/etc/platform-intrinsics/x86/bmi2.json @@ -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"] + } + ] +} diff --git a/src/etc/platform-intrinsics/x86/tbm.json b/src/etc/platform-intrinsics/x86/tbm.json new file mode 100644 index 00000000000..d1322cd60c4 --- /dev/null +++ b/src/etc/platform-intrinsics/x86/tbm.json @@ -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"] + } + ] +} |
