Ah. I realize it's most likely for testing sibcall_[value]_pop_memory
peepholes, right? In which case the testcase might look like this:
/* { dg-do compile } */
/* { dg-options "-O2" } */
void foo (int a, void (**doo1) (void), void (**doo2) (void))
{
char s[16] = {0};
do s[a] = 1; while (a &= a-1);
(*(s[8] ? doo1 : doo2)) ();
}
/* { dg-final { scan-assembler-not "call" } } */
However on the above testcase memory-indirect jump is currently generated only
for 64-bit x86. With -mx32 it's impossible, but with -m32 the peephole
doesn't match. Is that expected?
Can you also tell me why ..._pop call and sibcall instructions are predicated
on !TARGET_64BIT?
Thanks.
Alexander