Commit b5220972 by H.J. Lu Committed by H.J. Lu

re PR target/35453 (nmmintrin.h defines macros SIDD_XXX)

gcc/

2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/35453
	* config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
	(_SIDD_XXX): This.

gcc/testsuite/

2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/35453
	* gcc.target/i386/sse4_2-pcmpestri-1.c: Replace SIDD_XXX with
	_SIDD_XXX.
	* gcc.target/i386/sse4_2-pcmpestri-2.c: Likewise.
	* gcc.target/i386/sse4_2-pcmpestrm-1.c: Likewise.
	* gcc.target/i386/sse4_2-pcmpestrm-2.c: Likewise.
	* gcc.target/i386/sse4_2-pcmpistri-1.c: Likewise.
	* gcc.target/i386/sse4_2-pcmpistri-2.c: Likewise.
	* gcc.target/i386/sse4_2-pcmpistrm-1.c: Likewise.
	* gcc.target/i386/sse4_2-pcmpistrm-2.c: Likewise.
	* gcc.target/i386/sse4_2-pcmpstr.h: Likewise.

From-SVN: r132867
parent 74dd418c
2008-03-04 H.J. Lu <hongjiu.lu@intel.com>
PR target/35453
* config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
(_SIDD_XXX): This.
2008-03-04 Rafael Espindola <espindola@google.com> 2008-03-04 Rafael Espindola <espindola@google.com>
* fold-const.c (tree_unary_nonzero_warnv_p): New. * fold-const.c (tree_unary_nonzero_warnv_p): New.
......
...@@ -470,30 +470,30 @@ _mm_stream_load_si128 (__m128i *__X) ...@@ -470,30 +470,30 @@ _mm_stream_load_si128 (__m128i *__X)
#ifdef __SSE4_2__ #ifdef __SSE4_2__
/* These macros specify the source data format. */ /* These macros specify the source data format. */
#define SIDD_UBYTE_OPS 0x00 #define _SIDD_UBYTE_OPS 0x00
#define SIDD_UWORD_OPS 0x01 #define _SIDD_UWORD_OPS 0x01
#define SIDD_SBYTE_OPS 0x02 #define _SIDD_SBYTE_OPS 0x02
#define SIDD_SWORD_OPS 0x03 #define _SIDD_SWORD_OPS 0x03
/* These macros specify the comparison operation. */ /* These macros specify the comparison operation. */
#define SIDD_CMP_EQUAL_ANY 0x00 #define _SIDD_CMP_EQUAL_ANY 0x00
#define SIDD_CMP_RANGES 0x04 #define _SIDD_CMP_RANGES 0x04
#define SIDD_CMP_EQUAL_EACH 0x08 #define _SIDD_CMP_EQUAL_EACH 0x08
#define SIDD_CMP_EQUAL_ORDERED 0x0c #define _SIDD_CMP_EQUAL_ORDERED 0x0c
/* These macros specify the the polarity. */ /* These macros specify the the polarity. */
#define SIDD_POSITIVE_POLARITY 0x00 #define _SIDD_POSITIVE_POLARITY 0x00
#define SIDD_NEGATIVE_POLARITY 0x10 #define _SIDD_NEGATIVE_POLARITY 0x10
#define SIDD_MASKED_POSITIVE_POLARITY 0x20 #define _SIDD_MASKED_POSITIVE_POLARITY 0x20
#define SIDD_MASKED_NEGATIVE_POLARITY 0x30 #define _SIDD_MASKED_NEGATIVE_POLARITY 0x30
/* These macros specify the output selection in _mm_cmpXstri (). */ /* These macros specify the output selection in _mm_cmpXstri (). */
#define SIDD_LEAST_SIGNIFICANT 0x00 #define _SIDD_LEAST_SIGNIFICANT 0x00
#define SIDD_MOST_SIGNIFICANT 0x40 #define _SIDD_MOST_SIGNIFICANT 0x40
/* These macros specify the output selection in _mm_cmpXstrm (). */ /* These macros specify the output selection in _mm_cmpXstrm (). */
#define SIDD_BIT_MASK 0x00 #define _SIDD_BIT_MASK 0x00
#define SIDD_UNIT_MASK 0x40 #define _SIDD_UNIT_MASK 0x40
/* Intrinsics for text/string processing. */ /* Intrinsics for text/string processing. */
......
2008-03-04 H.J. Lu <hongjiu.lu@intel.com>
PR target/35453
* gcc.target/i386/sse4_2-pcmpestri-1.c: Replace SIDD_XXX with
_SIDD_XXX.
* gcc.target/i386/sse4_2-pcmpestri-2.c: Likewise.
* gcc.target/i386/sse4_2-pcmpestrm-1.c: Likewise.
* gcc.target/i386/sse4_2-pcmpestrm-2.c: Likewise.
* gcc.target/i386/sse4_2-pcmpistri-1.c: Likewise.
* gcc.target/i386/sse4_2-pcmpistri-2.c: Likewise.
* gcc.target/i386/sse4_2-pcmpistrm-1.c: Likewise.
* gcc.target/i386/sse4_2-pcmpistrm-2.c: Likewise.
* gcc.target/i386/sse4_2-pcmpstr.h: Likewise.
2008-03-04 Uros Bizjak <ubizjak@gmail.com> 2008-03-04 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/35456 PR middle-end/35456
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
#define NUM 1024 #define NUM 1024
#define IMM_VAL0 \ #define IMM_VAL0 \
(SIDD_SBYTE_OPS | SIDD_CMP_RANGES | SIDD_MASKED_POSITIVE_POLARITY) (_SIDD_SBYTE_OPS | _SIDD_CMP_RANGES | _SIDD_MASKED_POSITIVE_POLARITY)
#define IMM_VAL1 \ #define IMM_VAL1 \
(SIDD_UBYTE_OPS | SIDD_CMP_EQUAL_EACH | SIDD_NEGATIVE_POLARITY \ (_SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY \
| SIDD_MOST_SIGNIFICANT) | _SIDD_MOST_SIGNIFICANT)
#define IMM_VAL2 \ #define IMM_VAL2 \
(SIDD_UWORD_OPS | SIDD_CMP_EQUAL_ANY | SIDD_MASKED_NEGATIVE_POLARITY) (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_MASKED_NEGATIVE_POLARITY)
#define IMM_VAL3 \ #define IMM_VAL3 \
(SIDD_SWORD_OPS | SIDD_CMP_EQUAL_ORDERED \ (_SIDD_SWORD_OPS | _SIDD_CMP_EQUAL_ORDERED \
| SIDD_MASKED_NEGATIVE_POLARITY | SIDD_LEAST_SIGNIFICANT) | _SIDD_MASKED_NEGATIVE_POLARITY | _SIDD_LEAST_SIGNIFICANT)
static void static void
......
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
#define NUM 1024 #define NUM 1024
#define IMM_VAL0 \ #define IMM_VAL0 \
(SIDD_SBYTE_OPS | SIDD_CMP_RANGES | SIDD_MASKED_POSITIVE_POLARITY) (_SIDD_SBYTE_OPS | _SIDD_CMP_RANGES | _SIDD_MASKED_POSITIVE_POLARITY)
#define IMM_VAL1 \ #define IMM_VAL1 \
(SIDD_UBYTE_OPS | SIDD_CMP_EQUAL_EACH | SIDD_NEGATIVE_POLARITY \ (_SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY \
| SIDD_MOST_SIGNIFICANT) | _SIDD_MOST_SIGNIFICANT)
#define IMM_VAL2 \ #define IMM_VAL2 \
(SIDD_UWORD_OPS | SIDD_CMP_EQUAL_ANY | SIDD_MASKED_NEGATIVE_POLARITY) (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_MASKED_NEGATIVE_POLARITY)
#define IMM_VAL3 \ #define IMM_VAL3 \
(SIDD_SWORD_OPS | SIDD_CMP_EQUAL_ORDERED \ (_SIDD_SWORD_OPS | _SIDD_CMP_EQUAL_ORDERED \
| SIDD_MASKED_NEGATIVE_POLARITY | SIDD_LEAST_SIGNIFICANT) | _SIDD_MASKED_NEGATIVE_POLARITY | _SIDD_LEAST_SIGNIFICANT)
static void static void
......
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
#define NUM 1024 #define NUM 1024
#define IMM_VAL0 \ #define IMM_VAL0 \
(SIDD_SBYTE_OPS | SIDD_CMP_RANGES | SIDD_MASKED_POSITIVE_POLARITY) (_SIDD_SBYTE_OPS | _SIDD_CMP_RANGES | _SIDD_MASKED_POSITIVE_POLARITY)
#define IMM_VAL1 \ #define IMM_VAL1 \
(SIDD_UBYTE_OPS | SIDD_CMP_EQUAL_EACH | SIDD_NEGATIVE_POLARITY \ (_SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY \
| SIDD_BIT_MASK) | _SIDD_BIT_MASK)
#define IMM_VAL2 \ #define IMM_VAL2 \
(SIDD_UWORD_OPS | SIDD_CMP_EQUAL_ANY | SIDD_MASKED_NEGATIVE_POLARITY) (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_MASKED_NEGATIVE_POLARITY)
#define IMM_VAL3 \ #define IMM_VAL3 \
(SIDD_SWORD_OPS | SIDD_CMP_EQUAL_ORDERED \ (_SIDD_SWORD_OPS | _SIDD_CMP_EQUAL_ORDERED \
| SIDD_MASKED_NEGATIVE_POLARITY | SIDD_UNIT_MASK) | _SIDD_MASKED_NEGATIVE_POLARITY | _SIDD_UNIT_MASK)
static void static void
......
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
#define NUM 1024 #define NUM 1024
#define IMM_VAL0 \ #define IMM_VAL0 \
(SIDD_SBYTE_OPS | SIDD_CMP_RANGES | SIDD_MASKED_POSITIVE_POLARITY) (_SIDD_SBYTE_OPS | _SIDD_CMP_RANGES | _SIDD_MASKED_POSITIVE_POLARITY)
#define IMM_VAL1 \ #define IMM_VAL1 \
(SIDD_UBYTE_OPS | SIDD_CMP_EQUAL_EACH | SIDD_NEGATIVE_POLARITY \ (_SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY \
| SIDD_BIT_MASK) | _SIDD_BIT_MASK)
#define IMM_VAL2 \ #define IMM_VAL2 \
(SIDD_UWORD_OPS | SIDD_CMP_EQUAL_ANY | SIDD_NEGATIVE_POLARITY) (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_NEGATIVE_POLARITY)
#define IMM_VAL3 \ #define IMM_VAL3 \
(SIDD_SWORD_OPS | SIDD_CMP_EQUAL_ORDERED \ (_SIDD_SWORD_OPS | _SIDD_CMP_EQUAL_ORDERED \
| SIDD_MASKED_NEGATIVE_POLARITY | SIDD_UNIT_MASK) | _SIDD_MASKED_NEGATIVE_POLARITY | _SIDD_UNIT_MASK)
static void static void
sse4_2_test (void) sse4_2_test (void)
......
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
#define NUM 1024 #define NUM 1024
#define IMM_VAL0 \ #define IMM_VAL0 \
(SIDD_SBYTE_OPS | SIDD_CMP_RANGES | SIDD_MASKED_POSITIVE_POLARITY) (_SIDD_SBYTE_OPS | _SIDD_CMP_RANGES | _SIDD_MASKED_POSITIVE_POLARITY)
#define IMM_VAL1 \ #define IMM_VAL1 \
(SIDD_UBYTE_OPS | SIDD_CMP_EQUAL_EACH | SIDD_NEGATIVE_POLARITY \ (_SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY \
| SIDD_MOST_SIGNIFICANT) | _SIDD_MOST_SIGNIFICANT)
#define IMM_VAL2 \ #define IMM_VAL2 \
(SIDD_UWORD_OPS | SIDD_CMP_EQUAL_ANY | SIDD_MASKED_NEGATIVE_POLARITY) (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_MASKED_NEGATIVE_POLARITY)
#define IMM_VAL3 \ #define IMM_VAL3 \
(SIDD_SWORD_OPS | SIDD_CMP_EQUAL_ORDERED \ (_SIDD_SWORD_OPS | _SIDD_CMP_EQUAL_ORDERED \
| SIDD_MASKED_NEGATIVE_POLARITY | SIDD_MOST_SIGNIFICANT) | _SIDD_MASKED_NEGATIVE_POLARITY | _SIDD_MOST_SIGNIFICANT)
static void static void
......
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
#define NUM 1024 #define NUM 1024
#define IMM_VAL0 \ #define IMM_VAL0 \
(SIDD_SBYTE_OPS | SIDD_CMP_RANGES | SIDD_MASKED_POSITIVE_POLARITY) (_SIDD_SBYTE_OPS | _SIDD_CMP_RANGES | _SIDD_MASKED_POSITIVE_POLARITY)
#define IMM_VAL1 \ #define IMM_VAL1 \
(SIDD_UBYTE_OPS | SIDD_CMP_EQUAL_EACH | SIDD_NEGATIVE_POLARITY \ (_SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY \
| SIDD_MOST_SIGNIFICANT) | _SIDD_MOST_SIGNIFICANT)
#define IMM_VAL2 \ #define IMM_VAL2 \
(SIDD_UWORD_OPS | SIDD_CMP_EQUAL_ANY | SIDD_MASKED_NEGATIVE_POLARITY) (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_MASKED_NEGATIVE_POLARITY)
#define IMM_VAL3 \ #define IMM_VAL3 \
(SIDD_SWORD_OPS | SIDD_CMP_EQUAL_ORDERED \ (_SIDD_SWORD_OPS | _SIDD_CMP_EQUAL_ORDERED \
| SIDD_MASKED_NEGATIVE_POLARITY | SIDD_MOST_SIGNIFICANT) | _SIDD_MASKED_NEGATIVE_POLARITY | _SIDD_MOST_SIGNIFICANT)
static void static void
......
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
#define NUM 1024 #define NUM 1024
#define IMM_VAL0 \ #define IMM_VAL0 \
(SIDD_SBYTE_OPS | SIDD_CMP_RANGES | SIDD_MASKED_POSITIVE_POLARITY) (_SIDD_SBYTE_OPS | _SIDD_CMP_RANGES | _SIDD_MASKED_POSITIVE_POLARITY)
#define IMM_VAL1 \ #define IMM_VAL1 \
(SIDD_UBYTE_OPS | SIDD_CMP_EQUAL_EACH | SIDD_NEGATIVE_POLARITY \ (_SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY \
| SIDD_BIT_MASK) | _SIDD_BIT_MASK)
#define IMM_VAL2 \ #define IMM_VAL2 \
(SIDD_UWORD_OPS | SIDD_CMP_EQUAL_ANY | SIDD_MASKED_NEGATIVE_POLARITY) (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_MASKED_NEGATIVE_POLARITY)
#define IMM_VAL3 \ #define IMM_VAL3 \
(SIDD_SWORD_OPS | SIDD_CMP_EQUAL_ORDERED \ (_SIDD_SWORD_OPS | _SIDD_CMP_EQUAL_ORDERED \
| SIDD_MASKED_NEGATIVE_POLARITY | SIDD_UNIT_MASK) | _SIDD_MASKED_NEGATIVE_POLARITY | _SIDD_UNIT_MASK)
static void static void
......
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
#define NUM 1024 #define NUM 1024
#define IMM_VAL0 \ #define IMM_VAL0 \
(SIDD_SBYTE_OPS | SIDD_CMP_RANGES | SIDD_MASKED_POSITIVE_POLARITY) (_SIDD_SBYTE_OPS | _SIDD_CMP_RANGES | _SIDD_MASKED_POSITIVE_POLARITY)
#define IMM_VAL1 \ #define IMM_VAL1 \
(SIDD_UBYTE_OPS | SIDD_CMP_EQUAL_EACH | SIDD_NEGATIVE_POLARITY \ (_SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_EACH | _SIDD_NEGATIVE_POLARITY \
| SIDD_BIT_MASK) | _SIDD_BIT_MASK)
#define IMM_VAL2 \ #define IMM_VAL2 \
(SIDD_UWORD_OPS | SIDD_CMP_EQUAL_ANY | SIDD_MASKED_NEGATIVE_POLARITY) (_SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_MASKED_NEGATIVE_POLARITY)
#define IMM_VAL3 \ #define IMM_VAL3 \
(SIDD_SWORD_OPS | SIDD_CMP_EQUAL_ORDERED \ (_SIDD_SWORD_OPS | _SIDD_CMP_EQUAL_ORDERED \
| SIDD_POSITIVE_POLARITY | SIDD_UNIT_MASK) | _SIDD_POSITIVE_POLARITY | _SIDD_UNIT_MASK)
static void static void
sse4_2_test (void) sse4_2_test (void)
......
...@@ -42,14 +42,14 @@ override_invalid (unsigned char res[16][16], int la, int lb, ...@@ -42,14 +42,14 @@ override_invalid (unsigned char res[16][16], int la, int lb,
else if (i >= la) else if (i >= la)
switch ((mode & 0x0C)) switch ((mode & 0x0C))
{ {
case SIDD_CMP_EQUAL_ANY: case _SIDD_CMP_EQUAL_ANY:
case SIDD_CMP_RANGES: case _SIDD_CMP_RANGES:
res[j][i] = 0; res[j][i] = 0;
break; break;
case SIDD_CMP_EQUAL_EACH: case _SIDD_CMP_EQUAL_EACH:
res[j][i] = (j >= lb) ? 1: 0; res[j][i] = (j >= lb) ? 1: 0;
break; break;
case SIDD_CMP_EQUAL_ORDERED: case _SIDD_CMP_EQUAL_ORDERED:
res[j][i] = 1; res[j][i] = 1;
break; break;
} }
...@@ -73,8 +73,8 @@ calc_matrix (__m128i a, int la, __m128i b, int lb, const int mode, ...@@ -73,8 +73,8 @@ calc_matrix (__m128i a, int la, __m128i b, int lb, const int mode,
switch ((mode & 3)) switch ((mode & 3))
{ {
case SIDD_UBYTE_OPS: case _SIDD_UBYTE_OPS:
if ((mode & 0x0C) == SIDD_CMP_RANGES) if ((mode & 0x0C) == _SIDD_CMP_RANGES)
{ {
PCMPSTR_RNG (d.uc, s.uc, res); PCMPSTR_RNG (d.uc, s.uc, res);
} }
...@@ -83,8 +83,8 @@ calc_matrix (__m128i a, int la, __m128i b, int lb, const int mode, ...@@ -83,8 +83,8 @@ calc_matrix (__m128i a, int la, __m128i b, int lb, const int mode,
PCMPSTR_EQ (d.uc, s.uc, res); PCMPSTR_EQ (d.uc, s.uc, res);
} }
break; break;
case SIDD_UWORD_OPS: case _SIDD_UWORD_OPS:
if ((mode & 0x0C) == SIDD_CMP_RANGES) if ((mode & 0x0C) == _SIDD_CMP_RANGES)
{ {
PCMPSTR_RNG (d.us, s.us, res); PCMPSTR_RNG (d.us, s.us, res);
} }
...@@ -93,8 +93,8 @@ calc_matrix (__m128i a, int la, __m128i b, int lb, const int mode, ...@@ -93,8 +93,8 @@ calc_matrix (__m128i a, int la, __m128i b, int lb, const int mode,
PCMPSTR_EQ (d.us, s.us, res); PCMPSTR_EQ (d.us, s.us, res);
} }
break; break;
case SIDD_SBYTE_OPS: case _SIDD_SBYTE_OPS:
if ((mode & 0x0C) == SIDD_CMP_RANGES) if ((mode & 0x0C) == _SIDD_CMP_RANGES)
{ {
PCMPSTR_RNG (d.sc, s.sc, res); PCMPSTR_RNG (d.sc, s.sc, res);
} }
...@@ -103,8 +103,8 @@ calc_matrix (__m128i a, int la, __m128i b, int lb, const int mode, ...@@ -103,8 +103,8 @@ calc_matrix (__m128i a, int la, __m128i b, int lb, const int mode,
PCMPSTR_EQ (d.sc, s.sc, res); PCMPSTR_EQ (d.sc, s.sc, res);
} }
break; break;
case SIDD_SWORD_OPS: case _SIDD_SWORD_OPS:
if ((mode & 0x0C) == SIDD_CMP_RANGES) if ((mode & 0x0C) == _SIDD_CMP_RANGES)
{ {
PCMPSTR_RNG (d.ss, s.ss, res); PCMPSTR_RNG (d.ss, s.ss, res);
} }
...@@ -144,27 +144,27 @@ calc_res (__m128i a, int la, __m128i b, int lb, const int mode) ...@@ -144,27 +144,27 @@ calc_res (__m128i a, int la, __m128i b, int lb, const int mode)
switch ((mode & 0x0C)) switch ((mode & 0x0C))
{ {
case SIDD_CMP_EQUAL_ANY: case _SIDD_CMP_EQUAL_ANY:
for (i = 0; i < dim; i++) for (i = 0; i < dim; i++)
for (j = 0; j < dim; j++) for (j = 0; j < dim; j++)
if (mtx[i][j]) if (mtx[i][j])
res |= (1 << i); res |= (1 << i);
break; break;
case SIDD_CMP_RANGES: case _SIDD_CMP_RANGES:
for (i = 0; i < dim; i += 2) for (i = 0; i < dim; i += 2)
for(j = 0; j < dim; j++) for(j = 0; j < dim; j++)
if (mtx[j][i] && mtx[j][i+1]) if (mtx[j][i] && mtx[j][i+1])
res |= (1 << j); res |= (1 << j);
break; break;
case SIDD_CMP_EQUAL_EACH: case _SIDD_CMP_EQUAL_EACH:
for(i = 0; i < dim; i++) for(i = 0; i < dim; i++)
if (mtx[i][i]) if (mtx[i][i])
res |= (1 << i); res |= (1 << i);
break; break;
case SIDD_CMP_EQUAL_ORDERED: case _SIDD_CMP_EQUAL_ORDERED:
for(i = 0; i < dim; i++) for(i = 0; i < dim; i++)
{ {
unsigned char val = 1; unsigned char val = 1;
...@@ -182,15 +182,15 @@ calc_res (__m128i a, int la, __m128i b, int lb, const int mode) ...@@ -182,15 +182,15 @@ calc_res (__m128i a, int la, __m128i b, int lb, const int mode)
switch ((mode & 0x30)) switch ((mode & 0x30))
{ {
case SIDD_POSITIVE_POLARITY: case _SIDD_POSITIVE_POLARITY:
case SIDD_MASKED_POSITIVE_POLARITY: case _SIDD_MASKED_POSITIVE_POLARITY:
break; break;
case SIDD_NEGATIVE_POLARITY: case _SIDD_NEGATIVE_POLARITY:
res ^= -1; res ^= -1;
break; break;
case SIDD_MASKED_NEGATIVE_POLARITY: case _SIDD_MASKED_NEGATIVE_POLARITY:
for (i = 0; i < lb; i++) for (i = 0; i < lb; i++)
if (res & (1 << i)) if (res & (1 << i))
res &= ~(1 << i); res &= ~(1 << i);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment