Commit 49e39588 by Revital Eres Committed by Revital Eres

Add missing built-in support for 750CL ps_sel instruction

From-SVN: r128767
parent 808d6eaa
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
......@@ -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
......
......@@ -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);
......
......@@ -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,
......
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
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment