[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 09/20] s390x/tcg: Implement 32/128 bit for VECTOR FP COMPA
From: |
Richard Henderson |
Subject: |
Re: [PATCH v1 09/20] s390x/tcg: Implement 32/128 bit for VECTOR FP COMPARE * |
Date: |
Thu, 1 Oct 2020 11:12:56 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 |
On 9/30/20 9:55 AM, David Hildenbrand wrote:
> -void HELPER(gvec_vfce64)(void *v1, const void *v2, const void *v3,
> - CPUS390XState *env, uint32_t desc)
> -{
> - vfc64(v1, v2, v3, env, false, float64_eq_quiet, GETPC());
> +#define DEF_GVEC_VFCE(BITS)
> \
> +void HELPER(gvec_vfce##BITS)(void *v1, const void *v2, const void *v3,
> \
> + CPUS390XState *env, uint32_t desc)
> \
> +{
> \
> + const bool sq = simd_data(desc);
> \
> +
> \
> + vfc##BITS(v1, v2, v3, env, false,
> \
> + sq ? float##BITS##_eq : float##BITS##_eq_quiet, GETPC());
> \
> }
> +DEF_GVEC_VFCE(32)
> +DEF_GVEC_VFCE(64)
> +DEF_GVEC_VFCE(128)
>
> -void HELPER(gvec_vfce64s)(void *v1, const void *v2, const void *v3,
> - CPUS390XState *env, uint32_t desc)
> -{
> - vfc64(v1, v2, v3, env, true, float64_eq_quiet, GETPC());
> +#define DEF_GVEC_VFCE_S(BITS)
> \
> +void HELPER(gvec_vfce##BITS##s)(void *v1, const void *v2, const void *v3,
> \
> + CPUS390XState *env, uint32_t desc)
> \
> +{
> \
> + const bool sq = simd_data(desc);
> \
> +
> \
> + vfc##BITS(v1, v2, v3, env, true,
> \
> + sq ? float##BITS##_eq : float##BITS##_eq_quiet, GETPC());
> \
> }
> +DEF_GVEC_VFCE_S(32)
> +DEF_GVEC_VFCE_S(64)
>
> -void HELPER(gvec_vfce64_cc)(void *v1, const void *v2, const void *v3,
> - CPUS390XState *env, uint32_t desc)
> -{
> - env->cc_op = vfc64(v1, v2, v3, env, false, float64_eq_quiet, GETPC());
> +#define DEF_GVEC_VFCE_CC(BITS)
> \
> +void HELPER(gvec_vfce##BITS##_cc)(void *v1, const void *v2, const void *v3,
> \
> + CPUS390XState *env, uint32_t desc)
> \
> +{
> \
> + const bool sq = simd_data(desc);
> \
> +
> \
> + env->cc_op = vfc##BITS(v1, v2, v3, env, false,
> \
> + sq ? float##BITS##_eq : float##BITS##_eq_quiet,
> \
> + GETPC());
> \
> }
> +DEF_GVEC_VFCE_CC(32)
> +DEF_GVEC_VFCE_CC(64)
> +DEF_GVEC_VFCE_CC(128)
>
> -void HELPER(gvec_vfce64s_cc)(void *v1, const void *v2, const void *v3,
> - CPUS390XState *env, uint32_t desc)
> -{
> - env->cc_op = vfc64(v1, v2, v3, env, true, float64_eq_quiet, GETPC());
> +#define DEF_GVEC_VFCE_S_CC(BITS)
> \
> +void HELPER(gvec_vfce##BITS##s_cc)(void *v1, const void *v2, const void *v3,
> \
> + CPUS390XState *env, uint32_t desc)
> \
> +{
> \
> + const bool sq = simd_data(desc);
> \
> +
> \
> + env->cc_op = vfc##BITS(v1, v2, v3, env, true,
> \
> + sq ? float##BITS##_eq : float##BITS##_eq_quiet,
> \
> + GETPC());
> \
> }
> +DEF_GVEC_VFCE_S_CC(32)
> +DEF_GVEC_VFCE_S_CC(64)
These macros are at the wrong level. You shouldn't need separate macros for EQ
vs LT, etc.
r~
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH v1 09/20] s390x/tcg: Implement 32/128 bit for VECTOR FP COMPARE *,
Richard Henderson <=