1! { dg-do run }
2! verifies basic functioning of the ishft and ishftc intrinsics
3if (ishft (1_1, 0) /= 1) call abort
4if (ishft (1_1, 1) /= 2) call abort
5if (ishft (3_1, 1) /= 6) call abort
6if (ishft (-1_1, 1) /= -2) call abort
7if (ishft (-1_1, -1) /= 127) call abort
8if (ishft (96_1, 2) /= -128) call abort
9
10if (ishft (1_2, 0) /= 1) call abort
11if (ishft (1_2, 1) /= 2) call abort
12if (ishft (3_2, 1) /= 6) call abort
13if (ishft (-1_2, 1) /= -2) call abort
14if (ishft (-1_2, -1) /= 32767) call abort
15if (ishft (16384_2 + 8192_2, 2) /= -32768_4) call abort
16
17if (ishft (1_4, 0) /= 1) call abort
18if (ishft (1_4, 1) /= 2) call abort
19if (ishft (3_4, 1) /= 6) call abort
20if (ishft (-1_4, 1) /= -2) call abort
21if (ishft (-1_4, -1) /= 2147483647) call abort
22if (ishft (1073741824_4 + 536870912_4, 2) /= -2147483648_8) call abort
23
24if (ishft (1_8, 0) /= 1) call abort
25if (ishft (1_8, 1) /= 2) call abort
26if (ishft (3_8, 1) /= 6) call abort
27if (ishft (-1_8, 1) /= -2) call abort
28if (ishft (-1_8, -60) /= z'F') call abort
29
30if (ishftc (1_1, 0) /= 1) call abort
31if (ishftc (1_1, 1) /= 2) call abort
32if (ishftc (3_1, 1) /= 6) call abort
33if (ishftc (-1_1, 1) /= -1) call abort
34if (ishftc (-1_1, -1) /= -1) call abort
35if (ishftc (ishftc (96_1, 2), -2) /= 96) call abort
36
37if (ishftc (1_2, 0) /= 1) call abort
38if (ishftc (1_2, 1) /= 2) call abort
39if (ishftc (3_2, 1) /= 6) call abort
40if (ishftc (-1_2, 1) /= -1) call abort
41if (ishftc (-1_2, -1) /= -1) call abort
42if (ishftc (ishftc (25000_2, 2), -2) /= 25000) call abort
43
44if (ishftc (1_4, 0) /= 1) call abort
45if (ishftc (1_4, 1) /= 2) call abort
46if (ishftc (3_4, 1) /= 6) call abort
47if (ishftc (-1_4, 1) /= -1) call abort
48if (ishftc (-1_4, -1) /= -1) call abort
49if (ishftc (ishftc (1325876_4, 2), -2) /= 1325876) call abort
50
51if (ishftc (1_8, 0) /= 1) call abort
52if (ishftc (1_8, 1) /= 2) call abort
53if (ishftc (3_8, 1) /= 6) call abort
54if (ishftc (-1_8, 1) /= -1) call abort
55if (ishftc (-1_8, -1) /= -1) call abort
56if (ishftc (ishftc (1325876_8, 2), -2) /= 1325876) call abort
57end
58
59
60