Lines Matching +full:low +full:-
12 #include "tcg/tcg-gvec-desc.h"
17 #include "exec/helper-proto.h.inc"
22 #define SET_QC() env->vfp.qc[0] = 1
158 /* For 32-bit elements each segment only contains a single element, so
284 (dest = do_uqrshl_bhs(src1, (int8_t)src2, 8, false, env->vfp.qc))
291 (dest = do_uqrshl_bhs(src1, (int8_t)src2, 16, false, env->vfp.qc)) in NEON_GVEC_VOP2_ENV()
298 (dest = do_uqrshl_bhs(src1, (int8_t)src2, 32, false, env->vfp.qc)) in NEON_GVEC_VOP2_ENV()
304 (dest = do_uqrshl_d(src1, (int8_t)src2, false, env->vfp.qc)) in NEON_GVEC_VOP2_ENV()
311 return do_uqrshl_bhs(val, (int8_t)shift, 32, false, env->vfp.qc); in NEON_GVEC_VOP2_ENV()
316 return do_uqrshl_d(val, (int8_t)shift, false, env->vfp.qc); in HELPER()
320 (dest = do_sqrshl_bhs(src1, (int8_t)src2, 8, false, env->vfp.qc))
327 (dest = do_sqrshl_bhs(src1, (int8_t)src2, 16, false, env->vfp.qc)) in NEON_GVEC_VOP2_ENV()
334 (dest = do_sqrshl_bhs(src1, (int8_t)src2, 32, false, env->vfp.qc)) in NEON_GVEC_VOP2_ENV()
340 (dest = do_sqrshl_d(src1, (int8_t)src2, false, env->vfp.qc)) in NEON_GVEC_VOP2_ENV()
347 return do_sqrshl_bhs(val, (int8_t)shift, 32, false, env->vfp.qc); in NEON_GVEC_VOP2_ENV()
352 return do_sqrshl_d(val, (int8_t)shift, false, env->vfp.qc); in HELPER()
356 (dest = do_suqrshl_bhs(src1, (int8_t)src2, 8, false, env->vfp.qc))
362 (dest = do_suqrshl_bhs(src1, (int8_t)src2, 16, false, env->vfp.qc)) in NEON_GVEC_VOP2i_ENV()
369 return do_suqrshl_bhs(val, (int8_t)shift, 32, false, env->vfp.qc); in NEON_GVEC_VOP2i_ENV()
374 return do_suqrshl_d(val, (int8_t)shift, false, env->vfp.qc); in HELPER()
378 (dest = do_suqrshl_bhs(src1, (int8_t)src2, 32, false, env->vfp.qc))
383 (dest = do_suqrshl_d(src1, (int8_t)src2, false, env->vfp.qc)) in NEON_GVEC_VOP2i_ENV()
388 (dest = do_uqrshl_bhs(src1, (int8_t)src2, 8, true, env->vfp.qc)) in NEON_GVEC_VOP2i_ENV()
394 (dest = do_uqrshl_bhs(src1, (int8_t)src2, 16, true, env->vfp.qc)) in NEON_GVEC_VOP2i_ENV()
400 (dest = do_uqrshl_bhs(src1, (int8_t)src2, 32, true, env->vfp.qc)) in NEON_GVEC_VOP2i_ENV()
405 (dest = do_uqrshl_d(src1, (int8_t)src2, true, env->vfp.qc)) in NEON_GVEC_VOP2i_ENV()
411 return do_uqrshl_bhs(val, (int8_t)shift, 32, true, env->vfp.qc); in NEON_GVEC_VOP2i_ENV()
416 return do_uqrshl_d(val, (int8_t)shift, true, env->vfp.qc); in HELPER()
420 (dest = do_sqrshl_bhs(src1, (int8_t)src2, 8, true, env->vfp.qc))
426 (dest = do_sqrshl_bhs(src1, (int8_t)src2, 16, true, env->vfp.qc)) in NEON_GVEC_VOP2_ENV()
432 (dest = do_sqrshl_bhs(src1, (int8_t)src2, 32, true, env->vfp.qc)) in NEON_GVEC_VOP2_ENV()
437 (dest = do_sqrshl_d(src1, (int8_t)src2, true, env->vfp.qc)) in NEON_GVEC_VOP2_ENV()
443 return do_sqrshl_bhs(val, (int8_t)shift, 32, true, env->vfp.qc); in NEON_GVEC_VOP2_ENV()
448 return do_sqrshl_d(val, (int8_t)shift, true, env->vfp.qc); in HELPER()
469 #define NEON_FN(dest, src1, src2) dest = src1 - src2
479 #define NEON_FN(dest, src1, src2) dest = (src1 & src2) ? -1 : 0
489 for (n = 8; x; n--) in do_clz8()
497 for (n = 16; x; n--) in do_clz16()
510 #define NEON_FN(dest, src, dummy) dest = do_clz8((src < 0) ? ~src : src) - 1
514 #define NEON_FN(dest, src, dummy) dest = do_clz16((src < 0) ? ~src : src) - 1
523 for (count = 32; x; count--) in HELPER()
525 return count - 1; in HELPER()
541 tmp = SIGNBIT - 1; \
567 tmp = SIGNBIT64 - 1; \
580 /* Only the low 32-bits of output are significant. */
587 /* Only the low 32-bits of output are significant. */
619 /* Only the low 32-bits of output are significant. */
647 /* Only the low 32-bits of output are significant. */
671 /* Only the low 32-bits of output are significant. */
695 /* Only the low 32-bits of output are significant. */
699 uint32_t low; in HELPER() local
700 low = x; in HELPER()
701 if (low & 0x80000000) { in HELPER()
702 low = 0; in HELPER()
704 } else if (low > 0xffff) { in HELPER()
705 low = 0xffff; in HELPER()
716 return deposit32(low, 16, 16, high); in HELPER()
719 /* Only the low 32-bits of output are significant. */
723 uint32_t low; in HELPER() local
724 low = x; in HELPER()
725 if (low > 0xffff) { in HELPER()
726 low = 0xffff; in HELPER()
734 return deposit32(low, 16, 16, high); in HELPER()
737 /* Only the low 32-bits of output are significant. */
740 int32_t low; in HELPER() local
742 low = x; in HELPER()
743 if (low != (int16_t)low) { in HELPER()
744 low = (low >> 31) ^ 0x7fff; in HELPER()
752 return deposit32(low, 16, 16, high); in HELPER()
755 /* Only the low 32-bits of output are significant. */
769 /* Only the low 32-bits of output are significant. */
779 /* Only the low 32-bits of output are significant. */
830 * double-width elements in the result (eg _s8 is an 8x8->16 op)
844 tmp1 = (tmp1 - nsignmask) ^ wsignmask; in HELPER()
849 tmp2 = (tmp2 - nsignmask) ^ wsignmask; in HELPER()
875 uint32_t low, high; in HELPER() local
879 low = x + y; in HELPER()
880 if (((low ^ x) & SIGNBIT) && !((x ^ y) & SIGNBIT)) { in HELPER()
882 low = ((int32_t)x >> 31) ^ ~SIGNBIT; in HELPER()
891 return low | ((uint64_t)high << 32); in HELPER()
913 dest = ((tmp_x > tmp_y) ? tmp_x - tmp_y : tmp_y - tmp_x); \
1038 result = (uint16_t)-x; in HELPER()
1039 tmp = -(x >> 16); in HELPER()
1041 tmp = -(x >> 32); in HELPER()
1043 tmp = -(x >> 48); in HELPER()
1050 uint32_t low = -x; in HELPER() local
1051 uint32_t high = -(x >> 32); in HELPER()
1052 return low | ((uint64_t)high << 32); in HELPER()
1062 x = -x; \
1082 x = -x; \
1102 x = -x; \
1120 x = -x; \
1139 x = -x; in HELPER()
1150 x = -x; in HELPER()
1161 x = -x; in HELPER()
1172 x = -x; in HELPER()
1181 * Softfloat routines return 0/1, which we convert to the 0/-1 Neon requires.
1185 return -float32_eq_quiet(make_float32(a), make_float32(b), fpst); in HELPER()
1190 return -float32_le(make_float32(b), make_float32(a), fpst); in HELPER()
1195 return -float32_lt(make_float32(b), make_float32(a), fpst); in HELPER()
1202 return -float32_le(f1, f0, fpst); in HELPER()
1209 return -float32_lt(f1, f0, fpst); in HELPER()
1216 return -float64_le(f1, f0, fpst); in HELPER()
1223 return -float64_lt(f1, f0, fpst); in HELPER()
1226 #define ELEM(V, N, SIZE) (((V) >> ((N) * (SIZE))) & ((1ull << (SIZE)) - 1))