von DK2000 » 05.03.2024, 10:33
Das ist mit POPCNT seher undurchsichtig, zumal man auch keine richtige Dokumentation aus der damaligen Zeit mehr findet.
das stammt wohl von AMD's "Advanced Bit Manipulation (ABM)" Erweiterung. Intel hat das dann als BM1/BM2 übernommen und irgendwann in SSSE3 implementiert. So eine direkten Zusammenhang it SSE4.2 finde ich da nicht. POPCNT hat aber auf jeden Fal lein eigens Bit in der CPUID. Intel schreibt eigentlich vor, dass man das besagte Bit abfragen muss, um sicherzustellen, dass die CPU das auch wirklich unterstützt. Falls die CPU das nicht kann, muss man das softwarebasierte Lösung für POPCNT verwenden.
Das deutet aber darauf hin, das POPCNT nicht zwangsläufig zu SSE/SSSE oder einer anderen Erweiterung zugehörig ist (mal von BMI bei Intel abgesehen), sondern etwas Selbstständiges ist, was irgendwann mal eingeführt wurde. Bleibt halt wirklich nur übrig, das Bit in der CPU abzufragen, um sicherzustellen, das POPCNT seitens der CPU unterstützt wird. die weiter oben aufgeführten Tools können das wohl so weit.
Das ist mit POPCNT seher undurchsichtig, zumal man auch keine richtige Dokumentation aus der damaligen Zeit mehr findet.
das stammt wohl von AMD's "Advanced Bit Manipulation (ABM)" Erweiterung. Intel hat das dann als BM1/BM2 übernommen und irgendwann in SSSE3 implementiert. So eine direkten Zusammenhang it SSE4.2 finde ich da nicht. POPCNT hat aber auf jeden Fal lein eigens Bit in der CPUID. Intel schreibt eigentlich vor, dass man das besagte Bit abfragen muss, um sicherzustellen, dass die CPU das auch wirklich unterstützt. Falls die CPU das nicht kann, muss man das softwarebasierte Lösung für POPCNT verwenden.
Das deutet aber darauf hin, das POPCNT nicht zwangsläufig zu SSE/SSSE oder einer anderen Erweiterung zugehörig ist (mal von BMI bei Intel abgesehen), sondern etwas Selbstständiges ist, was irgendwann mal eingeführt wurde. Bleibt halt wirklich nur übrig, das Bit in der CPU abzufragen, um sicherzustellen, das POPCNT seitens der CPU unterstützt wird. die weiter oben aufgeführten Tools können das wohl so weit.