> From: Dipesh Sharma <[email protected]>
> Sent: Monday, July 20, 2026 2:24 AM
>
> diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
> index 234acd7aa21..1583c59db3b 100644
> --- a/gcc/config/i386/sse.md
> +++ b/gcc/config/i386/sse.md
> @@ -270,6 +270,8 @@
> UNSPEC_VCVTBIASPS2BF8S
> UNSPEC_VCVTBIASPS2HF8
> UNSPEC_VCVTBIASPS2HF8S
> + UNSPEC_VCVTBF82PS
> + UNSPEC_VCVTHF82PS
> ])
>
> (define_c_enum "unspecv" [
> @@ -34352,3 +34354,29 @@
>
> "vcvt<biasps2fp8>\t{%2, %1, %0<mask_operand3>|%0<mask_operand3>, %
> 1, %2}"
> [(set_attr "prefix" "evex")
> (set_attr "mode" "V16SF")])
> +
> +;; FP8 to FP32 converts (VCVTBF82PS, VCVTHF82PS)
> +
> +(define_int_iterator UNSPEC_CONVERTFP82PS
> + [UNSPEC_VCVTBF82PS UNSPEC_VCVTHF82PS])
> +
> +(define_int_attr convertfp82ps
> + [(UNSPEC_VCVTBF82PS "bf82ps")
> + (UNSPEC_VCVTHF82PS "hf82ps")])
> +
> +(define_mode_iterator FP82PS_MODE [V4SF V8SF V16SF])
> +
> +(define_mode_attr ssebvecmode_3
> + [(V4SF "V16QI") (V8SF "V16QI") (V16SF "V16QI")])
You don't need these two iter. Simply use VF1_AVX512VL
and V16QI is enough.
> +
> +(define_mode_attr iptrssebvec_3
> + [(V4SF "k") (V8SF "q") (V16SF "")])
> +
> +(define_insn "vcvt<convertfp82ps><mode><mask_name>"
> + [(set (match_operand:FP82PS_MODE 0 "register_operand" "=v")
> + (unspec:FP82PS_MODE
> + [(match_operand:<ssebvecmode_3> 1 "nonimmediate_operand"
> "vm")]
> + UNSPEC_CONVERTFP82PS))]
> + "TARGET_AVX10V2AUX"
> +
> "vcvt<convertfp82ps>\t{%1, %0<mask_operand2>|%0<mask_operand2>,%<i
> ptrssebvec_3>1}"
> + [(set_attr "prefix" "evex")])
Thx,
Haochen