]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Add testcases for signed scalar SAT_ADD IMM form 2
authorpanciyan <panciyan@eswincomputing.com>
Tue, 24 Jun 2025 01:58:14 +0000 (09:58 +0800)
committerxuli <xuli1@eswincomputing.com>
Fri, 4 Jul 2025 01:12:43 +0000 (01:12 +0000)
commitd6ed12ed5ebac8e50da9defea6af832039782cbf
tree46fee6c53b7cca43317c5a2133775a339c547ed0
parent0662d721cfbe162a06645d94640a146d3912f554
RISC-V: Add testcases for signed scalar SAT_ADD IMM form 2

This patch adds testcase for form2, as shown below:

T __attribute__((noinline))                                  \
sat_s_add_imm_##T##_fmt_2##_##INDEX (T x)                    \
{                                                            \
  T sum = (T)((UT)x + (UT)IMM);                                   \
  return ((x ^ sum) < 0 && (x ^ IMM) >= 0) ?                 \
    (-(T)(x < 0) ^ MAX) : sum;                         \
}

Passed the rv64gcv regression test.

Signed-off-by: Ciyan Pan <panciyan@eswincomputing.com>
gcc/testsuite/ChangeLog:

* gcc.target/riscv/sat/sat_arith.h: Add signed scalar SAT_ADD IMM form2.
* gcc.target/riscv/sat/sat_s_add_imm-2-i16.c: New test.
* gcc.target/riscv/sat/sat_s_add_imm-2-i32.c: New test.
* gcc.target/riscv/sat/sat_s_add_imm-2-i64.c: New test.
* gcc.target/riscv/sat/sat_s_add_imm-2-i8.c: New test.
* gcc.target/riscv/sat/sat_s_add_imm-run-2-i16.c: New test.
* gcc.target/riscv/sat/sat_s_add_imm-run-2-i32.c: New test.
* gcc.target/riscv/sat/sat_s_add_imm-run-2-i64.c: New test.
* gcc.target/riscv/sat/sat_s_add_imm-run-2-i8.c: New test.
* gcc.target/riscv/sat/sat_s_add_imm_type_check-2-i16.c: New test.
* gcc.target/riscv/sat/sat_s_add_imm_type_check-2-i32.c: New test.
* gcc.target/riscv/sat/sat_s_add_imm_type_check-2-i8.c: New test.
12 files changed:
gcc/testsuite/gcc.target/riscv/sat/sat_arith.h
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-i16.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-i32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-i64.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-i8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2-i16.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2-i32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2-i64.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2-i8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm_type_check-2-i16.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm_type_check-2-i32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm_type_check-2-i8.c [new file with mode: 0644]