1  /* { dg-do compile { target { ! ia32 } } } */
       2  /* { dg-options "-O2 -mtbm" } */
       3  /* { dg-final { scan-assembler "bextr\[^\\n]*(%|)rax" } } */
       4  /* { dg-final { scan-assembler "blcfill\[^\\n]*(%|)rax" } } */
       5  /* { dg-final { scan-assembler "blci\[^\\n]*(%|)rax" } } */
       6  /* { dg-final { scan-assembler "blcic\[^\\n]*(%|)rax" } } */
       7  /* { dg-final { scan-assembler "blcmsk\[^\\n]*(%|)rax" } } */
       8  /* { dg-final { scan-assembler "blcs\[^\\n]*(%|)rax" } } */
       9  /* { dg-final { scan-assembler "blsfill\[^\\n]*(%|)rax" } } */
      10  /* { dg-final { scan-assembler "blsic\[^\\n]*(%|)rax" } } */
      11  /* { dg-final { scan-assembler "t1mskc\[^\\n]*(%|)rax" } } */
      12  /* { dg-final { scan-assembler "tzmsk\[^\\n]*(%|)rax" } } */
      13  
      14  #include <x86intrin.h>
      15  
      16  unsigned long long
      17  func_bextri64 (unsigned long long X)
      18  {
      19    return __bextri_u64 (X, 0x101);
      20  }
      21  
      22  unsigned long long
      23  func_blcfill64 (unsigned long long X)
      24  {
      25    return __blcfill_u64 (X);
      26  }
      27  
      28  unsigned long long
      29  func_blci64 (unsigned long long X)
      30  {
      31    return __blci_u64 (X);
      32  }
      33  
      34  unsigned long long
      35  func_blcic64 (unsigned long long X)
      36  {
      37    return __blcic_u64 (X);
      38  }
      39  
      40  unsigned long long
      41  func_blcmsk64 (unsigned long long X)
      42  {
      43    return __blcmsk_u64 (X);
      44  }
      45  
      46  unsigned long long
      47  func_blcs64 (unsigned long long X)
      48  {
      49    return __blcs_u64 (X);
      50  }
      51  
      52  unsigned long long
      53  func_blsfill64 (unsigned long long X)
      54  {
      55    return __blsfill_u64 (X);
      56  }
      57  
      58  unsigned long long
      59  func_blsic64 (unsigned long long X)
      60  {
      61    return __blsic_u64 (X);
      62  }
      63  
      64  unsigned long long
      65  func_t1mskc64 (unsigned long long X)
      66  {
      67    return __t1mskc_u64 (X);
      68  }
      69  
      70  unsigned long long
      71  func_tzmsk64 (unsigned long long X)
      72  {
      73    return __tzmsk_u64 (X);
      74  }