Message ID | CACgzC7Cp7MP0bC9NwQxQGw73vD_pU=rADNoZhA0kJ-F_6-eRmA@mail.gmail.com |
---|---|
State | New |
Headers | show |
diff --git a/gcc/cse.c b/gcc/cse.c index 852d13e..ce84982 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -4280,6 +4280,19 @@ find_sets_in_insn (rtx insn, struct set **psets) ; else if (GET_CODE (SET_SRC (y)) == CALL) ; + else if (GET_CODE (SET_SRC (y)) == ASM_OPERANDS) + { + if (i + 1 < lim) + { + rtx n = XVECEXP (x, 0, i + 1); + /* For inline assemble with multiple outputs, we can not + handle the SET separately. Refer PR60663. */ + if (GET_CODE (n) == SET + && GET_CODE (SET_SRC (n)) == ASM_OPERANDS) + break; + } + sets[n_sets++].rtl = y; + } else sets[n_sets++].rtl = y; }