| 172 | #define npyv_cmpgt_s64 _mm_cmpgt_epi64 |
| 173 | #else |
| 174 | NPY_FINLINE __m128i npyv_cmpgt_s64(__m128i a, __m128i b) |
| 175 | { |
| 176 | __m128i sub = _mm_sub_epi64(b, a); |
| 177 | __m128i nsame_sbit = _mm_xor_si128(a, b); |
| 178 | // nsame_sbit ? b : sub |
| 179 | __m128i test = _mm_xor_si128(sub, _mm_and_si128(_mm_xor_si128(sub, b), nsame_sbit)); |
| 180 | __m128i extend_sbit = _mm_shuffle_epi32(_mm_srai_epi32(test, 31), _MM_SHUFFLE(3, 3, 1, 1)); |
| 181 | return extend_sbit; |
| 182 | } |
| 183 | #endif |
| 184 | |
| 185 | // signed greater than or equal |
no outgoing calls
no test coverage detected