OSDN Git Service

2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Oct 2008 18:45:35 +0000 (18:45 +0000)
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Oct 2008 18:45:35 +0000 (18:45 +0000)
commit3fd96979034ec6ef1aeae5091cca14a34ebe1457
treeba85afbce5879d55a66eeef30c89205890d782f2
parent9f85d7eaeabd82588ad29e2cdc210a037c34ca9e
2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
            Yukishige Shibata <shibata@rd.scei.sony.co.jp>
            Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>

        * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
        Altivec intrinsics.
        * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
        prototype.  Add new parameter, blk.
        Use BLKmode for the MEM if blk is true.
        (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
        ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
        ALTIVEC_BUILTIN_STVRXL.
        Update usage of altivec_expand_lv_builtin.
        Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
        ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
        (altivec_init_builtins): If compiling for the Cell, also define the
        cell VMX builtins.
        * config/rs6000/rs6000.h (rs6000_builtins): Define
        ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
        ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
        ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
        ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
        ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
        ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
        ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
        * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
        UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
        UNSPEC_STVRX, and UNSPEC_STVRXL.
        (altivec_lvlx): New pattern.
        (altivec_lvlxl): New pattern.
        (altivec_lvrx): New pattern.
        (altivec_lvrxl): New pattern.
        (altivec_stvlx): New pattern.
        (altivec_stvlxl): New pattern.
        (altivec_stvrx): New pattern.
        (altivec_stvrxl): New pattern.
        * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
        (vec_lvlxl): Likewise.
        (vec_lvrx): Define if PPU is defined.
        (vec_lvrxl): Likewise.
        (vec_stvlx): Define if PPU is defined.
        (vec_stvlxl): Likewise.
        (vec_stvrx): Define if PPU is defined.
        (vec_stvrxl): Likewise.

2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * gcc.target/powerpc/altivec_check.h (altivec_cell_check): New function.
        * gcc.target/powerpc/altivec-cell-6.c: New test.
        * gcc.target/powerpc/altivec-cell-7.c: New test.
        * gcc.target/powerpc/altivec-cell-8.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140820 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/rs6000/altivec.h
gcc/config/rs6000/altivec.md
gcc/config/rs6000/rs6000-c.c
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/altivec-cell-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/altivec-cell-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/altivec-cell-8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/altivec_check.h