OLD | NEW |
1 /* { dg-do compile } */ | 1 /* { dg-do compile } */ |
2 /* { dg-options "-O -msse" } */ | 2 /* { dg-options "-O -msse" } */ |
| 3 /* { dg-require-effective-target sse } */ |
3 | 4 |
4 #include <xmmintrin.h> | 5 #include <xmmintrin.h> |
5 | 6 |
6 typedef unsigned short v4hi __attribute__ ((vector_size (8))); | 7 typedef unsigned short v4hi __attribute__ ((vector_size (8))); |
7 | 8 |
8 int f(unsigned short n) | 9 int f(unsigned short n) |
9 { | 10 { |
10 __m64 vec = (__m64)(v4hi){ 0, 0, 1, n }; | 11 __m64 vec = (__m64)(v4hi){ 0, 0, 1, n }; |
11 __m64 hw = _mm_mulhi_pi16 (vec, vec); | 12 __m64 hw = _mm_mulhi_pi16 (vec, vec); |
12 return _mm_extract_pi16 (hw, 0); | 13 return _mm_extract_pi16 (hw, 0); |
13 } | 14 } |
OLD | NEW |