https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109109

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #4)
> > Another possible way to narrow it down a little bit would be to undo the
> > i386.md hunks from that commit one by one and see which one it is, all the 4
> > changes are optimizations and all of them are independent of each other (any
> > of them dependent on the i386-expand.cc change which shouldn't change
> > anything on its own).
> 
> All right, I was able to revert 3/4 of the hunks in i386.md and the
> problematic one that caused the miscompilation is:
> 
> (define_insn_and_split "*concat<mode><dwi>3_3"
>   [(set (match_operand:<DWI> 0 "nonimmediate_operand" "=ro,r,r,&r")
>       (any_or_plus:<DWI>
>         (ashift:<DWI>
>           (zero_extend:<DWI>
>             (match_operand:DWIH 1 "nonimmediate_operand" "r,m,r,m"))
>           (match_operand:<DWI> 2 "const_int_operand"))
>         (zero_extend:<DWI>
>           (match_operand:DWIH 3 "nonimmediate_operand" "r,r,m,m"))))]
>   "INTVAL (operands[2]) == <MODE_SIZE> * BITS_PER_UNIT"
>   "#"
>   "&& reload_completed"
>   [(clobber (const_int 0))]
> {

Does using only that single hunk vs. no hunk at all narrow down further the
list of changed functions?

Reply via email to