blob: 2d0b648f384238a5d417a25680ab264726ef20f4 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -fno-delayed-branch" } */
/* In this test we want to verify that combine canonicalizes the
MULT into an ASHIFT which in turn allows postreload-gcse to
find the common subexpression.
Neither pass dumps stuff in a format that is particularly good
for parsing here, so we count the shadd insns. More is not
necessarily better in this test. If this test is too fragile
over time we'll have to revisit the combine and/or postreload
dumps. Note we have disabled delay slot filling to improve
test stability. */
/* { dg-final { scan-assembler-times "sh.add" 4 } } */
extern void oof (void);
typedef struct simple_bitmap_def *sbitmap;
struct simple_bitmap_def
{
unsigned char *popcount;
unsigned int n_bits;
unsigned long elms[1];
};
__inline__ void
SET_BIT (sbitmap map, unsigned int bitno)
{
if (map->popcount)
{
unsigned char oldbit;
oldbit =
((map)->elms[bitno / 64]);
if (!oldbit)
oof ();
}
map->elms[bitno / 64] |= 1;
}
void
fix_bb_placements (int indx1, int indx2, sbitmap in_queue)
{
SET_BIT (in_queue, indx1);
SET_BIT (in_queue, indx2);
}