2 /* { dg-require-effective-target sse4 } */
3 /* { dg-options "-O2 -msse4.2" } */
5 #include "sse4_2-check.h"
6 #include "sse4_2-pcmpstr.h"
11 (_SIDD_SBYTE_OPS | _SIDD_CMP_RANGES | _SIDD_MASKED_POSITIVE_POLARITY)
13 (_SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY \
14 | _SIDD_MOST_SIGNIFICANT)
16 (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_MASKED_NEGATIVE_POLARITY)
18 (_SIDD_SWORD_OPS | _SIDD_CMP_EQUAL_ORDERED \
19 | _SIDD_MASKED_NEGATIVE_POLARITY | _SIDD_LEAST_SIGNIFICANT)
30 int res, correct, l1, l2;
33 for (i = 0; i < NUM *16; i++)
39 for (i = 0; i < NUM; i++)
44 switch ((rand () % 4))
47 res = _mm_cmpestri (src1.x[i], l1, src2.x[i], l2, IMM_VAL0);
48 correct = cmp_ei (&src1.x[i], l1, &src2.x[i], l2, IMM_VAL0,
53 res = _mm_cmpestri (src1.x[i], l1, src2.x[i], l2, IMM_VAL1);
54 correct = cmp_ei (&src1.x[i], l1, &src2.x[i], l2, IMM_VAL1,
59 res = _mm_cmpestri (src1.x[i], l1, src2.x[i], l2, IMM_VAL2);
60 correct = cmp_ei (&src1.x[i], l1, &src2.x[i], l2, IMM_VAL2,
65 res = _mm_cmpestri (src1.x[i], l1, src2.x[i], l2, IMM_VAL3);
66 correct = cmp_ei (&src1.x[i], l1, &src2.x[i], l2, IMM_VAL3,