1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -march=z14 -mzarch --save-temps" } */
       3  /* { dg-do run { target { s390_z14_hw } } } */
       4  #include <assert.h>
       5  #include <stdint.h>
       6  
       7  __attribute__ ((noipa)) static int64_t
       8  long_double_to_i64 (long double x)
       9  {
      10    return x;
      11  }
      12  
      13  /* { dg-final { scan-assembler-times {\n\tvpdi\t%v\d+,%v\d+,%v\d+,1\n} 1 } } */
      14  /* { dg-final { scan-assembler-times {\n\tvpdi\t%v\d+,%v\d+,%v\d+,5\n} 1 } } */
      15  /* { dg-final { scan-assembler-times {\n\tcgxbr\t} 1 } } */
      16  
      17  int
      18  main (void)
      19  {
      20    assert (long_double_to_i64 (42.L) == 42);
      21    assert (long_double_to_i64 (-42.L) == -42);
      22  }