2016-04-15 12 views
1

Ich kann nicht scheinen, die intrinsics für entweder _mm_pow_ps oder _mm256_pow_ps zu finden, von denen beide mit 'immintrin.h' eingeschlossen sein sollen.Wo ist Clangs '_mm256_pow_ps' intrinsisch?

Definiert Clang diese nicht oder sind sie in einer Kopfzeile, die ich nicht einschließe?

Antwort

2

Die zusammengesetzten "intrinsics" sind tatsächlich Inline-Funktionen der Intel-Bibliothek, die von anderen Compilern nicht bereitgestellt werden. Es gibt keine vpowps Anweisung.

Für diese intrinsisch zu verwenden, benötigen Sie Intels Short Vector Math Library (SVML). Die meisten Menschen vermeiden es einfach, sie zu benutzen. Wenn es jedoch eine Implementierung von etwas hat, das Sie wollen, lohnt es sich, etwas genauer zu betrachten. IDK welche anderen Vektor pow Implementierungen existieren.

In der intrinsics finder können Sie vermeiden, diese nicht portablen Funktionen in Ihren Suchergebnissen zu sehen, wenn Sie das Feld SVML deaktiviert lassen.

+3

Agner Fog hat die meisten Funktionen in SVML in seiner Open-Source-VectorClass-Bibliothek implementiert. Er behauptet, dass es mit SVML wettbewerbsfähig ist. –

+0

@Zboson: in der Dokumentation für VectorClass listet er leider die Effizienz für 'pow' als" arm "auf. Natürlich ist "arm" ein relativer Begriff, und es kann durchaus nützlich sein. –