From: Geng Qi Date: Tue, 25 May 2021 10:45:25 +0000 (+0800) Subject: C-SKY: Add instruction "ld.bs". X-Git-Tag: basepoints/gcc-13~7256 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94079e642d95ba4bcb75354d6cd628a473a94479;p=thirdparty%2Fgcc.git C-SKY: Add instruction "ld.bs". gcc/ * config/csky/csky.md (cskyv2_sextend_ldbs): New. gcc/testsuite/ * gcc.target/csky/ldbs.c: New. --- diff --git a/gcc/config/csky/csky.md b/gcc/config/csky/csky.md index c27d627e1830..b980d4c8fcb4 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 000000000000..27a025434133 --- /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" } } */ +