1  /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
       2  
       3  #include "test_sve_acle.h"
       4  
       5  /*
       6  ** logb_f32_m_tied1:
       7  **	flogb	z0\.s, p0/m, z4\.s
       8  **	ret
       9  */
      10  TEST_DUAL_Z (logb_f32_m_tied1, svint32_t, svfloat32_t,
      11  	     z0 = svlogb_f32_m (z0, p0, z4),
      12  	     z0 = svlogb_m (z0, p0, z4))
      13  
      14  /*
      15  ** logb_f32_m_untied:
      16  **	movprfx	z0, z1
      17  **	flogb	z0\.s, p0/m, z4\.s
      18  **	ret
      19  */
      20  TEST_DUAL_Z (logb_f32_m_untied, svint32_t, svfloat32_t,
      21  	     z0 = svlogb_f32_m (z1, p0, z4),
      22  	     z0 = svlogb_m (z1, p0, z4))
      23  
      24  /*
      25  ** logb_f32_z:
      26  **	movprfx	z0\.s, p0/z, z4\.s
      27  **	flogb	z0\.s, p0/m, z4\.s
      28  **	ret
      29  */
      30  TEST_DUAL_Z (logb_f32_z, svint32_t, svfloat32_t,
      31  	     z0 = svlogb_f32_z (p0, z4),
      32  	     z0 = svlogb_z (p0, z4))
      33  
      34  /*
      35  ** logb_f32_x:
      36  **	movprfx	z0, z4
      37  **	flogb	z0\.s, p0/m, z4\.s
      38  **	ret
      39  */
      40  TEST_DUAL_Z (logb_f32_x, svint32_t, svfloat32_t,
      41  	     z0 = svlogb_f32_x (p0, z4),
      42  	     z0 = svlogb_x (p0, z4))
      43  
      44  /*
      45  ** ptrue_logb_f32_x:
      46  **	...
      47  **	ptrue	p[0-9]+\.b[^\n]*
      48  **	...
      49  **	ret
      50  */
      51  TEST_DUAL_Z (ptrue_logb_f32_x, svint32_t, svfloat32_t,
      52  	     z0 = svlogb_f32_x (svptrue_b32 (), z4),
      53  	     z0 = svlogb_x (svptrue_b32 (), z4))