xref: /llvm-project/flang/test/Semantics/rshift.f90 (revision 93196654f526026f9f751784454cb72f829e39cb)
1! RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s
2! Check that a call to RSHIFT is transformed to SHIFTA.
3
4subroutine test_default_integer()
5  integer :: i, j, k
6  k = rshift(i, j)
7!CHECK: k=shifta(i,j)
8  k = rshift(16, 2)
9!CHECK: k=4_4
10end
11
12subroutine test_integer1()
13  integer(1) :: i, j, k
14  k = rshift(i, j)
15!CHECK: k=shifta(i,int(j,kind=4))
16  print *, rshift(8_1, 2)
17!CHECK: PRINT *, 2_1
18end
19
20subroutine test_integer2()
21  integer(2) :: i, j, k
22  k = rshift(i, j)
23!CHECK: k=shifta(i,int(j,kind=4))
24  print *, rshift(8_2, 2)
25!CHECK: PRINT *, 2_2
26end
27
28subroutine test_integer4()
29  integer(4) :: i, j, k
30  k = rshift(i, j)
31!CHECK: k=shifta(i,j)
32  print *, rshift(8_4, 2)
33!CHECK: PRINT *, 2_4
34end
35
36subroutine test_integer8()
37  integer(8) :: i, j, k
38  k = rshift(i, j)
39!CHECK: k=shifta(i,int(j,kind=4))
40  print *, rshift(-16_8, 2)
41!CHECK: PRINT *, -4_8
42end
43
44subroutine test_integer16()
45  integer(16) :: i, j, k
46  k = rshift(i, j)
47!CHECK: k=shifta(i,int(j,kind=4))
48  print *, rshift(8_16, 2)
49!CHECK: PRINT *, 2_16
50end
51