aarch64: Add vector floating point extend pattern [PR113880, PR113869]
[official-gcc.git] / gcc / testsuite / gfortran.dg / power_8.f90
blob143063bdec9275060376a0e20e701a9dc45dc4b4
1 ! { dg-do run }
2 ! { dg-additional-options "-fdump-tree-original" }
4 ! PR88579 - Test optimizations for bases that are powers of 2 or -2.
5 program p
6 implicit none
7 integer(4) :: i, u
8 integer(1) :: j, v
9 integer(2) :: k, w
10 integer(8) :: z
11 ! Test selected positive bases
12 u = 1
13 do i=1,5
14 u = u * 64_4
15 if (u /= 64_4 ** i) stop 1
16 end do
17 z = 1
18 do i=1,7
19 z = z * 256_8
20 if (z /= 256_8 ** i) stop 2
21 end do
22 z = 1
23 do i=1,3
24 z = z * 65536_8
25 if (z /= 65536_8 ** i) stop 3
26 end do
27 ! Test selected negative bases and integer kind combinations
28 u = 1
29 do i=1,7
30 u = u * (-2_1)
31 if (u /= (-2_1) ** i) stop 4
32 end do
33 v = 1
34 do j=1,7
35 v = v * (-2_1)
36 if (v /= (-2_1) ** j) stop 5
37 end do
38 v = 1
39 do k=1,7
40 v = v * (-2_1)
41 if (v /= (-2_1) ** k) stop 6
42 end do
43 w = 1
44 do k=1,7
45 w = w * (-4_2)
46 if (w /= (-4_2) ** k) stop 7
47 end do
48 w = 1
49 do i=1,5
50 w = w * (-8_2)
51 if (w /= (-8_2) ** i) stop 8
52 end do
53 u = 1
54 do i=1,1
55 u = u * (-HUGE(1_4)/2-1)
56 if (u /= (-HUGE(1_4)/2-1) ** i) stop 9
57 end do
58 z = 1
59 do i=1,7
60 z = z * (-512_8)
61 if (z /= (-512_8) ** i) stop 10
62 end do
63 end program p
64 ! { dg-final { scan-tree-dump-not "_gfortran_pow" "original" } }