(root)/
glibc-2.38/
sysdeps/
x86_64/
tst-auditmod10a.c
       1  /* Copyright (C) 2012-2023 Free Software Foundation, Inc.
       2     This file is part of the GNU C Library.
       3  
       4     The GNU C Library is free software; you can redistribute it and/or
       5     modify it under the terms of the GNU Lesser General Public
       6     License as published by the Free Software Foundation; either
       7     version 2.1 of the License, or (at your option) any later version.
       8  
       9     The GNU C Library is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12     Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public
      15     License along with the GNU C Library; if not, see
      16     <https://www.gnu.org/licenses/>.  */
      17  
      18  /* Test case for x86-64 preserved registers in dynamic linker.  */
      19  
      20  #ifdef __AVX512F__
      21  #include <stdlib.h>
      22  #include <string.h>
      23  #include <immintrin.h>
      24  
      25  __m512i
      26  audit_test (__m512i x0, __m512i x1, __m512i x2, __m512i x3,
      27  	    __m512i x4, __m512i x5, __m512i x6, __m512i x7)
      28  {
      29    __m512i zmm;
      30  
      31    zmm = _mm512_set1_epi64 (1);
      32    if (memcmp (&zmm, &x0, sizeof (zmm)))
      33      abort ();
      34  
      35    zmm = _mm512_set1_epi64 (2);
      36    if (memcmp (&zmm, &x1, sizeof (zmm)))
      37      abort ();
      38  
      39    zmm = _mm512_set1_epi64 (3);
      40    if (memcmp (&zmm, &x2, sizeof (zmm)))
      41      abort ();
      42  
      43    zmm = _mm512_set1_epi64 (4);
      44    if (memcmp (&zmm, &x3, sizeof (zmm)))
      45      abort ();
      46  
      47    zmm = _mm512_set1_epi64 (5);
      48    if (memcmp (&zmm, &x4, sizeof (zmm)))
      49      abort ();
      50  
      51    zmm = _mm512_set1_epi64 (6);
      52    if (memcmp (&zmm, &x5, sizeof (zmm)))
      53      abort ();
      54  
      55    zmm = _mm512_set1_epi64 (7);
      56    if (memcmp (&zmm, &x6, sizeof (zmm)))
      57      abort ();
      58  
      59    zmm = _mm512_set1_epi64 (8);
      60    if (memcmp (&zmm, &x7, sizeof (zmm)))
      61      abort ();
      62  
      63    return _mm512_setzero_si512 ();
      64  }
      65  #endif