From 2fcc69d8ce4eddf6dea878a5383254d366e1bb14 Mon Sep 17 00:00:00 2001 From: Takayuki 'January June' Suwa Date: Sun, 29 May 2022 19:44:32 +0900 Subject: [PATCH] xtensa: Implement bswaphi2 insn pattern This patch adds bswaphi2 insn pattern that is one instruction less than the default expansion. gcc/ChangeLog: * config/xtensa/xtensa.md (bswaphi2): New insn pattern. --- gcc/config/xtensa/xtensa.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md index 8a11903..abf4ad1 100644 --- a/gcc/config/xtensa/xtensa.md +++ b/gcc/config/xtensa/xtensa.md @@ -471,6 +471,16 @@ ;; Byte swap. +(define_insn "bswaphi2" + [(set (match_operand:HI 0 "register_operand" "=a") + (bswap:HI (match_operand:HI 1 "register_operand" "r"))) + (clobber (match_scratch:HI 2 "=&a"))] + "" + "extui\t%2, %1, 8, 8\;slli\t%0, %1, 8\;or\t%0, %0, %2" + [(set_attr "type" "arith") + (set_attr "mode" "HI") + (set_attr "length" "9")]) + (define_expand "bswapsi2" [(set (match_operand:SI 0 "register_operand" "") (bswap:SI (match_operand:SI 1 "register_operand" "")))] -- 2.7.4