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 aef9c8b79315686cbf339140c648c658863a0248..ddd78717debe392409849a632cd06deb731a95aa 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 31f1cebff0db1aa94033ca0a16f0deef47effc52..2edf05ee77d8474af1244f0fbcca8125d50e8b19 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 d4136214327f911ebe7a4a36a4de966055fe9479..9f2aad5eb38fd9eb1cf8804af610b1bfb6ff32c8 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 8ec2687a599bb3b4d2d664af3e5d056c5aad062c..5e11a8893799313e2727fdee3fe77f80faeb533b 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"