brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · 9c5d001 Raw
93 lines · plain
1! REQUIRES: flang-supports-f128-math2! RUN: %python %S/test_modfile.py %s %flang_fc13! Intrinsics SELECTED_INT_KIND, SELECTED_REAL_KIND, PRECISION, RANGE,4! RADIX, DIGITS5 6module m17  ! INTEGER(KIND=1)  handles       P < 38  ! INTEGER(KIND=2)  handles  3 <= P < 59  ! INTEGER(KIND=4)  handles  5 <= P < 1010  ! INTEGER(KIND=8)  handles 10 <= P < 1911  ! INTEGER(KIND=16) handles 19 <= P < 3912  integer, parameter :: iranges(*) = &13    [range(0_1), range(0_2), range(0_4), range(0_8), range(0_16)]14  logical, parameter :: ircheck = all([2, 4, 9, 18, 38] == iranges)15  integer, parameter :: intpvals(*) = [0, 2, 3, 4, 5, 9, 10, 18, 19, 38, 39]16  integer, parameter :: intpkinds(*) = &17    [(selected_int_kind(intpvals(j)),j=1,size(intpvals))]18  logical, parameter :: ipcheck = &19    all([1, 1, 2, 2, 4, 4, 8, 8, 16, 16, -1] == intpkinds)20 21  ! REAL(KIND=2)  handles       P < 4  (if available)22  ! REAL(KIND=3)  handles       P < 3  (if available)23  ! REAL(KIND=4)  handles  4 <= P < 724  ! REAL(KIND=8)  handles  7 <= P < 1625  ! REAL(KIND=16) handles 19 <= P < 34 (would be 32 with Power double/double)26  integer, parameter :: realprecs(*) = &27    [precision(0._2), precision(0._3), precision(0._4), precision(0._8), &28     precision(0._16)]29  logical, parameter :: rpreccheck = all([3, 2, 6, 15, 33] == realprecs)30  integer, parameter :: realpvals(*) = [0, 3, 4, 6, 7, 15, 19, 33, 34]31  integer, parameter :: realpkinds(*) = &32    [(selected_real_kind(realpvals(j),0),j=1,size(realpvals))]33  logical, parameter :: realpcheck = &34    all([2, 2, 4, 4, 8, 8, 16, 16, -1] == realpkinds)35  ! REAL(KIND=2)  handles       R < 5 (if available)36  ! REAL(KIND=3)  handles  5 <= R < 38 (if available, same range as KIND=4)37  ! REAL(KIND=4)  handles  5 <= R < 38 (if no KIND=3)38  ! REAL(KIND=8)  handles 38 <= R < 30839  ! REAL(KIND=16) handles 308 <= R < 4932 (except Power double/double)40  integer, parameter :: realranges(*) = &41    [range(0._2), range(0._3), range(0._4), range(0._8), range(0._16)]42  logical, parameter :: rrangecheck = &43    all([4, 37, 37, 307, 4931] == realranges)44  integer, parameter :: realrvals(*) = &45    [0, 4, 5, 37, 38, 307, 4932]46  integer, parameter :: realrkinds(*) = &47    [(selected_real_kind(0,realrvals(j)),j=1,size(realrvals))]48  logical, parameter :: realrcheck = &49    all([2, 2, 3, 3, 8, 8, -2] == realrkinds)50  logical, parameter :: radixcheck = &51    all([radix(0._2), radix(0._3), radix(0._4), radix(0._8), &52         radix(0._16)] == 2)53  integer, parameter :: intdigits(*) = &54    [digits(0_1), digits(0_2), digits(0_4), digits(0_8), digits(0_16)]55  logical, parameter :: intdigitscheck = &56    all([7, 15, 31, 63, 127] == intdigits)57  integer, parameter :: realdigits(*) = &58    [digits(0._2), digits(0._3), digits(0._4), digits(0._8), digits(0._16)]59  logical, parameter :: realdigitscheck = &60    all([11, 8, 24, 53, 113] == realdigits)61end module m162!Expect: m1.mod63!module m164!integer(4),parameter::iranges(1_8:*)=[INTEGER(4)::2_4,4_4,9_4,18_4,38_4]65!intrinsic::range66!logical(4),parameter::ircheck=.true._467!intrinsic::all68!integer(4),parameter::intpvals(1_8:*)=[INTEGER(4)::0_4,2_4,3_4,4_4,5_4,9_4,10_4,18_4,19_4,38_4,39_4]69!integer(4),parameter::intpkinds(1_8:*)=[INTEGER(4)::1_4,1_4,2_4,2_4,4_4,4_4,8_4,8_4,16_4,16_4,-1_4]70!intrinsic::selected_int_kind71!intrinsic::size72!logical(4),parameter::ipcheck=.true._473!integer(4),parameter::realprecs(1_8:*)=[INTEGER(4)::3_4,2_4,6_4,15_4,33_4]74!intrinsic::precision75!logical(4),parameter::rpreccheck=.true._476!integer(4),parameter::realpvals(1_8:*)=[INTEGER(4)::0_4,3_4,4_4,6_4,7_4,15_4,19_4,33_4,34_4]77!integer(4),parameter::realpkinds(1_8:*)=[INTEGER(4)::2_4,2_4,4_4,4_4,8_4,8_4,16_4,16_4,-1_4]78!intrinsic::selected_real_kind79!logical(4),parameter::realpcheck=.true._480!integer(4),parameter::realranges(1_8:*)=[INTEGER(4)::4_4,37_4,37_4,307_4,4931_4]81!logical(4),parameter::rrangecheck=.true._482!integer(4),parameter::realrvals(1_8:*)=[INTEGER(4)::0_4,4_4,5_4,37_4,38_4,307_4,4932_4]83!integer(4),parameter::realrkinds(1_8:*)=[INTEGER(4)::2_4,2_4,3_4,3_4,8_4,8_4,-2_4]84!logical(4),parameter::realrcheck=.true._485!logical(4),parameter::radixcheck=.true._486!intrinsic::radix87!integer(4),parameter::intdigits(1_8:*)=[INTEGER(4)::7_4,15_4,31_4,63_4,127_4]88!intrinsic::digits89!logical(4),parameter::intdigitscheck=.true._490!integer(4),parameter::realdigits(1_8:*)=[INTEGER(4)::11_4,8_4,24_4,53_4,113_4]91!logical(4),parameter::realdigitscheck=.true._492!end93