1  /* { dg-do compile { target { ! ia32 } } } */
       2  /* { dg-options "-mabi=sysv -march=x86-64-v4" } */
       3  
       4  /* Verify that the CPU features required by x86-64-v4 are enabled.  */
       5  
       6  #ifndef __MMX__
       7  # error __MMX__ not defined
       8  #endif
       9  #ifndef __SSE__
      10  # error __SSE__ not defined
      11  #endif
      12  #ifndef __SSE2__
      13  # error __SSE2__ not defined
      14  #endif
      15  #ifdef __x86_64__
      16  # ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
      17  #  error __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 not defined
      18  # endif
      19  #endif
      20  #ifndef __LAHF_SAHF__
      21  # error __LAHF_SAHF__ not defined
      22  #endif
      23  #ifndef __POPCNT__
      24  # error __POPCNT__ not defined
      25  #endif
      26  #ifndef __SSE3__
      27  # error __SSE3__ not defined
      28  #endif
      29  #ifndef __SSE4_1__
      30  # error __SSE4_1__ not defined
      31  #endif
      32  #ifndef __SSE4_2__
      33  # error __SSE4_2__ not defined
      34  #endif
      35  #ifndef __SSSE3__
      36  # error __SSSE3__ not defined
      37  #endif
      38  #ifdef __SSE4A__
      39  # error __SSE4A__ defined
      40  #endif
      41  #ifndef __AVX__
      42  # error __AVX__ not defined
      43  #endif
      44  #ifndef __AVX2__
      45  # error __AVX2__ not defined
      46  #endif
      47  #ifndef __F16C__
      48  # error __F16C__ not defined
      49  #endif
      50  #ifndef __FMA__
      51  # error __FMA__ not defined
      52  #endif
      53  #ifndef __LZCNT__
      54  # error __LZCNT__ not defined
      55  #endif
      56  #ifndef __MOVBE__
      57  # error __MOVBE__ not defined
      58  #endif
      59  #ifndef __XSAVE__
      60  # error __XSAVE__ not defined
      61  #endif
      62  #ifdef __XSAVEC__
      63  # error __XSAVEC__ defined
      64  #endif
      65  #ifndef __AVX512F__
      66  # error __AVX512F__ not defined
      67  #endif
      68  #ifndef __AVX512BW__
      69  # error __AVX512BW__ not defined
      70  #endif
      71  #ifndef __AVX512CD__
      72  # error __AVX512CD__ not defined
      73  #endif
      74  #ifndef __AVX512DQ__
      75  # error __AVX512DQ__ not defined
      76  #endif
      77  #ifndef __AVX512VL__
      78  # error __AVX512VL__ not defined
      79  #endif
      80  #ifdef __AVX512PF__
      81  # error __AVX512PF__ defined
      82  #endif
      83  #ifdef __AVX512VBMI__
      84  # error __AVX512VBMI__ defined
      85  #endif
      86  #ifdef __AVX512IFMA__
      87  # error __AVX512IFMA__ defined
      88  #endif
      89  #ifdef __AVX512VNNIW__
      90  # error __AVX512VNNIW__ defined
      91  #endif
      92  #ifdef __AVX512VBMI2__
      93  # error __AVX512VBMI2__ defined
      94  #endif
      95  #ifdef __AVX5124FMAPS__
      96  # error __AVX5124FMAPS__ defined
      97  #endif
      98  #ifdef __AVX5124BITALG__
      99  # error __AVX5124BITALG__ defined
     100  #endif
     101  #ifdef __AVX5124VPOPCNTDQ__
     102  # error __AVX5124VPOPCNTDQ__ defined
     103  #endif
     104  #ifdef __AVX5124BF16__
     105  # error __AVX5124BF16__ defined
     106  #endif
     107  #ifdef __AVX512VP2INTERSECT__
     108  # error __AVX512VP2INTERSECT__ defined
     109  #endif
     110  #ifdef __AVX512VNNI__
     111  # error __AVX512VNNI__ defined
     112  #endif
     113  #ifdef __FMA4__
     114  # error __FMA4__ defined
     115  #endif
     116  #ifdef __3dNOW__
     117  # error __3dNOW__ defined
     118  #endif
     119  #ifdef __tune_k8__
     120  # error __tune_k8__ defined
     121  #endif