103 lines · plain
1! RUN: %python %S/test_folding.py %s %flang_fc12 3! Test mask intrinsic folding4 5module maskltest6 logical, parameter :: test_l0 = maskl(0) .EQ. 07 logical, parameter :: test_l1 = maskl(1) .EQ. -2147483648_88 logical, parameter :: test_l2 = maskl(2) .EQ. -10737418249 logical, parameter :: test_lm = maskl(16) .EQ. -6553610 logical, parameter :: test_le1 = maskl(31) .EQ. -211 logical, parameter :: test_le = maskl(32) .EQ. -112 logical, parameter :: test_lo = maskl(33) .EQ. -113 14 logical, parameter :: test_l0_1 = maskl(0, 1) .EQ. 0_115 logical, parameter :: test_l1_1 = maskl(1, 1) .EQ. -128_216 logical, parameter :: test_l2_1 = maskl(2, 1) .EQ. -64_117 logical, parameter :: test_lm_1 = maskl(4, 1) .EQ. -16_118 logical, parameter :: test_le1_1 = maskl(7, 1) .EQ. -2_119 logical, parameter :: test_le_1 = maskl(8, 1) .EQ. -1_120 logical, parameter :: test_lo_1 = maskl(9, 1) .EQ. -1_121 22 logical, parameter :: test_l0_2 = maskl(0, 2) .EQ. 0_223 logical, parameter :: test_l1_2 = maskl(1, 2) .EQ. -32768_424 logical, parameter :: test_l2_2 = maskl(2, 2) .EQ. -16384_225 logical, parameter :: test_lm_2 = maskl(8, 2) .EQ. -256_226 logical, parameter :: test_le1_2 = maskl(15, 2) .EQ. -2_227 logical, parameter :: test_le_2 = maskl(16, 2) .EQ. -1_228 logical, parameter :: test_lo_2 = maskl(17, 2) .EQ. -1_229 30 logical, parameter :: test_l0_4 = maskl(0, 4) .EQ. 0_431 logical, parameter :: test_l1_4 = maskl(1, 4) .EQ. -2147483648_832 logical, parameter :: test_l2_4 = maskl(2, 4) .EQ. -1073741824_433 logical, parameter :: test_lm_4 = maskl(16, 4) .EQ. -65536_434 logical, parameter :: test_le1_4 = maskl(31, 4) .EQ. -2_435 logical, parameter :: test_le_4 = maskl(32, 4) .EQ. -1_436 logical, parameter :: test_lo_4 = maskl(33, 4) .EQ. -1_437 38 logical, parameter :: test_l0_8 = maskl(0, 8) .EQ. 0_839 logical, parameter :: test_l1_8 = maskl(1, 8) .EQ. -9223372036854775808_1640 logical, parameter :: test_l2_8 = maskl(2, 8) .EQ. -4611686018427387904_841 logical, parameter :: test_lm_8 = maskl(32, 8) .EQ. -4294967296_842 logical, parameter :: test_le1_8 = maskl(63, 8) .EQ. -2_843 logical, parameter :: test_le_8 = maskl(64, 8) .EQ. -1_844 logical, parameter :: test_lo_8 = maskl(65, 8) .EQ. -1_845 46 logical, parameter :: test_l0_16 = maskl(0, 16) .EQ. 0_1647 logical, parameter :: test_l2_16 = maskl(2, 16) .EQ. -85070591730234615865843651857942052864_1648 logical, parameter :: test_lm_16 = maskl(64, 16) .EQ. -18446744073709551616_1649 logical, parameter :: test_le1_16 = maskl(127, 16) .EQ. -2_1650 logical, parameter :: test_le_16 = maskl(128, 16) .EQ. -1_1651 logical, parameter :: test_lo_16 = maskl(129, 16) .EQ. -1_1652end module maskltest53 54module maskrtest55 logical, parameter :: test_r0 = maskr(0) .EQ. 056 logical, parameter :: test_r1 = maskr(1) .EQ. 157 logical, parameter :: test_r2 = maskr(2) .EQ. 358 logical, parameter :: test_rm = maskr(16) .EQ. 6553559 logical, parameter :: test_re1 = maskr(31) .EQ. 214748364760 logical, parameter :: test_re = maskr(32) .EQ. -161 logical, parameter :: test_ro = maskr(33) .EQ. -162 63 logical, parameter :: test_r0_1 = maskr(0, 1) .EQ. 0_164 logical, parameter :: test_r1_1 = maskr(1, 1) .EQ. 1_165 logical, parameter :: test_r2_1 = maskr(2, 1) .EQ. 3_166 logical, parameter :: test_rm_1 = maskr(4, 1) .EQ. 15_167 logical, parameter :: test_re1_1 = maskr(7, 1) .EQ. 127_168 logical, parameter :: test_re_1 = maskr(8, 1) .EQ. -1_169 logical, parameter :: test_ro_1 = maskr(9, 1) .EQ. -1_170 71 logical, parameter :: test_r0_2 = maskr(0, 2) .EQ. 0_272 logical, parameter :: test_r1_2 = maskr(1, 2) .EQ. 1_273 logical, parameter :: test_r2_2 = maskr(2, 2) .EQ. 3_274 logical, parameter :: test_rm_2 = maskr(8, 2) .EQ. 255_275 logical, parameter :: test_re1_2 = maskr(15, 2) .EQ. 32767_276 logical, parameter :: test_re_2 = maskr(16, 2) .EQ. -1_277 logical, parameter :: test_ro_2 = maskr(17, 2) .EQ. -1_278 79 logical, parameter :: test_r0_4 = maskr(0, 4) .EQ. 0_480 logical, parameter :: test_r1_4 = maskr(1, 4) .EQ. 1_481 logical, parameter :: test_r2_4 = maskr(2, 4) .EQ. 3_482 logical, parameter :: test_rm_4 = maskr(16, 4) .EQ. 65535_483 logical, parameter :: test_re1_4 = maskr(31, 4) .EQ. 2147483647_484 logical, parameter :: test_re_4 = maskr(32, 4) .EQ. -1_485 logical, parameter :: test_ro_4 = maskr(33, 4) .EQ. -1_486 87 logical, parameter :: test_r0_8 = maskr(0, 8) .EQ. 0_888 logical, parameter :: test_r1_8 = maskr(1, 8) .EQ. 1_889 logical, parameter :: test_r2_8 = maskr(2, 8) .EQ. 3_890 logical, parameter :: test_rm_8 = maskr(32, 8) .EQ. 4294967295_891 logical, parameter :: test_re1_8 = maskr(63, 8) .EQ. 9223372036854775807_892 logical, parameter :: test_re_8 = maskr(64, 8) .EQ. -1_893 logical, parameter :: test_ro_8 = maskr(65, 8) .EQ. -1_894 95 logical, parameter :: test_r0_16 = maskr(0, 16) .EQ. 0_1696 logical, parameter :: test_r1_16 = maskr(1, 16) .EQ. 1_1697 logical, parameter :: test_r2_16 = maskr(2, 16) .EQ. 3_1698 logical, parameter :: test_rm_16 = maskr(64, 16) .EQ. 18446744073709551615_1699 logical, parameter :: test_re1_16 = maskr(127, 16) .EQ. 170141183460469231731687303715884105727_16100 logical, parameter :: test_re_16 = maskr(128, 16) .EQ. -1_16101 logical, parameter :: test_ro_16 = maskr(129, 16) .EQ. -1_16102end module maskrtest103