+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>
{ 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 */
{ "__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" },
"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"