[flang] Support for PowerPC vector type
authorKelvin Li <kli@ca.ibm.com>
Tue, 23 May 2023 23:02:49 +0000 (19:02 -0400)
committerKelvin Li <kli@ca.ibm.com>
Wed, 24 May 2023 17:10:56 +0000 (13:10 -0400)
commitef934174704b75c8e04830bfd4f0c0bbedde9621
treea1f716286df0c599bb74bad372a5c1f4a4c1f5f4
parente7c5ced0b9f0551ea17e1d2b48be86f03a772c59
[flang] Support for PowerPC vector type

The following PowerPC vector type syntax is added:

  VECTOR ( element-type-spec )

where element-type-sec is integer-type-spec, real-type-sec or unsigned-type-spec.

Two opaque types (__VECTOR_PAIR and __VECTOR_QUAD) are also added.

A finite set of functionalities are implemented in order to support the new types:
1. declare objects
2. declare function result
3. declare type dummy arguments
4. intrinsic assignment between the new type objects (e.g. v1=v2)
5. reference functions that return the new types

Submit on behalf of @tislam @danielcchen

Authors: @tislam @danielcchen

Differential Revision: https://reviews.llvm.org/D150876
20 files changed:
flang/include/flang/Common/Fortran-features.h
flang/include/flang/Common/Fortran.h
flang/include/flang/Parser/dump-parse-tree.h
flang/include/flang/Parser/parse-tree.h
flang/include/flang/Semantics/semantics.h
flang/include/flang/Semantics/type.h
flang/lib/Evaluate/type.cpp
flang/lib/Lower/Bridge.cpp
flang/lib/Lower/CallInterface.cpp
flang/lib/Lower/ConvertType.cpp
flang/lib/Parser/Fortran-parsers.cpp
flang/lib/Parser/type-parsers.h
flang/lib/Parser/unparse.cpp
flang/lib/Semantics/resolve-names-utils.cpp
flang/lib/Semantics/resolve-names.cpp
flang/lib/Semantics/semantics.cpp
flang/module/__fortran_ppc_types.f90 [new file with mode: 0644]
flang/test/Lower/ppc-vector-types.f90 [new file with mode: 0644]
flang/test/Semantics/ppc-vector-types.f90 [new file with mode: 0644]
flang/tools/f18/CMakeLists.txt