/* PR rtl-optimization/54455 */ /* { dg-do compile } */ /* { dg-options "-O1 -fschedule-insns -fselective-scheduling --param max-sched-extend-regions-iters=2" } */ /* { dg-require-effective-target scheduling } */ extern void fn1 (void), fn2 (void); static inline __attribute__((always_inline)) int foo (int *x, long y) { asm goto ("" : : "r" (x), "r" (y) : "memory" : lab); return 0; lab: return 1; } void bar (int *x) { if (foo (x, 23)) fn1 (); else fn2 (); foo (x, 2); }