From 0051d3ece02591408abed724db15289746992911 Mon Sep 17 00:00:00 2001 From: Walter Lee Date: Tue, 26 Mar 2013 00:54:47 +0000 Subject: [PATCH] tilegx-builtins.h (enum tilegx_builtin): Add TILEGX_INSN_SHUFFLEBYTES1. * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add TILEGX_INSN_SHUFFLEBYTES1. * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for shufflebytes1. (tilegx_builtins): Ditto. * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern. From-SVN: r197080 --- gcc/ChangeLog | 15 ++++++++++++--- gcc/config/tilegx/tilegx-builtins.h | 1 + gcc/config/tilegx/tilegx.c | 2 ++ gcc/config/tilegx/tilegx.md | 9 +++++++++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aef9c8b..ddd7871 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,9 +1,18 @@ 2013-03-25 Walter Lee + * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add + TILEGX_INSN_SHUFFLEBYTES1. + * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for + shufflebytes1. + (tilegx_builtins): Ditto. + * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern. + +2013-03-25 Walter Lee + * config/tilegx/tilegx.md (floatsisf2): New pattern. - (floatunssisf2): New pattern. - (floatsidf2): New pattern. - (floatunssidf2): New pattern. + (floatunssisf2): New pattern. + (floatsidf2): New pattern. + (floatunssidf2): New pattern. 2013-03-25 Walter Lee diff --git a/gcc/config/tilegx/tilegx-builtins.h b/gcc/config/tilegx/tilegx-builtins.h index 31f1ceb..2edf05e 100644 --- a/gcc/config/tilegx/tilegx-builtins.h +++ b/gcc/config/tilegx/tilegx-builtins.h @@ -193,6 +193,7 @@ enum tilegx_builtin TILEGX_INSN_SHRU, TILEGX_INSN_SHRUX, TILEGX_INSN_SHUFFLEBYTES, + TILEGX_INSN_SHUFFLEBYTES1, TILEGX_INSN_ST, TILEGX_INSN_ST1, TILEGX_INSN_ST2, diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c index d413621..9f2aad5 100644 --- a/gcc/config/tilegx/tilegx.c +++ b/gcc/config/tilegx/tilegx.c @@ -2897,6 +2897,7 @@ static struct tile_builtin_info tilegx_builtin_info[TILEGX_BUILTIN_max] = { { CODE_FOR_lshrdi3, NULL }, /* shru */ { CODE_FOR_lshrsi3, NULL }, /* shrux */ { CODE_FOR_insn_shufflebytes, NULL }, /* shufflebytes */ + { CODE_FOR_insn_shufflebytes1, NULL }, /* shufflebytes1 */ { CODE_FOR_insn_st, NULL }, /* st */ { CODE_FOR_insn_st1, NULL }, /* st1 */ { CODE_FOR_insn_st2, NULL }, /* st2 */ @@ -3225,6 +3226,7 @@ static const struct tilegx_builtin_def tilegx_builtins[] = { { "__insn_shrux", TILEGX_INSN_SHRUX, true, "iii" }, { "__insn_shruxi", TILEGX_INSN_SHRUX, true, "iii" }, { "__insn_shufflebytes", TILEGX_INSN_SHUFFLEBYTES, true, "llll" }, + { "__insn_shufflebytes1", TILEGX_INSN_SHUFFLEBYTES1, true, "lll" }, { "__insn_st", TILEGX_INSN_ST, false, "vpl" }, { "__insn_st1", TILEGX_INSN_ST1, false, "vpl" }, { "__insn_st2", TILEGX_INSN_ST2, false, "vpl" }, diff --git a/gcc/config/tilegx/tilegx.md b/gcc/config/tilegx/tilegx.md index 8ec2687..5e11a88 100644 --- a/gcc/config/tilegx/tilegx.md +++ b/gcc/config/tilegx/tilegx.md @@ -3959,6 +3959,15 @@ "shufflebytes\t%0, %r2, %r3" [(set_attr "type" "X0")]) +(define_insn "insn_shufflebytes1" + [(set (match_operand:DI 0 "register_operand" "=r") + (unspec:DI [(match_operand:DI 1 "reg_or_0_operand" "rO") + (match_operand:DI 2 "reg_or_0_operand" "rO")] + UNSPEC_INSN_SHUFFLEBYTES))] + "" + "shufflebytes\t%0, %r1, %r2" + [(set_attr "type" "X0")]) + ;; stores (define_expand "insn_st" -- 2.7.4