Add the tests omitted from the original change.

Discussion:
https://patchwork.sourceware.org/project/gcc/patch/[email protected]/

gcc/testsuite/ChangeLog:

        * gcc.target/riscv/extract-sign-no-scratch.c: New test.
        * gcc.target/riscv/extract-zero-no-scratch.c: New test.

Signed-off-by: Jin Ma <[email protected]>
---
 .../riscv/extract-sign-no-scratch.c           | 41 +++++++++++++++++++
 .../riscv/extract-zero-no-scratch.c           | 41 +++++++++++++++++++
 2 files changed, 82 insertions(+)
 create mode 100644 gcc/testsuite/gcc.target/riscv/extract-sign-no-scratch.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/extract-zero-no-scratch.c

diff --git a/gcc/testsuite/gcc.target/riscv/extract-sign-no-scratch.c 
b/gcc/testsuite/gcc.target/riscv/extract-sign-no-scratch.c
new file mode 100644
index 00000000000..9fba99547b3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/extract-sign-no-scratch.c
@@ -0,0 +1,41 @@
+/* { dg-do compile { target { ! riscv_abi_e } } } */
+/* { dg-require-effective-target rv64 } */
+/* { dg-options "-march=rv64gc -mabi=lp64d -O2" } */
+/* { dg-skip-if "" { *-*-* } { "-Os" "-Oz" "-Og" "-flto" } } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+/*
+** sign_ext_11_5:
+**     slli    ([ast][0-9]+),[ast][0-9]+,48
+**     srai    \1,\1,53
+**     ret
+*/
+long
+sign_ext_11_5 (unsigned long x)
+{
+  return (long) (x << 48) >> 53;
+}
+
+/*
+** sign_ext_16_8:
+**     slli    ([ast][0-9]+),[ast][0-9]+,40
+**     srai    \1,\1,48
+**     ret
+*/
+long
+sign_ext_16_8 (unsigned long x)
+{
+  return (long) (x << 40) >> 48;
+}
+
+/*
+** sign_ext_10_20:
+**     slli    ([ast][0-9]+),[ast][0-9]+,34
+**     srai    \1,\1,54
+**     ret
+*/
+long
+sign_ext_10_20 (unsigned long x)
+{
+  return (long) (x << 34) >> 54;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/extract-zero-no-scratch.c 
b/gcc/testsuite/gcc.target/riscv/extract-zero-no-scratch.c
new file mode 100644
index 00000000000..f68c9213760
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/extract-zero-no-scratch.c
@@ -0,0 +1,41 @@
+/* { dg-do compile { target { ! riscv_abi_e } } } */
+/* { dg-require-effective-target rv64 } */
+/* { dg-options "-march=rv64gc -mabi=lp64d -O2" } */
+/* { dg-skip-if "" { *-*-* } { "-Os" "-Oz" "-Og" "-flto" } } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+/*
+** zero_ext_20_8:
+**     slli    ([ast][0-9]+),[ast][0-9]+,36
+**     srli    \1,\1,44
+**     ret
+*/
+unsigned long
+zero_ext_20_8 (unsigned long x)
+{
+  return (x >> 8) & 0xfffffUL;
+}
+
+/*
+** zero_ext_16_8:
+**     slli    ([ast][0-9]+),[ast][0-9]+,40
+**     srli    \1,\1,48
+**     ret
+*/
+unsigned long
+zero_ext_16_8 (unsigned long x)
+{
+  return (x >> 8) & 0xffffUL;
+}
+
+/*
+** zero_ext_13_20:
+**     slli    ([ast][0-9]+),[ast][0-9]+,31
+**     srli    \1,\1,51
+**     ret
+*/
+unsigned long
+zero_ext_13_20 (unsigned long x)
+{
+  return (x >> 20) & 0x1fffUL;
+}
-- 
2.52.0

Reply via email to