2 /* { dg-require-effective-target sse4 } */
3 /* { dg-options "-O2 -msse4.1" } */
6 #define CHECK_H "sse4_1-check.h"
10 #define TEST sse4_1_test
15 #include <smmintrin.h>
20 int_to_ushort (int iVal
)
26 else if (iVal
> 0xffff)
44 unsigned short s
[NUM
* 2];
48 for (i
= 0; i
< NUM
; i
++)
50 src1
.i
[i
] = i
* i
* sign
;
51 src2
.i
[i
] = (i
+ 20) * sign
;
55 for (i
= 0; i
< NUM
; i
+= 4)
56 dst
.x
[i
/ 4] = _mm_packus_epi32 (src1
.x
[i
/ 4], src2
.x
[i
/ 4]);
58 for (i
= 0; i
< NUM
; i
++)
63 sVal
= int_to_ushort (src1
.i
[i
]);
64 dstIndex
= (i
% 4) + (i
/ 4) * 8;
65 if (sVal
!= dst
.s
[dstIndex
])
68 sVal
= int_to_ushort (src2
.i
[i
]);
70 if (sVal
!= dst
.s
[dstIndex
])