1--TEST--
2JIT Shift Right: 002
3--INI--
4opcache.enable=1
5opcache.enable_cli=1
6opcache.file_update_protection=0
7opcache.jit_buffer_size=1M
8opcache.protect_memory=1
9--EXTENSIONS--
10opcache
11--FILE--
12<?php
13function shr0(int $a) {
14    return $a >> 0;
15}
16function shr1(int $a) {
17    return $a >> 1;
18}
19function shr2(int $a) {
20    return $a >> 2;
21}
22function shr64(int $a) {
23    return $a >> 64;
24}
25function shrNEG(int $a) {
26    return $a >> -1;
27}
28var_dump(shr0(256));
29var_dump(shr1(256));
30var_dump(shr2(256));
31var_dump(shr2(-8));
32try {
33    var_dump(shr64(1));
34} catch (Throwable $e) {
35    echo "Exception " . $e->getMessage() . "\n";
36}
37try {
38    var_dump(shr64(-1));
39} catch (Throwable $e) {
40    echo "Exception " . $e->getMessage() . "\n";
41}
42try {
43    var_dump(shrNEG(1));
44} catch (Throwable $e) {
45    echo "Exception (" . get_class($e) . "): " . $e->getMessage() . "\n";
46}
47?>
48--EXPECT--
49int(256)
50int(128)
51int(64)
52int(-2)
53int(0)
54int(-1)
55Exception (ArithmeticError): Bit shift by negative number
56