]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Add testcases for form 3 of scalar signed SAT_TRUNC
authorPan Li <pan2.li@intel.com>
Wed, 9 Oct 2024 14:37:00 +0000 (22:37 +0800)
committerPan Li <pan2.li@intel.com>
Fri, 11 Oct 2024 10:17:43 +0000 (18:17 +0800)
commit77fceccf8bd05ebf0cf95fea3b34126431827a5d
tree9798f7b5be52d53e8ca50e92869722d36189f4f5
parentcdb5b1eb1115600dabcc2ba4ffa639eef3e2a7b1
RISC-V: Add testcases for form 3 of scalar signed SAT_TRUNC

Form 3:
  #define DEF_SAT_S_TRUNC_FMT_3(NT, WT, NT_MIN, NT_MAX) \
  NT __attribute__((noinline))                          \
  sat_s_trunc_##WT##_to_##NT##_fmt_3 (WT x)             \
  {                                                     \
    NT trunc = (NT)x;                                   \
    return (WT)NT_MIN < x && x <= (WT)NT_MAX            \
      ? trunc                                           \
      : x < 0 ? NT_MIN : NT_MAX;                        \
  }

gcc/testsuite/ChangeLog:

* gcc.target/riscv/sat_arith.h: Add test helper macros.
* gcc.target/riscv/sat_s_trunc-3-i16-to-i8.c: New test.
* gcc.target/riscv/sat_s_trunc-3-i32-to-i16.c: New test.
* gcc.target/riscv/sat_s_trunc-3-i32-to-i8.c: New test.
* gcc.target/riscv/sat_s_trunc-3-i64-to-i16.c: New test.
* gcc.target/riscv/sat_s_trunc-3-i64-to-i32.c: New test.
* gcc.target/riscv/sat_s_trunc-3-i64-to-i8.c: New test.
* gcc.target/riscv/sat_s_trunc-run-3-i16-to-i8.c: New test.
* gcc.target/riscv/sat_s_trunc-run-3-i32-to-i16.c: New test.
* gcc.target/riscv/sat_s_trunc-run-3-i32-to-i8.c: New test.
* gcc.target/riscv/sat_s_trunc-run-3-i64-to-i16.c: New test.
* gcc.target/riscv/sat_s_trunc-run-3-i64-to-i32.c: New test.
* gcc.target/riscv/sat_s_trunc-run-3-i64-to-i8.c: New test.

Signed-off-by: Pan Li <pan2.li@intel.com>
13 files changed:
gcc/testsuite/gcc.target/riscv/sat_arith.h
gcc/testsuite/gcc.target/riscv/sat_s_trunc-3-i16-to-i8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-3-i32-to-i16.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-3-i32-to-i8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-3-i64-to-i16.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-3-i64-to-i32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-3-i64-to-i8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-run-3-i16-to-i8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-run-3-i32-to-i16.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-run-3-i32-to-i8.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-run-3-i64-to-i16.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-run-3-i64-to-i32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/sat_s_trunc-run-3-i64-to-i8.c [new file with mode: 0644]