Lines Matching refs:vd
121 static bool do_neon_ddda(DisasContext *s, int q, int vd, int vn, int vm, in do_neon_ddda() argument
125 if (((vd | vn | vm) & 0x10) && !dc_isar_feature(aa32_simd_r32, s)) { in do_neon_ddda()
134 if (((vd & 1) * 4 | (vn & 1) * 2 | (vm & 1)) & q) { in do_neon_ddda()
143 tcg_gen_gvec_4_ool(vfp_reg_offset(1, vd), in do_neon_ddda()
146 vfp_reg_offset(1, vd), in do_neon_ddda()
151 static bool do_neon_ddda_env(DisasContext *s, int q, int vd, int vn, int vm, in do_neon_ddda_env() argument
155 if (((vd | vn | vm) & 0x10) && !dc_isar_feature(aa32_simd_r32, s)) { in do_neon_ddda_env()
164 if (((vd & 1) * 4 | (vn & 1) * 2 | (vm & 1)) & q) { in do_neon_ddda_env()
173 tcg_gen_gvec_4_ptr(vfp_reg_offset(1, vd), in do_neon_ddda_env()
176 vfp_reg_offset(1, vd), in do_neon_ddda_env()
182 static bool do_neon_ddda_fpst(DisasContext *s, int q, int vd, int vn, int vm, in do_neon_ddda_fpst() argument
187 if (((vd | vn | vm) & 0x10) && !dc_isar_feature(aa32_simd_r32, s)) { in do_neon_ddda_fpst()
196 if (((vd & 1) * 4 | (vn & 1) * 2 | (vm & 1)) & q) { in do_neon_ddda_fpst()
207 tcg_gen_gvec_4_ptr(vfp_reg_offset(1, vd), in do_neon_ddda_fpst()
210 vfp_reg_offset(1, vd), in do_neon_ddda_fpst()
224 return do_neon_ddda_fpst(s, a->q * 7, a->vd, a->vn, a->vm, a->rot, in trans_VCMLA()
227 return do_neon_ddda_fpst(s, a->q * 7, a->vd, a->vn, a->vm, a->rot, in trans_VCMLA()
244 ((a->vd | a->vn | a->vm) & 0x10)) { in trans_VCADD()
248 if ((a->vn | a->vm | a->vd) & a->q) { in trans_VCADD()
260 tcg_gen_gvec_3_ptr(vfp_reg_offset(1, a->vd), in trans_VCADD()
273 return do_neon_ddda(s, a->q * 7, a->vd, a->vn, a->vm, 0, in trans_VSDOT()
282 return do_neon_ddda(s, a->q * 7, a->vd, a->vn, a->vm, 0, in trans_VUDOT()
291 return do_neon_ddda(s, a->q * 7, a->vd, a->vn, a->vm, 0, in trans_VUSDOT()
300 return do_neon_ddda_env(s, a->q * 7, a->vd, a->vn, a->vm, 0, in trans_VDOT_b16()
314 (a->vd & 0x10)) { in trans_VFML()
318 if (a->vd & a->q) { in trans_VFML()
327 tcg_gen_gvec_3_ptr(vfp_reg_offset(1, a->vd), in trans_VFML()
346 return do_neon_ddda_fpst(s, a->q * 6, a->vd, a->vn, a->vm, data, in trans_VCMLA_scalar()
349 return do_neon_ddda_fpst(s, a->q * 6, a->vd, a->vn, a->vm, data, in trans_VCMLA_scalar()
358 return do_neon_ddda(s, a->q * 6, a->vd, a->vn, a->vm, a->index, in trans_VSDOT_scalar()
367 return do_neon_ddda(s, a->q * 6, a->vd, a->vn, a->vm, a->index, in trans_VUDOT_scalar()
376 return do_neon_ddda(s, a->q * 6, a->vd, a->vn, a->vm, a->index, in trans_VUSDOT_scalar()
385 return do_neon_ddda(s, a->q * 6, a->vd, a->vn, a->vm, a->index, in trans_VSUDOT_scalar()
394 return do_neon_ddda_env(s, a->q * 6, a->vd, a->vn, a->vm, a->index, in trans_VDOT_b16_scal()
408 ((a->vd & 0x10) || (a->q && (a->vn & 0x10)))) { in trans_VFML_scalar()
412 if (a->vd & a->q) { in trans_VFML_scalar()
421 tcg_gen_gvec_3_ptr(vfp_reg_offset(1, a->vd), in trans_VFML_scalar()
481 if (!dc_isar_feature(aa32_simd_r32, s) && (a->vd & 0x10)) { in trans_VLDST_multiple()
547 int tt = a->vd + reg + spacing * xs; in trans_VLDST_multiple()
572 int vd = a->vd; in trans_VLD_all_lanes() local
583 if (!dc_isar_feature(aa32_simd_r32, s) && (a->vd & 0x10)) { in trans_VLD_all_lanes()
636 if ((vd & 1) && vec_size == 16) { in trans_VLD_all_lanes()
641 tcg_gen_gvec_dup_i32(size, neon_full_reg_offset(vd), in trans_VLD_all_lanes()
643 tcg_gen_gvec_mov(0, neon_full_reg_offset(vd + 1), in trans_VLD_all_lanes()
644 neon_full_reg_offset(vd), 8, 8); in trans_VLD_all_lanes()
646 tcg_gen_gvec_dup_i32(size, neon_full_reg_offset(vd), in trans_VLD_all_lanes()
650 vd += stride; in trans_VLD_all_lanes()
666 int vd = a->vd; in trans_VLDST_single() local
675 if (!dc_isar_feature(aa32_simd_r32, s) && (a->vd & 0x10)) { in trans_VLDST_single()
708 if ((vd + a->stride * (nregs - 1)) > 31) { in trans_VLDST_single()
763 neon_store_element(vd, a->reg_idx, a->size, tmp); in trans_VLDST_single()
765 neon_load_element(tmp, vd, a->reg_idx, a->size); in trans_VLDST_single()
768 vd += a->stride; in trans_VLDST_single()
783 int rd_ofs = neon_full_reg_offset(a->vd); in do_3same()
793 ((a->vd | a->vn | a->vm) & 0x10)) { in do_3same()
797 if ((a->vn | a->vm | a->vd) & a->q) { in do_3same()
1062 int rd_ofs = neon_full_reg_offset(a->vd); in do_vector_2sh()
1071 ((a->vd | a->vm) & 0x10)) { in do_vector_2sh()
1075 if ((a->vm | a->vd) & a->q) { in do_vector_2sh()
1121 ((a->vd | a->vm) & 0x10)) { in DO_2SH()
1148 write_neon_element64(rd, a->vd, 0, MO_32); in DO_2SH()
1152 write_neon_element64(rd, a->vd, 1, MO_32); in DO_2SH()
1172 ((a->vd | a->vm) & 0x10)) { in do_2shift_narrow_32()
1215 write_neon_element64(rtmp, a->vd, 0, MO_32); in do_2shift_narrow_32()
1223 write_neon_element64(rtmp, a->vd, 1, MO_32); in do_2shift_narrow_32()
1297 ((a->vd | a->vm) & 0x10)) { in DO_2SN_64()
1301 if (a->vd & 1) { in DO_2SN_64()
1335 write_neon_element64(tmp, a->vd, 0, MO_64); in DO_2SN_64()
1342 write_neon_element64(tmp, a->vd, 1, MO_64); in DO_2SN_64()
1371 int rd_ofs = neon_full_reg_offset(a->vd); in do_fp_2sh()
1387 ((a->vd | a->vm) & 0x10)) { in do_fp_2sh()
1391 if ((a->vm | a->vd) & a->q) { in do_fp_2sh()
1431 if (!dc_isar_feature(aa32_simd_r32, s) && (a->vd & 0x10)) { in DO_FP_2SH()
1435 if (a->vd & a->q) { in DO_FP_2SH()
1443 reg_ofs = neon_full_reg_offset(a->vd); in DO_FP_2SH()
1489 ((a->vd | a->vn | a->vm) & 0x10)) { in do_prewiden_3d()
1498 if ((a->vd & 1) || (src1_mop == MO_UQ && (a->vn & 1))) { in do_prewiden_3d()
1546 write_neon_element64(rn0_64, a->vd, 0, MO_64); in do_prewiden_3d()
1549 write_neon_element64(rn1_64, a->vd, 1, MO_64); in do_prewiden_3d()
1596 ((a->vd | a->vn | a->vm) & 0x10)) { in DO_PREWIDEN()
1632 write_neon_element32(rd0, a->vd, 0, MO_32); in DO_PREWIDEN()
1633 write_neon_element32(rd1, a->vd, 1, MO_32); in DO_PREWIDEN()
1686 ((a->vd | a->vn | a->vm) & 0x10)) { in DO_NARROW_3D()
1695 if (a->vd & 1) { in DO_NARROW_3D()
1719 read_neon_element64(tmp, a->vd, 0, MO_64); in DO_NARROW_3D()
1721 read_neon_element64(tmp, a->vd, 1, MO_64); in DO_NARROW_3D()
1725 write_neon_element64(rd0, a->vd, 0, MO_64); in DO_NARROW_3D()
1726 write_neon_element64(rd1, a->vd, 1, MO_64); in DO_NARROW_3D()
1948 ((a->vd | a->vn | a->vm) & 0x10)) { in trans_VMULL_P_3d()
1952 if (a->vd & 1) { in trans_VMULL_P_3d()
1974 tcg_gen_gvec_3_ool(neon_full_reg_offset(a->vd), in trans_VMULL_P_3d()
2031 ((a->vd | a->vn | a->vm) & 0x10)) { in do_2scalar()
2040 if (a->q && ((a->vd | a->vn) & 1)) { in do_2scalar()
2056 read_neon_element32(rd, a->vd, pass, MO_32); in do_2scalar()
2059 write_neon_element32(tmp, a->vd, pass, MO_32); in do_2scalar()
2117 int rd_ofs = neon_full_reg_offset(a->vd); in do_2scalar_fp_vec()
2129 ((a->vd | a->vn | a->vm) & 0x10)) { in do_2scalar_fp_vec()
2138 if (a->q && ((a->vd | a->vn) & 1)) { in do_2scalar_fp_vec()
2226 ((a->vd | a->vn | a->vm) & 0x10)) { in do_vqrdmlah_2sc()
2235 if (a->q && ((a->vd | a->vn) & 1)) { in do_vqrdmlah_2sc()
2249 read_neon_element32(rd, a->vd, pass, MO_32); in do_vqrdmlah_2sc()
2251 write_neon_element32(rd, a->vd, pass, MO_32); in do_vqrdmlah_2sc()
2297 ((a->vd | a->vn | a->vm) & 0x10)) { in do_2scalar_long()
2306 if (a->vd & 1) { in do_2scalar_long()
2328 read_neon_element64(t64, a->vd, 0, MO_64); in do_2scalar_long()
2330 read_neon_element64(t64, a->vd, 1, MO_64); in do_2scalar_long()
2334 write_neon_element64(rn0_64, a->vd, 0, MO_64); in do_2scalar_long()
2335 write_neon_element64(rn1_64, a->vd, 1, MO_64); in do_2scalar_long()
2442 ((a->vd | a->vn | a->vm) & 0x10)) { in trans_VEXT()
2446 if ((a->vn | a->vm | a->vd) & a->q) { in trans_VEXT()
2469 write_neon_element64(dest, a->vd, 0, MO_64); in trans_VEXT()
2494 write_neon_element64(destright, a->vd, 0, MO_64); in trans_VEXT()
2495 write_neon_element64(destleft, a->vd, 1, MO_64); in trans_VEXT()
2511 ((a->vd | a->vn | a->vm) & 0x10)) { in trans_VTBL()
2530 read_neon_element64(def, a->vd, 0, MO_64); in trans_VTBL()
2538 write_neon_element64(val, a->vd, 0, MO_64); in trans_VTBL()
2550 ((a->vd | a->vm) & 0x10)) { in trans_VDUP_scalar()
2554 if (a->vd & a->q) { in trans_VDUP_scalar()
2562 tcg_gen_gvec_dup_mem(a->size, neon_full_reg_offset(a->vd), in trans_VDUP_scalar()
2581 ((a->vd | a->vm) & 0x10)) { in do_zip_uzp()
2585 if ((a->vd | a->vm) & a->q) { in do_zip_uzp()
2598 pd = vfp_reg_ptr(true, a->vd); in do_zip_uzp()
2651 ((a->vd | a->vm) & 0x10)) { in do_vmovn()
2675 write_neon_element64(rd0, a->vd, 0, MO_32); in do_vmovn()
2676 write_neon_element64(rd1, a->vd, 1, MO_32); in do_vmovn()
2715 ((a->vd | a->vm) & 0x10)) { in DO_VMOVN()
2719 if (a->vd & 1) { in DO_VMOVN()
2740 write_neon_element64(rd, a->vd, 0, MO_64); in DO_VMOVN()
2743 write_neon_element64(rd, a->vd, 1, MO_64); in DO_VMOVN()
2759 ((a->vd | a->vm) & 0x10)) { in trans_VCVT_B16_F32()
2782 write_neon_element32(dst0, a->vd, 0, MO_32); in trans_VCVT_B16_F32()
2783 write_neon_element32(dst1, a->vd, 1, MO_32); in trans_VCVT_B16_F32()
2799 ((a->vd | a->vm) & 0x10)) { in trans_VCVT_F16_F32()
2825 write_neon_element32(tmp2, a->vd, 0, MO_32); in trans_VCVT_F16_F32()
2829 write_neon_element32(tmp3, a->vd, 1, MO_32); in trans_VCVT_F16_F32()
2845 ((a->vd | a->vm) & 0x10)) { in trans_VCVT_F32_F16()
2849 if ((a->vd & 1) || (a->size != 1)) { in trans_VCVT_F32_F16()
2866 write_neon_element32(tmp3, a->vd, 0, MO_32); in trans_VCVT_F32_F16()
2869 write_neon_element32(tmp, a->vd, 1, MO_32); in trans_VCVT_F32_F16()
2872 write_neon_element32(tmp3, a->vd, 2, MO_32); in trans_VCVT_F32_F16()
2875 write_neon_element32(tmp2, a->vd, 3, MO_32); in trans_VCVT_F32_F16()
2882 int rd_ofs = neon_full_reg_offset(a->vd); in do_2misc_vec()
2891 ((a->vd | a->vm) & 0x10)) { in do_2misc_vec()
2899 if ((a->vd | a->vm) & a->q) { in do_2misc_vec()
3019 ((a->vd | a->vm) & 0x10)) { in do_2misc()
3027 if ((a->vd | a->vm) & a->q) { in do_2misc()
3039 write_neon_element32(tmp, a->vd, pass, MO_32); in do_2misc()
3223 ((a->vd | a->vm) & 0x10)) { in DO_VEC_RMODE()
3231 if ((a->vd | a->vm) & a->q) { in DO_VEC_RMODE()
3243 read_neon_element64(rd, a->vd, pass, MO_64); in DO_VEC_RMODE()
3244 write_neon_element64(rm, a->vd, pass, MO_64); in DO_VEC_RMODE()
3296 ((a->vd | a->vm) & 0x10)) { in trans_VTRN()
3300 if ((a->vd | a->vm) & a->q) { in trans_VTRN()
3317 read_neon_element32(tmp2, a->vd, pass + 1, MO_32); in trans_VTRN()
3319 write_neon_element32(tmp, a->vd, pass + 1, MO_32); in trans_VTRN()
3324 read_neon_element32(tmp2, a->vd, pass, MO_32); in trans_VTRN()
3331 write_neon_element32(tmp, a->vd, pass, MO_32); in trans_VTRN()
3342 return do_neon_ddda(s, 7, a->vd, a->vn, a->vm, 0, in trans_VSMMLA()
3351 return do_neon_ddda(s, 7, a->vd, a->vn, a->vm, 0, in trans_VUMMLA()
3360 return do_neon_ddda(s, 7, a->vd, a->vn, a->vm, 0, in trans_VUSMMLA()
3369 return do_neon_ddda_env(s, 7, a->vd, a->vn, a->vm, 0, in trans_VMMLA_b16()
3378 return do_neon_ddda_fpst(s, 7, a->vd, a->vn, a->vm, a->q, FPST_STD, in trans_VFMA_b16()
3387 return do_neon_ddda_fpst(s, 6, a->vd, a->vn, a->vm, in trans_VFMA_b16_scal()