Hi,
This looks great to me, only one small suggestion, but take it or leave
it I think it's a matter of preference.
On 11/07/2024 22:42, Christophe Lyon wrote:
+ /* No predicate, no suffix. */
if (e.type_suffix (0).integer_p)
if (e.type_suffix (0).unsigned_p)
- code = code_for_mve_q_m (m_unspec_for_m_uint,
m_unspec_for_m_uint, e.vector_mode (0));
+ code = code_for_mve_q (m_unspec_for_uint, m_unspec_for_uint,
mode);
else
- code = code_for_mve_q_m (m_unspec_for_m_sint,
m_unspec_for_m_sint, e.vector_mode (0));
+ code = code_for_mve_q (m_unspec_for_sint, m_unspec_for_sint,
mode);
else
- code = code_for_mve_q_m_f (m_unspec_for_m_fp, e.vector_mode (0));
+ code = code_for_mve_q_f (m_unspec_for_fp, mode);
break;
I'd write this as:
if (e.type_suffix (0).integer_p)
{
int unspec = (e.type_suffix (0).unsigned_p
? m_unspec_for_m_uint
: m_unspec_for_m_sint);
code = code_for_mve_q (unspec, unspec, mode);
}
else
code = code_for_mve_q_f (m_unspec_for_fp, mode);
break;
And same for similar below ofc. I have a slight preference to this as
it makes it clear that both parameters are the same without needing to
make a more difficult visual comparison and it also makes clear what the
difference is between the unsigned_p true or false.
Not a strong opinion here though.