brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.0 KiB · f2f8d06 Raw
190 lines · plain
1! RUN: %python %S/test_folding.py %s %flang_fc12 3! Test directional shift intrinsics4 5module consts6  integer, parameter :: z40 = 10737418247  integer, parameter :: z60 = 16106127368  integer, parameter :: z80 = -2147483648_89  integer, parameter :: zC0 = -107374182410  integer, parameter :: zE0 = -53687091211  integer, parameter :: zF0 = -26843545612 13  integer(1), parameter :: z40_1 = 64_114  integer(1), parameter :: z60_1 = 96_115  integer(1), parameter :: z80_1 = -128_216  integer(1), parameter :: zC0_1 = -64_117  integer(1), parameter :: zE0_1 = -32_118  integer(1), parameter :: zF0_1 = -16_119 20  integer(2), parameter :: z40_2 = 16384_221  integer(2), parameter :: z60_2 = 24576_222  integer(2), parameter :: z80_2 = -32768_423  integer(2), parameter :: zC0_2 = -16384_224  integer(2), parameter :: zE0_2 = -8192_225  integer(2), parameter :: zF0_2 = -4096_226 27  integer(4), parameter :: z40_4 = 1073741824_428  integer(4), parameter :: z60_4 = 1610612736_429  integer(4), parameter :: z80_4 = -2147483648_830  integer(4), parameter :: zC0_4 = -1073741824_431  integer(4), parameter :: zE0_4 = -536870912_432  integer(4), parameter :: zF0_4 = -268435456_433 34  integer(8), parameter :: z40_8 = 4611686018427387904_835  integer(8), parameter :: z60_8 = 6917529027641081856_836  integer(8), parameter :: z80_8 = -9223372036854775808_1637  integer(8), parameter :: zC0_8 = -4611686018427387904_838  integer(8), parameter :: zE0_8 = -2305843009213693952_839  integer(8), parameter :: ZF0_8 = -1152921504606846976_840 41  integer(16), parameter :: z40_16 = 85070591730234615865843651857942052864_1642  integer(16), parameter :: z60_16 = 127605887595351923798765477786913079296_1643  integer(16), parameter :: zC0_16 = -85070591730234615865843651857942052864_1644  integer(16), parameter :: zE0_16 = -42535295865117307932921825928971026432_1645  integer(16), parameter :: ZF0_16 = -21267647932558653966460912964485513216_1646 47end module consts48 49module shiftltest50  use consts51 52  logical, parameter :: test_l0 = shiftl(1, 0) .EQ. 153  logical, parameter :: test_l1 = shiftl(1, 1) .EQ. 254  logical, parameter :: test_lm = shiftl(1, 16) .EQ. 6553655  logical, parameter :: test_l3e2 = shiftl(3, 30) .EQ. zC056  logical, parameter :: test_l3e1 = shiftl(3, 31) .EQ. z8057  logical, parameter :: test_le1 = shiftl(1, 31) .EQ. z8058  logical, parameter :: test_le = shiftl(1, 32) .EQ. 059 60  logical, parameter :: test_l0_1 = shiftl(1_1, 0) .EQ. 1_161  logical, parameter :: test_l1_1 = shiftl(1_1, 1) .EQ. 2_162  logical, parameter :: test_lm_1 = shiftl(1_1, 4) .EQ. 16_163  logical, parameter :: test_l3e2_1 = shiftl(3_1, 6) .EQ. zC0_164  logical, parameter :: test_l3e1_1 = shiftl(3_1, 7) .EQ. z80_165  logical, parameter :: test_le1_1 = shiftl(1_1, 7) .EQ. z80_166  logical, parameter :: test_le_1 = shiftl(1_1, 8) .EQ. 0_167 68  logical, parameter :: test_l0_2 = shiftl(1_2, 0) .EQ. 169  logical, parameter :: test_l1_2 = shiftl(1_2, 1) .EQ. 270  logical, parameter :: test_lm_2 = shiftl(1_2, 8) .EQ. 256_271  logical, parameter :: test_l3e2_2 = shiftl(3_2, 14) .EQ. zC0_272  logical, parameter :: test_l3e1_2 = shiftl(3_2, 15) .EQ. z80_273  logical, parameter :: test_le1_2 = shiftl(1_2, 15) .EQ. z80_274  logical, parameter :: test_le_2 = shiftl(1_2, 16) .EQ. 0_275 76  logical, parameter :: test_l0_4 = shiftl(1_4, 0) .EQ. 1_477  logical, parameter :: test_l1_4 = shiftl(1_4, 1) .EQ. 2_478  logical, parameter :: test_lm_4 = shiftl(1_4, 16) .EQ. 65536_479  logical, parameter :: test_l3e2_4 = shiftl(3_4, 30) .EQ. zC0_480  logical, parameter :: test_l3e1_4 = shiftl(3_4, 31) .EQ. z80_481  logical, parameter :: test_le1_4 = shiftl(1_4, 31) .EQ. z80_482  logical, parameter :: test_le_4 = shiftl(1_4, 32) .EQ. 0_483 84  logical, parameter :: test_l0_8 = shiftl(1_8, 0) .EQ. 1_885  logical, parameter :: test_l1_8 = shiftl(1_8, 1) .EQ. 2_886  logical, parameter :: test_lm_8 = shiftl(1_8, 16) .EQ. 6553687  logical, parameter :: test_l3e2_8 = shiftl(3_8, 62) .EQ. zC0_888  logical, parameter :: test_l3e1_8 = shiftl(3_8, 63) .EQ. z80_889  logical, parameter :: test_le1_8 = shiftl(1_8, 63) .EQ. z80_890  logical, parameter :: test_le_8 = shiftl(1_8, 64) .EQ. 0_891 92  logical, parameter :: test_l0_16 = shiftl(1_16, 0) .EQ. 1_1693  logical, parameter :: test_l1_16 = shiftl(1_16, 1) .EQ. 2_1694  logical, parameter :: test_lm_16 = shiftl(1_16, 64) .EQ. 18446744073709551616_1695  logical, parameter :: test_l3e2_16 = shiftl(3_16, 126) .EQ. zC0_1696  logical, parameter :: test_le_16 = shiftl(1_16, 128) .EQ. 0_1697end module shiftltest98 99module shiftrtest100  use consts101 102  logical, parameter :: test_r0 = shiftr(zC0, 0) .EQ. zC0103  logical, parameter :: test_r1 = shiftr(zC0, 1) .EQ. z60104  logical, parameter :: test_rm = shiftr(z40, 16) .EQ. 16384105  logical, parameter :: test_r3e2 = shiftr(zC0, 30) .EQ. 3106  logical, parameter :: test_r3e1 = shiftr(zC0, 31) .EQ. 1107  logical, parameter :: test_re = shiftr(z80, 32) .EQ. 0108 109  logical, parameter :: test_r0_1 = shiftr(zC0_1, 0) .EQ. zC0_1110  logical, parameter :: test_r1_1 = shiftr(zC0_1, 1) .EQ. z60_1111  logical, parameter :: test_rm_1 = shiftr(z40_1, 4) .EQ. 4_1112  logical, parameter :: test_r3e2_1 = shiftr(zC0_1, 6) .EQ. 3_1113  logical, parameter :: test_r3e1_1 = shiftr(zC0_1, 7) .EQ. 1_1114  logical, parameter :: test_re_1 = shiftr(z80_1, 8) .EQ. 0_1115 116  logical, parameter :: test_r0_2 = shiftr(zC0_2, 0) .EQ. zC0_2117  logical, parameter :: test_r1_2 = shiftr(zC0_2, 1) .EQ. z60_2118  logical, parameter :: test_rm_2 = shiftr(z40_2, 8) .EQ. 64_1119  logical, parameter :: test_r3e2_2 = shiftr(zC0_2, 14) .EQ. 3_2120  logical, parameter :: test_r3e1_2 = shiftr(zC0_2, 15) .EQ. 1_2121  logical, parameter :: test_re_2 = shiftr(z80_2, 16) .EQ. 0_2122 123  logical, parameter :: test_r0_4 = shiftr(zC0_4, 0) .EQ. zC0_4124  logical, parameter :: test_r1_4 = shiftr(zC0_4, 1) .EQ. z60_4125  logical, parameter :: test_rm_4 = shiftr(z40_4, 16) .EQ. 16384_4126  logical, parameter :: test_r3e2_4 = shiftr(zC0_4, 30) .EQ. 3_4127  logical, parameter :: test_r3e1_4 = shiftr(zC0_4, 31) .EQ. 1_4128  logical, parameter :: test_re_4 = shiftr(z80_4, 32) .EQ. 0_4129 130  logical, parameter :: test_r0_8 = shiftr(zC0_8, 0) .EQ. zC0_8131  logical, parameter :: test_r1_8 = shiftr(zC0_8, 1) .EQ. z60_8132  logical, parameter :: test_rm_8 = shiftr(z40_8, 32) .EQ. 1073741824_8133  logical, parameter :: test_r3e2_8 = shiftr(zC0_8, 62) .EQ. 3_8134  logical, parameter :: test_r3e1_8 = shiftr(zC0_8, 63) .EQ. 1_8135  logical, parameter :: test_re_8 = shiftr(z80_8, 64) .EQ. 0_8136 137  logical, parameter :: test_r0_16 = shiftr(zC0_16, 0) .EQ. zC0_16138  logical, parameter :: test_r1_16 = shiftr(zC0_16, 1) .EQ. z60_16139  logical, parameter :: test_rm_16 = shiftr(z40_16, 64) .EQ. 4611686018427387904_16140  logical, parameter :: test_r3e2_16 = shiftr(zC0_16, 126) .EQ. 3_16141  logical, parameter :: test_r3e1_16 = shiftr(zC0_16, 127) .EQ. 1_16142  logical, parameter :: test_re_16 = shiftr(z40_16, 128) .EQ. 0_16143end module shiftrtest144 145module shiftatest146  use consts147 148  logical, parameter :: test_a0 = shifta(zC0, 0) .EQ. zC0149  logical, parameter :: test_a1 = shifta(zC0, 1) .EQ. zE0150  logical, parameter :: test_a2 = shifta(zC0, 2) .EQ. zF0151  logical, parameter :: test_a3e2 = shifta(zC0, 29) .EQ. -2152  logical, parameter :: test_a3e1 = shifta(zC0, 31) .EQ. -1153  logical, parameter :: test_ae = shifta(z80, 32) .EQ. -1154 155  logical, parameter :: test_a0_1 = shifta(zC0_1, 0) .EQ. zC0_1156  logical, parameter :: test_a1_1 = shifta(zC0_1, 1) .EQ. zE0_1157  logical, parameter :: test_a2_1 = shifta(zC0_1, 2) .EQ. zF0_1158  logical, parameter :: test_a3e2_1 = shifta(zC0_1, 5) .EQ. -2_1159  logical, parameter :: test_a3e1_1 = shifta(zC0_1, 7) .EQ. -1_1160  logical, parameter :: test_ae_1 = shifta(z80_1, 8) .EQ. -1_1161 162  logical, parameter :: test_a0_2 = shifta(zC0_2, 0) .EQ. zC0_2163  logical, parameter :: test_a1_2 = shifta(zC0_2, 1) .EQ. zE0_2164  logical, parameter :: test_a2_2 = shifta(zC0_2, 2) .EQ. zF0_2165  logical, parameter :: test_a3e2_2 = shifta(zC0_2, 13) .EQ. -2_2166  logical, parameter :: test_a3e1_2 = shifta(zC0_2, 15) .EQ. -1_2167  logical, parameter :: test_ae_2 = shifta(z80_2, 16) .EQ. -1_2168 169  logical, parameter :: test_a0_4 = shifta(zC0_4, 0) .EQ. zC0_4170  logical, parameter :: test_a1_4 = shifta(zC0_4, 1) .EQ. zE0_4171  logical, parameter :: test_a2_4 = shifta(zC0_4, 2) .EQ. zF0_4172  logical, parameter :: test_a3e2_4 = shifta(zC0_4, 29) .EQ. -2_4173  logical, parameter :: test_a3e1_4 = shifta(zC0_4, 31) .EQ. -1_4174  logical, parameter :: test_ae_4 = shifta(z80_4, 32) .EQ. -1_4175 176  logical, parameter :: test_a0_8 = shifta(zC0_8, 0) .EQ. zC0_8177  logical, parameter :: test_a1_8 = shifta(zC0_8, 1) .EQ. zE0_8178  logical, parameter :: test_a2_8 = shifta(zC0_8, 2) .EQ. zF0_8179  logical, parameter :: test_a3e2_8 = shifta(zC0_8, 61) .EQ. -2_8180  logical, parameter :: test_a3e1_8 = shifta(zC0_8, 63) .EQ. -1_8181  logical, parameter :: test_ae_8 = shifta(z80_8, 64) .EQ. -1_8182 183  logical, parameter :: test_a0_16 = shifta(zC0_16, 0) .EQ. zC0_16184  logical, parameter :: test_a1_16 = shifta(zC0_16, 1) .EQ. zE0_16185  logical, parameter :: test_a2_16 = shifta(zC0_16, 2) .EQ. zF0_16186  logical, parameter :: test_a3e2_16 = shifta(zC0_16, 125) .EQ. -2_16187  logical, parameter :: test_a3e1_16 = shifta(zC0_16, 127) .EQ. -1_16188  logical, parameter :: test_ae_16 = shifta(zC0_16, 128) .EQ. -1_16189end module shiftatest190