Skip to content

Commit 73c4c32

Browse files
committed
[X86] Use __builtin_bit_cast _mm_extract_ps instead of type punning through a union. NFC
1 parent 918dad5 commit 73c4c32

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

clang/lib/Headers/smmintrin.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -865,10 +865,8 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
865865
/// 10: Bits [95:64] of parameter \a X are returned. \n
866866
/// 11: Bits [127:96] of parameter \a X are returned.
867867
/// \returns A 32-bit integer containing the extracted 32 bits of float data.
868-
#define _mm_extract_ps(X, N) (__extension__ \
869-
({ union { int __i; float __f; } __t; \
870-
__t.__f = __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)); \
871-
__t.__i;}))
868+
#define _mm_extract_ps(X, N) \
869+
__builtin_bit_cast(int, __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)))
872870

873871
/* Miscellaneous insert and extract macros. */
874872
/* Extract a single-precision float from X at index N into D. */

0 commit comments

Comments
 (0)