Jaki jest właściwy sposób przekonwertowania wartości __int64
na wartość __m64
do użycia z SSE?Jak przekonwertować 'long long' (lub __int64) na __m64
6
A
Odpowiedz
6
z gcc można po prostu użyć _mm_set_pi64x
:
#include <mmintrin.h>
__int64 i = 0x123456LL;
__m64 v = _mm_set_pi64x(i);
pamiętać, że nie wszystkie kompilatory mają _mm_set_pi64x
zdefiniowane w mmintrin.h
. Dla gcc jest zdefiniowana następująco:
extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_set_pi64x (long long __i)
{
return (__m64) __i;
}
co sugeruje, że prawdopodobnie można po prostu użyć obsady jeśli wolisz, na przykład
__int64 i = 0x123456LL;
__m64 v = (__m64)i;
W przeciwnym razie, jeśli utkniesz ze zbyt wybredna kompilator takich jak Visual C/C++, w ostateczności można po prostu wykorzystać do unii i zaimplementować własną wewnętrzną:
#ifdef _MSC_VER // if Visual C/C++
__inline __m64 _mm_set_pi64x (const __int64 i) {
union {
__int64 i;
__m64 v;
} u;
u.i = i;
return u.v;
}
#endif
Należy zauważyć, że ściśle mówiąc jest to UB, ponieważ piszemy do jednego wariantu związku i czytając od innego, ale powinno działać w tym przypadku.
Powiązane problemy
- 1. unsigned long long int pow
- 2. Unsigned Long Long poza zakresem?
- 3. Long To XMLGregorianCalendar i wróć do Long
- 4. Jak przekonwertować Long to Int w Kotlin?
- 5. unsigned long long vs unsigned long (przenośność punktu widzenia)
- 6. Jak przekonwertować "unsigned long" na ciąg w java
- 7. cpp: eclipse nie rozpoznaje typu "long long"
- 8. Jak przekonwertować listę (Long) na tablicę znaków? (VB)
- 9. Konwertuj unsigned long long to double in C
- 10. Unsigned Long Long nie wykracza poza 93. numer Fibonacciego?
- 11. C++ podpisane i unsigned long long int vs prędkości
- 12. Android TextView Long Shadow
- 13. long long to 8 bajtów, ale mam przepełnienie całkowite?
- 14. JavaScript long integer
- 15. Long Polling z PHP na Apache
- 16. Maksymalny limit Java Long prymitywny
- 17. unsigned long 0 <-1?
- 18. WCF & MSMQ & TransactionScope long process
- 19. jQuery i long int id
- 20. Korzystanie long int w PHP
- 21. PHP - Long Running Background Task
- 22. PHP Include: Long Path Issue
- 23. Java Float to Long Typecast
- 24. Long Polling z Spring DeferredResult
- 25. GWT OverlayTypes Data i Long
- 26. Jak mod2^64 in long in Java?
- 27. Jak zainicjować typu long bez znaku?
- 28. Jak wydrukowaćf "unsigned long" w C?
- 29. Konwersja wartości oddzielonych przecinkami na listę <Long>
- 30. Wymiar dla geozonów lub Lat i Long w hurtowni danych
Huh? https://www.google.com/search?q=_mm_set_pi64 – Mehrdad
Zobacz "mmintrin.h" –
http://pastebin.com/4bwAbbLZ? – Mehrdad