aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPan Li <pan2.li@intel.com>2024-11-15 11:42:13 +0800
committerPan Li <pan2.li@intel.com>2024-11-15 12:57:03 +0800
commite0a402b3e28545abe8b190fb84ccc180d0744b13 (patch)
tree5c0b8c1a46623f6da37216db6323a0da6dd3fa63 /gcc
parent96a468842ef8b5d9b971428c7ba4e14fdab5ea94 (diff)
downloadgcc-e0a402b3e28545abe8b190fb84ccc180d0744b13.zip
gcc-e0a402b3e28545abe8b190fb84ccc180d0744b13.tar.gz
gcc-e0a402b3e28545abe8b190fb84ccc180d0744b13.tar.bz2
RISC-V: Move scalar SAT_ADD test cases to a isolated folder
Move the scalar SAT_ADD includes both the signed and unsigned integer to the folder gcc.target/riscv/sat. According to the implementation the below options will be appended for each test cases. * -O2 * -O3 * -Ofast * -Os * -Oz Then we can see the test log similar as below: Executing on host: .../sat_s_add-1-i8.c ... -O2 -march=rv64gc -S -o sat_s_add-1-i8.s Executing on host: .../sat_s_add-1-i8.c ... -O3 -march=rv64gc -S -o sat_s_add-1-i8.s Executing on host: .../sat_s_add-1-i8.c ... -Ofast -march=rv64gc -S -o sat_s_add-1-i8.s Executing on host: .../sat_s_add-1-i8.c ... -Oz -march=rv64gc -S -o sat_s_add-1-i8.s Executing on host: .../sat_s_add-1-i8.c ... -Os -march=rv64gc -S -o sat_s_add-1-i8.s The below test suites are passed for this patch. * The rv64gcv fully regression test. Committed as pre-approved by kito. gcc/testsuite/ChangeLog: * gcc.target/riscv/riscv.exp: Add new folder sat under riscv and add 5 options for each sat test. * gcc.target/riscv/sat_s_add-1-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-1-i16.c: ...here. * gcc.target/riscv/sat_s_add-1-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-1-i32.c: ...here. * gcc.target/riscv/sat_s_add-1-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-1-i64.c: ...here. * gcc.target/riscv/sat_s_add-1-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-1-i8.c: ...here. * gcc.target/riscv/sat_s_add-2-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-2-i16.c: ...here. * gcc.target/riscv/sat_s_add-2-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-2-i32.c: ...here. * gcc.target/riscv/sat_s_add-2-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-2-i64.c: ...here. * gcc.target/riscv/sat_s_add-2-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-2-i8.c: ...here. * gcc.target/riscv/sat_s_add-3-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-3-i16.c: ...here. * gcc.target/riscv/sat_s_add-3-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-3-i32.c: ...here. * gcc.target/riscv/sat_s_add-3-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-3-i64.c: ...here. * gcc.target/riscv/sat_s_add-3-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-3-i8.c: ...here. * gcc.target/riscv/sat_s_add-4-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-4-i16.c: ...here. * gcc.target/riscv/sat_s_add-4-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-4-i32.c: ...here. * gcc.target/riscv/sat_s_add-4-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-4-i64.c: ...here. * gcc.target/riscv/sat_s_add-4-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-4-i8.c: ...here. * gcc.target/riscv/sat_s_add-run-1-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-1-i16.c: ...here. * gcc.target/riscv/sat_s_add-run-1-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-1-i32.c: ...here. * gcc.target/riscv/sat_s_add-run-1-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-1-i64.c: ...here. * gcc.target/riscv/sat_s_add-run-1-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-1-i8.c: ...here. * gcc.target/riscv/sat_s_add-run-2-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-2-i16.c: ...here. * gcc.target/riscv/sat_s_add-run-2-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-2-i32.c: ...here. * gcc.target/riscv/sat_s_add-run-2-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-2-i64.c: ...here. * gcc.target/riscv/sat_s_add-run-2-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-2-i8.c: ...here. * gcc.target/riscv/sat_s_add-run-3-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-3-i16.c: ...here. * gcc.target/riscv/sat_s_add-run-3-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-3-i32.c: ...here. * gcc.target/riscv/sat_s_add-run-3-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-3-i64.c: ...here. * gcc.target/riscv/sat_s_add-run-3-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-3-i8.c: ...here. * gcc.target/riscv/sat_s_add-run-4-i16.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-4-i16.c: ...here. * gcc.target/riscv/sat_s_add-run-4-i32.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-4-i32.c: ...here. * gcc.target/riscv/sat_s_add-run-4-i64.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-4-i64.c: ...here. * gcc.target/riscv/sat_s_add-run-4-i8.c: Move to... * gcc.target/riscv/sat/sat_s_add-run-4-i8.c: ...here. * gcc.target/riscv/sat_s_add_imm-1-1.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-1-1.c: ...here. * gcc.target/riscv/sat_s_add_imm-1.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-1.c: ...here. * gcc.target/riscv/sat_s_add_imm-2-1.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-2-1.c: ...here. * gcc.target/riscv/sat_s_add_imm-2.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-2.c: ...here. * gcc.target/riscv/sat_s_add_imm-3-1.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-3-1.c: ...here. * gcc.target/riscv/sat_s_add_imm-3.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-3.c: ...here. * gcc.target/riscv/sat_s_add_imm-4.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-4.c: ...here. * gcc.target/riscv/sat_s_add_imm-run-1.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-run-1.c: ...here. * gcc.target/riscv/sat_s_add_imm-run-2.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-run-2.c: ...here. * gcc.target/riscv/sat_s_add_imm-run-3.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-run-3.c: ...here. * gcc.target/riscv/sat_s_add_imm-run-4.c: Move to... * gcc.target/riscv/sat/sat_s_add_imm-run-4.c: ...here. * gcc.target/riscv/sat_u_add-1-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-1-u16.c: ...here. * gcc.target/riscv/sat_u_add-1-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-1-u32.c: ...here. * gcc.target/riscv/sat_u_add-1-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-1-u64.c: ...here. * gcc.target/riscv/sat_u_add-1-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-1-u8.c: ...here. * gcc.target/riscv/sat_u_add-2-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-2-u16.c: ...here. * gcc.target/riscv/sat_u_add-2-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-2-u32.c: ...here. * gcc.target/riscv/sat_u_add-2-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-2-u64.c: ...here. * gcc.target/riscv/sat_u_add-2-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-2-u8.c: ...here. * gcc.target/riscv/sat_u_add-3-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-3-u16.c: ...here. * gcc.target/riscv/sat_u_add-3-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-3-u32.c: ...here. * gcc.target/riscv/sat_u_add-3-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-3-u64.c: ...here. * gcc.target/riscv/sat_u_add-3-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-3-u8.c: ...here. * gcc.target/riscv/sat_u_add-4-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-4-u16.c: ...here. * gcc.target/riscv/sat_u_add-4-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-4-u32.c: ...here. * gcc.target/riscv/sat_u_add-4-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-4-u64.c: ...here. * gcc.target/riscv/sat_u_add-4-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-4-u8.c: ...here. * gcc.target/riscv/sat_u_add-5-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-5-u16.c: ...here. * gcc.target/riscv/sat_u_add-5-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-5-u32.c: ...here. * gcc.target/riscv/sat_u_add-5-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-5-u64.c: ...here. * gcc.target/riscv/sat_u_add-5-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-5-u8.c: ...here. * gcc.target/riscv/sat_u_add-6-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-6-u16.c: ...here. * gcc.target/riscv/sat_u_add-6-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-6-u32.c: ...here. * gcc.target/riscv/sat_u_add-6-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-6-u64.c: ...here. * gcc.target/riscv/sat_u_add-6-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-6-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-1-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-1-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-1-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-1-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-1-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-1-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-1-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-1-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-2-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-2-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-2-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-2-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-2-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-2-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-2-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-2-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-3-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-3-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-3-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-3-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-3-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-3-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-3-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-3-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-4-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-4-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-4-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-4-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-4-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-4-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-4-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-4-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-5-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-5-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-5-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-5-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-5-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-5-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-5-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-5-u8.c: ...here. * gcc.target/riscv/sat_u_add-run-6-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-6-u16.c: ...here. * gcc.target/riscv/sat_u_add-run-6-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-6-u32.c: ...here. * gcc.target/riscv/sat_u_add-run-6-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-6-u64.c: ...here. * gcc.target/riscv/sat_u_add-run-6-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add-run-6-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-1-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-1-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-1-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-1-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-1-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-1-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-1-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-1-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-2-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-2-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-2-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-2-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-2-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-2-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-2-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-2-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-3-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-3-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-3-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-3-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-3-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-3-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-3-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-3-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-4-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-4-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-4-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-4-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-4-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-4-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-4-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-4-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-1-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-1-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-1-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-1-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-2-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-2-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-2-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-2-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-3-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-3-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-3-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-3-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-4-u16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-4-u32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-4-u64.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c: ...here. * gcc.target/riscv/sat_u_add_imm-run-4-u8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-1.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-10.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-11.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-12.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-13.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-14.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-15.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-16.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-17.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-18.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-19.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-2.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-20.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-21.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-22.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-23.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-24.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-25.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-26.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-27.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-28.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-29.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-3.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-30.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-31.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-32.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-33.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-34.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-35.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-36.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-37.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-38.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-39.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-4.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-40.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-41.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-42.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-43.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-44.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-45.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-46.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-47.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-48.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-49.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-5.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-50.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-51.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-52.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-53.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-54.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-55.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-56.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-57.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-58.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-59.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-6.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-60.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-7.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-8.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c: ...here. * gcc.target/riscv/sat_u_add_imm_type_check-9.c: Move to... * gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c: ...here. * gcc.target/riscv/sat/sat_arith.h: New test. * gcc.target/riscv/sat/sat_arith_data.h: New test. * gcc.target/riscv/sat/scalar_sat_binary.h: New test. * gcc.target/riscv/sat/scalar_sat_binary_run_xxx.h: New test. Signed-off-by: Pan Li <pan2.li@intel.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.target/riscv/riscv.exp12
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_arith.h605
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h375
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-1-i16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-1-i32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-1-i64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-1-i8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-2-i16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-2-i32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-2-i64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-2-i8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-3-i16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-3-i32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-3-i64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-3-i8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-4-i16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-4-i32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-4-i64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-4-i8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-1.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1-1.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-1.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2-1.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3-1.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3-1.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-4.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-4.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-1.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-2.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-3.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-3.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-4.c (renamed from gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-4.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-1-u16.c)2
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-1-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-1-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-1-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-2-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-2-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-2-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-2-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-3-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-3-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-3-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-3-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-4-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-4-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-4-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-4-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-5-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-5-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-5-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-5-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-6-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-6-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-6-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-6-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u64.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-1.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-10.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-11.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-12.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-13.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-14.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-15.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-16.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-17.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-18.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-19.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-2.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-20.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-21.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-22.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-23.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-24.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-25.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-26.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-27.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-28.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-29.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-3.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-30.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-31.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-32.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-33.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-34.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-35.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-36.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-37.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-38.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-39.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-4.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-40.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-41.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-42.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-43.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-44.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-45.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-46.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-47.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-48.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-49.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-5.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-50.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-51.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-52.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-53.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-54.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-55.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-56.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-57.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-58.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-59.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-6.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-60.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-7.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-8.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c (renamed from gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-9.c)0
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary.h27
-rw-r--r--gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary_run_xxx.h21
188 files changed, 1041 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.target/riscv/riscv.exp b/gcc/testsuite/gcc.target/riscv/riscv.exp
index 187eb66..3620ece 100644
--- a/gcc/testsuite/gcc.target/riscv/riscv.exp
+++ b/gcc/testsuite/gcc.target/riscv/riscv.exp
@@ -39,5 +39,17 @@ dg-init
gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \
"" $DEFAULT_CFLAGS
+# Saturation alu
+foreach opt {
+ {-O2}
+ {-O3}
+ {-Ofast}
+ {-Os}
+ {-Oz}
+} {
+ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/sat/*.\[cS\]]] \
+ "$opt" ""
+}
+
# All done.
dg-finish
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_arith.h b/gcc/testsuite/gcc.target/riscv/sat/sat_arith.h
new file mode 100644
index 0000000..c8a135a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_arith.h
@@ -0,0 +1,605 @@
+#ifndef HAVE_SAT_ARITH
+#define HAVE_SAT_ARITH
+
+#include <stdint-gcc.h>
+#include <stdbool.h>
+
+/******************************************************************************/
+/* Saturation Add (unsigned and signed) */
+/******************************************************************************/
+#define DEF_SAT_U_ADD_FMT_1(T) \
+T __attribute__((noinline)) \
+sat_u_add_##T##_fmt_1 (T x, T y) \
+{ \
+ return (x + y) | (-(T)((T)(x + y) < x)); \
+}
+
+#define DEF_SAT_U_ADD_FMT_2(T) \
+T __attribute__((noinline)) \
+sat_u_add_##T##_fmt_2 (T x, T y) \
+{ \
+ return (T)(x + y) >= x ? (x + y) : -1; \
+}
+
+#define DEF_SAT_U_ADD_FMT_3(T) \
+T __attribute__((noinline)) \
+sat_u_add_##T##_fmt_3 (T x, T y) \
+{ \
+ T ret; \
+ T overflow = __builtin_add_overflow (x, y, &ret); \
+ return (T)(-overflow) | ret; \
+}
+
+#define DEF_SAT_U_ADD_FMT_4(T) \
+T __attribute__((noinline)) \
+sat_u_add_##T##_fmt_4 (T x, T y) \
+{ \
+ T ret; \
+ return __builtin_add_overflow (x, y, &ret) ? -1 : ret; \
+}
+
+#define DEF_SAT_U_ADD_FMT_5(T) \
+T __attribute__((noinline)) \
+sat_u_add_##T##_fmt_5 (T x, T y) \
+{ \
+ T ret; \
+ return __builtin_add_overflow (x, y, &ret) == 0 ? ret : -1; \
+}
+
+#define DEF_SAT_U_ADD_FMT_6(T) \
+T __attribute__((noinline)) \
+sat_u_add_##T##_fmt_6 (T x, T y) \
+{ \
+ return (T)(x + y) < x ? -1 : (x + y); \
+}
+
+#define RUN_SAT_U_ADD_FMT_1(T, x, y) sat_u_add_##T##_fmt_1(x, y)
+#define RUN_SAT_U_ADD_FMT_2(T, x, y) sat_u_add_##T##_fmt_2(x, y)
+#define RUN_SAT_U_ADD_FMT_3(T, x, y) sat_u_add_##T##_fmt_3(x, y)
+#define RUN_SAT_U_ADD_FMT_4(T, x, y) sat_u_add_##T##_fmt_4(x, y)
+#define RUN_SAT_U_ADD_FMT_5(T, x, y) sat_u_add_##T##_fmt_5(x, y)
+#define RUN_SAT_U_ADD_FMT_6(T, x, y) sat_u_add_##T##_fmt_6(x, y)
+
+#define DEF_SAT_U_ADD_IMM_FMT_1(T, IMM) \
+T __attribute__((noinline)) \
+sat_u_add_imm##IMM##_##T##_fmt_1 (T x) \
+{ \
+ return (T)(x + IMM) >= x ? (x + IMM) : -1; \
+}
+
+#define DEF_SAT_U_ADD_IMM_FMT_2(T, IMM) \
+T __attribute__((noinline)) \
+sat_u_add_imm##IMM##_##T##_fmt_2 (T x) \
+{ \
+ return (T)(x + IMM) < x ? -1 : (x + IMM); \
+}
+
+#define DEF_SAT_U_ADD_IMM_FMT_3(T, IMM) \
+T __attribute__((noinline)) \
+sat_u_add_imm##IMM##_##T##_fmt_3 (T x) \
+{ \
+ T ret; \
+ return __builtin_add_overflow (x, IMM, &ret) ? -1 : ret; \
+}
+
+#define DEF_SAT_U_ADD_IMM_FMT_4(T, IMM) \
+T __attribute__((noinline)) \
+sat_u_add_imm##IMM##_##T##_fmt_4 (T x) \
+{ \
+ T ret; \
+ return __builtin_add_overflow (x, IMM, &ret) == 0 ? ret : -1; \
+}
+
+#define DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(T, IMM) \
+T __attribute__((noinline)) \
+sat_u_add_imm_type_check##_##T##_fmt_1 (T x) \
+{ \
+ T ret; \
+ return __builtin_add_overflow (x, IMM, &ret) ? -1 : ret; \
+}
+
+#define DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(T, IMM) \
+T __attribute__((noinline)) \
+sat_u_add_imm_type_check##_##T##_fmt_2 (T x) \
+{ \
+ T ret; \
+ return __builtin_add_overflow (x, IMM, &ret) == 0 ? ret : -1; \
+}
+
+#define RUN_SAT_U_ADD_IMM_FMT_1(T, x, IMM, expect) \
+ if (sat_u_add_imm##IMM##_##T##_fmt_1(x) != expect) __builtin_abort ()
+
+#define RUN_SAT_U_ADD_IMM_FMT_2(T, x, IMM, expect) \
+ if (sat_u_add_imm##IMM##_##T##_fmt_2(x) != expect) __builtin_abort ()
+
+#define RUN_SAT_U_ADD_IMM_FMT_3(T, x, IMM, expect) \
+ if (sat_u_add_imm##IMM##_##T##_fmt_3(x) != expect) __builtin_abort ()
+
+#define RUN_SAT_U_ADD_IMM_FMT_4(T, x, IMM, expect) \
+ if (sat_u_add_imm##IMM##_##T##_fmt_4(x) != expect) __builtin_abort ()
+
+#define DEF_SAT_S_ADD_FMT_1(T, UT, MIN, MAX) \
+T __attribute__((noinline)) \
+sat_s_add_##T##_fmt_1 (T x, T y) \
+{ \
+ T sum = (UT)x + (UT)y; \
+ return (x ^ y) < 0 \
+ ? sum \
+ : (sum ^ x) >= 0 \
+ ? sum \
+ : x < 0 ? MIN : MAX; \
+}
+#define DEF_SAT_S_ADD_FMT_1_WRAP(T, UT, MIN, MAX) \
+ DEF_SAT_S_ADD_FMT_1(T, UT, MIN, MAX)
+
+#define DEF_SAT_S_ADD_FMT_2(T, UT, MIN, MAX) \
+T __attribute__((noinline)) \
+sat_s_add_##T##_fmt_2 (T x, T y) \
+{ \
+ T sum = (UT)x + (UT)y; \
+ if ((x ^ y) < 0 || (sum ^ x) >= 0) \
+ return sum; \
+ return x < 0 ? MIN : MAX; \
+}
+#define DEF_SAT_S_ADD_FMT_2_WRAP(T, UT, MIN, MAX) \
+ DEF_SAT_S_ADD_FMT_2(T, UT, MIN, MAX)
+
+#define DEF_SAT_S_ADD_FMT_3(T, UT, MIN, MAX) \
+T __attribute__((noinline)) \
+sat_s_add_##T##_fmt_3 (T x, T y) \
+{ \
+ T sum; \
+ bool overflow = __builtin_add_overflow (x, y, &sum); \
+ return overflow ? x < 0 ? MIN : MAX : sum; \
+}
+#define DEF_SAT_S_ADD_FMT_3_WRAP(T, UT, MIN, MAX) \
+ DEF_SAT_S_ADD_FMT_3(T, UT, MIN, MAX)
+
+#define DEF_SAT_S_ADD_FMT_4(T, UT, MIN, MAX) \
+T __attribute__((noinline)) \
+sat_s_add_##T##_fmt_4 (T x, T y) \
+{ \
+ T sum; \
+ bool overflow = __builtin_add_overflow (x, y, &sum); \
+ return !overflow ? sum : x < 0 ? MIN : MAX; \
+}
+#define DEF_SAT_S_ADD_FMT_4_WRAP(T, UT, MIN, MAX) \
+ DEF_SAT_S_ADD_FMT_4(T, UT, MIN, MAX)
+
+#define RUN_SAT_S_ADD_FMT_1(T, x, y) sat_s_add_##T##_fmt_1(x, y)
+#define RUN_SAT_S_ADD_FMT_1_WRAP(T, x, y) RUN_SAT_S_ADD_FMT_1(T, x, y)
+
+#define RUN_SAT_S_ADD_FMT_2(T, x, y) sat_s_add_##T##_fmt_2(x, y)
+#define RUN_SAT_S_ADD_FMT_2_WRAP(T, x, y) RUN_SAT_S_ADD_FMT_2(T, x, y)
+
+#define RUN_SAT_S_ADD_FMT_3(T, x, y) sat_s_add_##T##_fmt_3(x, y)
+#define RUN_SAT_S_ADD_FMT_3_WRAP(T, x, y) RUN_SAT_S_ADD_FMT_3(T, x, y)
+
+#define RUN_SAT_S_ADD_FMT_4(T, x, y) sat_s_add_##T##_fmt_4(x, y)
+#define RUN_SAT_S_ADD_FMT_4_WRAP(T, x, y) RUN_SAT_S_ADD_FMT_4(T, x, y)
+
+#define DEF_SAT_S_ADD_IMM_FMT_1(INDEX, T, UT, IMM, MIN, MAX) \
+T __attribute__((noinline)) \
+sat_s_add_imm_##T##_fmt_1##_##INDEX (T x) \
+{ \
+ T sum = (UT)x + (UT)IMM; \
+ return (x ^ IMM) < 0 \
+ ? sum \
+ : (sum ^ x) >= 0 \
+ ? sum \
+ : x < 0 ? MIN : MAX; \
+}
+
+#define RUN_SAT_S_ADD_IMM_FMT_1(INDEX, T, x, expect) \
+ if (sat_s_add_imm##_##T##_fmt_1##_##INDEX(x) != expect) __builtin_abort ()
+
+/******************************************************************************/
+/* Saturation Sub (Unsigned and Signed) */
+/******************************************************************************/
+#define DEF_SAT_U_SUB_FMT_1(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_1 (T x, T y) \
+{ \
+ return (x - y) & (-(T)(x >= y)); \
+}
+
+#define DEF_SAT_U_SUB_FMT_2(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_2 (T x, T y) \
+{ \
+ return (x - y) & (-(T)(x > y)); \
+}
+
+#define DEF_SAT_U_SUB_FMT_3(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_3 (T x, T y) \
+{ \
+ return x > y ? x - y : 0; \
+}
+
+#define DEF_SAT_U_SUB_FMT_4(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_4 (T x, T y) \
+{ \
+ return x >= y ? x - y : 0; \
+}
+
+#define DEF_SAT_U_SUB_FMT_5(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_5 (T x, T y) \
+{ \
+ return x < y ? 0 : x - y; \
+}
+
+#define DEF_SAT_U_SUB_FMT_6(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_6 (T x, T y) \
+{ \
+ return x <= y ? 0 : x - y; \
+}
+
+#define DEF_SAT_U_SUB_FMT_7(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_7 (T x, T y) \
+{ \
+ T ret; \
+ T overflow = __builtin_sub_overflow (x, y, &ret); \
+ return ret & (T)(overflow - 1); \
+}
+
+#define DEF_SAT_U_SUB_FMT_8(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_8 (T x, T y) \
+{ \
+ T ret; \
+ T overflow = __builtin_sub_overflow (x, y, &ret); \
+ return ret & (T)-(!overflow); \
+}
+
+#define DEF_SAT_U_SUB_FMT_9(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_9 (T x, T y) \
+{ \
+ T ret; \
+ T overflow = __builtin_sub_overflow (x, y, &ret); \
+ return overflow ? 0 : ret; \
+}
+
+#define DEF_SAT_U_SUB_FMT_10(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_10 (T x, T y) \
+{ \
+ T ret; \
+ T overflow = __builtin_sub_overflow (x, y, &ret); \
+ return !overflow ? ret : 0; \
+}
+
+#define DEF_SAT_U_SUB_FMT_11(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_11 (T x, T y) \
+{ \
+ T ret; \
+ bool overflow = __builtin_sub_overflow (x, y, &ret); \
+ return overflow ? 0 : ret; \
+}
+
+#define DEF_SAT_U_SUB_FMT_12(T) \
+T __attribute__((noinline)) \
+sat_u_sub_##T##_fmt_12 (T x, T y) \
+{ \
+ T ret; \
+ bool overflow = __builtin_sub_overflow (x, y, &ret); \
+ return !overflow ? ret : 0; \
+}
+
+#define DEF_SAT_U_SUB_IMM_FMT_1(T, IMM) \
+T __attribute__((noinline)) \
+sat_u_sub_imm##IMM##_##T##_fmt_1 (T y) \
+{ \
+ return (T)IMM >= y ? (T)IMM - y : 0; \
+}
+
+#define DEF_SAT_U_SUB_IMM_FMT_2(T, IMM) \
+T __attribute__((noinline)) \
+sat_u_sub_imm##IMM##_##T##_fmt_2 (T x) \
+{ \
+ return x >= (T)IMM ? x - (T)IMM : 0; \
+}
+
+#define DEF_SAT_U_SUB_IMM_FMT_3(T, IMM) \
+T __attribute__((noinline)) \
+sat_u_sub_imm##IMM##_##T##_fmt_3 (T y) \
+{ \
+ return (T)IMM > y ? (T)IMM - y : 0; \
+}
+
+#define DEF_SAT_U_SUB_IMM_FMT_4(T, IMM) \
+T __attribute__((noinline)) \
+sat_u_sub_imm##IMM##_##T##_fmt_4 (T x) \
+{ \
+ return x > (T)IMM ? x - (T)IMM : 0; \
+}
+
+#define RUN_SAT_U_SUB_FMT_1(T, x, y) sat_u_sub_##T##_fmt_1(x, y)
+#define RUN_SAT_U_SUB_FMT_2(T, x, y) sat_u_sub_##T##_fmt_2(x, y)
+#define RUN_SAT_U_SUB_FMT_3(T, x, y) sat_u_sub_##T##_fmt_3(x, y)
+#define RUN_SAT_U_SUB_FMT_4(T, x, y) sat_u_sub_##T##_fmt_4(x, y)
+#define RUN_SAT_U_SUB_FMT_5(T, x, y) sat_u_sub_##T##_fmt_5(x, y)
+#define RUN_SAT_U_SUB_FMT_6(T, x, y) sat_u_sub_##T##_fmt_6(x, y)
+#define RUN_SAT_U_SUB_FMT_7(T, x, y) sat_u_sub_##T##_fmt_7(x, y)
+#define RUN_SAT_U_SUB_FMT_8(T, x, y) sat_u_sub_##T##_fmt_8(x, y)
+#define RUN_SAT_U_SUB_FMT_9(T, x, y) sat_u_sub_##T##_fmt_9(x, y)
+#define RUN_SAT_U_SUB_FMT_10(T, x, y) sat_u_sub_##T##_fmt_10(x, y)
+#define RUN_SAT_U_SUB_FMT_11(T, x, y) sat_u_sub_##T##_fmt_11(x, y)
+#define RUN_SAT_U_SUB_FMT_12(T, x, y) sat_u_sub_##T##_fmt_12(x, y)
+
+#define RUN_SAT_U_SUB_IMM_FMT_1(T, IMM, y, expect) \
+ if (sat_u_sub_imm##IMM##_##T##_fmt_1(y) != expect) __builtin_abort ()
+#define RUN_SAT_U_SUB_IMM_FMT_2(T, x, IMM, expect) \
+ if (sat_u_sub_imm##IMM##_##T##_fmt_2(x) != expect) __builtin_abort ()
+#define RUN_SAT_U_SUB_IMM_FMT_3(T, IMM, y, expect) \
+ if (sat_u_sub_imm##IMM##_##T##_fmt_3(y) != expect) __builtin_abort ()
+#define RUN_SAT_U_SUB_IMM_FMT_4(T, x, IMM, expect) \
+ if (sat_u_sub_imm##IMM##_##T##_fmt_4(x) != expect) __builtin_abort ()
+
+#define DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1(INDEX, T, IMM) \
+T __attribute__((noinline)) \
+sat_u_sub_imm_type_check##_##INDEX##_##T##_fmt_1 (T y) \
+{ \
+ return IMM >= y ? IMM - y : 0; \
+}
+
+#define DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2(INDEX, T, IMM) \
+T __attribute__((noinline)) \
+sat_u_sub_imm_type_check##_##INDEX##_##T##_fmt_2 (T y) \
+{ \
+ return IMM > y ? IMM - y : 0; \
+}
+
+#define DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3(INDEX, T, IMM) \
+T __attribute__((noinline)) \
+sat_u_sub_imm_type_check##_##INDEX##_##T##_fmt_3 (T x) \
+{ \
+ return x >= IMM ? x - IMM : 0; \
+}
+
+#define DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4(INDEX, T, IMM) \
+T __attribute__((noinline)) \
+sat_u_sub_imm_type_check##_##INDEX##_##T##_fmt_4 (T x) \
+{ \
+ return x > IMM ? x - IMM : 0; \
+}
+
+#define DEF_SAT_S_SUB_FMT_1(T, UT, MIN, MAX) \
+T __attribute__((noinline)) \
+sat_s_sub_##T##_fmt_1 (T x, T y) \
+{ \
+ T minus = (UT)x - (UT)y; \
+ return (x ^ y) >= 0 \
+ ? minus \
+ : (minus ^ x) >= 0 \
+ ? minus \
+ : x < 0 ? MIN : MAX; \
+}
+#define DEF_SAT_S_SUB_FMT_1_WRAP(T, UT, MIN, MAX) \
+ DEF_SAT_S_SUB_FMT_1(T, UT, MIN, MAX)
+
+#define DEF_SAT_S_SUB_FMT_2(T, UT, MIN, MAX) \
+T __attribute__((noinline)) \
+sat_s_sub_##T##_fmt_2 (T x, T y) \
+{ \
+ T minus = (UT)x - (UT)y; \
+ if ((x ^ y) >= 0 || (minus ^ x) >= 0) \
+ return minus; \
+ return x < 0 ? MIN : MAX; \
+}
+#define DEF_SAT_S_SUB_FMT_2_WRAP(T, UT, MIN, MAX) \
+ DEF_SAT_S_SUB_FMT_2(T, UT, MIN, MAX)
+
+#define DEF_SAT_S_SUB_FMT_3(T, UT, MIN, MAX) \
+T __attribute__((noinline)) \
+sat_s_sub_##T##_fmt_3 (T x, T y) \
+{ \
+ T minus; \
+ bool overflow = __builtin_sub_overflow (x, y, &minus); \
+ return overflow ? x < 0 ? MIN : MAX : minus; \
+}
+#define DEF_SAT_S_SUB_FMT_3_WRAP(T, UT, MIN, MAX) \
+ DEF_SAT_S_SUB_FMT_3(T, UT, MIN, MAX)
+
+#define DEF_SAT_S_SUB_FMT_4(T, UT, MIN, MAX) \
+T __attribute__((noinline)) \
+sat_s_sub_##T##_fmt_4 (T x, T y) \
+{ \
+ T minus; \
+ bool overflow = __builtin_sub_overflow (x, y, &minus); \
+ return !overflow ? minus : x < 0 ? MIN : MAX; \
+}
+#define DEF_SAT_S_SUB_FMT_4_WRAP(T, UT, MIN, MAX) \
+ DEF_SAT_S_SUB_FMT_4(T, UT, MIN, MAX)
+
+#define RUN_SAT_S_SUB_FMT_1(T, x, y) sat_s_sub_##T##_fmt_1(x, y)
+#define RUN_SAT_S_SUB_FMT_1_WRAP(T, x, y) RUN_SAT_S_SUB_FMT_1(T, x, y)
+
+#define RUN_SAT_S_SUB_FMT_2(T, x, y) sat_s_sub_##T##_fmt_2(x, y)
+#define RUN_SAT_S_SUB_FMT_2_WRAP(T, x, y) RUN_SAT_S_SUB_FMT_2(T, x, y)
+
+#define RUN_SAT_S_SUB_FMT_3(T, x, y) sat_s_sub_##T##_fmt_3(x, y)
+#define RUN_SAT_S_SUB_FMT_3_WRAP(T, x, y) RUN_SAT_S_SUB_FMT_3(T, x, y)
+
+#define RUN_SAT_S_SUB_FMT_4(T, x, y) sat_s_sub_##T##_fmt_4(x, y)
+#define RUN_SAT_S_SUB_FMT_4_WRAP(T, x, y) RUN_SAT_S_SUB_FMT_4(T, x, y)
+
+/******************************************************************************/
+/* Saturation Truncate (unsigned and signed) */
+/******************************************************************************/
+
+#define DEF_SAT_U_TRUNC_FMT_1(NT, WT) \
+NT __attribute__((noinline)) \
+sat_u_trunc_##WT##_to_##NT##_fmt_1 (WT x) \
+{ \
+ bool overflow = x > (WT)(NT)(-1); \
+ return ((NT)x) | (NT)-overflow; \
+}
+#define DEF_SAT_U_TRUNC_FMT_1_WRAP(NT, WT) DEF_SAT_U_TRUNC_FMT_1(NT, WT)
+
+#define DEF_SAT_U_TRUNC_FMT_2(NT, WT) \
+NT __attribute__((noinline)) \
+sat_u_trunc_##WT##_to_##NT##_fmt_2 (WT x) \
+{ \
+ WT max = (WT)(NT)-1; \
+ return x > max ? (NT) max : (NT)x; \
+}
+#define DEF_SAT_U_TRUNC_FMT_2_WRAP(NT, WT) DEF_SAT_U_TRUNC_FMT_2(NT, WT)
+
+#define DEF_SAT_U_TRUNC_FMT_3(NT, WT) \
+NT __attribute__((noinline)) \
+sat_u_trunc_##WT##_to_##NT##_fmt_3 (WT x) \
+{ \
+ WT max = (WT)(NT)-1; \
+ return x <= max ? (NT)x : (NT) max; \
+}
+#define DEF_SAT_U_TRUNC_FMT_3_WRAP(NT, WT) DEF_SAT_U_TRUNC_FMT_3(NT, WT)
+
+#define DEF_SAT_U_TRUNC_FMT_4(NT, WT) \
+NT __attribute__((noinline)) \
+sat_u_trunc_##WT##_to_##NT##_fmt_4 (WT x) \
+{ \
+ bool not_overflow = x <= (WT)(NT)(-1); \
+ return ((NT)x) | (NT)((NT)not_overflow - 1); \
+}
+#define DEF_SAT_U_TRUNC_FMT_4_WRAP(NT, WT) DEF_SAT_U_TRUNC_FMT_4(NT, WT)
+
+#define RUN_SAT_U_TRUNC_FMT_1(NT, WT, x) sat_u_trunc_##WT##_to_##NT##_fmt_1 (x)
+#define RUN_SAT_U_TRUNC_FMT_1_WRAP(NT, WT, x) RUN_SAT_U_TRUNC_FMT_1(NT, WT, x)
+
+#define RUN_SAT_U_TRUNC_FMT_2(NT, WT, x) sat_u_trunc_##WT##_to_##NT##_fmt_2 (x)
+#define RUN_SAT_U_TRUNC_FMT_2_WRAP(NT, WT, x) RUN_SAT_U_TRUNC_FMT_2(NT, WT, x)
+
+#define RUN_SAT_U_TRUNC_FMT_3(NT, WT, x) sat_u_trunc_##WT##_to_##NT##_fmt_3 (x)
+#define RUN_SAT_U_TRUNC_FMT_3_WRAP(NT, WT, x) RUN_SAT_U_TRUNC_FMT_3(NT, WT, x)
+
+#define RUN_SAT_U_TRUNC_FMT_4(NT, WT, x) sat_u_trunc_##WT##_to_##NT##_fmt_4 (x)
+#define RUN_SAT_U_TRUNC_FMT_4_WRAP(NT, WT, x) RUN_SAT_U_TRUNC_FMT_4(NT, WT, x)
+
+#define DEF_SAT_S_TRUNC_FMT_1(NT, WT, NT_MIN, NT_MAX) \
+NT __attribute__((noinline)) \
+sat_s_trunc_##WT##_to_##NT##_fmt_1 (WT x) \
+{ \
+ NT trunc = (NT)x; \
+ return (WT)NT_MIN <= x && x <= (WT)NT_MAX \
+ ? trunc \
+ : x < 0 ? NT_MIN : NT_MAX; \
+}
+#define DEF_SAT_S_TRUNC_FMT_1_WRAP(NT, WT, NT_MIN, NT_MAX) \
+ DEF_SAT_S_TRUNC_FMT_1(NT, WT, NT_MIN, NT_MAX)
+
+#define DEF_SAT_S_TRUNC_FMT_2(NT, WT, NT_MIN, NT_MAX) \
+NT __attribute__((noinline)) \
+sat_s_trunc_##WT##_to_##NT##_fmt_2 (WT x) \
+{ \
+ NT trunc = (NT)x; \
+ return (WT)NT_MIN < x && x < (WT)NT_MAX \
+ ? trunc \
+ : x < 0 ? NT_MIN : NT_MAX; \
+}
+#define DEF_SAT_S_TRUNC_FMT_2_WRAP(NT, WT, NT_MIN, NT_MAX) \
+ DEF_SAT_S_TRUNC_FMT_2(NT, WT, NT_MIN, NT_MAX)
+
+#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; \
+}
+#define DEF_SAT_S_TRUNC_FMT_3_WRAP(NT, WT, NT_MIN, NT_MAX) \
+ DEF_SAT_S_TRUNC_FMT_3(NT, WT, NT_MIN, NT_MAX)
+
+#define DEF_SAT_S_TRUNC_FMT_4(NT, WT, NT_MIN, NT_MAX) \
+NT __attribute__((noinline)) \
+sat_s_trunc_##WT##_to_##NT##_fmt_4 (WT x) \
+{ \
+ NT trunc = (NT)x; \
+ return (WT)NT_MIN <= x && x < (WT)NT_MAX \
+ ? trunc \
+ : x < 0 ? NT_MIN : NT_MAX; \
+}
+#define DEF_SAT_S_TRUNC_FMT_4_WRAP(NT, WT, NT_MIN, NT_MAX) \
+ DEF_SAT_S_TRUNC_FMT_4(NT, WT, NT_MIN, NT_MAX)
+
+#define DEF_SAT_S_TRUNC_FMT_5(NT, WT, NT_MIN, NT_MAX) \
+NT __attribute__((noinline)) \
+sat_s_trunc_##WT##_to_##NT##_fmt_5 (WT x) \
+{ \
+ NT trunc = (NT)x; \
+ return (WT)NT_MIN > x || x > (WT)NT_MAX \
+ ? x < 0 ? NT_MIN : NT_MAX \
+ : trunc; \
+}
+#define DEF_SAT_S_TRUNC_FMT_5_WRAP(NT, WT, NT_MIN, NT_MAX) \
+ DEF_SAT_S_TRUNC_FMT_5(NT, WT, NT_MIN, NT_MAX)
+
+#define DEF_SAT_S_TRUNC_FMT_6(NT, WT, NT_MIN, NT_MAX) \
+NT __attribute__((noinline)) \
+sat_s_trunc_##WT##_to_##NT##_fmt_6 (WT x) \
+{ \
+ NT trunc = (NT)x; \
+ return (WT)NT_MIN >= x || x > (WT)NT_MAX \
+ ? x < 0 ? NT_MIN : NT_MAX \
+ : trunc; \
+}
+#define DEF_SAT_S_TRUNC_FMT_6_WRAP(NT, WT, NT_MIN, NT_MAX) \
+ DEF_SAT_S_TRUNC_FMT_6(NT, WT, NT_MIN, NT_MAX)
+
+#define DEF_SAT_S_TRUNC_FMT_7(NT, WT, NT_MIN, NT_MAX) \
+NT __attribute__((noinline)) \
+sat_s_trunc_##WT##_to_##NT##_fmt_7 (WT x) \
+{ \
+ NT trunc = (NT)x; \
+ return (WT)NT_MIN >= x || x >= (WT)NT_MAX \
+ ? x < 0 ? NT_MIN : NT_MAX \
+ : trunc; \
+}
+#define DEF_SAT_S_TRUNC_FMT_7_WRAP(NT, WT, NT_MIN, NT_MAX) \
+ DEF_SAT_S_TRUNC_FMT_7(NT, WT, NT_MIN, NT_MAX)
+
+#define DEF_SAT_S_TRUNC_FMT_8(NT, WT, NT_MIN, NT_MAX) \
+NT __attribute__((noinline)) \
+sat_s_trunc_##WT##_to_##NT##_fmt_8 (WT x) \
+{ \
+ NT trunc = (NT)x; \
+ return (WT)NT_MIN > x || x >= (WT)NT_MAX \
+ ? x < 0 ? NT_MIN : NT_MAX \
+ : trunc; \
+}
+#define DEF_SAT_S_TRUNC_FMT_8_WRAP(NT, WT, NT_MIN, NT_MAX) \
+ DEF_SAT_S_TRUNC_FMT_8(NT, WT, NT_MIN, NT_MAX)
+
+#define RUN_SAT_S_TRUNC_FMT_1(NT, WT, x) sat_s_trunc_##WT##_to_##NT##_fmt_1 (x)
+#define RUN_SAT_S_TRUNC_FMT_1_WRAP(NT, WT, x) RUN_SAT_S_TRUNC_FMT_1(NT, WT, x)
+
+#define RUN_SAT_S_TRUNC_FMT_2(NT, WT, x) sat_s_trunc_##WT##_to_##NT##_fmt_2 (x)
+#define RUN_SAT_S_TRUNC_FMT_2_WRAP(NT, WT, x) RUN_SAT_S_TRUNC_FMT_2(NT, WT, x)
+
+#define RUN_SAT_S_TRUNC_FMT_3(NT, WT, x) sat_s_trunc_##WT##_to_##NT##_fmt_3 (x)
+#define RUN_SAT_S_TRUNC_FMT_3_WRAP(NT, WT, x) RUN_SAT_S_TRUNC_FMT_3(NT, WT, x)
+
+#define RUN_SAT_S_TRUNC_FMT_4(NT, WT, x) sat_s_trunc_##WT##_to_##NT##_fmt_4 (x)
+#define RUN_SAT_S_TRUNC_FMT_4_WRAP(NT, WT, x) RUN_SAT_S_TRUNC_FMT_4(NT, WT, x)
+
+#define RUN_SAT_S_TRUNC_FMT_5(NT, WT, x) sat_s_trunc_##WT##_to_##NT##_fmt_5 (x)
+#define RUN_SAT_S_TRUNC_FMT_5_WRAP(NT, WT, x) RUN_SAT_S_TRUNC_FMT_5(NT, WT, x)
+
+#define RUN_SAT_S_TRUNC_FMT_6(NT, WT, x) sat_s_trunc_##WT##_to_##NT##_fmt_6 (x)
+#define RUN_SAT_S_TRUNC_FMT_6_WRAP(NT, WT, x) RUN_SAT_S_TRUNC_FMT_6(NT, WT, x)
+
+#define RUN_SAT_S_TRUNC_FMT_7(NT, WT, x) sat_s_trunc_##WT##_to_##NT##_fmt_7 (x)
+#define RUN_SAT_S_TRUNC_FMT_7_WRAP(NT, WT, x) RUN_SAT_S_TRUNC_FMT_7(NT, WT, x)
+
+#define RUN_SAT_S_TRUNC_FMT_8(NT, WT, x) sat_s_trunc_##WT##_to_##NT##_fmt_8 (x)
+#define RUN_SAT_S_TRUNC_FMT_8_WRAP(NT, WT, x) RUN_SAT_S_TRUNC_FMT_8(NT, WT, x)
+
+#endif
diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h b/gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h
new file mode 100644
index 0000000..9f9f7d0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h
@@ -0,0 +1,375 @@
+#ifndef HAVE_DEFINED_SAT_ARITH_DATA_H
+#define HAVE_DEFINED_SAT_ARITH_DATA_H
+
+#define TEST_UNARY_STRUCT_NAME(T1, T2) test_##T1##_##T2##_s
+#define TEST_UNARY_STRUCT_DECL(T1, T2) struct TEST_UNARY_STRUCT_NAME(T1, T2)
+#define TEST_UNARY_STRUCT(T1, T2) \
+ struct TEST_UNARY_STRUCT_NAME(T1, T2) \
+ { \
+ T1 to; \
+ T2 from; \
+ };
+
+#define TEST_BINARY_STRUCT_NAME(T, NAME) test_##T##_##NAME##_s
+#define TEST_BINARY_STRUCT_DECL(T, NAME) struct TEST_BINARY_STRUCT_NAME(T, NAME)
+#define TEST_BINARY_STRUCT(T, NAME) \
+ struct TEST_BINARY_STRUCT_NAME(T, NAME) \
+ { \
+ T a, b; \
+ T expect; \
+ };
+
+#define TEST_UNARY_DATA(T1, T2) t_##T1##_##T2##_s
+#define TEST_UNARY_DATA_WRAP(T1, T2) TEST_UNARY_DATA(T1, T2)
+
+#define TEST_BINARY_DATA(T, NAME) t_##T##_##NAME##_s
+#define TEST_BINARY_DATA_WRAP(T, NAME) TEST_BINARY_DATA(T, NAME)
+
+TEST_UNARY_STRUCT (uint8_t, uint16_t)
+TEST_UNARY_STRUCT (uint8_t, uint32_t)
+TEST_UNARY_STRUCT (uint8_t, uint64_t)
+TEST_UNARY_STRUCT (uint16_t, uint32_t)
+TEST_UNARY_STRUCT (uint16_t, uint64_t)
+TEST_UNARY_STRUCT (uint32_t, uint64_t)
+
+TEST_BINARY_STRUCT (int8_t, ssadd)
+TEST_BINARY_STRUCT (int16_t, ssadd)
+TEST_BINARY_STRUCT (int32_t, ssadd)
+TEST_BINARY_STRUCT (int64_t, ssadd)
+
+TEST_BINARY_STRUCT (int8_t, sssub)
+TEST_BINARY_STRUCT (int16_t, sssub)
+TEST_BINARY_STRUCT (int32_t, sssub)
+TEST_BINARY_STRUCT (int64_t, sssub)
+
+TEST_UNARY_STRUCT (int8_t, int16_t)
+TEST_UNARY_STRUCT (int8_t, int32_t)
+TEST_UNARY_STRUCT (int8_t, int64_t)
+TEST_UNARY_STRUCT (int16_t, int32_t)
+TEST_UNARY_STRUCT (int16_t, int64_t)
+TEST_UNARY_STRUCT (int32_t, int64_t)
+
+TEST_UNARY_STRUCT_DECL(uint8_t, uint16_t) \
+ TEST_UNARY_DATA(uint8_t, uint16_t)[] =
+{
+ { 0, 0},
+ { 2, 2},
+ {254, 254},
+ {255, 255},
+ {255, 256},
+ {255, 65534},
+ {255, 65535},
+};
+
+TEST_UNARY_STRUCT_DECL(uint8_t, uint32_t) \
+ TEST_UNARY_DATA(uint8_t, uint32_t)[] =
+{
+ { 0, 0},
+ { 2, 2},
+ {254, 254},
+ {255, 255},
+ {255, 256},
+ {255, 65534},
+ {255, 65535},
+ {255, 65536},
+ {255, 4294967294},
+ {255, 4294967295},
+};
+
+TEST_UNARY_STRUCT_DECL(uint8_t, uint64_t) \
+ TEST_UNARY_DATA(uint8_t, uint64_t)[] =
+{
+ { 0, 0},
+ { 2, 2},
+ {254, 254},
+ {255, 255},
+ {255, 256},
+ {255, 65534},
+ {255, 65535},
+ {255, 65536},
+ {255, 4294967294},
+ {255, 4294967295},
+ {255, 4294967296},
+ {255, 18446744073709551614u},
+ {255, 18446744073709551615u},
+};
+
+TEST_UNARY_STRUCT_DECL(uint16_t, uint32_t) \
+ TEST_UNARY_DATA(uint16_t, uint32_t)[] =
+{
+ { 0, 0},
+ { 5, 5},
+ {65534, 65534},
+ {65535, 65535},
+ {65535, 65536},
+ {65535, 4294967294},
+ {65535, 4294967295},
+};
+
+TEST_UNARY_STRUCT_DECL(uint16_t, uint64_t) \
+ TEST_UNARY_DATA(uint16_t, uint64_t)[] =
+{
+ { 0, 0},
+ { 5, 5},
+ {65534, 65534},
+ {65535, 65535},
+ {65535, 65536},
+ {65535, 4294967294},
+ {65535, 4294967295},
+ {65535, 4294967296},
+ {65535, 18446744073709551614u},
+ {65535, 18446744073709551615u},
+};
+
+TEST_UNARY_STRUCT_DECL(uint32_t, uint64_t) \
+ TEST_UNARY_DATA(uint32_t, uint64_t)[] =
+{
+ { 0, 0},
+ { 9, 9},
+ {4294967294, 4294967294},
+ {4294967295, 4294967295},
+ {4294967295, 4294967296},
+ {4294967295, 18446744073709551614u},
+ {4294967295, 18446744073709551615u},
+};
+
+TEST_UNARY_STRUCT_DECL(int8_t, int16_t) \
+ TEST_UNARY_DATA(int8_t, int16_t)[] =
+{
+ { 0, 0},
+ { -2, -2},
+ { 127, 128},
+ { 127, 258},
+ {-128, -128},
+ {-128, -129},
+ {-128, -257},
+ { 127, 32767},
+ {-128, -32768},
+};
+
+TEST_UNARY_STRUCT_DECL(int8_t, int32_t) \
+ TEST_UNARY_DATA(int8_t, int32_t)[] =
+{
+ { 0, 0},
+ { -2, -2},
+ { 127, 128},
+ { 127, 258},
+ {-128, -128},
+ {-128, -129},
+ {-128, -257},
+ { 127, 32767},
+ {-128, -32768},
+ { 127, 65536},
+ {-128, -65537},
+ { 127, 2147483647},
+ {-128, -2147483648},
+};
+
+TEST_UNARY_STRUCT_DECL(int8_t, int64_t) \
+ TEST_UNARY_DATA(int8_t, int64_t)[] =
+{
+ { 0, 0},
+ { -2, -2},
+ { 127, 128},
+ { 127, 258},
+ {-128, -128},
+ {-128, -129},
+ {-128, -257},
+ { 127, 32767},
+ {-128, -32768},
+ { 127, 65536},
+ {-128, -65537},
+ { 127, 2147483647},
+ {-128, -2147483648},
+ { 127, 2147483648ll},
+ {-128, -2147483649ll},
+ { 127, 9223372036854775807ll},
+ {-128, -9223372036854775808ull},
+};
+
+TEST_UNARY_STRUCT_DECL(int16_t, int32_t) \
+ TEST_UNARY_DATA(int16_t, int32_t)[] =
+{
+ { 0, 0},
+ { -2, -2},
+ { 32767, 32768},
+ { 32767, 65538},
+ {-32768, -32768},
+ {-32768, -32769},
+ {-32768, -65539},
+ { 32767, 32767},
+ {-32768, -32768},
+ { 32767, 65536},
+ {-32768, -65537},
+ { 32767, 2147483647},
+ {-32768, -2147483648},
+};
+
+TEST_UNARY_STRUCT_DECL(int16_t, int64_t) \
+ TEST_UNARY_DATA(int16_t, int64_t)[] =
+{
+ { 0, 0},
+ { -2, -2},
+ { 32767, 32768},
+ { 32767, 65538},
+ {-32768, -32768},
+ {-32768, -32769},
+ {-32768, -65539},
+ { 32767, 32767},
+ {-32768, -32768},
+ { 32767, 65536},
+ {-32768, -65537},
+ { 32767, 2147483647},
+ {-32768, -2147483648},
+};
+
+TEST_UNARY_STRUCT_DECL(int32_t, int64_t) \
+ TEST_UNARY_DATA(int32_t, int64_t)[] =
+{
+ { 0, 0},
+ { -2, -2},
+ { 2147483647, 2147483648ll},
+ {-2147483648, -2147483648},
+ { 2147483647, 2147483648},
+ {-2147483648, -2147483649ll},
+ { 2147483647, 9223372036854775807ll},
+ {-2147483648, -9223372036854775808ull},
+};
+
+TEST_BINARY_STRUCT_DECL(int8_t, ssadd) TEST_BINARY_DATA(int8_t, ssadd)[] =
+{
+ { 0, 0, 0},
+ { 2, 2, 4},
+ { 126, 1, 127},
+ { 127, 1, 127},
+ { 127, 127, 127},
+ { -7, -4, -11},
+ {-128, -1, -128},
+ {-127, -1, -128},
+ {-128, -128, -128},
+ {-128, 127, -1},
+ {-127, 127, 0},
+ {-122, 105, -17},
+ {-122, 125, 3},
+};
+
+TEST_BINARY_STRUCT_DECL(int16_t, ssadd) TEST_BINARY_DATA(int16_t, ssadd)[] =
+{
+ { 0, 0, 0},
+ { 2, 2, 4},
+ { 32766, 1, 32767},
+ { 32767, 1, 32767},
+ { 32767, 32767, 32767},
+ { -7, -4, -11},
+ {-32768, -1, -32768},
+ {-32767, -1, -32768},
+ {-32768, -32768, -32768},
+ {-32768, 32767, -1},
+ {-32767, 32767, 0},
+ {-32732, 32712, -20},
+ {-32732, 32734, 2},
+};
+
+TEST_BINARY_STRUCT_DECL(int32_t, ssadd) TEST_BINARY_DATA(int32_t, ssadd)[] =
+{
+ { 0, 0, 0},
+ { 2, 2, 4},
+ { 2147483646, 1, 2147483647},
+ { 2147483647, 1, 2147483647},
+ { 2147483647, 2147483647, 2147483647},
+ { -7, -4, -11},
+ {-2147483648, -1, -2147483648},
+ {-2147483647, -1, -2147483648},
+ {-2147483648, -2147483648, -2147483648},
+ {-2147483648, 2147483647, -1},
+ {-2147483647, 2147483647, 0},
+ {-2147483613, 2147483601, -12},
+ {-2147483613, 2147483637, 24},
+};
+
+TEST_BINARY_STRUCT_DECL(int64_t, ssadd) TEST_BINARY_DATA(int64_t, ssadd)[] =
+{
+ { 0, 0, 0},
+ { 2, 2, 4},
+ { 9223372036854775806ll, 1, 9223372036854775807ll},
+ { 9223372036854775807ll, 1, 9223372036854775807ll},
+ { 9223372036854775807ll, 9223372036854775807ll, 9223372036854775807ll},
+ { -7, -4, -11},
+ {-9223372036854775808ull, -1, -9223372036854775808ull},
+ { -9223372036854775807ll, -1, -9223372036854775808ull},
+ {-9223372036854775808ull, -9223372036854775808ull, -9223372036854775808ull},
+ {-9223372036854775808ull, 9223372036854775807ll, -1},
+ { -9223372036854775807ll, 9223372036854775807ll, 0},
+ { -9223372036854775803ll, 9223372036854775800ll, -3},
+ { -9223372036854775803ll, 9223372036854775805ll, 2},
+};
+
+TEST_BINARY_STRUCT_DECL(int8_t, sssub) TEST_BINARY_DATA(int8_t, sssub)[] =
+{
+ { 0, 0, 0},
+ { 2, 4, -2},
+ { 126, -1, 127},
+ { 127, -1, 127},
+ { 127, -127, 127},
+ { -7, -4, -3},
+ {-127, 1, -128},
+ {-128, 1, -128},
+ {-128, 127, -128},
+ {-128, -127, -1},
+ {-124, -127, 3},
+ {-125, -120, -5},
+ { 126, 120, 6},
+};
+
+TEST_BINARY_STRUCT_DECL(int16_t, sssub) TEST_BINARY_DATA(int16_t, sssub)[] =
+{
+ { 0, 0, 0},
+ { 2, 4, -2},
+ { 32766, -1, 32767},
+ { 32767, -1, 32767},
+ { 32767, -32767, 32767},
+ { -7, -4, -3},
+ {-32767, 1, -32768},
+ {-32768, 1, -32768},
+ {-32768, 32767, -32768},
+ {-32768, -32767, -1},
+ {-32764, -32767, 3},
+ {-32765, -32760, -5},
+ { 32766, 32760, 6},
+};
+
+TEST_BINARY_STRUCT_DECL(int32_t, sssub) TEST_BINARY_DATA(int32_t, sssub)[] =
+{
+ { 0, 0, 0},
+ { 2, 4, -2},
+ { 2147483646, -1, 2147483647},
+ { 2147483647, -1, 2147483647},
+ { 2147483647, -2147483647, 2147483647},
+ { -7, -4, -3},
+ {-2147483647, 1, -2147483648},
+ {-2147483648, 1, -2147483648},
+ {-2147483648, 2147483647, -2147483648},
+ {-2147483648, -2147483647, -1},
+ {-2147483644, -2147483647, 3},
+ {-2147483645, -2147483640, -5},
+ { 2147483646, 2147483640, 6},
+};
+
+TEST_BINARY_STRUCT_DECL(int64_t, sssub) TEST_BINARY_DATA(int64_t, sssub)[] =
+{
+ { 0, 0, 0},
+ { 2, 4, -2},
+ { 9223372036854775806ll, -1, 9223372036854775807ll},
+ { 9223372036854775807ll, -1, 9223372036854775807ll},
+ { 9223372036854775807ll, -9223372036854775807ll, 9223372036854775807ll},
+ { -7, -4, -3},
+ { -9223372036854775807ll, 1, -9223372036854775808ull},
+ {-9223372036854775808ull, 1, -9223372036854775808ull},
+ {-9223372036854775808ull, 9223372036854775807ll, -9223372036854775808ull},
+ {-9223372036854775808ull, -9223372036854775807ll, -1},
+ { -9223372036854775804ll, -9223372036854775807ll, 3},
+ { -9223372036854775805ll, -9223372036854775800ll, -5},
+ { 9223372036854775806ll, 9223372036854775800ll, 6},
+};
+
+#endif
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i16.c
index 2572298..2572298 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i32.c
index 8f5a5ef..8f5a5ef 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i64.c
index 676e93c..676e93c 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i8.c
index 37cc58e..37cc58e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i16.c
index 987ba15..987ba15 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i32.c
index 2d5dc97..2d5dc97 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i64.c
index 1246860..1246860 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i8.c
index 707deaa..707deaa 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i16.c
index ac55802..ac55802 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i32.c
index 093390d..093390d 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i64.c
index 04e3a0a..04e3a0a 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i8.c
index 98b6798..98b6798 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i16.c
index 984e446..984e446 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i32.c
index 92f3402..92f3402 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i64.c
index 6fb958e..6fb958e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i8.c
index 2c12514..2c12514 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i16.c
index 34459b8..34459b8 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i32.c
index 4d4841f..4d4841f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i64.c
index df81887..df81887 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i8.c
index 9a4ce33..9a4ce33 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i16.c
index cdac5bd..cdac5bd 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i32.c
index 4ac952e..4ac952e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i64.c
index 4d25e7f..4d25e7f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i8.c
index d57e0a0..d57e0a0 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i16.c
index 08b961a..08b961a 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i32.c
index 3611b6e..3611b6e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i64.c
index 3eaa6c2..3eaa6c2 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i8.c
index 6d38e5f..6d38e5f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i16.c
index 2e73450..2e73450 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i32.c
index ec3022d..ec3022d 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i64.c
index 911856e..911856e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i8.c
index 94d48ef..94d48ef 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-1.c
index f20f9b0..f20f9b0 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1-1.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-1.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1.c
index 6746caf..6746caf 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-1.c
index 3d31d01..3d31d01 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2-1.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-1.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2.c
index eb3127b..eb3127b 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3-1.c
index 1735a8b..1735a8b 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3-1.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3-1.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3.c
index 83ed301..83ed301 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-4.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-4.c
index df25cc6..df25cc6 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-4.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-4.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1.c
index c71b717..c71b717 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-1.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-2.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2.c
index 187a098..187a098 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-2.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-3.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-3.c
index 899fda8..899fda8 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-3.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-3.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-4.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-4.c
index 3dc4f72..3dc4f72 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-4.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-4.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u16.c
index c138df8..0a4f6fc 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u16.c
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-skip-if "" { *-*-* } { "-flto" } } */
-/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details -fno-schedule-insns -fno-schedule-insns2" } */
+/* { dg-options "-march=rv64gc -O3 -mabi=lp64d -fdump-rtl-expand-details -fno-schedule-insns -fno-schedule-insns2" } */
/* { dg-final { check-function-bodies "**" "" } } */
#include "sat_arith.h"
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u32.c
index cb93d44..cb93d44 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u64.c
index a95c4b3..a95c4b3 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u8.c
index 6530f37..6530f37 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u16.c
index 6f02547..6f02547 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u32.c
index 420c194..420c194 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u64.c
index 8a9cf7b..8a9cf7b 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u8.c
index 250b45f..250b45f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u16.c
index eec5a36..eec5a36 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u32.c
index fa882a5..fa882a5 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u64.c
index da485fb..da485fb 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u8.c
index a980390..a980390 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u16.c
index 60247e9..60247e9 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u32.c
index b903dba..b903dba 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u64.c
index c0b34dd..c0b34dd 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u8.c
index 5380bf3..5380bf3 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u16.c
index b145e6a..b145e6a 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u32.c
index 2390232..2390232 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u64.c
index 481cdfd..481cdfd 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u8.c
index 0ed8c8f..0ed8c8f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u16.c
index 44546d7..44546d7 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u32.c
index 67c6b22..67c6b22 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u64.c
index 800aee6..800aee6 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u8.c
index a1dd305..a1dd305 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c
index cb3879d..cb3879d 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c
index c9a6080..c9a6080 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c
index c19b7e2..c19b7e2 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c
index f197249..f197249 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c
index 99b5c3a..99b5c3a 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c
index 13f5954..13f5954 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c
index cdbea7b..cdbea7b 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c
index 508531c..508531c 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c
index bd935dc..bd935dc 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c
index deccf9a..deccf9a 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c
index 4f99367..4f99367 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c
index 670932f..670932f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c
index 33a595d..33a595d 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c
index 8a5b7c1..8a5b7c1 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c
index fa20aae..fa20aae 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c
index 083d6e5..083d6e5 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c
index a1d5d70..a1d5d70 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c
index 7608e71..7608e71 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c
index 496ab58..496ab58 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c
index 936028c..936028c 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c
index d304288..d304288 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c
index 1a1ea59..1a1ea59 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c
index dc977d5..dc977d5 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c
index 8bc204e..8bc204e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u16.c
index 90a4e4a..90a4e4a 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u32.c
index e5e0ff6..e5e0ff6 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u64.c
index 9eb373e..9eb373e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u8.c
index 856001f..856001f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u16.c
index a69a1e2..a69a1e2 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u32.c
index b2f2ffc..b2f2ffc 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u64.c
index 6d07d4f..6d07d4f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u8.c
index 0c4fa94..0c4fa94 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u16.c
index 9089d1e..9089d1e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u32.c
index 318cd3f..318cd3f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u64.c
index 77cd953..77cd953 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u8.c
index 04886ff..04886ff 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u16.c
index 859c5c9..859c5c9 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u32.c
index e04d4d4..e04d4d4 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u64.c
index 73ce397..73ce397 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u8.c
index 58e330f..58e330f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c
index 090c765..090c765 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c
index 8dade74..8dade74 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c
index ace2df8..ace2df8 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c
index 0ce546f..0ce546f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c
index 7b6bd73..7b6bd73 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c
index 8024152..8024152 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c
index 4a76dbb..4a76dbb 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c
index 8e8759c..8e8759c 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c
index 64924a6..64924a6 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c
index 04f3217..04f3217 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c
index 8ef6c14..8ef6c14 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c
index 8867361..8867361 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c
index 0b75206..0b75206 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c
index e548d0c..e548d0c 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c
index 4335d82..4335d82 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u64.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c
index 872923e..872923e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c
index db4b0be..db4b0be 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-1.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-10.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c
index 37ec6e9..37ec6e9 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-10.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-11.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c
index 8dca3b2c..8dca3b2c 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-11.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-12.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c
index f3cde55..f3cde55 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-12.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-13.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c
index 61834e7..61834e7 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-13.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-14.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c
index 74e9298..74e9298 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-14.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-15.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c
index f5d60e9..f5d60e9 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-15.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c
index e7742b3..e7742b3 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-16.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-17.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c
index 1437206..1437206 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-17.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-18.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c
index 4ef47e2..4ef47e2 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-18.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-19.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c
index 3df6acf..3df6acf 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-19.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-2.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c
index ab69971..ab69971 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-2.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-20.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c
index b504faf..b504faf 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-20.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-21.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c
index 55e5683..55e5683 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-21.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-22.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c
index fdd6863..fdd6863 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-22.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-23.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c
index f6e9b6b..f6e9b6b 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-23.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-24.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c
index 1d73286..1d73286 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-24.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-25.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c
index 9f8dd6b..9f8dd6b 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-25.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-26.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c
index 988a557..988a557 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-26.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-27.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c
index 9b14324..9b14324 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-27.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-28.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c
index 781699c..781699c 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-28.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-29.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c
index 7aa0720..7aa0720 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-29.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-3.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c
index ea49c6b..ea49c6b 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-3.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-30.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c
index 467b9d9..467b9d9 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-30.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-31.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c
index 6a144a7..6a144a7 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-31.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c
index 2cc1912..2cc1912 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-32.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-33.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c
index c94716d..c94716d 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-33.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-34.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c
index 9b38133..9b38133 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-34.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-35.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c
index 4b5c6fa..4b5c6fa 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-35.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-36.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c
index 903df49..903df49 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-36.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-37.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c
index ff30c20..ff30c20 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-37.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-38.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c
index 45e06e4..45e06e4 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-38.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-39.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c
index 659352e..659352e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-39.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-4.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c
index c9a33ed..c9a33ed 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-4.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-40.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c
index a16776a..a16776a 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-40.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-41.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c
index edcad09..edcad09 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-41.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-42.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c
index 8d37bba..8d37bba 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-42.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-43.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c
index 5976d6e..5976d6e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-43.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-44.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c
index f19edb2..f19edb2 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-44.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-45.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c
index 0a48aca..0a48aca 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-45.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-46.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c
index 26d293e..26d293e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-46.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-47.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c
index 37bf026..37bf026 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-47.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-48.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c
index f16c68e..f16c68e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-48.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-49.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c
index ec2b557..ec2b557 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-49.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-5.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c
index 1e21831a..1e21831a 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-5.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-50.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c
index 752ca6f..752ca6f 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-50.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-51.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c
index b9fe726..b9fe726 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-51.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-52.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c
index f1afecb..f1afecb 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-52.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-53.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c
index c959eeb..c959eeb 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-53.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-54.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c
index abc19e2..abc19e2 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-54.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-55.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c
index e9c3fd5..e9c3fd5 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-55.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-56.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c
index 3f8e3e1..3f8e3e1 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-56.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-57.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c
index 1b193bc..1b193bc 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-57.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-58.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c
index b7dc71b..b7dc71b 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-58.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-59.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c
index 4f2fb30..4f2fb30 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-59.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-6.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c
index 0370857..0370857 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-6.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-60.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c
index b32e69e..b32e69e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-60.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-7.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c
index 660635e..660635e 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-7.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c
index 38da62d..38da62d 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-8.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-9.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c
index baf81b4..baf81b4 100644
--- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-9.c
+++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c
diff --git a/gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary.h b/gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary.h
new file mode 100644
index 0000000..cbb2d75
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary.h
@@ -0,0 +1,27 @@
+#ifndef HAVE_DEFINED_SCALAR_SAT_BINARY
+#define HAVE_DEFINED_SCALAR_SAT_BINARY
+
+/* To leverage this header files for run test, you need to:
+ 1. define T as the type, for example uint8_t,
+ 2. define RUN_SAT_BINARY as run function.
+ 3. prepare the test_data for test cases.
+ */
+
+int
+main ()
+{
+ unsigned i;
+ T *d;
+
+ for (i = 0; i < sizeof (test_data) / sizeof (test_data[0]); i++)
+ {
+ d = test_data[i];
+
+ if (RUN_SAT_BINARY (T, d[0], d[1]) != d[2])
+ __builtin_abort ();
+ }
+
+ return 0;
+}
+
+#endif
diff --git a/gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary_run_xxx.h b/gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary_run_xxx.h
new file mode 100644
index 0000000..a7e0d98
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary_run_xxx.h
@@ -0,0 +1,21 @@
+#ifndef HAVE_DEFINED_SCALAR_SAT_BINARY_RUN_XXX
+#define HAVE_DEFINED_SCALAR_SAT_BINARY_RUN_XXX
+
+int
+main ()
+{
+ unsigned i;
+ T d;
+
+ for (i = 0; i < sizeof (DATA) / sizeof (DATA[0]); i++)
+ {
+ d = DATA[i];
+
+ if (RUN_BINARY (d.a, d.b) != d.expect)
+ __builtin_abort ();
+ }
+
+ return 0;
+}
+
+#endif