xref: /llvm-project/flang/test/Semantics/PowerPC/ppc-vector-types01.f90 (revision a9e1d2e760b502fb31ad522b0885a2150f008e86)
1! RUN: %flang_fc1 -fdebug-unparse %s | FileCheck %s
2! REQUIRES: target=powerpc{{.*}}
3
4    ! CHECK-LABEL: PROGRAM ppc_vec_unit
5      program ppc_vec_unit
6      implicit none
7      ! CHECK: VECTOR(INTEGER(KIND=4_4)) :: vi1, vi2
8      vector(integer(4)) :: vi1, vi2
9      ! CHECK-NEXT: VECTOR(REAL(KIND=8_4)) :: vr1, vr2
10      vector(real(8)) :: vr1, vr2
11      ! CHECK-NEXT: VECTOR(UNSIGNED(KIND=2_4)) :: vu1, vu2
12      vector(unsigned(2)) :: vu1, vu2
13      ! CHECK-NEXT: __VECTOR_PAIR :: vp1, vp2
14      __vector_pair :: vp1, vp2
15      ! CHECK-NEXT: __VECTOR_QUAD :: vq1, vq2
16      __vector_quad :: vq1, vq2
17      ! CHECK-NEXT: vi2=test_vec_integer_assign(vi1)
18      vi2 = test_vec_integer_assign(vi1)
19      ! CHECK-NEXT: vr2=test_vec_real_assign(vr1)
20      vr2 = test_vec_real_assign(vr1)
21      ! CHECK-NEXT: vu2=test_vec_unsigned_assign(vu1)
22      vu2 = test_vec_unsigned_assign(vu1)
23      ! CHECK-NEXT: vp2=test_vec_pair_assign(vp1)
24      vp2 = test_vec_pair_assign(vp1)
25      ! CHECK-NEXT: vq2=test_vec_quad_assign(vq1)
26      vq2 = test_vec_quad_assign(vq1)
27
28      contains
29      ! CHECK-LABEL: FUNCTION test_vec_integer_assign
30      function test_vec_integer_assign(arg1)
31        ! CHECK: VECTOR(INTEGER(KIND=4_4)) :: arg1, test_vec_integer_assign
32        vector(integer(4)) :: arg1, test_vec_integer_assign
33        ! CHECK-NEXT: test_vec_integer_assign=arg1
34        test_vec_integer_assign = arg1
35      end function test_vec_integer_assign
36
37      ! CHECK-LABEL: FUNCTION test_vec_real_assign
38      function test_vec_real_assign(arg1)
39        ! CHECK: VECTOR(REAL(KIND=8_4)) :: arg1, test_vec_real_assign
40        vector(real(8)) :: arg1, test_vec_real_assign
41        ! CHECK-NEXT: test_vec_real_assign=arg1
42        test_vec_real_assign = arg1
43      end function test_vec_real_assign
44
45      ! CHECK-LABEL: FUNCTION test_vec_unsigned_assign
46      function test_vec_unsigned_assign(arg1)
47        ! CHECK: VECTOR(UNSIGNED(KIND=2_4)) :: arg1, test_vec_unsigned_assign
48        vector(unsigned(2)) :: arg1, test_vec_unsigned_assign
49        ! CHECK-NEXT: test_vec_unsigned_assign=arg1
50        test_vec_unsigned_assign = arg1
51      end function test_vec_unsigned_assign
52
53      ! CHECK-LABEL: FUNCTION test_vec_pair_assign
54      function test_vec_pair_assign(arg1)
55        ! CHECK: __VECTOR_PAIR :: arg1, test_vec_pair_assign
56        __vector_pair :: arg1, test_vec_pair_assign
57        ! CHECK-NEXT: test_vec_pair_assign=arg1
58        test_vec_pair_assign = arg1
59      end function test_vec_pair_assign
60
61      ! CHECK-LABEL: FUNCTION test_vec_quad_assign
62      function test_vec_quad_assign(arg1)
63        ! CHECK: __VECTOR_QUAD :: arg1, test_vec_quad_assign
64        __vector_quad :: arg1, test_vec_quad_assign
65        ! CHECK-NEXT: test_vec_quad_assign=arg1
66        test_vec_quad_assign = arg1
67      end function test_vec_quad_assign
68
69      end
70