| /* { dg-options "-mr10k-cache-barrier=store -mno-abicalls" } */ | |
| void bar1 (void); | |
| void bar2 (void); | |
| void bar3 (void); | |
| NOMIPS16 void | |
| foo (int *x, int sel, int n) | |
| { | |
| if (sel) | |
| { | |
| bar1 (); | |
| x[0] = 1; | |
| } | |
| else | |
| { | |
| bar2 (); | |
| x[1] = 0; | |
| } | |
| /* If there is one copy of this code, reached by two unconditional edges, | |
| then it shouldn't need a third cache barrier. */ | |
| x[2] = 2; | |
| while (n--) | |
| bar3 (); | |
| } | |
| /* { dg-final { scan-assembler-times "\tcache\t" 2 } } */ |