2010-09-06 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 6 Sep 2010 05:55:10 +0000 (05:55 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 6 Sep 2010 05:55:10 +0000 (05:55 +0000)
commit9028d57d0909ff8705828c5d0036a298f1249d9b
treeb60ae679f939f761998c881713e1adbe57c96041
parent948e1ebc502a0517e6becc3dde642251d55456f4
2010-09-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/38282
        * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
        (check_specific): Special case for those intrinsics.
        * gfortran.h (gfc_isym_id): Add new intrinsics
        * intrinsic.h (gfc_check_transf_bit_intrins,
        gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
        gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
        New prototypes.
        * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
        gfc_resolve_iparity, resolve_transformational): New functions.
        (gfc_resolve_product, gfc_resolve_sum,
        gfc_resolve_parity): Use resolve_transformational.
        * check.c (gfc_check_transf_bit_intrins): New function.
        * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
        gfc_simplify_iparity, do_bit_any, do_bit_ior,
        do_bit_xor, simplify_transformation): New functions.
        (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
        gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
        * trans-intrinsic.c (gfc_conv_intrinsic_arith,
        gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
        Handle IALL, IANY and IPARITY intrinsics.
        * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
        order.
        (IALL, IANY, IPARITY): Document new intrinsics.

2010-09-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/38282
        * gfortran.dg/iall_iany_iparity_1.f90: New.
        * gfortran.dg/iall_iany_iparity_2.f90: New.

2010-09-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/38282
        * gfortran.map: Add new iany, iall and iparity intrinsics.
        * Makefile.am: Ditto.
        * m4/iany.m4: New.
        * m4/iall.m4: New.
        * m4/iparity.m4: New.
        * Makefile.in: Regenerate.
        * generated/iall_i1.c: Generate.
        * generated/iall_i2.c: Generate.
        * generated/iall_i4.c: Generate.
        * generated/iall_i8.c: Generate.
        * generated/iall_i16.c: Generate.
        * generated/iany_i1.c: Generate.
        * generated/iany_i2.c: Generate.
        * generated/iany_i4.c: Generate.
        * generated/iany_i8.c: Generate.
        * generated/iany_i16.c: Generate.
        * generated/iparity_i1.c: Generate.
        * generated/iparity_i2.c: Generate.
        * generated/iparity_i4.c: Generate.
        * generated/iparity_i8.c: Generate.
        * generated/iparity_i16.c: Generate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163898 138bc75d-0d04-0410-961f-82ee72b054a4
34 files changed:
gcc/fortran/ChangeLog
gcc/fortran/check.c
gcc/fortran/gfortran.h
gcc/fortran/intrinsic.c
gcc/fortran/intrinsic.h
gcc/fortran/intrinsic.texi
gcc/fortran/iresolve.c
gcc/fortran/simplify.c
gcc/fortran/trans-intrinsic.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/iall_iany_iparity_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/iall_iany_iparity_2.f90 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/Makefile.am
libgfortran/Makefile.in
libgfortran/generated/iall_i1.c [new file with mode: 0644]
libgfortran/generated/iall_i16.c [new file with mode: 0644]
libgfortran/generated/iall_i2.c [new file with mode: 0644]
libgfortran/generated/iall_i4.c [new file with mode: 0644]
libgfortran/generated/iall_i8.c [new file with mode: 0644]
libgfortran/generated/iany_i1.c [new file with mode: 0644]
libgfortran/generated/iany_i16.c [new file with mode: 0644]
libgfortran/generated/iany_i2.c [new file with mode: 0644]
libgfortran/generated/iany_i4.c [new file with mode: 0644]
libgfortran/generated/iany_i8.c [new file with mode: 0644]
libgfortran/generated/iparity_i1.c [new file with mode: 0644]
libgfortran/generated/iparity_i16.c [new file with mode: 0644]
libgfortran/generated/iparity_i2.c [new file with mode: 0644]
libgfortran/generated/iparity_i4.c [new file with mode: 0644]
libgfortran/generated/iparity_i8.c [new file with mode: 0644]
libgfortran/gfortran.map
libgfortran/m4/iall.m4 [new file with mode: 0644]
libgfortran/m4/iany.m4 [new file with mode: 0644]
libgfortran/m4/iparity.m4 [new file with mode: 0644]