This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/38282] Add the remaining HPF bit intrinsics



------- Comment #13 from fxcoudert at gcc dot gnu dot org  2010-09-08 19:35 -------
Subject: Bug 38282

Author: fxcoudert
Date: Wed Sep  8 19:35:35 2010
New Revision: 164021

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=164021
Log:
        PR fortran/38282

        * intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R},
        MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}.
        * gfortran.h: Define ISYM values for above intrinsics.
        * intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
        gfc_check_mask, gfc_check_merge_bits, gfc_check_shift,
        gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
        gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
        gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
        gfc_simplify_merge_bits, gfc_simplify_rshift,
        gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr,
        gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits,
        gfc_resolve_shift): New prototypes.
        * iresolve.c (gfc_resolve_dshift, gfc_resolve_mask,
        gfc_resolve_merge_bits, gfc_resolve_shift): New functions.
        * check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
        gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New
        functions.
        * trans-intrinsic.c (gfc_conv_intrinsic_dshift,
        gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift,
        gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New
        functions.
        (gfc_conv_intrinsic_function): Call above static functions.
        * intrinsic.texi: Document new intrinsics.
        * simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
        gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
        gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
        gfc_simplify_merge_bits, gfc_simplify_rshift, 
        gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr):
        New functions.

        * gfortran.dg/bit_comparison_1.F90: New test.
        * gfortran.dg/leadz_trailz_3.f90: New test.
        * gfortran.dg/masklr_2.F90: New test.
        * gfortran.dg/shiftalr_1.F90: New test.
        * gfortran.dg/merge_bits_2.F90: New test.
        * gfortran.dg/dshift_2.F90: New test.
        * gfortran.dg/bit_comparison_2.F90: New test.
        * gfortran.dg/masklr_1.F90: New test.
        * gfortran.dg/merge_bits_1.F90: New test.
        * gfortran.dg/dshift_1.F90: New test.
        * gfortran.dg/shiftalr_2.F90: New test.

Added:
    trunk/gcc/testsuite/gfortran.dg/bit_comparison_1.F90
    trunk/gcc/testsuite/gfortran.dg/bit_comparison_2.F90
    trunk/gcc/testsuite/gfortran.dg/dshift_1.F90
    trunk/gcc/testsuite/gfortran.dg/dshift_2.F90
    trunk/gcc/testsuite/gfortran.dg/leadz_trailz_3.f90
    trunk/gcc/testsuite/gfortran.dg/masklr_1.F90
    trunk/gcc/testsuite/gfortran.dg/masklr_2.F90
    trunk/gcc/testsuite/gfortran.dg/merge_bits_1.F90
    trunk/gcc/testsuite/gfortran.dg/merge_bits_2.F90
    trunk/gcc/testsuite/gfortran.dg/shiftalr_1.F90
    trunk/gcc/testsuite/gfortran.dg/shiftalr_2.F90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/check.c
    trunk/gcc/fortran/gfortran.h
    trunk/gcc/fortran/intrinsic.c
    trunk/gcc/fortran/intrinsic.h
    trunk/gcc/fortran/intrinsic.texi
    trunk/gcc/fortran/iresolve.c
    trunk/gcc/fortran/simplify.c
    trunk/gcc/fortran/trans-intrinsic.c
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38282


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]