media/libvpx/vpx_ports/emmintrin_compat.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /*
     2  *  Copyright (c) 2012 The WebM project authors. All Rights Reserved.
     3  *
     4  *  Use of this source code is governed by a BSD-style license
     5  *  that can be found in the LICENSE file in the root of the source
     6  *  tree. An additional intellectual property rights grant can be found
     7  *  in the file PATENTS.  All contributing project authors may
     8  *  be found in the AUTHORS file in the root of the source tree.
     9  */
    11 #ifndef VPX_PORTS_EMMINTRIN_COMPAT_H
    12 #define VPX_PORTS_EMMINTRIN_COMPAT_H
    14 #if defined(__GNUC__) && __GNUC__ < 4
    15 /* From emmintrin.h (gcc 4.5.3) */
    16 /* Casts between various SP, DP, INT vector types.  Note that these do no
    17    conversion of values, they just change the type.  */
    18 extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
    19 _mm_castpd_ps(__m128d __A)
    20 {
    21   return (__m128) __A;
    22 }
    24 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
    25 _mm_castpd_si128(__m128d __A)
    26 {
    27   return (__m128i) __A;
    28 }
    30 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
    31 _mm_castps_pd(__m128 __A)
    32 {
    33   return (__m128d) __A;
    34 }
    36 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
    37 _mm_castps_si128(__m128 __A)
    38 {
    39   return (__m128i) __A;
    40 }
    42 extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
    43 _mm_castsi128_ps(__m128i __A)
    44 {
    45   return (__m128) __A;
    46 }
    48 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
    49 _mm_castsi128_pd(__m128i __A)
    50 {
    51   return (__m128d) __A;
    52 }
    53 #endif
    55 #endif

mercurial