diff options
author | Revital Eres <eres@il.ibm.com> | 2007-09-25 15:34:48 +0000 |
---|---|---|
committer | Revital Eres <revitale@gcc.gnu.org> | 2007-09-25 15:34:48 +0000 |
commit | 49e39588b6c99f93b6a092c43549a85f2fe9c690 (patch) | |
tree | c6776f0826f33d978a7bea8d6727d1ac64100fc8 | |
parent | 808d6eaa019dd81d95656e2e05bdf34e17c63484 (diff) | |
download | gcc-49e39588b6c99f93b6a092c43549a85f2fe9c690.zip gcc-49e39588b6c99f93b6a092c43549a85f2fe9c690.tar.gz gcc-49e39588b6c99f93b6a092c43549a85f2fe9c690.tar.bz2 |
Add missing built-in support for 750CL ps_sel instruction
From-SVN: r128767
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/paired.h | 1 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/ppc-paired.c | 1 |
6 files changed, 21 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b01a75a..9a4d954 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2007-09-25 Revital Eres <eres@il.ibm.com> + + * config/rs6000/paired.h (paired_sel): New. + * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4. + (rs6000_expand_ternop_builtin): Pass zero const_double operand + when expanding selv2sf. + * config/rs6000/rs6000.h (rs6000_builtins): Add + PAIRED_BUILTIN_SELV2SF4. + 2007-09-25 Joseph Myers <joseph@codesourcery.com> PR c/32295 diff --git a/gcc/config/rs6000/paired.h b/gcc/config/rs6000/paired.h index e70d0fa..314ea74 100644 --- a/gcc/config/rs6000/paired.h +++ b/gcc/config/rs6000/paired.h @@ -58,6 +58,7 @@ #define paired_lx __builtin_paired_lx #define paired_cmpu0 __builtin_paired_cmpu0 #define paired_cmpu1 __builtin_paired_cmpu1 +#define paired_sel __builtin_paired_selv2sf4 /* Condition register codes for Paired predicates. */ #define LT 0 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 0e9db74..aa4da10 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -6674,6 +6674,7 @@ static const struct builtin_description bdesc_3arg[] = { 0, CODE_FOR_paired_nmadd, "__builtin_paired_nmadd", PAIRED_BUILTIN_NMADD }, { 0, CODE_FOR_paired_sum0, "__builtin_paired_sum0", PAIRED_BUILTIN_SUM0 }, { 0, CODE_FOR_paired_sum1, "__builtin_paired_sum1", PAIRED_BUILTIN_SUM1 }, + { 0, CODE_FOR_selv2sf4, "__builtin_paired_selv2sf4", PAIRED_BUILTIN_SELV2SF4 }, }; /* DST operations: void foo (void *, const int, const char). */ @@ -7755,7 +7756,10 @@ rs6000_expand_ternop_builtin (enum insn_code icode, tree exp, rtx target) if (! (*insn_data[icode].operand[3].predicate) (op2, mode2)) op2 = copy_to_mode_reg (mode2, op2); - pat = GEN_FCN (icode) (target, op0, op1, op2); + if (TARGET_PAIRED_FLOAT && icode == CODE_FOR_selv2sf4) + pat = GEN_FCN (icode) (target, op0, op1, op2, CONST0_RTX (SFmode)); + else + pat = GEN_FCN (icode) (target, op0, op1, op2); if (! pat) return 0; emit_insn (pat); diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 5ace155..4b27085 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -2990,6 +2990,7 @@ enum rs6000_builtins PAIRED_BUILTIN_MADDS1, PAIRED_BUILTIN_STX, PAIRED_BUILTIN_LX, + PAIRED_BUILTIN_SELV2SF4, PAIRED_BUILTIN_CMPU0, PAIRED_BUILTIN_CMPU1, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4f8d576..a4c4923 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2007-09-25 Revital Eres <eres@il.ibm.com> + + * testsuite/gcc.target/powerpc/ppc-paired.c (paired_sel): Add. + 2007-09-25 Joseph Myers <joseph@codesourcery.com> PR c/32295 diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-paired.c b/gcc/testsuite/gcc.target/powerpc/ppc-paired.c index f6f3b6e..a3b61fd 100644 --- a/gcc/testsuite/gcc.target/powerpc/ppc-paired.c +++ b/gcc/testsuite/gcc.target/powerpc/ppc-paired.c @@ -33,6 +33,7 @@ test_api () b = paired_nabs (a); b = paired_sqrt (a); b = paired_res (a); + b = paired_sel (a, b, c); } int |