https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64003
--- Comment #2 from dmalcolm at gcc dot gnu.org --- FWIW, line 6236 of i386.md is here: 6229 (define_insn "*subv<mode>4_1" 6230 [(set (reg:CCO FLAGS_REG) 6231 (eq:CCO (minus:<DWI> 6232 (sign_extend:<DWI> 6233 (match_operand:SWI 1 "nonimmediate_operand" "0")) 6234 (match_operand:<DWI> 3 "const_int_operand" "i")) 6235 (sign_extend:<DWI> >>6236 (minus:SWI (match_dup 1) 6237 (match_operand:SWI 2 "x86_64_immediate_operand" 6238 "<i>"))))) 6239 (set (match_operand:SWI 0 "nonimmediate_operand" "=<r>m") 6240 (minus:SWI (match_dup 1) (match_dup 2)))] 6241 "ix86_binary_operator_ok (MINUS, <MODE>mode, operands) 6242 && CONST_INT_P (operands[2]) 6243 && INTVAL (operands[2]) == INTVAL (operands[3])" 6244 "sub{<imodesuffix>}\t{%2, %0|%0, %2}" 6245 [(set_attr "type" "alu") 6246 (set_attr "mode" "<MODE>") 6247 (set (attr "length_immediate") 6248 (cond [(match_test "IN_RANGE (INTVAL (operands[2]), -128, 127)") 6249 (const_string "1") 6250 (match_test "<MODE_SIZE> == 8") 6251 (const_string "4")] 6252 (const_string "<MODE_SIZE>")))])