1  /* { dg-do run } */
       2  /* { dg-options "-O2 -std=c99" } */
       3  
       4  int
       5  foo (int a)
       6  {
       7    return a + 6;
       8  }
       9  
      10  int __attribute__ ((noipa)) udi_fun (unsigned long long in)
      11  {
      12    if (in == (0x8642000000000000ULL))
      13      return foo (1);
      14    if (in == (0x7642000000000000ULL))
      15      return foo (12);
      16    if (in == (0x8000000000000000ULL))
      17      return foo (32);
      18    if (in == (0x8700000000000091ULL))
      19      return foo (33);
      20    if (in == (0x8642FFFFFFFFFFFFULL))
      21      return foo (46);
      22    if (in == (0x7642FFFFFFFFFFFFULL))
      23      return foo (51);
      24    if (in == (0x7567000000ULL))
      25      return foo (9);
      26    if (in == (0xFFF8567FFFFFFFFFULL))
      27      return foo (19);
      28    
      29    return 0;
      30  }
      31  
      32  int __attribute__ ((noipa)) di_fun (long long in)
      33  {
      34    if (in == (0x8642000000000000LL))
      35      return foo (1);
      36    if (in == (0x7642000000000000LL))
      37      return foo (12);
      38    if (in == (0x8000000000000000LL))
      39      return foo (32);
      40    if (in == (0x8700000000000091LL))
      41      return foo (33);
      42    if (in == (0x8642FFFFFFFFFFFFLL))
      43      return foo (46);
      44    if (in == (0x7642FFFFFFFFFFFFLL))
      45      return foo (51);
      46    return 0;
      47  }
      48  
      49  int
      50  main ()
      51  {
      52    int e = 0;
      53    if (udi_fun (6) != 0)
      54      e++;
      55    if (udi_fun (0x8642000000000000ULL) != foo (1))
      56      e++;
      57    if (udi_fun (0x7642000000000000ULL) != foo (12))
      58      e++;
      59    if (udi_fun (0x8000000000000000ULL) != foo (32))
      60      e++;
      61    if (udi_fun (0x8700000000000091ULL) != foo (33))
      62      e++;
      63    if (udi_fun (0x8642FFFFFFFFFFFFULL) != foo (46))
      64      e++;
      65    if (udi_fun (0x7642FFFFFFFFFFFFULL) != foo (51))
      66      e++;
      67    if (udi_fun (0x7567000000ULL) != foo (9))
      68      e++;
      69    if (udi_fun (0xFFF8567FFFFFFFFFULL) != foo (19))
      70      e++;
      71  
      72    if (di_fun (6) != 0)
      73      e++;
      74    if (di_fun (0x8642000000000000LL) != foo (1))
      75      e++;
      76    if (di_fun (0x7642000000000000LL) != foo (12))
      77      e++;
      78    if (di_fun (0x8000000000000000LL) != foo (32))
      79      e++;
      80    if (di_fun (0x8700000000000091LL) != foo (33))
      81      e++;
      82    if (di_fun (0x8642FFFFFFFFFFFFLL) != foo (46))
      83      e++;
      84    if (di_fun (0x7642FFFFFFFFFFFFLL) != foo (51))
      85      e++;
      86    if (udi_fun (0x7567000000LL) != foo (9))
      87      e++;
      88    if (udi_fun (0xFFF8567FFFFFFFFFLL) != foo (19))
      89      e++;
      90  
      91    if (e)
      92      __builtin_abort ();
      93    return 0;
      94  }
      95