[10/10] x86: drop redundant "prefix_data16" attributes

Message ID a8673f78-d3f7-8418-733a-79d61094a7d4@suse.com
State Accepted
Headers
Series x86: (mainly) "prefix_extra" adjustments |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Jan Beulich Aug. 3, 2023, 8:14 a.m. UTC
  The attribute defaults to 1 for TI-mode insns of type sselog, sselog1,
sseiadd, sseimul, and sseishft.

In *<code>v8hi3 [smaxmin] and *<code>v16qi3 [umaxmin] also drop the
similarly stray "prefix_extra" at this occasion. These two max/min
flavors are encoded in 0f space.

gcc/

	* config/i386/mmx.md (*mmx_pinsrd): Drop "prefix_data16".
	(*mmx_pinsrb): Likewise.
	(*mmx_pextrb): Likewise.
	(*mmx_pextrb_zext): Likewise.
	(mmx_pshufbv8qi3): Likewise.
	(mmx_pshufbv4qi3): Likewise.
	(mmx_pswapdv2si2): Likewise.
	(*pinsrb): Likewise.
	(*pextrb): Likewise.
	(*pextrb_zext): Likewise.
	* config/i386/sse.md (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
	(*sse2_eq<mode>3): Likewise.
	(*sse2_gt<mode>3): Likewise.
	(<sse2p4_1>_pinsr<ssemodesuffix>): Likewise.
	(*vec_extract<mode>): Likewise.
	(*vec_extract<PEXTR_MODE12:mode>_zext): Likewise.
	(*vec_extractv16qi_zext): Likewise.
	(ssse3_ph<plusminus_mnemonic>wv8hi3): Likewise.
	(ssse3_pmaddubsw128): Likewise.
	(*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Likewise.
	(<ssse3_avx2>_pshufb<mode>3<mask_name>): Likewise.
	(<ssse3_avx2>_psign<mode>3): Likewise.
	(<ssse3_avx2>_palignr<mode>): Likewise.
	(*abs<mode>2): Likewise.
	(sse4_2_pcmpestr): Likewise.
	(sse4_2_pcmpestri): Likewise.
	(sse4_2_pcmpestrm): Likewise.
	(sse4_2_pcmpestr_cconly): Likewise.
	(sse4_2_pcmpistr): Likewise.
	(sse4_2_pcmpistri): Likewise.
	(sse4_2_pcmpistrm): Likewise.
	(sse4_2_pcmpistr_cconly): Likewise.
	(vgf2p8affineinvqb_<mode><mask_name>): Likewise.
	(vgf2p8affineqb_<mode><mask_name>): Likewise.
	(vgf2p8mulb_<mode><mask_name>): Likewise.
	(*<code>v8hi3 [smaxmin]): Drop "prefix_data16" and
	"prefix_extra".
	(*<code>v16qi3 [umaxmin]): Likewise.
  

Comments

Hongtao Liu Aug. 4, 2023, 1:58 a.m. UTC | #1
On Thu, Aug 3, 2023 at 4:17 PM Jan Beulich via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> The attribute defaults to 1 for TI-mode insns of type sselog, sselog1,
> sseiadd, sseimul, and sseishft.
>
> In *<code>v8hi3 [smaxmin] and *<code>v16qi3 [umaxmin] also drop the
> similarly stray "prefix_extra" at this occasion. These two max/min
> flavors are encoded in 0f space.
Ok.
>
> gcc/
>
>         * config/i386/mmx.md (*mmx_pinsrd): Drop "prefix_data16".
>         (*mmx_pinsrb): Likewise.
>         (*mmx_pextrb): Likewise.
>         (*mmx_pextrb_zext): Likewise.
>         (mmx_pshufbv8qi3): Likewise.
>         (mmx_pshufbv4qi3): Likewise.
>         (mmx_pswapdv2si2): Likewise.
>         (*pinsrb): Likewise.
>         (*pextrb): Likewise.
>         (*pextrb_zext): Likewise.
>         * config/i386/sse.md (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
>         (*sse2_eq<mode>3): Likewise.
>         (*sse2_gt<mode>3): Likewise.
>         (<sse2p4_1>_pinsr<ssemodesuffix>): Likewise.
>         (*vec_extract<mode>): Likewise.
>         (*vec_extract<PEXTR_MODE12:mode>_zext): Likewise.
>         (*vec_extractv16qi_zext): Likewise.
>         (ssse3_ph<plusminus_mnemonic>wv8hi3): Likewise.
>         (ssse3_pmaddubsw128): Likewise.
>         (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Likewise.
>         (<ssse3_avx2>_pshufb<mode>3<mask_name>): Likewise.
>         (<ssse3_avx2>_psign<mode>3): Likewise.
>         (<ssse3_avx2>_palignr<mode>): Likewise.
>         (*abs<mode>2): Likewise.
>         (sse4_2_pcmpestr): Likewise.
>         (sse4_2_pcmpestri): Likewise.
>         (sse4_2_pcmpestrm): Likewise.
>         (sse4_2_pcmpestr_cconly): Likewise.
>         (sse4_2_pcmpistr): Likewise.
>         (sse4_2_pcmpistri): Likewise.
>         (sse4_2_pcmpistrm): Likewise.
>         (sse4_2_pcmpistr_cconly): Likewise.
>         (vgf2p8affineinvqb_<mode><mask_name>): Likewise.
>         (vgf2p8affineqb_<mode><mask_name>): Likewise.
>         (vgf2p8mulb_<mode><mask_name>): Likewise.
>         (*<code>v8hi3 [smaxmin]): Drop "prefix_data16" and
>         "prefix_extra".
>         (*<code>v16qi3 [umaxmin]): Likewise.
>
> --- a/gcc/config/i386/mmx.md
> +++ b/gcc/config/i386/mmx.md
> @@ -3863,7 +3863,6 @@
>      }
>  }
>    [(set_attr "isa" "noavx,avx")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "type" "sselog")
>     (set_attr "length_immediate" "1")
> @@ -3950,7 +3949,6 @@
>  }
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sselog")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "orig,vex")
> @@ -4002,7 +4000,6 @@
>     %vpextrb\t{%2, %1, %k0|%k0, %1, %2}
>     %vpextrb\t{%2, %1, %0|%0, %1, %2}"
>    [(set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "maybe_vex")
> @@ -4017,7 +4014,6 @@
>    "TARGET_SSE4_1 && TARGET_MMX_WITH_SSE"
>    "%vpextrb\t{%2, %1, %k0|%k0, %1, %2}"
>    [(set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "maybe_vex")
> @@ -4035,7 +4031,6 @@
>     vpshufb\t{%2, %1, %0|%0, %1, %2}"
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,maybe_evex")
>     (set_attr "btver2_decode" "vector")
> @@ -4053,7 +4048,6 @@
>     vpshufb\t{%2, %1, %0|%0, %1, %2}"
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,maybe_evex")
>     (set_attr "btver2_decode" "vector")
> @@ -4191,7 +4185,6 @@
>     (set_attr "mmx_isa" "native,*")
>     (set_attr "type" "mmxcvt,sselog1")
>     (set_attr "prefix_extra" "1,*")
> -   (set_attr "prefix_data16" "*,1")
>     (set_attr "length_immediate" "*,1")
>     (set_attr "mode" "DI,TI")])
>
> @@ -4531,7 +4524,6 @@
>  }
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sselog")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "orig,vex")
> @@ -4575,7 +4567,6 @@
>     %vpextrb\t{%2, %1, %k0|%k0, %1, %2}
>     %vpextrb\t{%2, %1, %0|%0, %1, %2}"
>    [(set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "maybe_vex")
> @@ -4590,7 +4581,6 @@
>    "TARGET_SSE4_1"
>    "%vpextrb\t{%2, %1, %k0|%k0, %1, %2}"
>    [(set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "maybe_vex")
> --- a/gcc/config/i386/sse.md
> +++ b/gcc/config/i386/sse.md
> @@ -15614,7 +15614,6 @@
>     vpmuldq\t{%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %2}"
>    [(set_attr "isa" "noavx,noavx,avx")
>     (set_attr "type" "sseimul")
> -   (set_attr "prefix_data16" "1,1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,orig,vex")
>     (set_attr "mode" "TI")])
> @@ -16688,8 +16687,6 @@
>     vp<maxmin_int>w\t{%2, %1, %0|%0, %1, %2}"
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sseiadd")
> -   (set_attr "prefix_data16" "1,*")
> -   (set_attr "prefix_extra" "*,1")
>     (set_attr "prefix" "orig,vex")
>     (set_attr "mode" "TI")])
>
> @@ -16772,8 +16769,6 @@
>     vp<maxmin_int>b\t{%2, %1, %0|%0, %1, %2}"
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sseiadd")
> -   (set_attr "prefix_data16" "1,*")
> -   (set_attr "prefix_extra" "*,1")
>     (set_attr "prefix" "orig,vex")
>     (set_attr "mode" "TI")])
>
> @@ -17001,7 +16996,6 @@
>     vpcmpeq<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "ssecmp")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix" "orig,vex")
>     (set_attr "mode" "TI")])
>
> @@ -17063,7 +17057,6 @@
>     vpcmpgt<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "ssecmp")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix" "orig,vex")
>     (set_attr "mode" "TI")])
>
> @@ -18819,12 +18812,6 @@
>             (match_test "GET_MODE_NUNITS (<MODE>mode) == 2"))
>         (const_string "1")
>         (const_string "*")))
> -   (set (attr "prefix_data16")
> -     (if_then_else
> -       (and (not (match_test "TARGET_AVX"))
> -           (match_test "GET_MODE_NUNITS (<MODE>mode) == 8"))
> -       (const_string "1")
> -       (const_string "*")))
>     (set (attr "prefix_extra")
>       (if_then_else
>         (ior (eq_attr "prefix" "evex")
> @@ -19985,7 +19972,6 @@
>     %vpextr<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
>    [(set_attr "isa" "*,sse4")
>     (set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1")
>     (set (attr "prefix_extra")
>       (if_then_else
>         (eq (const_string "<MODE>mode") (const_string "V8HImode"))
> @@ -20006,7 +19992,6 @@
>    "TARGET_SSE2"
>    "%vpextr<PEXTR_MODE12:ssemodesuffix>\t{%2, %1, %k0|%k0, %1, %2}"
>    [(set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1")
>     (set (attr "prefix_extra")
>       (if_then_else
>         (eq (const_string "<PEXTR_MODE12:MODE>mode") (const_string "V8HImode"))
> @@ -20026,7 +20011,6 @@
>    "TARGET_SSE4_1"
>    "%vpextrb\t{%2, %1, %k0|%k0, %1, %2}"
>    [(set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "maybe_vex")
> @@ -21240,7 +21224,6 @@
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sseiadd")
>     (set_attr "atom_unit" "complex")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,vex")
>     (set_attr "mode" "TI")])
> @@ -21511,7 +21494,6 @@
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sseiadd")
>     (set_attr "atom_unit" "simul")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,vex")
>     (set_attr "mode" "TI")])
> @@ -21639,7 +21621,6 @@
>     vpmulhrsw\t{%2, %1, %0<mask_operand4>|%0<mask_operand4>, %1, %2}"
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sseimul")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,maybe_evex")
>     (set_attr "mode" "<sseinsnmode>")])
> @@ -21763,7 +21744,6 @@
>     vpshufb\t{%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %2}"
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,maybe_evex")
>     (set_attr "btver2_decode" "vector")
> @@ -21830,7 +21810,6 @@
>     vpsign<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,vex")
>     (set_attr "mode" "<sseinsnmode>")])
> @@ -21898,7 +21877,6 @@
>    [(set_attr "isa" "noavx,avx")
>     (set_attr "type" "sseishft")
>     (set_attr "atom_unit" "sishuf")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "orig,vex")
> @@ -21992,7 +21970,6 @@
>    "TARGET_SSSE3"
>    "%vpabs<ssemodesuffix>\t{%1, %0|%0, %1}"
>    [(set_attr "type" "sselog1")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "maybe_vex")
>     (set_attr "mode" "<sseinsnmode>")])
> @@ -24244,7 +24221,6 @@
>    DONE;
>  }
>    [(set_attr "type" "sselog")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "memory" "none,load")
> @@ -24270,7 +24246,6 @@
>    "TARGET_SSE4_2"
>    "%vpcmpestri\t{%5, %3, %1|%1, %3, %5}"
>    [(set_attr "type" "sselog")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "maybe_vex")
>     (set_attr "length_immediate" "1")
> @@ -24298,7 +24273,6 @@
>    "TARGET_SSE4_2"
>    "%vpcmpestrm\t{%5, %3, %1|%1, %3, %5}"
>    [(set_attr "type" "sselog")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "maybe_vex")
> @@ -24324,7 +24298,6 @@
>     %vpcmpestri\t{%6, %4, %2|%2, %4, %6}
>     %vpcmpestri\t{%6, %4, %2|%2, %4, %6}"
>    [(set_attr "type" "sselog")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "memory" "none,load,none,load")
> @@ -24379,7 +24352,6 @@
>    DONE;
>  }
>    [(set_attr "type" "sselog")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "memory" "none,load")
> @@ -24401,7 +24373,6 @@
>    "TARGET_SSE4_2"
>    "%vpcmpistri\t{%3, %2, %1|%1, %2, %3}"
>    [(set_attr "type" "sselog")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "maybe_vex")
> @@ -24425,7 +24396,6 @@
>    "TARGET_SSE4_2"
>    "%vpcmpistrm\t{%3, %2, %1|%1, %2, %3}"
>    [(set_attr "type" "sselog")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "prefix" "maybe_vex")
> @@ -24449,7 +24419,6 @@
>     %vpcmpistri\t{%4, %3, %2|%2, %3, %4}
>     %vpcmpistri\t{%4, %3, %2|%2, %3, %4}"
>    [(set_attr "type" "sselog")
> -   (set_attr "prefix_data16" "1")
>     (set_attr "prefix_extra" "1")
>     (set_attr "length_immediate" "1")
>     (set_attr "memory" "none,load,none,load")
> @@ -29268,7 +29237,6 @@
>     gf2p8affineinvqb\t{%3, %2, %0| %0, %2, %3}
>     vgf2p8affineinvqb\t{%3, %2, %1, %0<mask_operand4>| %0<mask_operand4>, %1, %2, %3}"
>    [(set_attr "isa" "noavx,avx")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,maybe_evex")
>     (set_attr "mode" "<sseinsnmode>")])
> @@ -29285,7 +29253,6 @@
>     gf2p8affineqb\t{%3, %2, %0| %0, %2, %3}
>     vgf2p8affineqb\t{%3, %2, %1, %0<mask_operand4>| %0<mask_operand4>, %1, %2, %3}"
>    [(set_attr "isa" "noavx,avx")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,maybe_evex")
>     (set_attr "mode" "<sseinsnmode>")])
> @@ -29301,7 +29268,6 @@
>     gf2p8mulb\t{%2, %0| %0, %2}
>     vgf2p8mulb\t{%2, %1, %0<mask_operand3>| %0<mask_operand3>, %1, %2}"
>    [(set_attr "isa" "noavx,avx")
> -   (set_attr "prefix_data16" "1,*")
>     (set_attr "prefix_extra" "1")
>     (set_attr "prefix" "orig,maybe_evex")
>     (set_attr "mode" "<sseinsnmode>")])
>
  

Patch

--- a/gcc/config/i386/mmx.md
+++ b/gcc/config/i386/mmx.md
@@ -3863,7 +3863,6 @@ 
     }
 }
   [(set_attr "isa" "noavx,avx")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "type" "sselog")
    (set_attr "length_immediate" "1")
@@ -3950,7 +3949,6 @@ 
 }
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sselog")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "orig,vex")
@@ -4002,7 +4000,6 @@ 
    %vpextrb\t{%2, %1, %k0|%k0, %1, %2}
    %vpextrb\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "maybe_vex")
@@ -4017,7 +4014,6 @@ 
   "TARGET_SSE4_1 && TARGET_MMX_WITH_SSE"
   "%vpextrb\t{%2, %1, %k0|%k0, %1, %2}"
   [(set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "maybe_vex")
@@ -4035,7 +4031,6 @@ 
    vpshufb\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,maybe_evex")
    (set_attr "btver2_decode" "vector")
@@ -4053,7 +4048,6 @@ 
    vpshufb\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,maybe_evex")
    (set_attr "btver2_decode" "vector")
@@ -4191,7 +4185,6 @@ 
    (set_attr "mmx_isa" "native,*")
    (set_attr "type" "mmxcvt,sselog1")
    (set_attr "prefix_extra" "1,*")
-   (set_attr "prefix_data16" "*,1")
    (set_attr "length_immediate" "*,1")
    (set_attr "mode" "DI,TI")])
 
@@ -4531,7 +4524,6 @@ 
 }
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sselog")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "orig,vex")
@@ -4575,7 +4567,6 @@ 
    %vpextrb\t{%2, %1, %k0|%k0, %1, %2}
    %vpextrb\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "maybe_vex")
@@ -4590,7 +4581,6 @@ 
   "TARGET_SSE4_1"
   "%vpextrb\t{%2, %1, %k0|%k0, %1, %2}"
   [(set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "maybe_vex")
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -15614,7 +15614,6 @@ 
    vpmuldq\t{%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %2}"
   [(set_attr "isa" "noavx,noavx,avx")
    (set_attr "type" "sseimul")
-   (set_attr "prefix_data16" "1,1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,orig,vex")
    (set_attr "mode" "TI")])
@@ -16688,8 +16687,6 @@ 
    vp<maxmin_int>w\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sseiadd")
-   (set_attr "prefix_data16" "1,*")
-   (set_attr "prefix_extra" "*,1")
    (set_attr "prefix" "orig,vex")
    (set_attr "mode" "TI")])
 
@@ -16772,8 +16769,6 @@ 
    vp<maxmin_int>b\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sseiadd")
-   (set_attr "prefix_data16" "1,*")
-   (set_attr "prefix_extra" "*,1")
    (set_attr "prefix" "orig,vex")
    (set_attr "mode" "TI")])
 
@@ -17001,7 +16996,6 @@ 
    vpcmpeq<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "ssecmp")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix" "orig,vex")
    (set_attr "mode" "TI")])
 
@@ -17063,7 +17057,6 @@ 
    vpcmpgt<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "ssecmp")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix" "orig,vex")
    (set_attr "mode" "TI")])
 
@@ -18819,12 +18812,6 @@ 
 	    (match_test "GET_MODE_NUNITS (<MODE>mode) == 2"))
        (const_string "1")
        (const_string "*")))
-   (set (attr "prefix_data16")
-     (if_then_else
-       (and (not (match_test "TARGET_AVX"))
-	    (match_test "GET_MODE_NUNITS (<MODE>mode) == 8"))
-       (const_string "1")
-       (const_string "*")))
    (set (attr "prefix_extra")
      (if_then_else
        (ior (eq_attr "prefix" "evex")
@@ -19985,7 +19972,6 @@ 
    %vpextr<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "isa" "*,sse4")
    (set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1")
    (set (attr "prefix_extra")
      (if_then_else
        (eq (const_string "<MODE>mode") (const_string "V8HImode"))
@@ -20006,7 +19992,6 @@ 
   "TARGET_SSE2"
   "%vpextr<PEXTR_MODE12:ssemodesuffix>\t{%2, %1, %k0|%k0, %1, %2}"
   [(set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1")
    (set (attr "prefix_extra")
      (if_then_else
        (eq (const_string "<PEXTR_MODE12:MODE>mode") (const_string "V8HImode"))
@@ -20026,7 +20011,6 @@ 
   "TARGET_SSE4_1"
   "%vpextrb\t{%2, %1, %k0|%k0, %1, %2}"
   [(set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "maybe_vex")
@@ -21240,7 +21224,6 @@ 
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sseiadd")
    (set_attr "atom_unit" "complex")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,vex")
    (set_attr "mode" "TI")])
@@ -21511,7 +21494,6 @@ 
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sseiadd")
    (set_attr "atom_unit" "simul")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,vex")
    (set_attr "mode" "TI")])
@@ -21639,7 +21621,6 @@ 
    vpmulhrsw\t{%2, %1, %0<mask_operand4>|%0<mask_operand4>, %1, %2}"
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sseimul")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,maybe_evex")
    (set_attr "mode" "<sseinsnmode>")])
@@ -21763,7 +21744,6 @@ 
    vpshufb\t{%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %2}"
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,maybe_evex")
    (set_attr "btver2_decode" "vector")
@@ -21830,7 +21810,6 @@ 
    vpsign<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,vex")
    (set_attr "mode" "<sseinsnmode>")])
@@ -21898,7 +21877,6 @@ 
   [(set_attr "isa" "noavx,avx")
    (set_attr "type" "sseishft")
    (set_attr "atom_unit" "sishuf")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "orig,vex")
@@ -21992,7 +21970,6 @@ 
   "TARGET_SSSE3"
   "%vpabs<ssemodesuffix>\t{%1, %0|%0, %1}"
   [(set_attr "type" "sselog1")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "maybe_vex")
    (set_attr "mode" "<sseinsnmode>")])
@@ -24244,7 +24221,6 @@ 
   DONE;
 }
   [(set_attr "type" "sselog")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "memory" "none,load")
@@ -24270,7 +24246,6 @@ 
   "TARGET_SSE4_2"
   "%vpcmpestri\t{%5, %3, %1|%1, %3, %5}"
   [(set_attr "type" "sselog")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "maybe_vex")
    (set_attr "length_immediate" "1")
@@ -24298,7 +24273,6 @@ 
   "TARGET_SSE4_2"
   "%vpcmpestrm\t{%5, %3, %1|%1, %3, %5}"
   [(set_attr "type" "sselog")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "maybe_vex")
@@ -24324,7 +24298,6 @@ 
    %vpcmpestri\t{%6, %4, %2|%2, %4, %6}
    %vpcmpestri\t{%6, %4, %2|%2, %4, %6}"
   [(set_attr "type" "sselog")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "memory" "none,load,none,load")
@@ -24379,7 +24352,6 @@ 
   DONE;
 }
   [(set_attr "type" "sselog")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "memory" "none,load")
@@ -24401,7 +24373,6 @@ 
   "TARGET_SSE4_2"
   "%vpcmpistri\t{%3, %2, %1|%1, %2, %3}"
   [(set_attr "type" "sselog")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "maybe_vex")
@@ -24425,7 +24396,6 @@ 
   "TARGET_SSE4_2"
   "%vpcmpistrm\t{%3, %2, %1|%1, %2, %3}"
   [(set_attr "type" "sselog")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "maybe_vex")
@@ -24449,7 +24419,6 @@ 
    %vpcmpistri\t{%4, %3, %2|%2, %3, %4}
    %vpcmpistri\t{%4, %3, %2|%2, %3, %4}"
   [(set_attr "type" "sselog")
-   (set_attr "prefix_data16" "1")
    (set_attr "prefix_extra" "1")
    (set_attr "length_immediate" "1")
    (set_attr "memory" "none,load,none,load")
@@ -29268,7 +29237,6 @@ 
    gf2p8affineinvqb\t{%3, %2, %0| %0, %2, %3}
    vgf2p8affineinvqb\t{%3, %2, %1, %0<mask_operand4>| %0<mask_operand4>, %1, %2, %3}"
   [(set_attr "isa" "noavx,avx")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,maybe_evex")
    (set_attr "mode" "<sseinsnmode>")])
@@ -29285,7 +29253,6 @@ 
    gf2p8affineqb\t{%3, %2, %0| %0, %2, %3}
    vgf2p8affineqb\t{%3, %2, %1, %0<mask_operand4>| %0<mask_operand4>, %1, %2, %3}"
   [(set_attr "isa" "noavx,avx")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,maybe_evex")
    (set_attr "mode" "<sseinsnmode>")])
@@ -29301,7 +29268,6 @@ 
    gf2p8mulb\t{%2, %0| %0, %2}
    vgf2p8mulb\t{%2, %1, %0<mask_operand3>| %0<mask_operand3>, %1, %2}"
   [(set_attr "isa" "noavx,avx")
-   (set_attr "prefix_data16" "1,*")
    (set_attr "prefix_extra" "1")
    (set_attr "prefix" "orig,maybe_evex")
    (set_attr "mode" "<sseinsnmode>")])