tilegx-builtins.h (enum tilegx_builtin): Add TILEGX_INSN_SHUFFLEBYTES1.
authorWalter Lee <walt@tilera.com>
Tue, 26 Mar 2013 00:54:47 +0000 (00:54 +0000)
committerWalter Lee <walt@gcc.gnu.org>
Tue, 26 Mar 2013 00:54:47 +0000 (00:54 +0000)
* 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
gcc/config/tilegx/tilegx-builtins.h
gcc/config/tilegx/tilegx.c
gcc/config/tilegx/tilegx.md

index aef9c8b..ddd7871 100644 (file)
@@ -1,9 +1,18 @@
 2013-03-25  Walter Lee  <walt@tilera.com>
 
+       * 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  <walt@tilera.com>
+
        * 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  <walt@tilera.com>
 
index 31f1ceb..2edf05e 100644 (file)
@@ -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,
index d413621..9f2aad5 100644 (file)
@@ -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"  },
index 8ec2687..5e11a88 100644 (file)
   "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"