1 /* Test generation of all single-float custom instructions. */
3 /* { dg-do compile } */
4 /* { dg-options "-O1 -ffinite-math-only -funsafe-math-optimizations" } */
6 /* -O1 in the options is significant. Without it FP operations may not be
7 optimized to custom instructions. */
12 #pragma GCC target ("custom-fabss=100")
13 #pragma GCC target ("custom-fadds=101")
14 #pragma GCC target ("custom-fatans=102")
15 #pragma GCC target ("custom-fcoss=103")
16 #pragma GCC target ("custom-fdivs=104")
17 #pragma GCC target ("custom-fexps=105")
18 #pragma GCC target ("custom-flogs=106")
19 #pragma GCC target ("custom-fmaxs=107")
20 #pragma GCC target ("custom-fmins=108")
21 #pragma GCC target ("custom-fmuls=109")
22 #pragma GCC target ("custom-fnegs=110")
23 #pragma GCC target ("custom-fsins=111")
24 #pragma GCC target ("custom-fsqrts=112")
25 #pragma GCC target ("custom-fsubs=113")
26 #pragma GCC target ("custom-ftans=114")
27 #pragma GCC target ("custom-fcmpeqs=200")
28 #pragma GCC target ("custom-fcmpges=201")
29 #pragma GCC target ("custom-fcmpgts=202")
30 #pragma GCC target ("custom-fcmples=203")
31 #pragma GCC target ("custom-fcmplts=204")
32 #pragma GCC target ("custom-fcmpnes=205")
35 custom_fp (float a
, float b
, float *fp
, int *ip
)
60 /* { dg-final { scan-assembler "custom\\t100, .* # fabss .*" } } */
61 /* { dg-final { scan-assembler "custom\\t101, .* # fadds .*" } } */
62 /* { dg-final { scan-assembler "custom\\t102, .* # fatans .*" } } */
63 /* { dg-final { scan-assembler "custom\\t103, .* # fcoss .*" } } */
64 /* { dg-final { scan-assembler "custom\\t104, .* # fdivs .*" } } */
65 /* { dg-final { scan-assembler "custom\\t105, .* # fexps .*" } } */
66 /* { dg-final { scan-assembler "custom\\t106, .* # flogs .*" } } */
67 /* { dg-final { scan-assembler "custom\\t107, .* # fmaxs .*" } } */
68 /* { dg-final { scan-assembler "custom\\t108, .* # fmins .*" } } */
69 /* { dg-final { scan-assembler "custom\\t109, .* # fmuls .*" } } */
70 /* { dg-final { scan-assembler "custom\\t110, .* # fnegs .*" } } */
71 /* { dg-final { scan-assembler "custom\\t111, .* # fsins .*" } } */
72 /* { dg-final { scan-assembler "custom\\t112, .* # fsqrts .*" } } */
73 /* { dg-final { scan-assembler "custom\\t113, .* # fsubs .*" } } */
74 /* { dg-final { scan-assembler "custom\\t114, .* # ftans .*" } } */
75 /* { dg-final { scan-assembler "custom\\t200, .* # fcmpeqs .*" } } */
76 /* { dg-final { scan-assembler "custom\\t201, .* # fcmpges .*" } } */
77 /* { dg-final { scan-assembler "custom\\t202, .* # fcmpgts .*" } } */
78 /* { dg-final { scan-assembler "custom\\t203, .* # fcmples .*" } } */
79 /* { dg-final { scan-assembler "custom\\t204, .* # fcmplts .*" } } */
80 /* { dg-final { scan-assembler "custom\\t205, .* # fcmpnes .*" } } */