https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104446
--- Comment #5 from Segher Boessenkool <segher at gcc dot gnu.org> --- This testcase is invalid code of course, so anything can happen. ICEs are bad though ;-) Please add to the comment that you don't want this substitution because it leads to ICEs, and mention the PR # in the comment. But better, figure out *why* this ICEs later on: it is perfectly normal for combine to create RTL that is non-sensical but structurally correct, and it should simply not pass recog. This patch avoids the problem, and does not fix it. It would be good to know what the real problem is.