From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2050) id 5216F385802B; Wed, 26 May 2021 02:05:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5216F385802B MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: qu To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-1057] C-SKY: Add instruction "ld.bs". X-Act-Checkin: gcc X-Git-Author: Geng Qi X-Git-Refname: refs/heads/master X-Git-Oldrev: 1fd76b24306ed4df4cf9e797d900699ed59ce7f7 X-Git-Newrev: 94079e642d95ba4bcb75354d6cd628a473a94479 Message-Id: <20210526020534.5216F385802B@sourceware.org> Date: Wed, 26 May 2021 02:05:34 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 May 2021 02:05:34 -0000 https://gcc.gnu.org/g:94079e642d95ba4bcb75354d6cd628a473a94479 commit r12-1057-g94079e642d95ba4bcb75354d6cd628a473a94479 Author: Geng Qi Date: Tue May 25 18:45:25 2021 +0800 C-SKY: Add instruction "ld.bs". gcc/ * config/csky/csky.md (cskyv2_sextend_ldbs): New. gcc/testsuite/ * gcc.target/csky/ldbs.c: New. Diff: --- gcc/config/csky/csky.md | 10 ++++++++++ gcc/testsuite/gcc.target/csky/ldbs.c | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/gcc/config/csky/csky.md b/gcc/config/csky/csky.md index c27d627e183..b980d4c8fcb 100644 --- a/gcc/config/csky/csky.md +++ b/gcc/config/csky/csky.md @@ -1533,6 +1533,7 @@ }" ) +;; hi -> si (define_insn "extendhisi2" [(set (match_operand:SI 0 "register_operand" "=r") (sign_extend:SI (match_operand:HI 1 "register_operand" "r")))] @@ -1557,6 +1558,15 @@ "sextb %0, %1" ) +(define_insn "*cskyv2_sextend_ldbs" + [(set (match_operand:SI 0 "register_operand" "=r") + (sign_extend:SI (match_operand:QI 1 "csky_simple_mem_operand" "m")))] + "CSKY_ISA_FEATURE (E2)" + "ld.bs\t%0, %1" + [(set_attr "length" "4") + (set_attr "type" "load")] +) + ;; qi -> hi (define_insn "extendqihi2" [(set (match_operand:HI 0 "register_operand" "=r") diff --git a/gcc/testsuite/gcc.target/csky/ldbs.c b/gcc/testsuite/gcc.target/csky/ldbs.c new file mode 100644 index 00000000000..27a02543413 --- /dev/null +++ b/gcc/testsuite/gcc.target/csky/ldbs.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-skip-if "" { *-*-* } { "-mcpu=ck801" "-march=ck801" } { "*" } } */ +/* { dg-csky-options "-O1" } */ + +int foo (signed char *pb) +{ + return *pb; +} + +/* { dg-final { scan-assembler "ld.bs" } } */ +