xref: /php-src/ext/opcache/tests/jit/cmp_003.phpt (revision c16ad918)
1--TEST--
2JIT CMP: 003 Comparison with NaN
3--INI--
4opcache.enable=1
5opcache.enable_cli=1
6opcache.file_update_protection=0
7opcache.protect_memory=1
8--EXTENSIONS--
9opcache
10--FILE--
11<?php
12function t() {
13    echo "!";
14    return true;
15}
16function f() {
17    echo "!";
18    return false;
19}
20$a = 0.0;
21$i = 0;
22$b = NAN;
23$c = true;
24$d = false;
25var_dump($a == $b);
26var_dump($a != $b);
27var_dump($a < $b);
28var_dump($a > $b);
29var_dump($a <= $b);
30var_dump($a >= $b);
31var_dump($a == $b ? 1 : 0);
32var_dump($a != $b ? 1 : 0);
33var_dump($a < $b ? 1 : 0);
34var_dump($a > $b ? 1 : 0);
35var_dump($a <= $b ? 1 : 0);
36var_dump($a >= $b ? 1 : 0);
37if ($a == $b) {
38} else {
39    echo "1\n";
40}
41if ($a != $b) {
42} else {
43    echo "2\n";
44}
45if ($a < $b) {
46} else {
47    echo "3\n";
48}
49if ($a > $b) {
50} else {
51    echo "4\n";
52}
53if ($a <= $b) {
54} else {
55    echo "5\n";
56}
57if ($a >= $b) {
58} else {
59    echo "6\n";
60}
61var_dump($i == $b ? 1 : 0);
62var_dump($i != $b ? 1 : 0);
63var_dump($i < $b ? 1 : 0);
64var_dump($i > $b ? 1 : 0);
65var_dump($i <= $b ? 1 : 0);
66var_dump($i >= $b ? 1 : 0);
67if ($i == $b) {
68} else {
69    echo "1\n";
70}
71if ($i != $b) {
72} else {
73    echo "2\n";
74}
75if ($i < $b) {
76} else {
77    echo "3\n";
78}
79if ($i > $b) {
80} else {
81    echo "4\n";
82}
83if ($i <= $b) {
84} else {
85    echo "5\n";
86}
87if ($i >= $b) {
88} else {
89    echo "6\n";
90}
91var_dump($a == $b && t());
92var_dump($a != $b && t());
93var_dump($a < $b && t());
94var_dump($a > $b && t());
95var_dump($a <= $b && t());
96var_dump($a >= $b && t());
97var_dump($a == $b || f());
98var_dump($a != $b || f());
99var_dump($a < $b || f());
100var_dump($a > $b || f());
101var_dump($a <= $b || f());
102var_dump($a >= $b || f());
103var_dump($i == $b && t());
104var_dump($i != $b && t());
105var_dump($i < $b && t());
106var_dump($i > $b && t());
107var_dump($i <= $b && t());
108var_dump($i >= $b && t());
109var_dump($i == $b || f());
110var_dump($i != $b || f());
111var_dump($i < $b || f());
112var_dump($i > $b || f());
113var_dump($i <= $b || f());
114var_dump($i >= $b || f());
115$a=NAN;
116var_dump($a == $b);
117var_dump($a != $b);
118var_dump($a < $b);
119var_dump($a > $b);
120var_dump($a <= $b);
121var_dump($a >= $b);
122var_dump($a == $b ? 1 : 0);
123var_dump($a != $b ? 1 : 0);
124var_dump($a < $b ? 1 : 0);
125var_dump($a > $b ? 1 : 0);
126var_dump($a <= $b ? 1 : 0);
127var_dump($a >= $b ? 1 : 0);
128?>
129--EXPECT--
130bool(false)
131bool(true)
132bool(false)
133bool(false)
134bool(false)
135bool(false)
136int(0)
137int(1)
138int(0)
139int(0)
140int(0)
141int(0)
1421
1433
1444
1455
1466
147int(0)
148int(1)
149int(0)
150int(0)
151int(0)
152int(0)
1531
1543
1554
1565
1576
158bool(false)
159!bool(true)
160bool(false)
161bool(false)
162bool(false)
163bool(false)
164!bool(false)
165bool(true)
166!bool(false)
167!bool(false)
168!bool(false)
169!bool(false)
170bool(false)
171!bool(true)
172bool(false)
173bool(false)
174bool(false)
175bool(false)
176!bool(false)
177bool(true)
178!bool(false)
179!bool(false)
180!bool(false)
181!bool(false)
182bool(false)
183bool(true)
184bool(false)
185bool(false)
186bool(false)
187bool(false)
188int(0)
189int(1)
190int(0)
191int(0)
192int(0)
193int(0)
194