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