1 /* { dg-do compile } */
2 /* { dg-options "-O -fdump-tree-optimized" } */
3 /* { dg-skip-if "using short-double" { avr-*-* } } */
4
f(double aaa,double bbb)5 int f(double aaa, double bbb){
6 int xa = !__builtin_isunordered(aaa, aaa);
7 int xb = !__builtin_isunordered(bbb, bbb);
8 return xa & xb;
9 }
10
g(double aaa,double bbb)11 int g(double aaa, double bbb){
12 int xa = !__builtin_isunordered(aaa, bbb);
13 int xb = !__builtin_isunordered(bbb, bbb);
14 return xa & xb;
15 }
16
h(double ccc,float ddd)17 int h(double ccc, float ddd){
18 int xc = !__builtin_isunordered(ccc, ccc);
19 int xd = !__builtin_isunordered(ddd, ddd);
20 return xc & xd;
21 }
22
23 /* { dg-final { scan-tree-dump-not "aaa\[^\n\r\]* ord aaa" "optimized" } } */
24 /* { dg-final { scan-tree-dump-not "bbb\[^\n\r\]* ord bbb" "optimized" } } */
25 /* { dg-final { scan-tree-dump-times "aaa\[^\n\r\]* ord bbb" 2 "optimized" } } */
26 /* { dg-final { scan-tree-dump-not "ccc\[^\n\r\]* ord ddd" "optimized" } } */
27