[PATCH v2] Support ymm rounding control for Intel AVX10.2

Jiang, Haochen haochen.jiang@intel.com
Thu Aug 8 05:56:26 GMT 2024


> @@ -8030,8 +8036,16 @@ check_VecOperands (const insn_template *t)
>  	{
>  	  for (op = 0; op < t->operands; ++op)
>  	    if (i.types[op].bitfield.zmmword)
> -	      break;
> -	  if (op >= t->operands)
> +	      {
> +		i.rounding.ymm = false;
> +		break;
> +	      }
> +	    else if (i.types[op].bitfield.ymmword
> +		     && (is_cpu (t, CpuAVX10_2)
> +			 || maybe_cpu (t, CpuAVX10_2))

Another fix will happen in next version is here. It should only be
maybe_cpu (t, CpuAVX10_2), is_cpu (t, CpuAVX10_2) is redundant.

Thx,
Haochen

> +		     && cpu_arch_flags.bitfield.cpuavx10_2)
> +		i.rounding.ymm = true;
> +	  if (op >= t->operands && i.rounding.ymm == false)
>  	    {
>  	      i.error = operand_size_mismatch;
>  	      return 1;



More information about the Binutils mailing list