aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2015-05-22 12:30:13 +0100
committerPeter Maydell <peter.maydell@linaro.org>2015-05-22 12:30:13 +0100
commitf5790c3bc81702c98c7ddadedb274758cff8cbe7 (patch)
treef07545c8ffc9ef71f0de6ab5e0de9a44c51c3fe2
parent27e1259a69c49ee2dd53385f4ca4ca14b822191d (diff)
Revert "target-alpha: Add vector implementation for CMPBGE"
This reverts commit 32ad48abd74a997220b841e4e913edeb267aa362. Unfortunately the SSE2 code here fails to compile on some versions of gcc: target-alpha/int_helper.c:77:24: error: invalid operands to binary >= (have '__vector(16) unsigned char' and '__vector(16) unsigned char') Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--target-alpha/int_helper.c37
1 files changed, 0 insertions, 37 deletions
diff --git a/target-alpha/int_helper.c b/target-alpha/int_helper.c
index 29e927f53f..74f38cbe7b 100644
--- a/target-alpha/int_helper.c
+++ b/target-alpha/int_helper.c
@@ -60,42 +60,6 @@ uint64_t helper_zap(uint64_t val, uint64_t mask)
uint64_t helper_cmpbge(uint64_t op1, uint64_t op2)
{
-#if defined(__SSE2__)
- uint64_t r;
-
- /* The cmpbge instruction is heavily used in the implementation of
- every string function on Alpha. We can do much better than either
- the default loop below, or even an unrolled version by using the
- native vector support. */
- {
- typedef uint64_t Q __attribute__((vector_size(16)));
- typedef uint8_t B __attribute__((vector_size(16)));
-
- Q q1 = (Q){ op1, 0 };
- Q q2 = (Q){ op2, 0 };
-
- q1 = (Q)((B)q1 >= (B)q2);
-
- r = q1[0];
- }
-
- /* Select only one bit from each byte. */
- r &= 0x0101010101010101;
-
- /* Collect the bits into the bottom byte. */
- /* .......A.......B.......C.......D.......E.......F.......G.......H */
- r |= r >> (8 - 1);
-
- /* .......A......AB......BC......CD......DE......EF......FG......GH */
- r |= r >> (16 - 2);
-
- /* .......A......AB.....ABC....ABCD....BCDE....CDEF....DEFG....EFGH */
- r |= r >> (32 - 4);
-
- /* .......A......AB.....ABC....ABCD...ABCDE..ABCDEF.ABCDEFGABCDEFGH */
- /* Return only the low 8 bits. */
- return r & 0xff;
-#else
uint8_t opa, opb, res;
int i;
@@ -108,7 +72,6 @@ uint64_t helper_cmpbge(uint64_t op1, uint64_t op2)
}
}
return res;
-#endif
}
uint64_t helper_minub8(uint64_t op1, uint64_t op2)