summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr69677.c
blob: 942bdb58215fc3bee53ce064fe6f04e54cbf95a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* { dg-do compile { target { ia32 } } } */
/* { dg-options "-O2 -mno-avx -march=corei7 -fdump-rtl-final" } */

extern const unsigned int a[];
extern const unsigned long long b[];

int
fn1 (unsigned int p1, unsigned long long p2)
{
  unsigned int p3;

  p3 = a[p1];
  if (p3 == 0 || p3 > 64)
    return 0;

  p2 &= b[p1];
  return p2 == ((unsigned long long) 1 << (p3 - 1));
}

// { dg-final { scan-rtl-dump-not "S16 A64\[^\n\]*\\\*movv2di_internal" "final" } }