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 long double
       8  long_double_volatile_from_i64 (int64_t x)
       9  {
      10    static volatile long double y;
      11    y = x;
      12    return y;
      13  }
      14  
      15  /* { dg-final { scan-assembler-times {\n\tcxgbr\t} 1 } } */
      16  
      17  int
      18  main (void)
      19  {
      20    assert (long_double_volatile_from_i64 (42) == 42.L);
      21    assert (long_double_volatile_from_i64 (-42) == -42.L);
      22  }