(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
pr65235_1.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2" } */
       3  
       4  #include "arm_neon.h"
       5  
       6  int
       7  main (int argc, char** argv)
       8  {
       9    int64x1_t val1;
      10    int64x1_t val2;
      11    int64x1_t val3;
      12    uint64x1_t val13;
      13    uint64x2_t val14;
      14    uint64_t got;
      15    uint64_t exp;
      16    val1 = vcreate_s64(UINT64_C(0xffffffff80008000));
      17    val2 = vcreate_s64(UINT64_C(0x0000f38d00000000));
      18    val3 = vcreate_s64(UINT64_C(0xffff7fff0000809b));
      19    /* Expect: "val13" = 8000000000001553.  */
      20    val13 = vcreate_u64 (UINT64_C(0x8000000000001553));
      21    /* Expect: "val14" = 0010 0000 0000 0002 0000 0000 0000 0000.  */
      22    val14 = vcombine_u64(vcgt_s64(vqrshl_s64(val1, val2),
      23  				vshr_n_s64(val3, 18)),
      24  		       vshr_n_u64(val13, 11));
      25    /* Should be 0000000000000000.  */
      26    got = vgetq_lane_u64(val14, 0);
      27    exp = 0;
      28    if(exp != got)
      29      __builtin_abort ();
      30  }