| 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 |