(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
sse4_1-floorpd.c
       1  /* { dg-do run } */
       2  /* { dg-require-effective-target p8vector_hw } */
       3  /* { dg-options "-O2 -mpower8-vector -Wno-psabi" } */
       4  
       5  #define NO_WARN_X86_INTRINSICS 1
       6  #include <smmintrin.h>
       7  
       8  #define VEC_T __m128d
       9  #define FP_T double
      10  
      11  #define ROUND_INTRIN(x, mode) _mm_floor_pd (x)
      12  
      13  #include "sse4_1-round-data.h"
      14  
      15  static struct data data[] = {
      16    { .value = { .f = {  0.00,  0.25 } }, .answer = {  0.0,  0.0 } },
      17    { .value = { .f = {  0.50,  0.75 } }, .answer = {  0.0,  0.0 } },
      18  
      19    { { .f = {  0x1.ffffffffffffcp+50,  0x1.ffffffffffffdp+50 } },
      20             {  0x1.ffffffffffffcp+50,  0x1.ffffffffffffcp+50 } },
      21    { { .f = {  0x1.ffffffffffffep+50,  0x1.0000000000000p+51 } },
      22             {  0x1.ffffffffffffcp+50,  0x1.0000000000000p+51 } },
      23    { { .f = {  0x1.0000000000000p+51,  0x1.0000000000001p+51 } },
      24             {  0x1.0000000000000p+51,  0x1.0000000000000p+51 } },
      25    { { .f = {  0x1.0000000000002p+51,  0x1.0000000000003p+51 } },
      26             {  0x1.0000000000002p+51,  0x1.0000000000002p+51 } },
      27  
      28    { { .f = {  0x1.ffffffffffffep+51,  0x1.fffffffffffffp+51 } },
      29             {  0x1.ffffffffffffep+51,  0x1.ffffffffffffep+51 } },
      30    { { .f = {  0x1.0000000000000p+52,  0x1.0000000000001p+52 } },
      31             {  0x1.0000000000000p+52,  0x1.0000000000001p+52 } },
      32  
      33    { { .f = { -0x1.0000000000001p+52, -0x1.0000000000000p+52 } },
      34             { -0x1.0000000000001p+52, -0x1.0000000000000p+52 } },
      35    { { .f = { -0x1.fffffffffffffp+51, -0x1.ffffffffffffep+52 } },
      36             { -0x1.0000000000000p+52, -0x1.ffffffffffffep+52 } },
      37  
      38    { { .f = { -0x1.0000000000003p+51, -0x1.0000000000002p+51 } },
      39             { -0x1.0000000000004p+51, -0x1.0000000000002p+51 } },
      40    { { .f = { -0x1.0000000000001p+51, -0x1.0000000000000p+51 } },
      41             { -0x1.0000000000002p+51, -0x1.0000000000000p+51 } },
      42    { { .f = { -0x1.fffffffffffffp+50, -0x1.ffffffffffffep+50 } },
      43             { -0x1.0000000000000p+51, -0x1.0000000000000p+51 } },
      44    { { .f = { -0x1.ffffffffffffdp+50, -0x1.ffffffffffffcp+50 } },
      45             { -0x1.0000000000000p+51, -0x1.ffffffffffffcp+50 } },
      46  
      47    { { .f = { -1.00, -0.75 } }, { -1.0, -1.0 } },
      48    { { .f = { -0.50, -0.25 } }, { -1.0, -1.0 } }
      49  };
      50  
      51  #include "sse4_1-round.h"