mirror of
https://github.com/autc04/Retro68.git
synced 2024-09-28 18:56:06 +00:00
166 lines
2.8 KiB
Fortran
166 lines
2.8 KiB
Fortran
! { dg-do compile }
|
|
! { dg-options "-fdec-intrinsic-ints" }
|
|
!
|
|
! Test B/I/J/K integer intrinsics.
|
|
!
|
|
program main
|
|
|
|
implicit none
|
|
|
|
integer*1 :: ab = 9_1, bb = 3_1, cb
|
|
integer*2 :: ai = 9_2, bi = 3_2, ci
|
|
integer*4 :: aj = 9_4, bj = 3_4, cj
|
|
integer*8 :: ak = 9_8, bk = 3_8, ck
|
|
integer :: a = 9 , b = 3 , c
|
|
|
|
integer*1 :: ib = 9_1, bpos = 3_1
|
|
integer*2 :: ii = 9_2, ipos = 3_2
|
|
integer*4 :: ij = 9_4, jpos = 3_4
|
|
integer*8 :: ik = 9_8, kpos = 3_8
|
|
integer :: i = 9 , pos = 3
|
|
|
|
integer*1 :: ba, bc, bd
|
|
integer*2 :: ia, ic, id
|
|
integer*4 :: ja, jb, jc, jd
|
|
integer*8 :: ka, kb, kc, kd
|
|
|
|
logical*1 :: lb
|
|
logical*2 :: li
|
|
logical*4 :: lj
|
|
logical*8 :: lk
|
|
logical :: l
|
|
|
|
real :: r
|
|
|
|
lb = bbtest(ib, bpos)
|
|
li = bitest(ii, ipos)
|
|
lj = bjtest(ij, jpos)
|
|
lk = bktest(ik, kpos)
|
|
l = btest(i , pos)
|
|
|
|
lb = bbtest(9_1, 3_1)
|
|
li = bitest(9_2, 3_2)
|
|
lj = bjtest(9_4, 3_4)
|
|
lk = bktest(9_8, 3_8)
|
|
l = btest(9 , 3 )
|
|
|
|
r = floati(ai)
|
|
r = floatj(aj)
|
|
r = floatk(ak)
|
|
r = float (a )
|
|
|
|
r = floati(9_2)
|
|
r = floatj(9_4)
|
|
r = floatk(9_8)
|
|
r = float (9 )
|
|
|
|
bb = babs(ab)
|
|
bi = iiabs(ai)
|
|
bj = jiabs(aj)
|
|
bk = kiabs(ak)
|
|
b = iabs(a )
|
|
|
|
bb = babs(9_1)
|
|
bi = iiabs(9_2)
|
|
bj = jiabs(9_4)
|
|
bk = kiabs(9_8)
|
|
b = iabs(9 )
|
|
|
|
cb = biand(ab, bb)
|
|
ci = iiand(ai, bi)
|
|
cj = jiand(aj, bj)
|
|
ck = kiand(ak, bk)
|
|
c = iand(a , b )
|
|
|
|
cb = biand(9_1, 3_1)
|
|
ci = iiand(9_2, 3_2)
|
|
cj = jiand(9_4, 3_4)
|
|
ck = kiand(9_8, 3_8)
|
|
c = iand(9 , 3 )
|
|
|
|
cb = bbclr(ib, bpos)
|
|
ci = iibclr(ii, ipos)
|
|
cj = jibclr(ij, jpos)
|
|
ck = kibclr(ik, kpos)
|
|
c = ibclr(i , pos)
|
|
|
|
cb = bbclr(9_1, 3_1)
|
|
ci = iibclr(9_2, 3_2)
|
|
cj = jibclr(9_4, 3_4)
|
|
ck = kibclr(9_8, 3_8)
|
|
c = ibclr(i , pos)
|
|
|
|
cb = bbset(ib, bpos)
|
|
ci = iibset(ii, ipos)
|
|
cj = jibset(ij, jpos)
|
|
ck = kibset(ik, kpos)
|
|
c = ibset(i , pos)
|
|
|
|
cb = bbset(9_1, 3_1)
|
|
ci = iibset(9_2, 3_2)
|
|
cj = jibset(9_4, 3_4)
|
|
ck = kibset(9_8, 3_8)
|
|
c = ibset(i , pos)
|
|
|
|
cb = bieor(ab, bb)
|
|
ci = iieor(ai, bi)
|
|
cj = jieor(aj, bj)
|
|
ck = kieor(ak, bk)
|
|
c = ieor(a , b )
|
|
|
|
cb = bieor(9_1, 3_1)
|
|
ci = iieor(9_2, 3_2)
|
|
cj = jieor(9_4, 3_4)
|
|
ck = kieor(9_8, 3_8)
|
|
c = ieor(9 , 3 )
|
|
|
|
cb = bior(ab, bb)
|
|
ci = iior(ai, bi)
|
|
cj = jior(aj, bj)
|
|
ck = kior(ak, bk)
|
|
c = ior(a , b )
|
|
|
|
cb = bior(9_1, 3_1)
|
|
ci = iior(9_2, 3_2)
|
|
cj = jior(9_4, 3_4)
|
|
ck = kior(9_8, 3_8)
|
|
c = ior(9 , 3 )
|
|
|
|
cb = bmod(ab, bb)
|
|
ci = imod(ai, bi)
|
|
cj = jmod(aj, bj)
|
|
ck = kmod(ak, bk)
|
|
c = mod(a , b )
|
|
|
|
cb = bmod(9_1, 3_1)
|
|
ci = imod(9_2, 3_2)
|
|
cj = jmod(9_4, 3_4)
|
|
ck = kmod(9_8, 3_8)
|
|
c = mod(9 , 3 )
|
|
|
|
ba = bbits(121, 10, 5)
|
|
call bmvbits(121_1, 2, 3, ba, 1)
|
|
bc = bshftc(ba, 3, 6)
|
|
bd = bshft(bc, -3)
|
|
ba = bnot(bd)
|
|
|
|
ia = iibits(357, 10, 5)
|
|
call imvbits(357_2, 8, 3, ia, 1)
|
|
ic = iishftc(ia, 3, 6)
|
|
id = iishft(ic, -3)
|
|
ia = inot(id)
|
|
|
|
ja = jibits(357, 10, 5)
|
|
call jmvbits(357_4, 8, 3, ja, 1)
|
|
jc = jishftc(ja, 3, 6)
|
|
jd = jishft(jc, -3)
|
|
ja = jnot(jd)
|
|
|
|
ka = kibits(357_8, 10_8, 5_8)
|
|
call kmvbits(357_8, 8_8, 3_8, ka, 1_8)
|
|
kc = kishftc(ka, 3_8, 6_8)
|
|
kd = kishft(kc, -3_8)
|
|
ka = knot(kd)
|
|
|
|
end program
|