Bit Manipulation Instruction Sets
Bit Manipulation Instructions Sets (BMI ) sind Befehlssatzerweiterungen für Mikroprozessoren von Intel und AMD .
Es gibt mehrere Untermengen von BMI: BMI1 und BMI2 von Intel, die mit der Intel-Haswell-Mikroarchitektur eingeführt wurden sowie ABM und TBM von AMD. ABM (Advanced Bit Manipulation) beinhaltet Instruktionen aus Intels SSE4.2 und BMI1, TBM (Trailing Bit Manipulation) ist eine Erweiterung von BMI1, die mit der Piledriver-Architektur eingeführt wurde.
Neue Instruktionen
ABM
Instruktion
Beschreibung[ 1]
POPCNT
Anzahl gesetzter Bits
LZCNT
Anzahl führender Nullen
BMI1
Instruktion
Beschreibung[ 2]
Ausdruck in C [ 3]
ANDN
AND NOT
~x & y
BEXTR
Bitfeld extrahieren
(src >> start) & ((1 << len)-1)
[ 4]
BLSI
Niedrigstes gesetztes Bit isolieren
x & -x
BLSMSK
Alle Bits bis zum niedrigsten gesetzten Bit setzen, alle höheren Bits löschen
x ^ (x - 1)
BLSR
Niedrigstes gesetztes Bit löschen
x & (x - 1)
TZCNT
Anzahl schließender Nullen
—
BMI2
Instruktion
Beschreibung
BZHI
Alle höheren Bits ab dem angegebenen löschen
MULX
Vorzeichenlose (unsigned) Multiplikation ohne Einfluss auf Flags (für RSA )[ 5]
PDEP
Paralleler Bit-Deposit
PEXT
Paralleler Bit-Extrakt
RORX
Bitweise Rotation nach rechts ohne Einfluss auf Flags (für SHA )[ 5]
SARX
Arithmetische Verschiebung nach rechts
SHRX
Logische Verschiebung nach rechts
SHLX
Logische Verschiebung nach links
TBM
Instruktion
Beschreibung (englisch)[ 1]
Ausdruck in C [ 6]
BEXTR
Bitfeld-Extrakt (unmittelbarer Kontroll-Wert)
(src >> start) & ((1 << len)-1)
BLCFILL
Fill from lowest clear bit
x & (x + 1)
BLCI
Isolate lowest clear bit
x | ~(x + 1)
BLCIC
Isolate lowest clear bit and complement
~x & (x + 1)
BLCMASK
Mask from lowest clear bit
x ^ (x + 1)
BLCS
Set lowest clear bit
x | (x + 1)
BLSFILL
Fill from lowest set bit
x | (x - 1)
BLSIC
Isolate lowest set bit and complement
~x | (x - 1)
T1MSKC
Inverse mask from trailing ones
~x | (x + 1)
TZMSK
Mask from trailing zeros
~x & (x - 1)
Einzelnachweise
↑ a b AMD64 Architecture Programmer's Manual, Volume 3: General-Purpose and System Instructions. (PDF) In: amd.com. AMD , Oktober 2013, abgerufen am 2. Januar 2014 .
↑ Intel Advanced Vector Extensions Programming Reference. (PDF) In: intel.com. Intel , Juni 2011, abgerufen am 3. Januar 2014 .
↑ bmiintrin.h from GCC 4.8. Abgerufen am 17. März 2014 .
↑ Chess Programming BMI1. Abgerufen am 8. April 2014 .
↑ a b Haswell Cryptographic Performance , Juli 2013
↑ tbmintrin.h from GCC 4.8. Abgerufen am 17. März 2014 .
The article is a derivative under the Creative Commons Attribution-ShareAlike License .
A link to the original article can be found here and attribution parties here
By using this site, you agree to the Terms of Use . Gpedia ® is a registered trademark of the Cyberajah Pty Ltd