(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
pr109069-2-run.c
       1  /* { dg-do run } */
       2  /* { dg-require-effective-target vsx_hw } */
       3  /* { dg-options "-O2 -mvsx" } */
       4  
       5  /* Verify it doesn't generate wrong code.  */
       6  
       7  #include "pr109069-2.h"
       8  
       9  int
      10  main ()
      11  {
      12    vector unsigned char res1 = test1 ();
      13    for (int i = 0; i < 16; i++)
      14      if (res1[i] != 0xd)
      15        __builtin_abort ();
      16  
      17    vector signed short res2 = test2 ();
      18    for (int i = 0; i < 8; i++)
      19      if (res2[i] != 0x7777)
      20        __builtin_abort ();
      21  
      22    vector signed int res3 = test3 ();
      23    vector unsigned int res4 = test4 ();
      24    vector float res6 = test6 ();
      25    for (int i = 0; i < 4; i++)
      26      {
      27        if (res3[i] != 0xbbbbbbbb)
      28  	__builtin_abort ();
      29        if (res4[i] != 0x7070707)
      30  	__builtin_abort ();
      31        U32b u;
      32        u.f = res6[i];
      33        if (u.i != 0x17171717)
      34  	__builtin_abort ();
      35      }
      36  
      37    vector unsigned long long res5 = test5 ();
      38    vector double res7 = test7 ();
      39    for (int i = 0; i < 2; i++)
      40      {
      41        if (res5[i] != 0x4545454545454545ll)
      42  	__builtin_abort ();
      43        U64b u;
      44        u.f = res7[i];
      45        if (u.i != 0x5454545454545454ll)
      46  	__builtin_abort ();
      47      }
      48    return 0;
      49  }
      50