1  /* { dg-options "-O2" } */
       2  
       3  #include <arm_sve.h>
       4  
       5  static svbool_t visinf_vo_vf(svfloat32_t d)
       6  {
       7    return svcmpeq_n_f32 (svptrue_b8 (),
       8                          svabs_f32_x (svptrue_b8 (), d),
       9                          __builtin_inff ());
      10  }
      11  
      12  const svint32_t _ZGVsNxv_ilogbf(svfloat32_t d)
      13  {
      14    svint32_t e = svreinterpret_s32_f32 (svdup_n_f32 (0.0f));
      15    e = svsel_s32 (svcmpne_f32 (svptrue_b8(), d, d),
      16                   svdup_n_s32 (2147483647),
      17                   e);
      18    e = svsel_s32 (visinf_vo_vf (d),
      19                   svdup_n_s32 (0x7fffffff),
      20                   e);
      21    return e;
      22  }