In the three remaining instances separate "prefix_0f" and "prefix_rep" are what is wanted instead.
gcc/ * config/i386/i386.md (rd<fsgs>base<mode>): Add "prefix_0f" and "prefix_rep". Drop "prefix_extra". (wr<fsgs>base<mode>): Likewise. (ptwrite<mode>): Likewise. --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -25914,7 +25914,8 @@ "TARGET_64BIT && TARGET_FSGSBASE" "rd<fsgs>base\t%0" [(set_attr "type" "other") - (set_attr "prefix_extra" "2")]) + (set_attr "prefix_0f" "1") + (set_attr "prefix_rep" "1")]) (define_insn "wr<fsgs>base<mode>" [(unspec_volatile [(match_operand:SWI48 0 "register_operand" "r")] @@ -25922,7 +25923,8 @@ "TARGET_64BIT && TARGET_FSGSBASE" "wr<fsgs>base\t%0" [(set_attr "type" "other") - (set_attr "prefix_extra" "2")]) + (set_attr "prefix_0f" "1") + (set_attr "prefix_rep" "1")]) (define_insn "ptwrite<mode>" [(unspec_volatile [(match_operand:SWI48 0 "nonimmediate_operand" "rm")] @@ -25930,7 +25932,8 @@ "TARGET_PTWRITE" "ptwrite\t%0" [(set_attr "type" "other") - (set_attr "prefix_extra" "2")]) + (set_attr "prefix_0f" "1") + (set_attr "prefix_rep" "1")]) (define_insn "@rdrand<mode>" [(set (match_operand:SWI248 0 "register_operand" "=r")