annotate gcc/testsuite/gfortran.dg/dshift_2.F90 @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! Test the DSHIFTL and DSHIFTR intrinsics.
kono
parents:
diff changeset
2 !
kono
parents:
diff changeset
3 ! { dg-do run }
kono
parents:
diff changeset
4 ! { dg-options "-ffree-line-length-none" }
kono
parents:
diff changeset
5 ! { dg-require-effective-target fortran_integer_16 }
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 implicit none
kono
parents:
diff changeset
8
kono
parents:
diff changeset
9 #define RESL(I,J,SHIFT) \
kono
parents:
diff changeset
10 IOR(SHIFTL(I,SHIFT),SHIFTR(J,BIT_SIZE(J)-SHIFT))
kono
parents:
diff changeset
11 #define RESR(I,J,SHIFT) \
kono
parents:
diff changeset
12 IOR(SHIFTL(I,BIT_SIZE(I)-SHIFT),SHIFTR(J,SHIFT))
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 #define CHECK(I,J,SHIFT) \
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
15 if (dshiftl(I,J,SHIFT) /= RESL(I,J,SHIFT)) STOP 1; \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
16 if (dshiftr(I,J,SHIFT) /= RESR(I,J,SHIFT)) STOP 2; \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
17 if (run_dshiftl(I,J,SHIFT) /= RESL(I,J,SHIFT)) STOP 3; \
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
18 if (run_dshiftr(I,J,SHIFT) /= RESR(I,J,SHIFT)) STOP 4
111
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 CHECK(0_16,0_16,0)
kono
parents:
diff changeset
21 CHECK(0_16,0_16,1)
kono
parents:
diff changeset
22 CHECK(0_16,0_16,7)
kono
parents:
diff changeset
23 CHECK(0_16,0_16,8)
kono
parents:
diff changeset
24 CHECK(28_16,79_16,0)
kono
parents:
diff changeset
25 CHECK(28_16,79_16,1)
kono
parents:
diff changeset
26 CHECK(28_16,79_16,5)
kono
parents:
diff changeset
27 CHECK(28_16,79_16,7)
kono
parents:
diff changeset
28 CHECK(28_16,79_16,8)
kono
parents:
diff changeset
29 CHECK(-28_16,79_16,0)
kono
parents:
diff changeset
30 CHECK(-28_16,79_16,1)
kono
parents:
diff changeset
31 CHECK(-28_16,79_16,5)
kono
parents:
diff changeset
32 CHECK(-28_16,79_16,7)
kono
parents:
diff changeset
33 CHECK(-28_16,79_16,8)
kono
parents:
diff changeset
34 CHECK(28_16,-79_16,0)
kono
parents:
diff changeset
35 CHECK(28_16,-79_16,1)
kono
parents:
diff changeset
36 CHECK(28_16,-79_16,5)
kono
parents:
diff changeset
37 CHECK(28_16,-79_16,7)
kono
parents:
diff changeset
38 CHECK(28_16,-79_16,8)
kono
parents:
diff changeset
39 CHECK(-28_16,-79_16,0)
kono
parents:
diff changeset
40 CHECK(-28_16,-79_16,1)
kono
parents:
diff changeset
41 CHECK(-28_16,-79_16,5)
kono
parents:
diff changeset
42 CHECK(-28_16,-79_16,7)
kono
parents:
diff changeset
43 CHECK(-28_16,-79_16,8)
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 contains
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 function run_dshiftl (i, j, shift) result(res)
kono
parents:
diff changeset
48 integer(kind=16) :: i, j, res
kono
parents:
diff changeset
49 integer :: shift
kono
parents:
diff changeset
50 res = dshiftl(i,j,shift)
kono
parents:
diff changeset
51 end function
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 function run_dshiftr (i, j, shift) result(res)
kono
parents:
diff changeset
54 integer(kind=16) :: i, j, res
kono
parents:
diff changeset
55 integer :: shift
kono
parents:
diff changeset
56 res = dshiftr(i,j,shift)
kono
parents:
diff changeset
57 end function
kono
parents:
diff changeset
58
kono
parents:
diff changeset
59 end