summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/pr87954.c
blob: 620657cb1f5d3dc507eb1972074dd5b04b9924e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* { dg-options "-O2 -fdump-tree-optimized" } */

#define __GFP_DMA 1u
#define __GFP_RECLAIM 0x10u

#define KMALLOC_DMA 2
#define KMALLOC_RECLAIM 1

unsigned int
imul(unsigned int flags)
{
  int is_dma, type_dma, is_rec;

  is_dma = !!(flags & __GFP_DMA);
  type_dma = is_dma * KMALLOC_DMA;
  is_rec = !!(flags & __GFP_RECLAIM);

  return type_dma + (is_rec * !is_dma) * KMALLOC_RECLAIM;
}

/* { dg-final { scan-tree-dump-times { \* } 1 "optimized" } } */