Message ID | 3a6b06fcc73987f8a544b13a382aad21df2d097e.1518737408.git.segher@kernel.crashing.org |
---|---|
State | New |
Headers | show |
Series | combine: Fix problem with RTL checking | expand |
diff --git a/gcc/combine.c b/gcc/combine.c index c386f3a..cd4aaa4 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -4379,7 +4379,12 @@ if (GET_CODE (x) == PARALLEL) x = XVECEXP (newi2pat, 0, 0); - unsigned int regno = REGNO (SET_DEST (x)); + /* It can only be a SET of a REG or of a paradoxical SUBREG of a REG. */ + x = SET_DEST (x); + if (paradoxical_subreg_p (x)) + x = SUBREG_REG (x); + + unsigned int regno = REGNO (x); bool done = false; for (rtx_insn *insn = NEXT_INSN (i3);