(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
nios2/
custom-fp-2.c
       1  /* Test specification of custom instructions via pragmas.  */
       2  
       3  /* { dg-do compile } */
       4  /* { dg-options "-O1 -ffinite-math-only" } */
       5  
       6  /* -O1 in the options is significant.  Without it FP operations may not be
       7     optimized to custom instructions.  */
       8  
       9  #include <stdio.h> 
      10  #include <math.h>
      11  
      12  #pragma GCC target ("custom-fmaxs=246")
      13  #pragma GCC target ("custom-fmins=247")
      14  #pragma GCC target ("custom-fsqrts=251")
      15  
      16  void
      17  custom_fp (float operand_a, float operand_b, float *result)
      18  {
      19    result[0] = fmaxf (operand_a, operand_b);
      20    result[1] = fminf (operand_a, operand_b);
      21    result[2] = sqrtf (operand_a);
      22  }
      23  
      24  /* { dg-final { scan-assembler "custom\\t246, .* # fmaxs .*" } } */
      25  /* { dg-final { scan-assembler "custom\\t247, .* # fmins .*" } } */
      26  /* { dg-final { scan-assembler "custom\\t251, .* # fsqrts .*" } } */