Konvertierung SIMD Vektor



  • Hallo,

    ich habe einen __m256i Vektor gefüllt mit 16bit Werten (also 16 Einträge insgesamt). Ich möchte am Ende gerne wieder einen __m256i Vektor haben gefüllt mit 32bit Werten (also insgesamt 8 Einträge), diese 8 Einträge sollen die ersten 8 Einträge aus dem ursprünglichen Vektor sein. Ich will also die ersten 8 16bit Werte in 8 32bit Werte umwandeln. Gibt es dafür irgendwelche nützlichen intrinsics?
    Ich kann natürlich einfach den ersten Vektor in ein normales Integer-Array speichern und dieses dann wieder in einen SIMD Vektor mit 32bit Werten laden, aber das ist ja nicht Sinn der Sache..


  • Mod

    Hast du mal durch die Liste der entsprechenden Befehle geguckt? Wir wissen ja nicht einmal die Technologien, die wir voraussetzen dürfen, wenn du sie uns nicht nennst. Manche der AVX-Moves klingen doch recht vielversprechend. Ich gucke aber nicht alle für dich durch, welcher von diesen perfekt auf dein Problem passt. Zumal die viele davon nur verfügbar sind, wenn du irgendwelche geheimen Prototypen von Intel bei dir zur Verfügung hast 😉





  • _mm256_cvtepi16_epi32 in Kombination mit _mm256_castsi256_si128


Anmelden zum Antworten