2 // { dg-additional-options "-Wno-psabi" }
4 class AssertionResult {
8 AssertionResult AssertionSuccess();
10 template <typename T1>
11 AssertionResult EXPECT_EQ(const T1& expected, const T1& actual) {
12 if (expected == actual) {
13 return AssertionSuccess();
15 return AssertionSuccess();
20 unsigned char data[16];
23 bool operator== (uuid const& lhs, uuid const& rhs);
25 typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
26 typedef int __v4si __attribute__ ((__vector_size__ (16)));
27 typedef char __v16qi __attribute__ ((__vector_size__ (16)));
28 typedef long long __m128i_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
32 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
33 _mm_loadu_si128 (__m128i_u const *__P)
37 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
38 _mm_cmpeq_epi32 (__m128i __A, __m128i __B)
40 return (__m128i) ((__v4si)__A == (__v4si)__B);
42 extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
43 _mm_movemask_epi8 (__m128i __A)
45 return foo ((__v16qi)__A);
49 __m128i load_unaligned_si128(const unsigned char* p)
51 return _mm_loadu_si128(reinterpret_cast< const __m128i* >(p));
54 inline bool operator== (uuid const& lhs, uuid const& rhs)
56 __m128i mm_left = load_unaligned_si128(lhs.data);
57 __m128i mm_right = load_unaligned_si128(rhs.data);
59 __m128i mm_cmp = _mm_cmpeq_epi32(mm_left, mm_right);
61 return _mm_movemask_epi8(mm_cmp) == 0xFFFF;
66 static const uuid u = uuid();