llvm/flang/test/Semantics/PowerPC/ppc-vector-types01.f90

! RUN: %flang_fc1 -fdebug-unparse %s | FileCheck %s
! REQUIRES: target=powerpc{{.*}}

    ! CHECK-LABEL: PROGRAM ppc_vec_unit
      program ppc_vec_unit
      implicit none
      ! CHECK: VECTOR(INTEGER(KIND=4_4)) :: vi1, vi2
      vector(integer(4)) :: vi1, vi2
      ! CHECK-NEXT: VECTOR(REAL(KIND=8_4)) :: vr1, vr2
      vector(real(8)) :: vr1, vr2
      ! CHECK-NEXT: VECTOR(UNSIGNED(KIND=2_4)) :: vu1, vu2
      vector(unsigned(2)) :: vu1, vu2
      ! CHECK-NEXT: __VECTOR_PAIR :: vp1, vp2
      __vector_pair :: vp1, vp2
      ! CHECK-NEXT: __VECTOR_QUAD :: vq1, vq2
      __vector_quad :: vq1, vq2
      ! CHECK-NEXT: vi2=test_vec_integer_assign(vi1)
      vi2 = test_vec_integer_assign(vi1)
      ! CHECK-NEXT: vr2=test_vec_real_assign(vr1)
      vr2 = test_vec_real_assign(vr1)
      ! CHECK-NEXT: vu2=test_vec_unsigned_assign(vu1)
      vu2 = test_vec_unsigned_assign(vu1)
      ! CHECK-NEXT: vp2=test_vec_pair_assign(vp1)
      vp2 = test_vec_pair_assign(vp1)
      ! CHECK-NEXT: vq2=test_vec_quad_assign(vq1)
      vq2 = test_vec_quad_assign(vq1)

      contains
      ! CHECK-LABEL: FUNCTION test_vec_integer_assign
      function test_vec_integer_assign(arg1)
        ! CHECK: VECTOR(INTEGER(KIND=4_4)) :: arg1, test_vec_integer_assign
        vector(integer(4)) :: arg1, test_vec_integer_assign
        ! CHECK-NEXT: test_vec_integer_assign=arg1
        test_vec_integer_assign = arg1
      end function test_vec_integer_assign

      ! CHECK-LABEL: FUNCTION test_vec_real_assign
      function test_vec_real_assign(arg1)
        ! CHECK: VECTOR(REAL(KIND=8_4)) :: arg1, test_vec_real_assign
        vector(real(8)) :: arg1, test_vec_real_assign
        ! CHECK-NEXT: test_vec_real_assign=arg1
        test_vec_real_assign = arg1
      end function test_vec_real_assign

      ! CHECK-LABEL: FUNCTION test_vec_unsigned_assign
      function test_vec_unsigned_assign(arg1)
        ! CHECK: VECTOR(UNSIGNED(KIND=2_4)) :: arg1, test_vec_unsigned_assign
        vector(unsigned(2)) :: arg1, test_vec_unsigned_assign
        ! CHECK-NEXT: test_vec_unsigned_assign=arg1
        test_vec_unsigned_assign = arg1
      end function test_vec_unsigned_assign

      ! CHECK-LABEL: FUNCTION test_vec_pair_assign
      function test_vec_pair_assign(arg1)
        ! CHECK: __VECTOR_PAIR :: arg1, test_vec_pair_assign
        __vector_pair :: arg1, test_vec_pair_assign
        ! CHECK-NEXT: test_vec_pair_assign=arg1
        test_vec_pair_assign = arg1
      end function test_vec_pair_assign

      ! CHECK-LABEL: FUNCTION test_vec_quad_assign
      function test_vec_quad_assign(arg1)
        ! CHECK: __VECTOR_QUAD :: arg1, test_vec_quad_assign
        __vector_quad :: arg1, test_vec_quad_assign
        ! CHECK-NEXT: test_vec_quad_assign=arg1
        test_vec_quad_assign = arg1
      end function test_vec_quad_assign

      end