Author: Craig Topper Date: 2021-08-14T16:35:55-07:00 New Revision: 73c4c3276720b20525ce9ef5f8e4f0c20fd93862
URL: https://github.com/llvm/llvm-project/commit/73c4c3276720b20525ce9ef5f8e4f0c20fd93862 DIFF: https://github.com/llvm/llvm-project/commit/73c4c3276720b20525ce9ef5f8e4f0c20fd93862.diff LOG: [X86] Use __builtin_bit_cast _mm_extract_ps instead of type punning through a union. NFC Added: Modified: clang/lib/Headers/smmintrin.h Removed: ################################################################################ diff --git a/clang/lib/Headers/smmintrin.h b/clang/lib/Headers/smmintrin.h index 3ee58c9d79370..c55e6dc65c49d 100644 --- a/clang/lib/Headers/smmintrin.h +++ b/clang/lib/Headers/smmintrin.h @@ -865,10 +865,8 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2) /// 10: Bits [95:64] of parameter \a X are returned. \n /// 11: Bits [127:96] of parameter \a X are returned. /// \returns A 32-bit integer containing the extracted 32 bits of float data. -#define _mm_extract_ps(X, N) (__extension__ \ - ({ union { int __i; float __f; } __t; \ - __t.__f = __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)); \ - __t.__i;})) +#define _mm_extract_ps(X, N) \ + __builtin_bit_cast(int, __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N))) /* Miscellaneous insert and extract macros. */ /* Extract a single-precision float from X at index N into D. */ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits