From e0a402b3e28545abe8b190fb84ccc180d0744b13 Mon Sep 17 00:00:00 2001 From: Pan Li Date: Fri, 15 Nov 2024 11:42:13 +0800 Subject: 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 --- gcc/testsuite/gcc.target/riscv/riscv.exp | 12 + gcc/testsuite/gcc.target/riscv/sat/sat_arith.h | 605 +++++++++++++++++++++ .../gcc.target/riscv/sat/sat_arith_data.h | 375 +++++++++++++ .../gcc.target/riscv/sat/sat_s_add-1-i16.c | 33 ++ .../gcc.target/riscv/sat/sat_s_add-1-i32.c | 32 ++ .../gcc.target/riscv/sat/sat_s_add-1-i64.c | 30 + .../gcc.target/riscv/sat/sat_s_add-1-i8.c | 31 ++ .../gcc.target/riscv/sat/sat_s_add-2-i16.c | 33 ++ .../gcc.target/riscv/sat/sat_s_add-2-i32.c | 32 ++ .../gcc.target/riscv/sat/sat_s_add-2-i64.c | 30 + .../gcc.target/riscv/sat/sat_s_add-2-i8.c | 31 ++ .../gcc.target/riscv/sat/sat_s_add-3-i16.c | 33 ++ .../gcc.target/riscv/sat/sat_s_add-3-i32.c | 32 ++ .../gcc.target/riscv/sat/sat_s_add-3-i64.c | 30 + .../gcc.target/riscv/sat/sat_s_add-3-i8.c | 31 ++ .../gcc.target/riscv/sat/sat_s_add-4-i16.c | 33 ++ .../gcc.target/riscv/sat/sat_s_add-4-i32.c | 32 ++ .../gcc.target/riscv/sat/sat_s_add-4-i64.c | 30 + .../gcc.target/riscv/sat/sat_s_add-4-i8.c | 31 ++ .../gcc.target/riscv/sat/sat_s_add-run-1-i16.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-1-i32.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-1-i64.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-1-i8.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-2-i16.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-2-i32.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-2-i64.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-2-i8.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-3-i16.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-3-i32.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-3-i64.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-3-i8.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-4-i16.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-4-i32.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-4-i64.c | 16 + .../gcc.target/riscv/sat/sat_s_add-run-4-i8.c | 16 + .../gcc.target/riscv/sat/sat_s_add_imm-1-1.c | 10 + .../gcc.target/riscv/sat/sat_s_add_imm-1.c | 30 + .../gcc.target/riscv/sat/sat_s_add_imm-2-1.c | 10 + .../gcc.target/riscv/sat/sat_s_add_imm-2.c | 33 ++ .../gcc.target/riscv/sat/sat_s_add_imm-3-1.c | 10 + .../gcc.target/riscv/sat/sat_s_add_imm-3.c | 31 ++ .../gcc.target/riscv/sat/sat_s_add_imm-4.c | 29 + .../gcc.target/riscv/sat/sat_s_add_imm-run-1.c | 42 ++ .../gcc.target/riscv/sat/sat_s_add_imm-run-2.c | 42 ++ .../gcc.target/riscv/sat/sat_s_add_imm-run-3.c | 42 ++ .../gcc.target/riscv/sat/sat_s_add_imm-run-4.c | 42 ++ .../gcc.target/riscv/sat/sat_u_add-1-u16.c | 22 + .../gcc.target/riscv/sat/sat_u_add-1-u32.c | 23 + .../gcc.target/riscv/sat/sat_u_add-1-u64.c | 18 + .../gcc.target/riscv/sat/sat_u_add-1-u8.c | 20 + .../gcc.target/riscv/sat/sat_u_add-2-u16.c | 22 + .../gcc.target/riscv/sat/sat_u_add-2-u32.c | 23 + .../gcc.target/riscv/sat/sat_u_add-2-u64.c | 18 + .../gcc.target/riscv/sat/sat_u_add-2-u8.c | 20 + .../gcc.target/riscv/sat/sat_u_add-3-u16.c | 22 + .../gcc.target/riscv/sat/sat_u_add-3-u32.c | 23 + .../gcc.target/riscv/sat/sat_u_add-3-u64.c | 18 + .../gcc.target/riscv/sat/sat_u_add-3-u8.c | 20 + .../gcc.target/riscv/sat/sat_u_add-4-u16.c | 22 + .../gcc.target/riscv/sat/sat_u_add-4-u32.c | 23 + .../gcc.target/riscv/sat/sat_u_add-4-u64.c | 18 + .../gcc.target/riscv/sat/sat_u_add-4-u8.c | 20 + .../gcc.target/riscv/sat/sat_u_add-5-u16.c | 22 + .../gcc.target/riscv/sat/sat_u_add-5-u32.c | 23 + .../gcc.target/riscv/sat/sat_u_add-5-u64.c | 18 + .../gcc.target/riscv/sat/sat_u_add-5-u8.c | 20 + .../gcc.target/riscv/sat/sat_u_add-6-u16.c | 22 + .../gcc.target/riscv/sat/sat_u_add-6-u32.c | 23 + .../gcc.target/riscv/sat/sat_u_add-6-u64.c | 18 + .../gcc.target/riscv/sat/sat_u_add-6-u8.c | 20 + .../gcc.target/riscv/sat/sat_u_add-run-1-u16.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-1-u32.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-1-u64.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-1-u8.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-2-u16.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-2-u32.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-2-u64.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-2-u8.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-3-u16.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-3-u32.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-3-u64.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-3-u8.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-4-u16.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-4-u32.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-4-u64.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-4-u8.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-5-u16.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-5-u32.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-5-u64.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-5-u8.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-6-u16.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-6-u32.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-6-u64.c | 25 + .../gcc.target/riscv/sat/sat_u_add-run-6-u8.c | 25 + .../gcc.target/riscv/sat/sat_u_add_imm-1-u16.c | 22 + .../gcc.target/riscv/sat/sat_u_add_imm-1-u32.c | 23 + .../gcc.target/riscv/sat/sat_u_add_imm-1-u64.c | 18 + .../gcc.target/riscv/sat/sat_u_add_imm-1-u8.c | 20 + .../gcc.target/riscv/sat/sat_u_add_imm-2-u16.c | 22 + .../gcc.target/riscv/sat/sat_u_add_imm-2-u32.c | 23 + .../gcc.target/riscv/sat/sat_u_add_imm-2-u64.c | 18 + .../gcc.target/riscv/sat/sat_u_add_imm-2-u8.c | 20 + .../gcc.target/riscv/sat/sat_u_add_imm-3-u16.c | 22 + .../gcc.target/riscv/sat/sat_u_add_imm-3-u32.c | 23 + .../gcc.target/riscv/sat/sat_u_add_imm-3-u64.c | 18 + .../gcc.target/riscv/sat/sat_u_add_imm-3-u8.c | 20 + .../gcc.target/riscv/sat/sat_u_add_imm-4-u16.c | 22 + .../gcc.target/riscv/sat/sat_u_add_imm-4-u32.c | 23 + .../gcc.target/riscv/sat/sat_u_add_imm-4-u64.c | 18 + .../gcc.target/riscv/sat/sat_u_add_imm-4-u8.c | 20 + .../gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c | 46 ++ .../gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c | 46 ++ .../riscv/sat/sat_u_add_imm_type_check-1.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-10.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-11.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-12.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-13.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-14.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-15.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-16.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-17.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-18.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-19.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-2.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-20.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-21.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-22.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-23.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-24.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-25.c | 9 + .../riscv/sat/sat_u_add_imm_type_check-26.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-27.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-28.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-29.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-3.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-30.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-31.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-32.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-33.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-34.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-35.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-36.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-37.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-38.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-39.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-4.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-40.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-41.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-42.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-43.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-44.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-45.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-46.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-47.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-48.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-49.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-5.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-50.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-51.c | 9 + .../riscv/sat/sat_u_add_imm_type_check-52.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-53.c | 18 + .../riscv/sat/sat_u_add_imm_type_check-54.c | 27 + .../riscv/sat/sat_u_add_imm_type_check-55.c | 18 + .../riscv/sat/sat_u_add_imm_type_check-56.c | 27 + .../riscv/sat/sat_u_add_imm_type_check-57.c | 18 + .../riscv/sat/sat_u_add_imm_type_check-58.c | 27 + .../riscv/sat/sat_u_add_imm_type_check-59.c | 18 + .../riscv/sat/sat_u_add_imm_type_check-6.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-60.c | 27 + .../riscv/sat/sat_u_add_imm_type_check-7.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-8.c | 8 + .../riscv/sat/sat_u_add_imm_type_check-9.c | 8 + .../gcc.target/riscv/sat/scalar_sat_binary.h | 27 + .../riscv/sat/scalar_sat_binary_run_xxx.h | 21 + gcc/testsuite/gcc.target/riscv/sat_s_add-1-i16.c | 33 -- gcc/testsuite/gcc.target/riscv/sat_s_add-1-i32.c | 32 -- gcc/testsuite/gcc.target/riscv/sat_s_add-1-i64.c | 30 - gcc/testsuite/gcc.target/riscv/sat_s_add-1-i8.c | 31 -- gcc/testsuite/gcc.target/riscv/sat_s_add-2-i16.c | 33 -- gcc/testsuite/gcc.target/riscv/sat_s_add-2-i32.c | 32 -- gcc/testsuite/gcc.target/riscv/sat_s_add-2-i64.c | 30 - gcc/testsuite/gcc.target/riscv/sat_s_add-2-i8.c | 31 -- gcc/testsuite/gcc.target/riscv/sat_s_add-3-i16.c | 33 -- gcc/testsuite/gcc.target/riscv/sat_s_add-3-i32.c | 32 -- gcc/testsuite/gcc.target/riscv/sat_s_add-3-i64.c | 30 - gcc/testsuite/gcc.target/riscv/sat_s_add-3-i8.c | 31 -- gcc/testsuite/gcc.target/riscv/sat_s_add-4-i16.c | 33 -- gcc/testsuite/gcc.target/riscv/sat_s_add-4-i32.c | 32 -- gcc/testsuite/gcc.target/riscv/sat_s_add-4-i64.c | 30 - gcc/testsuite/gcc.target/riscv/sat_s_add-4-i8.c | 31 -- .../gcc.target/riscv/sat_s_add-run-1-i16.c | 16 - .../gcc.target/riscv/sat_s_add-run-1-i32.c | 16 - .../gcc.target/riscv/sat_s_add-run-1-i64.c | 16 - .../gcc.target/riscv/sat_s_add-run-1-i8.c | 16 - .../gcc.target/riscv/sat_s_add-run-2-i16.c | 16 - .../gcc.target/riscv/sat_s_add-run-2-i32.c | 16 - .../gcc.target/riscv/sat_s_add-run-2-i64.c | 16 - .../gcc.target/riscv/sat_s_add-run-2-i8.c | 16 - .../gcc.target/riscv/sat_s_add-run-3-i16.c | 16 - .../gcc.target/riscv/sat_s_add-run-3-i32.c | 16 - .../gcc.target/riscv/sat_s_add-run-3-i64.c | 16 - .../gcc.target/riscv/sat_s_add-run-3-i8.c | 16 - .../gcc.target/riscv/sat_s_add-run-4-i16.c | 16 - .../gcc.target/riscv/sat_s_add-run-4-i32.c | 16 - .../gcc.target/riscv/sat_s_add-run-4-i64.c | 16 - .../gcc.target/riscv/sat_s_add-run-4-i8.c | 16 - gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1-1.c | 10 - gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1.c | 30 - gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2-1.c | 10 - gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2.c | 33 -- gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3-1.c | 10 - gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3.c | 31 -- gcc/testsuite/gcc.target/riscv/sat_s_add_imm-4.c | 29 - .../gcc.target/riscv/sat_s_add_imm-run-1.c | 42 -- .../gcc.target/riscv/sat_s_add_imm-run-2.c | 42 -- .../gcc.target/riscv/sat_s_add_imm-run-3.c | 42 -- .../gcc.target/riscv/sat_s_add_imm-run-4.c | 42 -- gcc/testsuite/gcc.target/riscv/sat_u_add-1-u16.c | 22 - gcc/testsuite/gcc.target/riscv/sat_u_add-1-u32.c | 23 - gcc/testsuite/gcc.target/riscv/sat_u_add-1-u64.c | 18 - gcc/testsuite/gcc.target/riscv/sat_u_add-1-u8.c | 20 - gcc/testsuite/gcc.target/riscv/sat_u_add-2-u16.c | 22 - gcc/testsuite/gcc.target/riscv/sat_u_add-2-u32.c | 23 - gcc/testsuite/gcc.target/riscv/sat_u_add-2-u64.c | 18 - gcc/testsuite/gcc.target/riscv/sat_u_add-2-u8.c | 20 - gcc/testsuite/gcc.target/riscv/sat_u_add-3-u16.c | 22 - gcc/testsuite/gcc.target/riscv/sat_u_add-3-u32.c | 23 - gcc/testsuite/gcc.target/riscv/sat_u_add-3-u64.c | 18 - gcc/testsuite/gcc.target/riscv/sat_u_add-3-u8.c | 20 - gcc/testsuite/gcc.target/riscv/sat_u_add-4-u16.c | 22 - gcc/testsuite/gcc.target/riscv/sat_u_add-4-u32.c | 23 - gcc/testsuite/gcc.target/riscv/sat_u_add-4-u64.c | 18 - gcc/testsuite/gcc.target/riscv/sat_u_add-4-u8.c | 20 - gcc/testsuite/gcc.target/riscv/sat_u_add-5-u16.c | 22 - gcc/testsuite/gcc.target/riscv/sat_u_add-5-u32.c | 23 - gcc/testsuite/gcc.target/riscv/sat_u_add-5-u64.c | 18 - gcc/testsuite/gcc.target/riscv/sat_u_add-5-u8.c | 20 - gcc/testsuite/gcc.target/riscv/sat_u_add-6-u16.c | 22 - gcc/testsuite/gcc.target/riscv/sat_u_add-6-u32.c | 23 - gcc/testsuite/gcc.target/riscv/sat_u_add-6-u64.c | 18 - gcc/testsuite/gcc.target/riscv/sat_u_add-6-u8.c | 20 - .../gcc.target/riscv/sat_u_add-run-1-u16.c | 25 - .../gcc.target/riscv/sat_u_add-run-1-u32.c | 25 - .../gcc.target/riscv/sat_u_add-run-1-u64.c | 25 - .../gcc.target/riscv/sat_u_add-run-1-u8.c | 25 - .../gcc.target/riscv/sat_u_add-run-2-u16.c | 25 - .../gcc.target/riscv/sat_u_add-run-2-u32.c | 25 - .../gcc.target/riscv/sat_u_add-run-2-u64.c | 25 - .../gcc.target/riscv/sat_u_add-run-2-u8.c | 25 - .../gcc.target/riscv/sat_u_add-run-3-u16.c | 25 - .../gcc.target/riscv/sat_u_add-run-3-u32.c | 25 - .../gcc.target/riscv/sat_u_add-run-3-u64.c | 25 - .../gcc.target/riscv/sat_u_add-run-3-u8.c | 25 - .../gcc.target/riscv/sat_u_add-run-4-u16.c | 25 - .../gcc.target/riscv/sat_u_add-run-4-u32.c | 25 - .../gcc.target/riscv/sat_u_add-run-4-u64.c | 25 - .../gcc.target/riscv/sat_u_add-run-4-u8.c | 25 - .../gcc.target/riscv/sat_u_add-run-5-u16.c | 25 - .../gcc.target/riscv/sat_u_add-run-5-u32.c | 25 - .../gcc.target/riscv/sat_u_add-run-5-u64.c | 25 - .../gcc.target/riscv/sat_u_add-run-5-u8.c | 25 - .../gcc.target/riscv/sat_u_add-run-6-u16.c | 25 - .../gcc.target/riscv/sat_u_add-run-6-u32.c | 25 - .../gcc.target/riscv/sat_u_add-run-6-u64.c | 25 - .../gcc.target/riscv/sat_u_add-run-6-u8.c | 25 - .../gcc.target/riscv/sat_u_add_imm-1-u16.c | 22 - .../gcc.target/riscv/sat_u_add_imm-1-u32.c | 23 - .../gcc.target/riscv/sat_u_add_imm-1-u64.c | 18 - .../gcc.target/riscv/sat_u_add_imm-1-u8.c | 20 - .../gcc.target/riscv/sat_u_add_imm-2-u16.c | 22 - .../gcc.target/riscv/sat_u_add_imm-2-u32.c | 23 - .../gcc.target/riscv/sat_u_add_imm-2-u64.c | 18 - .../gcc.target/riscv/sat_u_add_imm-2-u8.c | 20 - .../gcc.target/riscv/sat_u_add_imm-3-u16.c | 22 - .../gcc.target/riscv/sat_u_add_imm-3-u32.c | 23 - .../gcc.target/riscv/sat_u_add_imm-3-u64.c | 18 - .../gcc.target/riscv/sat_u_add_imm-3-u8.c | 20 - .../gcc.target/riscv/sat_u_add_imm-4-u16.c | 22 - .../gcc.target/riscv/sat_u_add_imm-4-u32.c | 23 - .../gcc.target/riscv/sat_u_add_imm-4-u64.c | 18 - .../gcc.target/riscv/sat_u_add_imm-4-u8.c | 20 - .../gcc.target/riscv/sat_u_add_imm-run-1-u16.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-1-u32.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-1-u64.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-1-u8.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-2-u16.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-2-u32.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-2-u64.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-2-u8.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-3-u16.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-3-u32.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-3-u64.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-3-u8.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-4-u16.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-4-u32.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-4-u64.c | 46 -- .../gcc.target/riscv/sat_u_add_imm-run-4-u8.c | 46 -- .../gcc.target/riscv/sat_u_add_imm_type_check-1.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-10.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-11.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-12.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-13.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-14.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-15.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-16.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-17.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-18.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-19.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-2.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-20.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-21.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-22.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-23.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-24.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-25.c | 9 - .../gcc.target/riscv/sat_u_add_imm_type_check-26.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-27.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-28.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-29.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-3.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-30.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-31.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-32.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-33.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-34.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-35.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-36.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-37.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-38.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-39.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-4.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-40.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-41.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-42.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-43.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-44.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-45.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-46.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-47.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-48.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-49.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-5.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-50.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-51.c | 9 - .../gcc.target/riscv/sat_u_add_imm_type_check-52.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-53.c | 18 - .../gcc.target/riscv/sat_u_add_imm_type_check-54.c | 27 - .../gcc.target/riscv/sat_u_add_imm_type_check-55.c | 18 - .../gcc.target/riscv/sat_u_add_imm_type_check-56.c | 27 - .../gcc.target/riscv/sat_u_add_imm_type_check-57.c | 18 - .../gcc.target/riscv/sat_u_add_imm_type_check-58.c | 27 - .../gcc.target/riscv/sat_u_add_imm_type_check-59.c | 18 - .../gcc.target/riscv/sat_u_add_imm_type_check-6.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-60.c | 27 - .../gcc.target/riscv/sat_u_add_imm_type_check-7.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-8.c | 8 - .../gcc.target/riscv/sat_u_add_imm_type_check-9.c | 8 - 371 files changed, 4885 insertions(+), 3845 deletions(-) create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_arith.h create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c create mode 100644 gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary.h create mode 100644 gcc/testsuite/gcc.target/riscv/sat/scalar_sat_binary_run_xxx.h delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-1-i16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-1-i32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-1-i64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-1-i8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-2-i16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-2-i32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-2-i64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-2-i8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-3-i16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-3-i32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-3-i64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-3-i8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-4-i16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-4-i32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-4-i64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-4-i8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1-1.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2-1.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3-1.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-4.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-1.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-2.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-3.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-4.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-1-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-1-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-1-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-1-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-2-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-2-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-2-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-2-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-3-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-3-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-3-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-3-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-4-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-4-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-4-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-4-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-5-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-5-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-5-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-5-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-6-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-6-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-6-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-6-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u64.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-1.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-10.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-11.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-12.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-13.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-14.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-15.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-16.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-17.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-18.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-19.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-2.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-20.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-21.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-22.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-23.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-24.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-25.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-26.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-27.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-28.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-29.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-3.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-30.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-31.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-32.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-33.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-34.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-35.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-36.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-37.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-38.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-39.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-4.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-40.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-41.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-42.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-43.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-44.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-45.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-46.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-47.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-48.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-49.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-5.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-50.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-51.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-52.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-53.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-54.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-55.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-56.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-57.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-58.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-59.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-6.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-60.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-7.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-8.c delete mode 100644 gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-9.c (limited to 'gcc') 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 +#include + +/******************************************************************************/ +/* 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/sat_s_add-1-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i16.c new file mode 100644 index 0000000..2572298 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i16.c @@ -0,0 +1,33 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int16_t_fmt_1: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*32768 +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slliw\s+a0,\s*a0,\s*16 +** sraiw\s+a0,\s*a0,\s*16 +** ret +*/ +DEF_SAT_S_ADD_FMT_1(int16_t, uint16_t, INT16_MIN, INT16_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i32.c new file mode 100644 index 0000000..8f5a5ef --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i32.c @@ -0,0 +1,32 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int32_t_fmt_1: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*-2147483648 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext\.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_S_ADD_FMT_1(int32_t, uint32_t, INT32_MIN, INT32_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i64.c new file mode 100644 index 0000000..676e93c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i64.c @@ -0,0 +1,30 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int64_t_fmt_1: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*-1 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_S_ADD_FMT_1(int64_t, uint64_t, INT64_MIN, INT64_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i8.c new file mode 100644 index 0000000..37cc58e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i8.c @@ -0,0 +1,31 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int8_t_fmt_1: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*127 +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slliw\s+a0,\s*a0,\s*24 +** sraiw\s+a0,\s*a0,\s*24 +** ret +*/ +DEF_SAT_S_ADD_FMT_1(int8_t, uint8_t, INT8_MIN, INT8_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i16.c new file mode 100644 index 0000000..987ba15 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i16.c @@ -0,0 +1,33 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int16_t_fmt_2: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*32768 +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slliw\s+a0,\s*a0,\s*16 +** sraiw\s+a0,\s*a0,\s*16 +** ret +*/ +DEF_SAT_S_ADD_FMT_2(int16_t, uint16_t, INT16_MIN, INT16_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i32.c new file mode 100644 index 0000000..2d5dc97 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i32.c @@ -0,0 +1,32 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int32_t_fmt_2: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*-2147483648 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext\.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_S_ADD_FMT_2(int32_t, uint32_t, INT32_MIN, INT32_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i64.c new file mode 100644 index 0000000..1246860 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i64.c @@ -0,0 +1,30 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int64_t_fmt_2: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*-1 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_S_ADD_FMT_2(int64_t, uint64_t, INT64_MIN, INT64_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i8.c new file mode 100644 index 0000000..707deaa --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i8.c @@ -0,0 +1,31 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int8_t_fmt_2: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*127 +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slliw\s+a0,\s*a0,\s*24 +** sraiw\s+a0,\s*a0,\s*24 +** ret +*/ +DEF_SAT_S_ADD_FMT_2(int8_t, uint8_t, INT8_MIN, INT8_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i16.c new file mode 100644 index 0000000..ac55802 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i16.c @@ -0,0 +1,33 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int16_t_fmt_3: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*32768 +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slliw\s+a0,\s*a0,\s*16 +** sraiw\s+a0,\s*a0,\s*16 +** ret +*/ +DEF_SAT_S_ADD_FMT_3(int16_t, uint16_t, INT16_MIN, INT16_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i32.c new file mode 100644 index 0000000..093390d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i32.c @@ -0,0 +1,32 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int32_t_fmt_3: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*-2147483648 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext\.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_S_ADD_FMT_3(int32_t, uint32_t, INT32_MIN, INT32_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i64.c new file mode 100644 index 0000000..04e3a0a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i64.c @@ -0,0 +1,30 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int64_t_fmt_3: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*-1 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_S_ADD_FMT_3(int64_t, uint64_t, INT64_MIN, INT64_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i8.c new file mode 100644 index 0000000..98b6798 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i8.c @@ -0,0 +1,31 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int8_t_fmt_3: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*127 +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slliw\s+a0,\s*a0,\s*24 +** sraiw\s+a0,\s*a0,\s*24 +** ret +*/ +DEF_SAT_S_ADD_FMT_3(int8_t, uint8_t, INT8_MIN, INT8_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i16.c new file mode 100644 index 0000000..984e446 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i16.c @@ -0,0 +1,33 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int16_t_fmt_4: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*32768 +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slliw\s+a0,\s*a0,\s*16 +** sraiw\s+a0,\s*a0,\s*16 +** ret +*/ +DEF_SAT_S_ADD_FMT_4(int16_t, uint16_t, INT16_MIN, INT16_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i32.c new file mode 100644 index 0000000..92f3402 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i32.c @@ -0,0 +1,32 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int32_t_fmt_4: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*-2147483648 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext\.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_S_ADD_FMT_4(int32_t, uint32_t, INT32_MIN, INT32_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i64.c new file mode 100644 index 0000000..6fb958e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i64.c @@ -0,0 +1,30 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int64_t_fmt_4: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** li\s+[atx][0-9]+,\s*-1 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_S_ADD_FMT_4(int64_t, uint64_t, INT64_MIN, INT64_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i8.c new file mode 100644 index 0000000..2c12514 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i8.c @@ -0,0 +1,31 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_int8_t_fmt_4: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*a1 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*127 +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slliw\s+a0,\s*a0,\s*24 +** sraiw\s+a0,\s*a0,\s*24 +** ret +*/ +DEF_SAT_S_ADD_FMT_4(int8_t, uint8_t, INT8_MIN, INT8_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i16.c new file mode 100644 index 0000000..34459b8 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i16.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int16_t +#define T2 uint16_t + +DEF_SAT_S_ADD_FMT_1_WRAP(T1, T2, INT16_MIN, INT16_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_1_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i32.c new file mode 100644 index 0000000..4d4841f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i32.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int32_t +#define T2 uint32_t + +DEF_SAT_S_ADD_FMT_1_WRAP(T1, T2, INT32_MIN, INT32_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_1_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i64.c new file mode 100644 index 0000000..df81887 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i64.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int64_t +#define T2 uint64_t + +DEF_SAT_S_ADD_FMT_1_WRAP(T1, T2, INT64_MIN, INT64_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_1_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i8.c new file mode 100644 index 0000000..9a4ce33 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i8.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int8_t +#define T2 uint8_t + +DEF_SAT_S_ADD_FMT_1_WRAP(T1, T2, INT8_MIN, INT8_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_1_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i16.c new file mode 100644 index 0000000..cdac5bd --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i16.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int16_t +#define T2 uint16_t + +DEF_SAT_S_ADD_FMT_2_WRAP(T1, T2, INT16_MIN, INT16_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_2_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i32.c new file mode 100644 index 0000000..4ac952e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i32.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int32_t +#define T2 uint32_t + +DEF_SAT_S_ADD_FMT_2_WRAP(T1, T2, INT32_MIN, INT32_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_2_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i64.c new file mode 100644 index 0000000..4d25e7f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i64.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int64_t +#define T2 uint64_t + +DEF_SAT_S_ADD_FMT_2_WRAP(T1, T2, INT64_MIN, INT64_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_2_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i8.c new file mode 100644 index 0000000..d57e0a0 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i8.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int8_t +#define T2 uint8_t + +DEF_SAT_S_ADD_FMT_2_WRAP(T1, T2, INT8_MIN, INT8_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_2_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i16.c new file mode 100644 index 0000000..08b961a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i16.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int16_t +#define T2 uint16_t + +DEF_SAT_S_ADD_FMT_3_WRAP(T1, T2, INT16_MIN, INT16_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_3_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i32.c new file mode 100644 index 0000000..3611b6e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i32.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int32_t +#define T2 uint32_t + +DEF_SAT_S_ADD_FMT_3_WRAP(T1, T2, INT32_MIN, INT32_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_3_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i64.c new file mode 100644 index 0000000..3eaa6c2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i64.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int64_t +#define T2 uint64_t + +DEF_SAT_S_ADD_FMT_3_WRAP(T1, T2, INT64_MIN, INT64_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_3_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i8.c new file mode 100644 index 0000000..6d38e5f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i8.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int8_t +#define T2 uint8_t + +DEF_SAT_S_ADD_FMT_3_WRAP(T1, T2, INT8_MIN, INT8_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_3_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i16.c new file mode 100644 index 0000000..2e73450 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i16.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int16_t +#define T2 uint16_t + +DEF_SAT_S_ADD_FMT_4_WRAP(T1, T2, INT16_MIN, INT16_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_4_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i32.c new file mode 100644 index 0000000..ec3022d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i32.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int32_t +#define T2 uint32_t + +DEF_SAT_S_ADD_FMT_4_WRAP(T1, T2, INT32_MIN, INT32_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_4_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i64.c new file mode 100644 index 0000000..911856e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i64.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int64_t +#define T2 uint64_t + +DEF_SAT_S_ADD_FMT_4_WRAP(T1, T2, INT64_MIN, INT64_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_4_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i8.c new file mode 100644 index 0000000..94d48ef --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i8.c @@ -0,0 +1,16 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" +#include "sat_arith_data.h" + +#define T1 int8_t +#define T2 uint8_t + +DEF_SAT_S_ADD_FMT_4_WRAP(T1, T2, INT8_MIN, INT8_MAX) + +#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) +#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) +#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_4_WRAP(T1, x, y) + +#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-1.c new file mode 100644 index 0000000..f20f9b0 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-1.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-skip-if "" { *-*-* } { "-flto" } } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_S_ADD_IMM_FMT_1(0, int8_t, uint8_t, -129, INT8_MIN, INT8_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(1, int8_t, uint8_t, 128, INT8_MIN, INT8_MAX) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1.c new file mode 100644 index 0000000..6746caf --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1.c @@ -0,0 +1,30 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_imm_int8_t_fmt_1_0: +** addi\s+[atx][0-9]+,\s*a0,\s*9 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 +** srli\s+[atx][0-9]+,\s*a0,\s*7 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+a0,\s*a0,\s*63 +** xori\s+[atx][0-9]+,\s*a0,\s*127 +** neg\s+a0,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*a0 +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*a0,\s*[atx][0-9]+ +** slliw\s+a0,\s*a0,\s*24 +** sraiw\s+a0,\s*a0,\s*24 +** ret +*/ +DEF_SAT_S_ADD_IMM_FMT_1(0, int8_t, uint8_t, 9, INT8_MIN, INT8_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-1.c new file mode 100644 index 0000000..3d31d01 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-1.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-skip-if "" { *-*-* } { "-flto" } } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_S_ADD_IMM_FMT_1(0, int16_t, uint16_t, -32769, INT16_MIN, INT16_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(1, int16_t, uint16_t, 32768, INT16_MIN, INT16_MAX) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2.c new file mode 100644 index 0000000..eb3127b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2.c @@ -0,0 +1,33 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_imm_int16_t_fmt_1_0: +** addi\s+[atx][0-9]+,\s*a0,\s*-7 +** xori\s+[atx][0-9]+,\s*a0,\s*-7 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+a0,\s*a0,\s*63 +** li\s+[atx][0-9]+,\s*32768 +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*a0 +** neg\s+a0,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*a0 +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*a0,\s*[atx][0-9]+ +** slliw\s+a0,\s*a0,\s*16 +** sraiw\s+a0,\s*a0,\s*16 +** ret +*/ +DEF_SAT_S_ADD_IMM_FMT_1(0, int16_t, uint16_t, -7, INT16_MIN, INT16_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3-1.c new file mode 100644 index 0000000..1735a8b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3-1.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-skip-if "" { *-*-* } { "-flto" } } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_S_ADD_IMM_FMT_1(0, int32_t, uint32_t, -2147483649, INT32_MIN, INT32_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(1, int32_t, uint32_t, 2147483648, INT32_MIN, INT32_MAX) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3.c new file mode 100644 index 0000000..83ed301 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-3.c @@ -0,0 +1,31 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_imm_int32_t_fmt_1_0: +** addi\s+[atx][0-9]+,\s*a0,\s*10 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 +** srli\s+[atx][0-9]+,\s*a0,\s*31 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** srai\s+a0,\s*a0,\s*63 +** li\s+[atx][0-9]+,\s*-2147483648 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*a0 +** neg\s+a0,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*a0 +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,a0,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_S_ADD_IMM_FMT_1(0, int32_t, uint32_t, 10, INT32_MIN, INT32_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-4.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-4.c new file mode 100644 index 0000000..df25cc6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-4.c @@ -0,0 +1,29 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_s_add_imm_int64_t_fmt_1_0: +** addi\s+[atx][0-9]+,\s*a0,\s*10 +** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 +** srli\s+[atx][0-9]+,\s*a0,\s*63 +** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** srai\s+[atx][0-9]+,\s*a0,\s*63 +** li\s+[atx][0-9]+,\s*-1 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 +** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 +** and\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*a0,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_S_ADD_IMM_FMT_1(0, int64_t, uint64_t, 10, INT64_MIN, INT64_MAX) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1.c new file mode 100644 index 0000000..c71b717 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1.c @@ -0,0 +1,42 @@ +/* { dg-do run } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_S_ADD_IMM_FMT_1(0, int8_t, uint8_t, -128, INT8_MIN, INT8_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(1, int8_t, uint8_t, 127, INT8_MIN, INT8_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(2, int8_t, uint8_t, 6, INT8_MIN, INT8_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(3, int8_t, uint8_t, -6, INT8_MIN, INT8_MAX) + +#define T int8_t +#define RUN(INDEX,T, x, expect) RUN_SAT_S_ADD_IMM_FMT_1(INDEX, T, x, expect) + +T d[][2] = { + /* arg_0, expect */ + { -1, -128, }, + { 2, -126, }, + { 1, 127, }, + { -10, 117, }, + { 122, 127, }, + { -10, -4, }, + { -128, -128, }, + { 127, 121, }, +}; + +int +main () +{ + RUN (0, T, d[0][0], d[0][1]); + RUN (0, T, d[1][0], d[1][1]); + + RUN (1, T, d[2][0], d[2][1]); + RUN (1, T, d[3][0], d[3][1]); + + RUN (2, T, d[4][0], d[4][1]); + RUN (2, T, d[5][0], d[5][1]); + + RUN (3, T, d[6][0], d[6][1]); + RUN (3, T, d[7][0], d[7][1]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2.c new file mode 100644 index 0000000..187a098 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2.c @@ -0,0 +1,42 @@ +/* { dg-do run } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_S_ADD_IMM_FMT_1(0, int16_t, uint16_t, -32768, INT16_MIN, INT16_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(1, int16_t, uint16_t, 32767, INT16_MIN, INT16_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(2, int16_t, uint16_t, 100, INT16_MIN, INT16_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(3, int16_t, uint16_t, -100, INT16_MIN, INT16_MAX) + +#define T int16_t +#define RUN(INDEX,T, x, expect) RUN_SAT_S_ADD_IMM_FMT_1(INDEX, T, x, expect) + +T d[][2] = { + /* arg_0, expect */ + { -1, -32768, }, + { 2, -32766, }, + { 1, 32767, }, + { -10, 32757, }, + { 32669, 32767, }, + { -32768, -32668, }, + { -32768, -32768, }, + { 0, -100, }, +}; + +int +main () +{ + RUN (0, T, d[0][0], d[0][1]); + RUN (0, T, d[1][0], d[1][1]); + + RUN (1, T, d[2][0], d[2][1]); + RUN (1, T, d[3][0], d[3][1]); + + RUN (2, T, d[4][0], d[4][1]); + RUN (2, T, d[5][0], d[5][1]); + + RUN (3, T, d[6][0], d[6][1]); + RUN (3, T, d[7][0], d[7][1]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-3.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-3.c new file mode 100644 index 0000000..899fda8 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-3.c @@ -0,0 +1,42 @@ +/* { dg-do run } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_S_ADD_IMM_FMT_1(0, int32_t, uint32_t, -2147483648, INT32_MIN, INT32_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(1, int32_t, uint32_t, 2147483647, INT32_MIN, INT32_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(2, int32_t, uint32_t, 100, INT32_MIN, INT32_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(3, int32_t, uint32_t, -100, INT32_MIN, INT32_MAX) + +#define T int32_t +#define RUN(INDEX,T, x, expect) RUN_SAT_S_ADD_IMM_FMT_1(INDEX, T, x, expect) + +T d[][2] = { + /* arg_0, expect */ + { -1, -2147483648, }, + { 2, -2147483646, }, + { 1, 2147483647, }, + { -10, 2147483637, }, + { 300, 400, }, + { -300, -200, }, + { 100, 0, }, + { 0, -100, }, +}; + +int +main () +{ + RUN (0, T, d[0][0], d[0][1]); + RUN (0, T, d[1][0], d[1][1]); + + RUN (1, T, d[2][0], d[2][1]); + RUN (1, T, d[3][0], d[3][1]); + + RUN (2, T, d[4][0], d[4][1]); + RUN (2, T, d[5][0], d[5][1]); + + RUN (3, T, d[6][0], d[6][1]); + RUN (3, T, d[7][0], d[7][1]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-4.c b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-4.c new file mode 100644 index 0000000..3dc4f72 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-4.c @@ -0,0 +1,42 @@ +/* { dg-do run } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_S_ADD_IMM_FMT_1(0, int64_t, uint64_t, (-9223372036854775807ll - 1), INT64_MIN, INT64_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(1, int64_t, uint64_t, 9223372036854775807ll, INT64_MIN, INT64_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(2, int64_t, uint64_t, 100, INT64_MIN, INT64_MAX) +DEF_SAT_S_ADD_IMM_FMT_1(3, int64_t, uint64_t, -100, INT64_MIN, INT64_MAX) + +#define T int64_t +#define RUN(INDEX,T, x, expect) RUN_SAT_S_ADD_IMM_FMT_1(INDEX, T, x, expect) + +T d[][2] = { + /* arg_0, expect */ + { -1, (-9223372036854775807ll - 1), }, + { 2, -9223372036854775806ll, }, + { 1, 9223372036854775807ll, }, + { -7, 9223372036854775800ll, }, + { 0, 100, }, + { -1, 99, }, + { 0, -100, }, + { 100, 0, }, +}; + +int +main () +{ + RUN (0, T, d[0][0], d[0][1]); + RUN (0, T, d[1][0], d[1][1]); + + RUN (1, T, d[2][0], d[2][1]); + RUN (1, T, d[3][0], d[3][1]); + + RUN (2, T, d[4][0], d[4][1]); + RUN (2, T, d[5][0], d[5][1]); + + RUN (3, T, d[6][0], d[6][1]); + RUN (3, T, d[7][0], d[7][1]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u16.c new file mode 100644 index 0000000..0a4f6fc --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u16.c @@ -0,0 +1,22 @@ +/* { dg-do compile } */ +/* { dg-skip-if "" { *-*-* } { "-flto" } } */ +/* { 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" + +/* +** sat_u_add_uint16_t_fmt_1: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_FMT_1(uint16_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u32.c new file mode 100644 index 0000000..cb93d44 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u32.c @@ -0,0 +1,23 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint32_t_fmt_1: +** slli\s+[atx][0-9]+,\s*a0,\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** add\s+[atx][0-9]+,\s*a[01],\s*a[01] +** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_FMT_1(uint32_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u64.c new file mode 100644 index 0000000..a95c4b3 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u64.c @@ -0,0 +1,18 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint64_t_fmt_1: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_FMT_1(uint64_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u8.c new file mode 100644 index 0000000..6530f37 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u8.c @@ -0,0 +1,20 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint8_t_fmt_1: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_FMT_1(uint8_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u16.c new file mode 100644 index 0000000..6f02547 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u16.c @@ -0,0 +1,22 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint16_t_fmt_2: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_FMT_2(uint16_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u32.c new file mode 100644 index 0000000..420c194 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u32.c @@ -0,0 +1,23 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint32_t_fmt_2: +** slli\s+[atx][0-9]+,\s*a0,\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** add\s+[atx][0-9]+,\s*a[01],\s*a[01] +** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_FMT_2(uint32_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u64.c new file mode 100644 index 0000000..8a9cf7b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u64.c @@ -0,0 +1,18 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint64_t_fmt_2: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_FMT_2(uint64_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u8.c new file mode 100644 index 0000000..250b45f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u8.c @@ -0,0 +1,20 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint8_t_fmt_2: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_FMT_2(uint8_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u16.c new file mode 100644 index 0000000..eec5a36 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u16.c @@ -0,0 +1,22 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint16_t_fmt_3: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_FMT_3(uint16_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u32.c new file mode 100644 index 0000000..fa882a5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u32.c @@ -0,0 +1,23 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint32_t_fmt_3: +** slli\s+[atx][0-9]+,\s*a0,\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** add\s+[atx][0-9]+,\s*a[01],\s*a[01] +** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_FMT_3(uint32_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u64.c new file mode 100644 index 0000000..da485fb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u64.c @@ -0,0 +1,18 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint64_t_fmt_3: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_FMT_3(uint64_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u8.c new file mode 100644 index 0000000..a980390 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u8.c @@ -0,0 +1,20 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint8_t_fmt_3: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_FMT_3(uint8_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u16.c new file mode 100644 index 0000000..60247e9 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u16.c @@ -0,0 +1,22 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint16_t_fmt_4: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_FMT_4(uint16_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u32.c new file mode 100644 index 0000000..b903dba --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u32.c @@ -0,0 +1,23 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint32_t_fmt_4: +** slli\s+[atx][0-9]+,\s*a0,\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** add\s+[atx][0-9]+,\s*a[01],\s*a[01] +** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_FMT_4(uint32_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u64.c new file mode 100644 index 0000000..c0b34dd --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u64.c @@ -0,0 +1,18 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint64_t_fmt_4: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_FMT_4(uint64_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u8.c new file mode 100644 index 0000000..5380bf3 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u8.c @@ -0,0 +1,20 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint8_t_fmt_4: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_FMT_4(uint8_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u16.c new file mode 100644 index 0000000..b145e6a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u16.c @@ -0,0 +1,22 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint16_t_fmt_5: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_FMT_5(uint16_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u32.c new file mode 100644 index 0000000..2390232 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u32.c @@ -0,0 +1,23 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint32_t_fmt_5: +** slli\s+[atx][0-9]+,\s*a0,\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** add\s+[atx][0-9]+,\s*a[01],\s*a[01] +** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_FMT_5(uint32_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u64.c new file mode 100644 index 0000000..481cdfd --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u64.c @@ -0,0 +1,18 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint64_t_fmt_5: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_FMT_5(uint64_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u8.c new file mode 100644 index 0000000..0ed8c8f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u8.c @@ -0,0 +1,20 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint8_t_fmt_5: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_FMT_5(uint8_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u16.c new file mode 100644 index 0000000..44546d7 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u16.c @@ -0,0 +1,22 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint16_t_fmt_6: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_FMT_6(uint16_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u32.c new file mode 100644 index 0000000..67c6b22 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u32.c @@ -0,0 +1,23 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint32_t_fmt_6: +** slli\s+[atx][0-9]+,\s*a0,\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** add\s+[atx][0-9]+,\s*a[01],\s*a[01] +** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_FMT_6(uint32_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u64.c new file mode 100644 index 0000000..800aee6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u64.c @@ -0,0 +1,18 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint64_t_fmt_6: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_FMT_6(uint64_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u8.c new file mode 100644 index 0000000..a1dd305 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u8.c @@ -0,0 +1,20 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_uint8_t_fmt_6: +** add\s+[atx][0-9]+,\s*a0,\s*a1 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_FMT_6(uint8_t) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c new file mode 100644 index 0000000..cb3879d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint16_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 + +DEF_SAT_U_ADD_FMT_1(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c new file mode 100644 index 0000000..c9a6080 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint32_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 + +DEF_SAT_U_ADD_FMT_1(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c new file mode 100644 index 0000000..c19b7e2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint64_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 + +DEF_SAT_U_ADD_FMT_1(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c new file mode 100644 index 0000000..f197249 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint8_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 + +DEF_SAT_U_ADD_FMT_1(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c new file mode 100644 index 0000000..99b5c3a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint16_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 + +DEF_SAT_U_ADD_FMT_2(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c new file mode 100644 index 0000000..13f5954 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint32_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 + +DEF_SAT_U_ADD_FMT_2(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c new file mode 100644 index 0000000..cdbea7b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint64_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 + +DEF_SAT_U_ADD_FMT_2(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c new file mode 100644 index 0000000..508531c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint8_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 + +DEF_SAT_U_ADD_FMT_2(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c new file mode 100644 index 0000000..bd935dc --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint16_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3 + +DEF_SAT_U_ADD_FMT_3(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c new file mode 100644 index 0000000..deccf9a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint32_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3 + +DEF_SAT_U_ADD_FMT_3(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c new file mode 100644 index 0000000..4f99367 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint64_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3 + +DEF_SAT_U_ADD_FMT_3(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c new file mode 100644 index 0000000..670932f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint8_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3 + +DEF_SAT_U_ADD_FMT_3(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c new file mode 100644 index 0000000..33a595d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint16_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4 + +DEF_SAT_U_ADD_FMT_4(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c new file mode 100644 index 0000000..8a5b7c1 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint32_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4 + +DEF_SAT_U_ADD_FMT_4(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c new file mode 100644 index 0000000..fa20aae --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint64_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4 + +DEF_SAT_U_ADD_FMT_4(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c new file mode 100644 index 0000000..083d6e5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint8_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4 + +DEF_SAT_U_ADD_FMT_4(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c new file mode 100644 index 0000000..a1d5d70 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint16_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5 + +DEF_SAT_U_ADD_FMT_5(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c new file mode 100644 index 0000000..7608e71 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint32_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5 + +DEF_SAT_U_ADD_FMT_5(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c new file mode 100644 index 0000000..496ab58 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint64_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5 + +DEF_SAT_U_ADD_FMT_5(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c new file mode 100644 index 0000000..936028c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint8_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5 + +DEF_SAT_U_ADD_FMT_5(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c new file mode 100644 index 0000000..d304288 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint16_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6 + +DEF_SAT_U_ADD_FMT_6(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c new file mode 100644 index 0000000..1a1ea59 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint32_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6 + +DEF_SAT_U_ADD_FMT_6(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c new file mode 100644 index 0000000..dc977d5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint64_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6 + +DEF_SAT_U_ADD_FMT_6(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c new file mode 100644 index 0000000..8bc204e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c @@ -0,0 +1,25 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +#define T uint8_t +#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6 + +DEF_SAT_U_ADD_FMT_6(T) + +T test_data[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u16.c new file mode 100644 index 0000000..90a4e4a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u16.c @@ -0,0 +1,22 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm3_uint16_t_fmt_1: +** addi\s+[atx][0-9]+,\s*a0,\s*3 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_1(uint16_t, 3) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u32.c new file mode 100644 index 0000000..e5e0ff6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u32.c @@ -0,0 +1,23 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm7_uint32_t_fmt_1: +** slli\s+[atx][0-9]+,\s*a0,\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** addi\s+[atx][0-9]+,\s*a0,\s*7 +** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_1(uint32_t, 7) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u64.c new file mode 100644 index 0000000..9eb373e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u64.c @@ -0,0 +1,18 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm8_uint64_t_fmt_1: +** addi\s+[atx][0-9]+,\s*a0,\s*8 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_1(uint64_t, 8) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u8.c new file mode 100644 index 0000000..856001f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u8.c @@ -0,0 +1,20 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm9_uint8_t_fmt_1: +** addi\s+[atx][0-9]+,\s*a0,\s*9 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_1(uint8_t, 9) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u16.c new file mode 100644 index 0000000..a69a1e2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u16.c @@ -0,0 +1,22 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm3_uint16_t_fmt_2: +** addi\s+[atx][0-9]+,\s*a0,\s*3 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_2(uint16_t, 3) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u32.c new file mode 100644 index 0000000..b2f2ffc --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u32.c @@ -0,0 +1,23 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm7_uint32_t_fmt_2: +** slli\s+[atx][0-9]+,\s*a0,\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** addi\s+[atx][0-9]+,\s*a0,\s*7 +** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_2(uint32_t, 7) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u64.c new file mode 100644 index 0000000..6d07d4f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u64.c @@ -0,0 +1,18 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm8_uint64_t_fmt_2: +** addi\s+[atx][0-9]+,\s*a0,\s*8 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_2(uint64_t, 8) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u8.c new file mode 100644 index 0000000..0c4fa94 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u8.c @@ -0,0 +1,20 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm9_uint8_t_fmt_2: +** addi\s+[atx][0-9]+,\s*a0,\s*9 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_2(uint8_t, 9) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u16.c new file mode 100644 index 0000000..9089d1e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u16.c @@ -0,0 +1,22 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm3_uint16_t_fmt_3: +** addi\s+[atx][0-9]+,\s*a0,\s*3 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_3(uint16_t, 3) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u32.c new file mode 100644 index 0000000..318cd3f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u32.c @@ -0,0 +1,23 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm7u_uint32_t_fmt_3: +** slli\s+[atx][0-9]+,\s*a0,\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** addi\s+[atx][0-9]+,\s*a0,\s*7 +** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_3(uint32_t, 7u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u64.c new file mode 100644 index 0000000..77cd953 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u64.c @@ -0,0 +1,18 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm8ull_uint64_t_fmt_3: +** addi\s+[atx][0-9]+,\s*a0,\s*8 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_3(uint64_t, 8ull) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u8.c new file mode 100644 index 0000000..04886ff --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u8.c @@ -0,0 +1,20 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm9_uint8_t_fmt_3: +** addi\s+[atx][0-9]+,\s*a0,\s*9 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_3(uint8_t, 9) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u16.c new file mode 100644 index 0000000..859c5c9 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u16.c @@ -0,0 +1,22 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm3_uint16_t_fmt_4: +** addi\s+[atx][0-9]+,\s*a0,\s*3 +** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** slli\s+a0,\s*a0,\s*48 +** srli\s+a0,\s*a0,\s*48 +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_4(uint16_t, 3) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u32.c new file mode 100644 index 0000000..e04d4d4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u32.c @@ -0,0 +1,23 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm7u_uint32_t_fmt_4: +** slli\s+[atx][0-9]+,\s*a0,\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** addi\s+[atx][0-9]+,\s*a0,\s*7 +** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 +** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** sext.w\s+a0,\s*a0 +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_4(uint32_t, 7u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u64.c new file mode 100644 index 0000000..73ce397 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u64.c @@ -0,0 +1,18 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm8ull_uint64_t_fmt_4: +** addi\s+[atx][0-9]+,\s*a0,\s*8 +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_4(uint64_t, 8ull) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u8.c new file mode 100644 index 0000000..58e330f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u8.c @@ -0,0 +1,20 @@ +/* { 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-final { check-function-bodies "**" "" } } */ + +#include "sat_arith.h" + +/* +** sat_u_add_imm9_uint8_t_fmt_4: +** addi\s+[atx][0-9]+,\s*a0,\s*9 +** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff +** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** neg\s+[atx][0-9]+,\s*[atx][0-9]+ +** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ +** andi\s+a0,\s*a0,\s*0xff +** ret +*/ +DEF_SAT_U_ADD_IMM_FMT_4(uint8_t, 9) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c new file mode 100644 index 0000000..090c765 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_1(uint16_t, 0) +DEF_SAT_U_ADD_IMM_FMT_1(uint16_t, 1) +DEF_SAT_U_ADD_IMM_FMT_1(uint16_t, 65534) +DEF_SAT_U_ADD_IMM_FMT_1(uint16_t, 65535) + +#define T uint16_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_1(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 65534, d[3][2]); + RUN (T, d[4][0], 65534, d[4][2]); + RUN (T, d[5][0], 65534, d[5][2]); + + RUN (T, d[6][0], 65535, d[6][2]); + RUN (T, d[7][0], 65535, d[7][2]); + RUN (T, d[8][0], 65535, d[8][2]); + RUN (T, d[9][0], 65535, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c new file mode 100644 index 0000000..8dade74 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_1(uint32_t, 0) +DEF_SAT_U_ADD_IMM_FMT_1(uint32_t, 1) +DEF_SAT_U_ADD_IMM_FMT_1(uint32_t, 4294967294) +DEF_SAT_U_ADD_IMM_FMT_1(uint32_t, 4294967295) + +#define T uint32_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_1(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 4294967294, d[3][2]); + RUN (T, d[4][0], 4294967294, d[4][2]); + RUN (T, d[5][0], 4294967294, d[5][2]); + + RUN (T, d[6][0], 4294967295, d[6][2]); + RUN (T, d[7][0], 4294967295, d[7][2]); + RUN (T, d[8][0], 4294967295, d[8][2]); + RUN (T, d[9][0], 4294967295, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c new file mode 100644 index 0000000..ace2df8 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_1(uint64_t, 0) +DEF_SAT_U_ADD_IMM_FMT_1(uint64_t, 1) +DEF_SAT_U_ADD_IMM_FMT_1(uint64_t, 18446744073709551614u) +DEF_SAT_U_ADD_IMM_FMT_1(uint64_t, 18446744073709551615u) + +#define T uint64_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_1(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 18446744073709551614u, d[3][2]); + RUN (T, d[4][0], 18446744073709551614u, d[4][2]); + RUN (T, d[5][0], 18446744073709551614u, d[5][2]); + + RUN (T, d[6][0], 18446744073709551615u, d[6][2]); + RUN (T, d[7][0], 18446744073709551615u, d[7][2]); + RUN (T, d[8][0], 18446744073709551615u, d[8][2]); + RUN (T, d[9][0], 18446744073709551615u, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c new file mode 100644 index 0000000..0ce546f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_1(uint8_t, 0) +DEF_SAT_U_ADD_IMM_FMT_1(uint8_t, 1) +DEF_SAT_U_ADD_IMM_FMT_1(uint8_t, 254) +DEF_SAT_U_ADD_IMM_FMT_1(uint8_t, 255) + +#define T uint8_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_1(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 254, d[3][2]); + RUN (T, d[4][0], 254, d[4][2]); + RUN (T, d[5][0], 254, d[5][2]); + + RUN (T, d[6][0], 255, d[6][2]); + RUN (T, d[7][0], 255, d[7][2]); + RUN (T, d[8][0], 255, d[8][2]); + RUN (T, d[9][0], 255, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c new file mode 100644 index 0000000..7b6bd73 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_2(uint16_t, 0) +DEF_SAT_U_ADD_IMM_FMT_2(uint16_t, 1) +DEF_SAT_U_ADD_IMM_FMT_2(uint16_t, 65534) +DEF_SAT_U_ADD_IMM_FMT_2(uint16_t, 65535) + +#define T uint16_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_2(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 65534, d[3][2]); + RUN (T, d[4][0], 65534, d[4][2]); + RUN (T, d[5][0], 65534, d[5][2]); + + RUN (T, d[6][0], 65535, d[6][2]); + RUN (T, d[7][0], 65535, d[7][2]); + RUN (T, d[8][0], 65535, d[8][2]); + RUN (T, d[9][0], 65535, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c new file mode 100644 index 0000000..8024152 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_2(uint32_t, 0) +DEF_SAT_U_ADD_IMM_FMT_2(uint32_t, 1) +DEF_SAT_U_ADD_IMM_FMT_2(uint32_t, 4294967294) +DEF_SAT_U_ADD_IMM_FMT_2(uint32_t, 4294967295) + +#define T uint32_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_2(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 4294967294, d[3][2]); + RUN (T, d[4][0], 4294967294, d[4][2]); + RUN (T, d[5][0], 4294967294, d[5][2]); + + RUN (T, d[6][0], 4294967295, d[6][2]); + RUN (T, d[7][0], 4294967295, d[7][2]); + RUN (T, d[8][0], 4294967295, d[8][2]); + RUN (T, d[9][0], 4294967295, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c new file mode 100644 index 0000000..4a76dbb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_2(uint64_t, 0) +DEF_SAT_U_ADD_IMM_FMT_2(uint64_t, 1) +DEF_SAT_U_ADD_IMM_FMT_2(uint64_t, 18446744073709551614u) +DEF_SAT_U_ADD_IMM_FMT_2(uint64_t, 18446744073709551615u) + +#define T uint64_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_2(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 18446744073709551614u, d[3][2]); + RUN (T, d[4][0], 18446744073709551614u, d[4][2]); + RUN (T, d[5][0], 18446744073709551614u, d[5][2]); + + RUN (T, d[6][0], 18446744073709551615u, d[6][2]); + RUN (T, d[7][0], 18446744073709551615u, d[7][2]); + RUN (T, d[8][0], 18446744073709551615u, d[8][2]); + RUN (T, d[9][0], 18446744073709551615u, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c new file mode 100644 index 0000000..8e8759c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_2(uint8_t, 0) +DEF_SAT_U_ADD_IMM_FMT_2(uint8_t, 1) +DEF_SAT_U_ADD_IMM_FMT_2(uint8_t, 254) +DEF_SAT_U_ADD_IMM_FMT_2(uint8_t, 255) + +#define T uint8_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_2(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 254, d[3][2]); + RUN (T, d[4][0], 254, d[4][2]); + RUN (T, d[5][0], 254, d[5][2]); + + RUN (T, d[6][0], 255, d[6][2]); + RUN (T, d[7][0], 255, d[7][2]); + RUN (T, d[8][0], 255, d[8][2]); + RUN (T, d[9][0], 255, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c new file mode 100644 index 0000000..64924a6 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_3(uint16_t, 0) +DEF_SAT_U_ADD_IMM_FMT_3(uint16_t, 1) +DEF_SAT_U_ADD_IMM_FMT_3(uint16_t, 65534) +DEF_SAT_U_ADD_IMM_FMT_3(uint16_t, 65535) + +#define T uint16_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_3(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 65534, d[3][2]); + RUN (T, d[4][0], 65534, d[4][2]); + RUN (T, d[5][0], 65534, d[5][2]); + + RUN (T, d[6][0], 65535, d[6][2]); + RUN (T, d[7][0], 65535, d[7][2]); + RUN (T, d[8][0], 65535, d[8][2]); + RUN (T, d[9][0], 65535, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c new file mode 100644 index 0000000..04f3217 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_3(uint32_t, 0) +DEF_SAT_U_ADD_IMM_FMT_3(uint32_t, 1) +DEF_SAT_U_ADD_IMM_FMT_3(uint32_t, 4294967294) +DEF_SAT_U_ADD_IMM_FMT_3(uint32_t, 4294967295) + +#define T uint32_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_3(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 4294967294, d[3][2]); + RUN (T, d[4][0], 4294967294, d[4][2]); + RUN (T, d[5][0], 4294967294, d[5][2]); + + RUN (T, d[6][0], 4294967295, d[6][2]); + RUN (T, d[7][0], 4294967295, d[7][2]); + RUN (T, d[8][0], 4294967295, d[8][2]); + RUN (T, d[9][0], 4294967295, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c new file mode 100644 index 0000000..8ef6c14 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_3(uint64_t, 0) +DEF_SAT_U_ADD_IMM_FMT_3(uint64_t, 1) +DEF_SAT_U_ADD_IMM_FMT_3(uint64_t, 18446744073709551614u) +DEF_SAT_U_ADD_IMM_FMT_3(uint64_t, 18446744073709551615u) + +#define T uint64_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_3(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 18446744073709551614u, d[3][2]); + RUN (T, d[4][0], 18446744073709551614u, d[4][2]); + RUN (T, d[5][0], 18446744073709551614u, d[5][2]); + + RUN (T, d[6][0], 18446744073709551615u, d[6][2]); + RUN (T, d[7][0], 18446744073709551615u, d[7][2]); + RUN (T, d[8][0], 18446744073709551615u, d[8][2]); + RUN (T, d[9][0], 18446744073709551615u, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c new file mode 100644 index 0000000..8867361 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_3(uint8_t, 0) +DEF_SAT_U_ADD_IMM_FMT_3(uint8_t, 1) +DEF_SAT_U_ADD_IMM_FMT_3(uint8_t, 254) +DEF_SAT_U_ADD_IMM_FMT_3(uint8_t, 255) + +#define T uint8_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_3(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 254, d[3][2]); + RUN (T, d[4][0], 254, d[4][2]); + RUN (T, d[5][0], 254, d[5][2]); + + RUN (T, d[6][0], 255, d[6][2]); + RUN (T, d[7][0], 255, d[7][2]); + RUN (T, d[8][0], 255, d[8][2]); + RUN (T, d[9][0], 255, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c new file mode 100644 index 0000000..0b75206 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_4(uint16_t, 0) +DEF_SAT_U_ADD_IMM_FMT_4(uint16_t, 1) +DEF_SAT_U_ADD_IMM_FMT_4(uint16_t, 65534) +DEF_SAT_U_ADD_IMM_FMT_4(uint16_t, 65535) + +#define T uint16_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_4(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 65534, 65534, }, + { 1, 65534, 65535, }, + { 2, 65534, 65535, }, + { 0, 65535, 65535, }, + { 1, 65535, 65535, }, + { 2, 65535, 65535, }, + { 65535, 65535, 65535, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 65534, d[3][2]); + RUN (T, d[4][0], 65534, d[4][2]); + RUN (T, d[5][0], 65534, d[5][2]); + + RUN (T, d[6][0], 65535, d[6][2]); + RUN (T, d[7][0], 65535, d[7][2]); + RUN (T, d[8][0], 65535, d[8][2]); + RUN (T, d[9][0], 65535, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c new file mode 100644 index 0000000..e548d0c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_4(uint32_t, 0) +DEF_SAT_U_ADD_IMM_FMT_4(uint32_t, 1) +DEF_SAT_U_ADD_IMM_FMT_4(uint32_t, 4294967294) +DEF_SAT_U_ADD_IMM_FMT_4(uint32_t, 4294967295) + +#define T uint32_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_4(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 4294967294, 4294967294, }, + { 1, 4294967294, 4294967295, }, + { 2, 4294967294, 4294967295, }, + { 0, 4294967295, 4294967295, }, + { 1, 4294967295, 4294967295, }, + { 2, 4294967295, 4294967295, }, + { 4294967295, 4294967295, 4294967295, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 4294967294, d[3][2]); + RUN (T, d[4][0], 4294967294, d[4][2]); + RUN (T, d[5][0], 4294967294, d[5][2]); + + RUN (T, d[6][0], 4294967295, d[6][2]); + RUN (T, d[7][0], 4294967295, d[7][2]); + RUN (T, d[8][0], 4294967295, d[8][2]); + RUN (T, d[9][0], 4294967295, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c new file mode 100644 index 0000000..4335d82 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_4(uint64_t, 0) +DEF_SAT_U_ADD_IMM_FMT_4(uint64_t, 1) +DEF_SAT_U_ADD_IMM_FMT_4(uint64_t, 18446744073709551614u) +DEF_SAT_U_ADD_IMM_FMT_4(uint64_t, 18446744073709551615u) + +#define T uint64_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_4(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 18446744073709551614u, 18446744073709551614u, }, + { 1, 18446744073709551614u, 18446744073709551615u, }, + { 2, 18446744073709551614u, 18446744073709551615u, }, + { 0, 18446744073709551615u, 18446744073709551615u, }, + { 1, 18446744073709551615u, 18446744073709551615u, }, + { 2, 18446744073709551615u, 18446744073709551615u, }, + { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 18446744073709551614u, d[3][2]); + RUN (T, d[4][0], 18446744073709551614u, d[4][2]); + RUN (T, d[5][0], 18446744073709551614u, d[5][2]); + + RUN (T, d[6][0], 18446744073709551615u, d[6][2]); + RUN (T, d[7][0], 18446744073709551615u, d[7][2]); + RUN (T, d[8][0], 18446744073709551615u, d[8][2]); + RUN (T, d[9][0], 18446744073709551615u, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c new file mode 100644 index 0000000..872923e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u8.c @@ -0,0 +1,46 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_FMT_4(uint8_t, 0) +DEF_SAT_U_ADD_IMM_FMT_4(uint8_t, 1) +DEF_SAT_U_ADD_IMM_FMT_4(uint8_t, 254) +DEF_SAT_U_ADD_IMM_FMT_4(uint8_t, 255) + +#define T uint8_t +#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_4(T, op, imm, expect) + +T d[][3] = { + /* arg_0, arg_1, expect */ + { 0, 0, 0, }, + { 0, 1, 1, }, + { 1, 1, 2, }, + { 0, 254, 254, }, + { 1, 254, 255, }, + { 2, 254, 255, }, + { 0, 255, 255, }, + { 1, 255, 255, }, + { 2, 255, 255, }, + { 255, 255, 255, }, +}; + +int +main () +{ + RUN (T, d[0][0], 0, d[0][2]); + + RUN (T, d[1][0], 1, d[1][2]); + RUN (T, d[2][0], 1, d[2][2]); + + RUN (T, d[3][0], 254, d[3][2]); + RUN (T, d[4][0], 254, d[4][2]); + RUN (T, d[5][0], 254, d[5][2]); + + RUN (T, d[6][0], 255, d[6][2]); + RUN (T, d[7][0], 255, d[7][2]); + RUN (T, d[8][0], 255, d[8][2]); + RUN (T, d[9][0], 255, d[9][2]); + + return 0; +} diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c new file mode 100644 index 0000000..db4b0be --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-1.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 9) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c new file mode 100644 index 0000000..37ec6e9 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-10.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 52767) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c new file mode 100644 index 0000000..8dca3b2c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-11.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 65534u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c new file mode 100644 index 0000000..f3cde55 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-12.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, -3) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c new file mode 100644 index 0000000..61834e7 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-13.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 65549) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c new file mode 100644 index 0000000..74e9298 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-14.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 67732u) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c new file mode 100644 index 0000000..f5d60e9 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-15.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 91) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c new file mode 100644 index 0000000..e7742b3 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-16.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 2147483644u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c new file mode 100644 index 0000000..1437206 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-17.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 2147483944) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c new file mode 100644 index 0000000..4ef47e2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-18.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 4294967293u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c new file mode 100644 index 0000000..3df6acf --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-19.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, -3433) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c new file mode 100644 index 0000000..ab69971 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-2.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 126u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c new file mode 100644 index 0000000..b504faf --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-20.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 4294967342ll) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c new file mode 100644 index 0000000..55e5683 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-21.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 4994967342ull) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c new file mode 100644 index 0000000..fdd6863 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-22.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint64_t, 439) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c new file mode 100644 index 0000000..f6e9b6b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-23.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint64_t, 576460752303423482u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c new file mode 100644 index 0000000..1d73286 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-24.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint64_t, 576460752303483482) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c new file mode 100644 index 0000000..9f8dd6b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-25.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint64_t, 976460752303483482u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c new file mode 100644 index 0000000..988a557 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-26.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint64_t, -39294) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c new file mode 100644 index 0000000..9b14324 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-27.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 9) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c new file mode 100644 index 0000000..781699c --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-28.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 126u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c new file mode 100644 index 0000000..7aa0720 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-29.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 129) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c new file mode 100644 index 0000000..ea49c6b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-3.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 129) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c new file mode 100644 index 0000000..467b9d9 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-30.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 254u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c new file mode 100644 index 0000000..6a144a7 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-31.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, -3) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c new file mode 100644 index 0000000..2cc1912 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-32.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 267) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c new file mode 100644 index 0000000..c94716d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-33.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 287u) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c new file mode 100644 index 0000000..9b38133 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-34.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 9) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c new file mode 100644 index 0000000..4b5c6fa --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-35.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 32767u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c new file mode 100644 index 0000000..903df49 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-36.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 52767) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c new file mode 100644 index 0000000..ff30c20 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-37.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 65534u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c new file mode 100644 index 0000000..45e06e4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-38.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, -3) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c new file mode 100644 index 0000000..659352e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-39.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 65549) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c new file mode 100644 index 0000000..c9a33ed --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-4.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 254u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c new file mode 100644 index 0000000..a16776a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-40.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 67732u) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c new file mode 100644 index 0000000..edcad09 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-41.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 91) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c new file mode 100644 index 0000000..8d37bba --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-42.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 2147483644u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c new file mode 100644 index 0000000..5976d6e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-43.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 2147483944) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c new file mode 100644 index 0000000..f19edb2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-44.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 4294967293u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c new file mode 100644 index 0000000..0a48aca --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-45.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, -3433) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c new file mode 100644 index 0000000..26d293e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-46.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 4294967342ll) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c new file mode 100644 index 0000000..37bf026 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-47.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 4994967342ull) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c new file mode 100644 index 0000000..f16c68e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-48.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint64_t, 439) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c new file mode 100644 index 0000000..ec2b557 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-49.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint64_t, 576460752303423482u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c new file mode 100644 index 0000000..1e21831a --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-5.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, -3) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c new file mode 100644 index 0000000..752ca6f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-50.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint64_t, 576460752303483482) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c new file mode 100644 index 0000000..b9fe726 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-51.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint64_t, 976460752303483482u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c new file mode 100644 index 0000000..f1afecb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-52.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint64_t, -39294) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c new file mode 100644 index 0000000..c959eeb --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-53.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (0, uint8_t, -43) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (1, uint8_t, 269) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (2, uint8_t, 369u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (3, uint16_t, -4) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (4, uint16_t, 65579) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (5, uint16_t, 65679u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (6, uint32_t, -62) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (7, uint32_t, 4294967342ll) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (8, uint32_t, 4394967342ull) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c new file mode 100644 index 0000000..abc19e2 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-54.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (0, uint8_t, 123u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (1, uint8_t, 9) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (2, uint8_t, 129) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (3, uint8_t, 234u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (4, uint16_t, 32763u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (5, uint16_t, 65532u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (6, uint16_t, 52767) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (7, uint16_t, 9) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (8, uint32_t, 4294967293u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (9, uint32_t, 2147483944) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (10, uint32_t, 4294967242) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (11, uint32_t, 2147483644u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (12, uint64_t, -6232) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (13, uint64_t, 6293232) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (14, uint64_t, 576460752303483482) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (15, uint64_t, 576460752303423482u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (16, uint64_t, 976460752303483482u) + +/* { dg-final { scan-rtl-dump-times ".SAT_SUB " 34 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c new file mode 100644 index 0000000..e9c3fd5 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-55.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (0, uint8_t, -43) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (1, uint8_t, 269) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (2, uint8_t, 369u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (3, uint16_t, -4) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (4, uint16_t, 65579) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (5, uint16_t, 65679u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (6, uint32_t, -62) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (7, uint32_t, 4294967342ll) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (8, uint32_t, 4394967342ull) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c new file mode 100644 index 0000000..3f8e3e1 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-56.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (0, uint8_t, 126u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (1, uint8_t, 9) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (2, uint8_t, 129) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (3, uint8_t, 254u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (4, uint16_t, 32767u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (5, uint16_t, 65534u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (6, uint16_t, 52767) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (7, uint16_t, 9) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (8, uint32_t, 4294967293u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (9, uint32_t, 2147483944) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (10, uint32_t, 4294967242) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (11, uint32_t, 2147483644u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (12, uint64_t, -6232) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (13, uint64_t, 6293232) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (14, uint64_t, 576460752303483482) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (15, uint64_t, 576460752303423482u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (16, uint64_t, 976460752303483482u) + +/* { dg-final { scan-rtl-dump-times ".SAT_SUB " 34 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c new file mode 100644 index 0000000..1b193bc --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-57.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (0, uint8_t, -43) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (1, uint8_t, 269) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (2, uint8_t, 369u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (3, uint16_t, -4) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (4, uint16_t, 65579) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (5, uint16_t, 65679u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (6, uint32_t, -62l) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (7, uint32_t, 6294967342ll) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (8, uint32_t, 4394967342ull) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c new file mode 100644 index 0000000..b7dc71b --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-58.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (0, uint8_t, 123u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (1, uint8_t, 9) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (2, uint8_t, 129) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (3, uint8_t, 234u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (4, uint16_t, 32763u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (5, uint16_t, 65532u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (6, uint16_t, 52767) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (7, uint16_t, 9) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (8, uint32_t, 4294967293u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (9, uint32_t, 2147483944) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (10, uint32_t, 4294967142ll) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (11, uint32_t, 2147483644u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (12, uint64_t, -6232) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (13, uint64_t, 6293232) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (14, uint64_t, 576460752303483482) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (15, uint64_t, 576460752303423482u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (16, uint64_t, 976460752303483482u) + +/* { dg-final { scan-rtl-dump-times ".SAT_SUB " 34 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c new file mode 100644 index 0000000..4f2fb30 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-59.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (0, uint8_t, -43) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (1, uint8_t, 269) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (2, uint8_t, 369u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (3, uint16_t, -4) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (4, uint16_t, 65579) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (5, uint16_t, 65679u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (6, uint32_t, -62l) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (7, uint32_t, 4294967342ll) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (8, uint32_t, 4394967342ull) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c new file mode 100644 index 0000000..0370857 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-6.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 267) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c new file mode 100644 index 0000000..b32e69e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-60.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (0, uint8_t, 126u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (1, uint8_t, 9) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (2, uint8_t, 129) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (3, uint8_t, 253u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (4, uint16_t, 32767u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (5, uint16_t, 65532u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (6, uint16_t, 52767) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (7, uint16_t, 9) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (8, uint32_t, 4294967293u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (9, uint32_t, 2147483944) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (10, uint32_t, 4294967042ll) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (11, uint32_t, 2147483644u) + +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (12, uint64_t, -6232) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (13, uint64_t, 6293232) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (14, uint64_t, 576460752303483482) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (15, uint64_t, 576460752303423482u) +DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (16, uint64_t, 976460752303483482u) + +/* { dg-final { scan-rtl-dump-times ".SAT_SUB " 34 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c new file mode 100644 index 0000000..660635e --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-7.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 287u) + +/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c new file mode 100644 index 0000000..38da62d --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-8.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 9) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c new file mode 100644 index 0000000..baf81b4 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm_type_check-9.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ + +#include "sat_arith.h" + +DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 32767u) + +/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ 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 diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i16.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i16.c deleted file mode 100644 index 2572298..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i16.c +++ /dev/null @@ -1,33 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int16_t_fmt_1: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*32768 -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slliw\s+a0,\s*a0,\s*16 -** sraiw\s+a0,\s*a0,\s*16 -** ret -*/ -DEF_SAT_S_ADD_FMT_1(int16_t, uint16_t, INT16_MIN, INT16_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i32.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i32.c deleted file mode 100644 index 8f5a5ef..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i32.c +++ /dev/null @@ -1,32 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int32_t_fmt_1: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*-2147483648 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext\.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_S_ADD_FMT_1(int32_t, uint32_t, INT32_MIN, INT32_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i64.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i64.c deleted file mode 100644 index 676e93c..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i64.c +++ /dev/null @@ -1,30 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int64_t_fmt_1: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*-1 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_S_ADD_FMT_1(int64_t, uint64_t, INT64_MIN, INT64_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i8.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i8.c deleted file mode 100644 index 37cc58e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-1-i8.c +++ /dev/null @@ -1,31 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int8_t_fmt_1: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*127 -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slliw\s+a0,\s*a0,\s*24 -** sraiw\s+a0,\s*a0,\s*24 -** ret -*/ -DEF_SAT_S_ADD_FMT_1(int8_t, uint8_t, INT8_MIN, INT8_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i16.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i16.c deleted file mode 100644 index 987ba15..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i16.c +++ /dev/null @@ -1,33 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int16_t_fmt_2: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*32768 -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slliw\s+a0,\s*a0,\s*16 -** sraiw\s+a0,\s*a0,\s*16 -** ret -*/ -DEF_SAT_S_ADD_FMT_2(int16_t, uint16_t, INT16_MIN, INT16_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i32.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i32.c deleted file mode 100644 index 2d5dc97..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i32.c +++ /dev/null @@ -1,32 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int32_t_fmt_2: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*-2147483648 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext\.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_S_ADD_FMT_2(int32_t, uint32_t, INT32_MIN, INT32_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i64.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i64.c deleted file mode 100644 index 1246860..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i64.c +++ /dev/null @@ -1,30 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int64_t_fmt_2: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*-1 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_S_ADD_FMT_2(int64_t, uint64_t, INT64_MIN, INT64_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i8.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i8.c deleted file mode 100644 index 707deaa..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-2-i8.c +++ /dev/null @@ -1,31 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int8_t_fmt_2: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*127 -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slliw\s+a0,\s*a0,\s*24 -** sraiw\s+a0,\s*a0,\s*24 -** ret -*/ -DEF_SAT_S_ADD_FMT_2(int8_t, uint8_t, INT8_MIN, INT8_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i16.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i16.c deleted file mode 100644 index ac55802..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i16.c +++ /dev/null @@ -1,33 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int16_t_fmt_3: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*32768 -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slliw\s+a0,\s*a0,\s*16 -** sraiw\s+a0,\s*a0,\s*16 -** ret -*/ -DEF_SAT_S_ADD_FMT_3(int16_t, uint16_t, INT16_MIN, INT16_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i32.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i32.c deleted file mode 100644 index 093390d..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i32.c +++ /dev/null @@ -1,32 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int32_t_fmt_3: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*-2147483648 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext\.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_S_ADD_FMT_3(int32_t, uint32_t, INT32_MIN, INT32_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i64.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i64.c deleted file mode 100644 index 04e3a0a..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i64.c +++ /dev/null @@ -1,30 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int64_t_fmt_3: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*-1 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_S_ADD_FMT_3(int64_t, uint64_t, INT64_MIN, INT64_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i8.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i8.c deleted file mode 100644 index 98b6798..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-3-i8.c +++ /dev/null @@ -1,31 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int8_t_fmt_3: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*127 -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slliw\s+a0,\s*a0,\s*24 -** sraiw\s+a0,\s*a0,\s*24 -** ret -*/ -DEF_SAT_S_ADD_FMT_3(int8_t, uint8_t, INT8_MIN, INT8_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i16.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i16.c deleted file mode 100644 index 984e446..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i16.c +++ /dev/null @@ -1,33 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int16_t_fmt_4: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*32768 -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slliw\s+a0,\s*a0,\s*16 -** sraiw\s+a0,\s*a0,\s*16 -** ret -*/ -DEF_SAT_S_ADD_FMT_4(int16_t, uint16_t, INT16_MIN, INT16_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i32.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i32.c deleted file mode 100644 index 92f3402..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i32.c +++ /dev/null @@ -1,32 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int32_t_fmt_4: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*-2147483648 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext\.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_S_ADD_FMT_4(int32_t, uint32_t, INT32_MIN, INT32_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i64.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i64.c deleted file mode 100644 index 6fb958e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i64.c +++ /dev/null @@ -1,30 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int64_t_fmt_4: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** li\s+[atx][0-9]+,\s*-1 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_S_ADD_FMT_4(int64_t, uint64_t, INT64_MIN, INT64_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i8.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i8.c deleted file mode 100644 index 2c12514..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-4-i8.c +++ /dev/null @@ -1,31 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_int8_t_fmt_4: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*a1 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*127 -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slliw\s+a0,\s*a0,\s*24 -** sraiw\s+a0,\s*a0,\s*24 -** ret -*/ -DEF_SAT_S_ADD_FMT_4(int8_t, uint8_t, INT8_MIN, INT8_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i16.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i16.c deleted file mode 100644 index 34459b8..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i16.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int16_t -#define T2 uint16_t - -DEF_SAT_S_ADD_FMT_1_WRAP(T1, T2, INT16_MIN, INT16_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_1_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i32.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i32.c deleted file mode 100644 index 4d4841f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i32.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int32_t -#define T2 uint32_t - -DEF_SAT_S_ADD_FMT_1_WRAP(T1, T2, INT32_MIN, INT32_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_1_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i64.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i64.c deleted file mode 100644 index df81887..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i64.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int64_t -#define T2 uint64_t - -DEF_SAT_S_ADD_FMT_1_WRAP(T1, T2, INT64_MIN, INT64_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_1_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i8.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i8.c deleted file mode 100644 index 9a4ce33..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-1-i8.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int8_t -#define T2 uint8_t - -DEF_SAT_S_ADD_FMT_1_WRAP(T1, T2, INT8_MIN, INT8_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_1_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i16.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i16.c deleted file mode 100644 index cdac5bd..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i16.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int16_t -#define T2 uint16_t - -DEF_SAT_S_ADD_FMT_2_WRAP(T1, T2, INT16_MIN, INT16_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_2_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i32.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i32.c deleted file mode 100644 index 4ac952e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i32.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int32_t -#define T2 uint32_t - -DEF_SAT_S_ADD_FMT_2_WRAP(T1, T2, INT32_MIN, INT32_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_2_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i64.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i64.c deleted file mode 100644 index 4d25e7f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i64.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int64_t -#define T2 uint64_t - -DEF_SAT_S_ADD_FMT_2_WRAP(T1, T2, INT64_MIN, INT64_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_2_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i8.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i8.c deleted file mode 100644 index d57e0a0..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-2-i8.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int8_t -#define T2 uint8_t - -DEF_SAT_S_ADD_FMT_2_WRAP(T1, T2, INT8_MIN, INT8_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_2_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i16.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i16.c deleted file mode 100644 index 08b961a..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i16.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int16_t -#define T2 uint16_t - -DEF_SAT_S_ADD_FMT_3_WRAP(T1, T2, INT16_MIN, INT16_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_3_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i32.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i32.c deleted file mode 100644 index 3611b6e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i32.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int32_t -#define T2 uint32_t - -DEF_SAT_S_ADD_FMT_3_WRAP(T1, T2, INT32_MIN, INT32_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_3_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i64.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i64.c deleted file mode 100644 index 3eaa6c2..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i64.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int64_t -#define T2 uint64_t - -DEF_SAT_S_ADD_FMT_3_WRAP(T1, T2, INT64_MIN, INT64_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_3_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i8.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i8.c deleted file mode 100644 index 6d38e5f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-3-i8.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int8_t -#define T2 uint8_t - -DEF_SAT_S_ADD_FMT_3_WRAP(T1, T2, INT8_MIN, INT8_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_3_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i16.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i16.c deleted file mode 100644 index 2e73450..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i16.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int16_t -#define T2 uint16_t - -DEF_SAT_S_ADD_FMT_4_WRAP(T1, T2, INT16_MIN, INT16_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_4_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i32.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i32.c deleted file mode 100644 index ec3022d..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i32.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int32_t -#define T2 uint32_t - -DEF_SAT_S_ADD_FMT_4_WRAP(T1, T2, INT32_MIN, INT32_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_4_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i64.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i64.c deleted file mode 100644 index 911856e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i64.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int64_t -#define T2 uint64_t - -DEF_SAT_S_ADD_FMT_4_WRAP(T1, T2, INT64_MIN, INT64_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_4_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i8.c b/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i8.c deleted file mode 100644 index 94d48ef..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add-run-4-i8.c +++ /dev/null @@ -1,16 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" -#include "sat_arith_data.h" - -#define T1 int8_t -#define T2 uint8_t - -DEF_SAT_S_ADD_FMT_4_WRAP(T1, T2, INT8_MIN, INT8_MAX) - -#define DATA TEST_BINARY_DATA_WRAP(T1, ssadd) -#define T TEST_BINARY_STRUCT_DECL(T1, ssadd) -#define RUN_BINARY(x, y) RUN_SAT_S_ADD_FMT_4_WRAP(T1, x, y) - -#include "scalar_sat_binary_run_xxx.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1-1.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1-1.c deleted file mode 100644 index f20f9b0..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1-1.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-do compile } */ -/* { dg-skip-if "" { *-*-* } { "-flto" } } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_S_ADD_IMM_FMT_1(0, int8_t, uint8_t, -129, INT8_MIN, INT8_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(1, int8_t, uint8_t, 128, INT8_MIN, INT8_MAX) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1.c deleted file mode 100644 index 6746caf..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-1.c +++ /dev/null @@ -1,30 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_imm_int8_t_fmt_1_0: -** addi\s+[atx][0-9]+,\s*a0,\s*9 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*7 -** srli\s+[atx][0-9]+,\s*a0,\s*7 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+a0,\s*a0,\s*63 -** xori\s+[atx][0-9]+,\s*a0,\s*127 -** neg\s+a0,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*a0 -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*a0,\s*[atx][0-9]+ -** slliw\s+a0,\s*a0,\s*24 -** sraiw\s+a0,\s*a0,\s*24 -** ret -*/ -DEF_SAT_S_ADD_IMM_FMT_1(0, int8_t, uint8_t, 9, INT8_MIN, INT8_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2-1.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2-1.c deleted file mode 100644 index 3d31d01..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2-1.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-do compile } */ -/* { dg-skip-if "" { *-*-* } { "-flto" } } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_S_ADD_IMM_FMT_1(0, int16_t, uint16_t, -32769, INT16_MIN, INT16_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(1, int16_t, uint16_t, 32768, INT16_MIN, INT16_MAX) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2.c deleted file mode 100644 index eb3127b..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-2.c +++ /dev/null @@ -1,33 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_imm_int16_t_fmt_1_0: -** addi\s+[atx][0-9]+,\s*a0,\s*-7 -** xori\s+[atx][0-9]+,\s*a0,\s*-7 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*15 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+a0,\s*a0,\s*63 -** li\s+[atx][0-9]+,\s*32768 -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*a0 -** neg\s+a0,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*a0 -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*a0,\s*[atx][0-9]+ -** slliw\s+a0,\s*a0,\s*16 -** sraiw\s+a0,\s*a0,\s*16 -** ret -*/ -DEF_SAT_S_ADD_IMM_FMT_1(0, int16_t, uint16_t, -7, INT16_MIN, INT16_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3-1.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3-1.c deleted file mode 100644 index 1735a8b..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3-1.c +++ /dev/null @@ -1,10 +0,0 @@ -/* { dg-do compile } */ -/* { dg-skip-if "" { *-*-* } { "-flto" } } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_S_ADD_IMM_FMT_1(0, int32_t, uint32_t, -2147483649, INT32_MIN, INT32_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(1, int32_t, uint32_t, 2147483648, INT32_MIN, INT32_MAX) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3.c deleted file mode 100644 index 83ed301..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-3.c +++ /dev/null @@ -1,31 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_imm_int32_t_fmt_1_0: -** addi\s+[atx][0-9]+,\s*a0,\s*10 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*31 -** srli\s+[atx][0-9]+,\s*a0,\s*31 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** srai\s+a0,\s*a0,\s*63 -** li\s+[atx][0-9]+,\s*-2147483648 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*a0 -** neg\s+a0,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*a0 -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,a0,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_S_ADD_IMM_FMT_1(0, int32_t, uint32_t, 10, INT32_MIN, INT32_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-4.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-4.c deleted file mode 100644 index df25cc6..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-4.c +++ /dev/null @@ -1,29 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_s_add_imm_int64_t_fmt_1_0: -** addi\s+[atx][0-9]+,\s*a0,\s*10 -** xor\s+[atx][0-9]+,\s*a0,\s*[atx][0-9]+ -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*63 -** srli\s+[atx][0-9]+,\s*a0,\s*63 -** xori\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** srai\s+[atx][0-9]+,\s*a0,\s*63 -** li\s+[atx][0-9]+,\s*-1 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*1 -** xor\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** and\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** addi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*-1 -** and\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*a0,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_S_ADD_IMM_FMT_1(0, int64_t, uint64_t, 10, INT64_MIN, INT64_MAX) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-1.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-1.c deleted file mode 100644 index c71b717..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-1.c +++ /dev/null @@ -1,42 +0,0 @@ -/* { dg-do run } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_S_ADD_IMM_FMT_1(0, int8_t, uint8_t, -128, INT8_MIN, INT8_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(1, int8_t, uint8_t, 127, INT8_MIN, INT8_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(2, int8_t, uint8_t, 6, INT8_MIN, INT8_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(3, int8_t, uint8_t, -6, INT8_MIN, INT8_MAX) - -#define T int8_t -#define RUN(INDEX,T, x, expect) RUN_SAT_S_ADD_IMM_FMT_1(INDEX, T, x, expect) - -T d[][2] = { - /* arg_0, expect */ - { -1, -128, }, - { 2, -126, }, - { 1, 127, }, - { -10, 117, }, - { 122, 127, }, - { -10, -4, }, - { -128, -128, }, - { 127, 121, }, -}; - -int -main () -{ - RUN (0, T, d[0][0], d[0][1]); - RUN (0, T, d[1][0], d[1][1]); - - RUN (1, T, d[2][0], d[2][1]); - RUN (1, T, d[3][0], d[3][1]); - - RUN (2, T, d[4][0], d[4][1]); - RUN (2, T, d[5][0], d[5][1]); - - RUN (3, T, d[6][0], d[6][1]); - RUN (3, T, d[7][0], d[7][1]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-2.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-2.c deleted file mode 100644 index 187a098..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-2.c +++ /dev/null @@ -1,42 +0,0 @@ -/* { dg-do run } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_S_ADD_IMM_FMT_1(0, int16_t, uint16_t, -32768, INT16_MIN, INT16_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(1, int16_t, uint16_t, 32767, INT16_MIN, INT16_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(2, int16_t, uint16_t, 100, INT16_MIN, INT16_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(3, int16_t, uint16_t, -100, INT16_MIN, INT16_MAX) - -#define T int16_t -#define RUN(INDEX,T, x, expect) RUN_SAT_S_ADD_IMM_FMT_1(INDEX, T, x, expect) - -T d[][2] = { - /* arg_0, expect */ - { -1, -32768, }, - { 2, -32766, }, - { 1, 32767, }, - { -10, 32757, }, - { 32669, 32767, }, - { -32768, -32668, }, - { -32768, -32768, }, - { 0, -100, }, -}; - -int -main () -{ - RUN (0, T, d[0][0], d[0][1]); - RUN (0, T, d[1][0], d[1][1]); - - RUN (1, T, d[2][0], d[2][1]); - RUN (1, T, d[3][0], d[3][1]); - - RUN (2, T, d[4][0], d[4][1]); - RUN (2, T, d[5][0], d[5][1]); - - RUN (3, T, d[6][0], d[6][1]); - RUN (3, T, d[7][0], d[7][1]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-3.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-3.c deleted file mode 100644 index 899fda8..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-3.c +++ /dev/null @@ -1,42 +0,0 @@ -/* { dg-do run } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_S_ADD_IMM_FMT_1(0, int32_t, uint32_t, -2147483648, INT32_MIN, INT32_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(1, int32_t, uint32_t, 2147483647, INT32_MIN, INT32_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(2, int32_t, uint32_t, 100, INT32_MIN, INT32_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(3, int32_t, uint32_t, -100, INT32_MIN, INT32_MAX) - -#define T int32_t -#define RUN(INDEX,T, x, expect) RUN_SAT_S_ADD_IMM_FMT_1(INDEX, T, x, expect) - -T d[][2] = { - /* arg_0, expect */ - { -1, -2147483648, }, - { 2, -2147483646, }, - { 1, 2147483647, }, - { -10, 2147483637, }, - { 300, 400, }, - { -300, -200, }, - { 100, 0, }, - { 0, -100, }, -}; - -int -main () -{ - RUN (0, T, d[0][0], d[0][1]); - RUN (0, T, d[1][0], d[1][1]); - - RUN (1, T, d[2][0], d[2][1]); - RUN (1, T, d[3][0], d[3][1]); - - RUN (2, T, d[4][0], d[4][1]); - RUN (2, T, d[5][0], d[5][1]); - - RUN (3, T, d[6][0], d[6][1]); - RUN (3, T, d[7][0], d[7][1]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-4.c b/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-4.c deleted file mode 100644 index 3dc4f72..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_s_add_imm-run-4.c +++ /dev/null @@ -1,42 +0,0 @@ -/* { dg-do run } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_S_ADD_IMM_FMT_1(0, int64_t, uint64_t, (-9223372036854775807ll - 1), INT64_MIN, INT64_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(1, int64_t, uint64_t, 9223372036854775807ll, INT64_MIN, INT64_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(2, int64_t, uint64_t, 100, INT64_MIN, INT64_MAX) -DEF_SAT_S_ADD_IMM_FMT_1(3, int64_t, uint64_t, -100, INT64_MIN, INT64_MAX) - -#define T int64_t -#define RUN(INDEX,T, x, expect) RUN_SAT_S_ADD_IMM_FMT_1(INDEX, T, x, expect) - -T d[][2] = { - /* arg_0, expect */ - { -1, (-9223372036854775807ll - 1), }, - { 2, -9223372036854775806ll, }, - { 1, 9223372036854775807ll, }, - { -7, 9223372036854775800ll, }, - { 0, 100, }, - { -1, 99, }, - { 0, -100, }, - { 100, 0, }, -}; - -int -main () -{ - RUN (0, T, d[0][0], d[0][1]); - RUN (0, T, d[1][0], d[1][1]); - - RUN (1, T, d[2][0], d[2][1]); - RUN (1, T, d[3][0], d[3][1]); - - RUN (2, T, d[4][0], d[4][1]); - RUN (2, T, d[5][0], d[5][1]); - - RUN (3, T, d[6][0], d[6][1]); - RUN (3, T, d[7][0], d[7][1]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u16.c deleted file mode 100644 index c138df8..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u16.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint16_t_fmt_1: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slli\s+a0,\s*a0,\s*48 -** srli\s+a0,\s*a0,\s*48 -** ret -*/ -DEF_SAT_U_ADD_FMT_1(uint16_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u32.c deleted file mode 100644 index cb93d44..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u32.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint32_t_fmt_1: -** slli\s+[atx][0-9]+,\s*a0,\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** add\s+[atx][0-9]+,\s*a[01],\s*a[01] -** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_U_ADD_FMT_1(uint32_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u64.c deleted file mode 100644 index a95c4b3..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint64_t_fmt_1: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_U_ADD_FMT_1(uint64_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u8.c deleted file mode 100644 index 6530f37..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-1-u8.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint8_t_fmt_1: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+a0,\s*a0,\s*0xff -** ret -*/ -DEF_SAT_U_ADD_FMT_1(uint8_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u16.c deleted file mode 100644 index 6f02547..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u16.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint16_t_fmt_2: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slli\s+a0,\s*a0,\s*48 -** srli\s+a0,\s*a0,\s*48 -** ret -*/ -DEF_SAT_U_ADD_FMT_2(uint16_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u32.c deleted file mode 100644 index 420c194..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u32.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint32_t_fmt_2: -** slli\s+[atx][0-9]+,\s*a0,\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** add\s+[atx][0-9]+,\s*a[01],\s*a[01] -** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_U_ADD_FMT_2(uint32_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u64.c deleted file mode 100644 index 8a9cf7b..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint64_t_fmt_2: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_U_ADD_FMT_2(uint64_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u8.c deleted file mode 100644 index 250b45f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-2-u8.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint8_t_fmt_2: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+a0,\s*a0,\s*0xff -** ret -*/ -DEF_SAT_U_ADD_FMT_2(uint8_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u16.c deleted file mode 100644 index eec5a36..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u16.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint16_t_fmt_3: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slli\s+a0,\s*a0,\s*48 -** srli\s+a0,\s*a0,\s*48 -** ret -*/ -DEF_SAT_U_ADD_FMT_3(uint16_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u32.c deleted file mode 100644 index fa882a5..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u32.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint32_t_fmt_3: -** slli\s+[atx][0-9]+,\s*a0,\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** add\s+[atx][0-9]+,\s*a[01],\s*a[01] -** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_U_ADD_FMT_3(uint32_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u64.c deleted file mode 100644 index da485fb..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint64_t_fmt_3: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_U_ADD_FMT_3(uint64_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u8.c deleted file mode 100644 index a980390..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-3-u8.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint8_t_fmt_3: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+a0,\s*a0,\s*0xff -** ret -*/ -DEF_SAT_U_ADD_FMT_3(uint8_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u16.c deleted file mode 100644 index 60247e9..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u16.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint16_t_fmt_4: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slli\s+a0,\s*a0,\s*48 -** srli\s+a0,\s*a0,\s*48 -** ret -*/ -DEF_SAT_U_ADD_FMT_4(uint16_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u32.c deleted file mode 100644 index b903dba..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u32.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint32_t_fmt_4: -** slli\s+[atx][0-9]+,\s*a0,\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** add\s+[atx][0-9]+,\s*a[01],\s*a[01] -** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_U_ADD_FMT_4(uint32_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u64.c deleted file mode 100644 index c0b34dd..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint64_t_fmt_4: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_U_ADD_FMT_4(uint64_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u8.c deleted file mode 100644 index 5380bf3..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-4-u8.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint8_t_fmt_4: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+a0,\s*a0,\s*0xff -** ret -*/ -DEF_SAT_U_ADD_FMT_4(uint8_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u16.c deleted file mode 100644 index b145e6a..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u16.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint16_t_fmt_5: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slli\s+a0,\s*a0,\s*48 -** srli\s+a0,\s*a0,\s*48 -** ret -*/ -DEF_SAT_U_ADD_FMT_5(uint16_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u32.c deleted file mode 100644 index 2390232..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u32.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint32_t_fmt_5: -** slli\s+[atx][0-9]+,\s*a0,\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** add\s+[atx][0-9]+,\s*a[01],\s*a[01] -** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_U_ADD_FMT_5(uint32_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u64.c deleted file mode 100644 index 481cdfd..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint64_t_fmt_5: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_U_ADD_FMT_5(uint64_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u8.c deleted file mode 100644 index 0ed8c8f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-5-u8.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint8_t_fmt_5: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+a0,\s*a0,\s*0xff -** ret -*/ -DEF_SAT_U_ADD_FMT_5(uint8_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u16.c deleted file mode 100644 index 44546d7..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u16.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint16_t_fmt_6: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slli\s+a0,\s*a0,\s*48 -** srli\s+a0,\s*a0,\s*48 -** ret -*/ -DEF_SAT_U_ADD_FMT_6(uint16_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u32.c deleted file mode 100644 index 67c6b22..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u32.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint32_t_fmt_6: -** slli\s+[atx][0-9]+,\s*a0,\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** add\s+[atx][0-9]+,\s*a[01],\s*a[01] -** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_U_ADD_FMT_6(uint32_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u64.c deleted file mode 100644 index 800aee6..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint64_t_fmt_6: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_U_ADD_FMT_6(uint64_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u8.c deleted file mode 100644 index a1dd305..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-6-u8.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_uint8_t_fmt_6: -** add\s+[atx][0-9]+,\s*a0,\s*a1 -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+a0,\s*a0,\s*0xff -** ret -*/ -DEF_SAT_U_ADD_FMT_6(uint8_t) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u16.c deleted file mode 100644 index cb3879d..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u16.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint16_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 - -DEF_SAT_U_ADD_FMT_1(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 65534, 65534, }, - { 1, 65534, 65535, }, - { 2, 65534, 65535, }, - { 0, 65535, 65535, }, - { 1, 65535, 65535, }, - { 2, 65535, 65535, }, - { 65535, 65535, 65535, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u32.c deleted file mode 100644 index c9a6080..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u32.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint32_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 - -DEF_SAT_U_ADD_FMT_1(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 4294967294, 4294967294, }, - { 1, 4294967294, 4294967295, }, - { 2, 4294967294, 4294967295, }, - { 0, 4294967295, 4294967295, }, - { 1, 4294967295, 4294967295, }, - { 2, 4294967295, 4294967295, }, - { 4294967295, 4294967295, 4294967295, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u64.c deleted file mode 100644 index c19b7e2..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u64.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint64_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 - -DEF_SAT_U_ADD_FMT_1(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 18446744073709551614u, 18446744073709551614u, }, - { 1, 18446744073709551614u, 18446744073709551615u, }, - { 2, 18446744073709551614u, 18446744073709551615u, }, - { 0, 18446744073709551615u, 18446744073709551615u, }, - { 1, 18446744073709551615u, 18446744073709551615u, }, - { 2, 18446744073709551615u, 18446744073709551615u, }, - { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u8.c deleted file mode 100644 index f197249..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-1-u8.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint8_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_1 - -DEF_SAT_U_ADD_FMT_1(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 254, 254, }, - { 1, 254, 255, }, - { 2, 254, 255, }, - { 0, 255, 255, }, - { 1, 255, 255, }, - { 2, 255, 255, }, - { 255, 255, 255, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u16.c deleted file mode 100644 index 99b5c3a..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u16.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint16_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 - -DEF_SAT_U_ADD_FMT_2(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 65534, 65534, }, - { 1, 65534, 65535, }, - { 2, 65534, 65535, }, - { 0, 65535, 65535, }, - { 1, 65535, 65535, }, - { 2, 65535, 65535, }, - { 65535, 65535, 65535, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u32.c deleted file mode 100644 index 13f5954..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u32.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint32_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 - -DEF_SAT_U_ADD_FMT_2(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 4294967294, 4294967294, }, - { 1, 4294967294, 4294967295, }, - { 2, 4294967294, 4294967295, }, - { 0, 4294967295, 4294967295, }, - { 1, 4294967295, 4294967295, }, - { 2, 4294967295, 4294967295, }, - { 4294967295, 4294967295, 4294967295, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u64.c deleted file mode 100644 index cdbea7b..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u64.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint64_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 - -DEF_SAT_U_ADD_FMT_2(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 18446744073709551614u, 18446744073709551614u, }, - { 1, 18446744073709551614u, 18446744073709551615u, }, - { 2, 18446744073709551614u, 18446744073709551615u, }, - { 0, 18446744073709551615u, 18446744073709551615u, }, - { 1, 18446744073709551615u, 18446744073709551615u, }, - { 2, 18446744073709551615u, 18446744073709551615u, }, - { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u8.c deleted file mode 100644 index 508531c..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-2-u8.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint8_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_2 - -DEF_SAT_U_ADD_FMT_2(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 254, 254, }, - { 1, 254, 255, }, - { 2, 254, 255, }, - { 0, 255, 255, }, - { 1, 255, 255, }, - { 2, 255, 255, }, - { 255, 255, 255, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u16.c deleted file mode 100644 index bd935dc..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u16.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint16_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3 - -DEF_SAT_U_ADD_FMT_3(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 65534, 65534, }, - { 1, 65534, 65535, }, - { 2, 65534, 65535, }, - { 0, 65535, 65535, }, - { 1, 65535, 65535, }, - { 2, 65535, 65535, }, - { 65535, 65535, 65535, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u32.c deleted file mode 100644 index deccf9a..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u32.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint32_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3 - -DEF_SAT_U_ADD_FMT_3(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 4294967294, 4294967294, }, - { 1, 4294967294, 4294967295, }, - { 2, 4294967294, 4294967295, }, - { 0, 4294967295, 4294967295, }, - { 1, 4294967295, 4294967295, }, - { 2, 4294967295, 4294967295, }, - { 4294967295, 4294967295, 4294967295, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u64.c deleted file mode 100644 index 4f99367..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u64.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint64_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3 - -DEF_SAT_U_ADD_FMT_3(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 18446744073709551614u, 18446744073709551614u, }, - { 1, 18446744073709551614u, 18446744073709551615u, }, - { 2, 18446744073709551614u, 18446744073709551615u, }, - { 0, 18446744073709551615u, 18446744073709551615u, }, - { 1, 18446744073709551615u, 18446744073709551615u, }, - { 2, 18446744073709551615u, 18446744073709551615u, }, - { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u8.c deleted file mode 100644 index 670932f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-3-u8.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint8_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_3 - -DEF_SAT_U_ADD_FMT_3(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 254, 254, }, - { 1, 254, 255, }, - { 2, 254, 255, }, - { 0, 255, 255, }, - { 1, 255, 255, }, - { 2, 255, 255, }, - { 255, 255, 255, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u16.c deleted file mode 100644 index 33a595d..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u16.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint16_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4 - -DEF_SAT_U_ADD_FMT_4(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 65534, 65534, }, - { 1, 65534, 65535, }, - { 2, 65534, 65535, }, - { 0, 65535, 65535, }, - { 1, 65535, 65535, }, - { 2, 65535, 65535, }, - { 65535, 65535, 65535, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u32.c deleted file mode 100644 index 8a5b7c1..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u32.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint32_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4 - -DEF_SAT_U_ADD_FMT_4(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 4294967294, 4294967294, }, - { 1, 4294967294, 4294967295, }, - { 2, 4294967294, 4294967295, }, - { 0, 4294967295, 4294967295, }, - { 1, 4294967295, 4294967295, }, - { 2, 4294967295, 4294967295, }, - { 4294967295, 4294967295, 4294967295, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u64.c deleted file mode 100644 index fa20aae..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u64.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint64_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4 - -DEF_SAT_U_ADD_FMT_4(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 18446744073709551614u, 18446744073709551614u, }, - { 1, 18446744073709551614u, 18446744073709551615u, }, - { 2, 18446744073709551614u, 18446744073709551615u, }, - { 0, 18446744073709551615u, 18446744073709551615u, }, - { 1, 18446744073709551615u, 18446744073709551615u, }, - { 2, 18446744073709551615u, 18446744073709551615u, }, - { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u8.c deleted file mode 100644 index 083d6e5..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-4-u8.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint8_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_4 - -DEF_SAT_U_ADD_FMT_4(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 254, 254, }, - { 1, 254, 255, }, - { 2, 254, 255, }, - { 0, 255, 255, }, - { 1, 255, 255, }, - { 2, 255, 255, }, - { 255, 255, 255, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u16.c deleted file mode 100644 index a1d5d70..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u16.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint16_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5 - -DEF_SAT_U_ADD_FMT_5(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 65534, 65534, }, - { 1, 65534, 65535, }, - { 2, 65534, 65535, }, - { 0, 65535, 65535, }, - { 1, 65535, 65535, }, - { 2, 65535, 65535, }, - { 65535, 65535, 65535, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u32.c deleted file mode 100644 index 7608e71..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u32.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint32_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5 - -DEF_SAT_U_ADD_FMT_5(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 4294967294, 4294967294, }, - { 1, 4294967294, 4294967295, }, - { 2, 4294967294, 4294967295, }, - { 0, 4294967295, 4294967295, }, - { 1, 4294967295, 4294967295, }, - { 2, 4294967295, 4294967295, }, - { 4294967295, 4294967295, 4294967295, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u64.c deleted file mode 100644 index 496ab58..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u64.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint64_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5 - -DEF_SAT_U_ADD_FMT_5(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 18446744073709551614u, 18446744073709551614u, }, - { 1, 18446744073709551614u, 18446744073709551615u, }, - { 2, 18446744073709551614u, 18446744073709551615u, }, - { 0, 18446744073709551615u, 18446744073709551615u, }, - { 1, 18446744073709551615u, 18446744073709551615u, }, - { 2, 18446744073709551615u, 18446744073709551615u, }, - { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u8.c deleted file mode 100644 index 936028c..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-5-u8.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint8_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_5 - -DEF_SAT_U_ADD_FMT_5(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 254, 254, }, - { 1, 254, 255, }, - { 2, 254, 255, }, - { 0, 255, 255, }, - { 1, 255, 255, }, - { 2, 255, 255, }, - { 255, 255, 255, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u16.c deleted file mode 100644 index d304288..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u16.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint16_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6 - -DEF_SAT_U_ADD_FMT_6(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 65534, 65534, }, - { 1, 65534, 65535, }, - { 2, 65534, 65535, }, - { 0, 65535, 65535, }, - { 1, 65535, 65535, }, - { 2, 65535, 65535, }, - { 65535, 65535, 65535, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u32.c deleted file mode 100644 index 1a1ea59..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u32.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint32_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6 - -DEF_SAT_U_ADD_FMT_6(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 4294967294, 4294967294, }, - { 1, 4294967294, 4294967295, }, - { 2, 4294967294, 4294967295, }, - { 0, 4294967295, 4294967295, }, - { 1, 4294967295, 4294967295, }, - { 2, 4294967295, 4294967295, }, - { 4294967295, 4294967295, 4294967295, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u64.c deleted file mode 100644 index dc977d5..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u64.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint64_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6 - -DEF_SAT_U_ADD_FMT_6(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 18446744073709551614u, 18446744073709551614u, }, - { 1, 18446744073709551614u, 18446744073709551615u, }, - { 2, 18446744073709551614u, 18446744073709551615u, }, - { 0, 18446744073709551615u, 18446744073709551615u, }, - { 1, 18446744073709551615u, 18446744073709551615u, }, - { 2, 18446744073709551615u, 18446744073709551615u, }, - { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u8.c deleted file mode 100644 index 8bc204e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add-run-6-u8.c +++ /dev/null @@ -1,25 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -#define T uint8_t -#define RUN_SAT_BINARY RUN_SAT_U_ADD_FMT_6 - -DEF_SAT_U_ADD_FMT_6(T) - -T test_data[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 254, 254, }, - { 1, 254, 255, }, - { 2, 254, 255, }, - { 0, 255, 255, }, - { 1, 255, 255, }, - { 2, 255, 255, }, - { 255, 255, 255, }, -}; - -#include "scalar_sat_binary.h" diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u16.c deleted file mode 100644 index 90a4e4a..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u16.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm3_uint16_t_fmt_1: -** addi\s+[atx][0-9]+,\s*a0,\s*3 -** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slli\s+a0,\s*a0,\s*48 -** srli\s+a0,\s*a0,\s*48 -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_1(uint16_t, 3) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u32.c deleted file mode 100644 index e5e0ff6..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u32.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm7_uint32_t_fmt_1: -** slli\s+[atx][0-9]+,\s*a0,\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** addi\s+[atx][0-9]+,\s*a0,\s*7 -** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_1(uint32_t, 7) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u64.c deleted file mode 100644 index 9eb373e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm8_uint64_t_fmt_1: -** addi\s+[atx][0-9]+,\s*a0,\s*8 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_1(uint64_t, 8) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u8.c deleted file mode 100644 index 856001f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-1-u8.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm9_uint8_t_fmt_1: -** addi\s+[atx][0-9]+,\s*a0,\s*9 -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+a0,\s*a0,\s*0xff -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_1(uint8_t, 9) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u16.c deleted file mode 100644 index a69a1e2..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u16.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm3_uint16_t_fmt_2: -** addi\s+[atx][0-9]+,\s*a0,\s*3 -** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slli\s+a0,\s*a0,\s*48 -** srli\s+a0,\s*a0,\s*48 -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_2(uint16_t, 3) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u32.c deleted file mode 100644 index b2f2ffc..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u32.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm7_uint32_t_fmt_2: -** slli\s+[atx][0-9]+,\s*a0,\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** addi\s+[atx][0-9]+,\s*a0,\s*7 -** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_2(uint32_t, 7) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u64.c deleted file mode 100644 index 6d07d4f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm8_uint64_t_fmt_2: -** addi\s+[atx][0-9]+,\s*a0,\s*8 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_2(uint64_t, 8) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u8.c deleted file mode 100644 index 0c4fa94..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-2-u8.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm9_uint8_t_fmt_2: -** addi\s+[atx][0-9]+,\s*a0,\s*9 -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+a0,\s*a0,\s*0xff -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_2(uint8_t, 9) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u16.c deleted file mode 100644 index 9089d1e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u16.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm3_uint16_t_fmt_3: -** addi\s+[atx][0-9]+,\s*a0,\s*3 -** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slli\s+a0,\s*a0,\s*48 -** srli\s+a0,\s*a0,\s*48 -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_3(uint16_t, 3) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u32.c deleted file mode 100644 index 318cd3f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u32.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm7u_uint32_t_fmt_3: -** slli\s+[atx][0-9]+,\s*a0,\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** addi\s+[atx][0-9]+,\s*a0,\s*7 -** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_3(uint32_t, 7u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u64.c deleted file mode 100644 index 77cd953..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm8ull_uint64_t_fmt_3: -** addi\s+[atx][0-9]+,\s*a0,\s*8 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_3(uint64_t, 8ull) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u8.c deleted file mode 100644 index 04886ff..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-3-u8.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm9_uint8_t_fmt_3: -** addi\s+[atx][0-9]+,\s*a0,\s*9 -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+a0,\s*a0,\s*0xff -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_3(uint8_t, 9) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u16.c deleted file mode 100644 index 859c5c9..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u16.c +++ /dev/null @@ -1,22 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm3_uint16_t_fmt_4: -** addi\s+[atx][0-9]+,\s*a0,\s*3 -** slli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*48 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** slli\s+a0,\s*a0,\s*48 -** srli\s+a0,\s*a0,\s*48 -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_4(uint16_t, 3) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u32.c deleted file mode 100644 index e04d4d4..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u32.c +++ /dev/null @@ -1,23 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm7u_uint32_t_fmt_4: -** slli\s+[atx][0-9]+,\s*a0,\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** addi\s+[atx][0-9]+,\s*a0,\s*7 -** slli\s+[atx][0-9]+,\s*[atx][0-9],\s*32 -** srli\s+[atx][0-9]+,\s*[atx][0-9]+,\s*32 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** sext.w\s+a0,\s*a0 -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_4(uint32_t, 7u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u64.c deleted file mode 100644 index 73ce397..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u64.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm8ull_uint64_t_fmt_4: -** addi\s+[atx][0-9]+,\s*a0,\s*8 -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+a0,\s*[atx][0-9]+,\s*[atx][0-9]+ -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_4(uint64_t, 8ull) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u8.c deleted file mode 100644 index 58e330f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-4-u8.c +++ /dev/null @@ -1,20 +0,0 @@ -/* { 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-final { check-function-bodies "**" "" } } */ - -#include "sat_arith.h" - -/* -** sat_u_add_imm9_uint8_t_fmt_4: -** addi\s+[atx][0-9]+,\s*a0,\s*9 -** andi\s+[atx][0-9]+,\s*[atx][0-9]+,\s*0xff -** sltu\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** neg\s+[atx][0-9]+,\s*[atx][0-9]+ -** or\s+[atx][0-9]+,\s*[atx][0-9]+,\s*[atx][0-9]+ -** andi\s+a0,\s*a0,\s*0xff -** ret -*/ -DEF_SAT_U_ADD_IMM_FMT_4(uint8_t, 9) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u16.c deleted file mode 100644 index 090c765..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u16.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_1(uint16_t, 0) -DEF_SAT_U_ADD_IMM_FMT_1(uint16_t, 1) -DEF_SAT_U_ADD_IMM_FMT_1(uint16_t, 65534) -DEF_SAT_U_ADD_IMM_FMT_1(uint16_t, 65535) - -#define T uint16_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_1(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 65534, 65534, }, - { 1, 65534, 65535, }, - { 2, 65534, 65535, }, - { 0, 65535, 65535, }, - { 1, 65535, 65535, }, - { 2, 65535, 65535, }, - { 65535, 65535, 65535, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 65534, d[3][2]); - RUN (T, d[4][0], 65534, d[4][2]); - RUN (T, d[5][0], 65534, d[5][2]); - - RUN (T, d[6][0], 65535, d[6][2]); - RUN (T, d[7][0], 65535, d[7][2]); - RUN (T, d[8][0], 65535, d[8][2]); - RUN (T, d[9][0], 65535, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u32.c deleted file mode 100644 index 8dade74..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u32.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_1(uint32_t, 0) -DEF_SAT_U_ADD_IMM_FMT_1(uint32_t, 1) -DEF_SAT_U_ADD_IMM_FMT_1(uint32_t, 4294967294) -DEF_SAT_U_ADD_IMM_FMT_1(uint32_t, 4294967295) - -#define T uint32_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_1(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 4294967294, 4294967294, }, - { 1, 4294967294, 4294967295, }, - { 2, 4294967294, 4294967295, }, - { 0, 4294967295, 4294967295, }, - { 1, 4294967295, 4294967295, }, - { 2, 4294967295, 4294967295, }, - { 4294967295, 4294967295, 4294967295, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 4294967294, d[3][2]); - RUN (T, d[4][0], 4294967294, d[4][2]); - RUN (T, d[5][0], 4294967294, d[5][2]); - - RUN (T, d[6][0], 4294967295, d[6][2]); - RUN (T, d[7][0], 4294967295, d[7][2]); - RUN (T, d[8][0], 4294967295, d[8][2]); - RUN (T, d[9][0], 4294967295, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u64.c deleted file mode 100644 index ace2df8..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u64.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_1(uint64_t, 0) -DEF_SAT_U_ADD_IMM_FMT_1(uint64_t, 1) -DEF_SAT_U_ADD_IMM_FMT_1(uint64_t, 18446744073709551614u) -DEF_SAT_U_ADD_IMM_FMT_1(uint64_t, 18446744073709551615u) - -#define T uint64_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_1(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 18446744073709551614u, 18446744073709551614u, }, - { 1, 18446744073709551614u, 18446744073709551615u, }, - { 2, 18446744073709551614u, 18446744073709551615u, }, - { 0, 18446744073709551615u, 18446744073709551615u, }, - { 1, 18446744073709551615u, 18446744073709551615u, }, - { 2, 18446744073709551615u, 18446744073709551615u, }, - { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 18446744073709551614u, d[3][2]); - RUN (T, d[4][0], 18446744073709551614u, d[4][2]); - RUN (T, d[5][0], 18446744073709551614u, d[5][2]); - - RUN (T, d[6][0], 18446744073709551615u, d[6][2]); - RUN (T, d[7][0], 18446744073709551615u, d[7][2]); - RUN (T, d[8][0], 18446744073709551615u, d[8][2]); - RUN (T, d[9][0], 18446744073709551615u, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u8.c deleted file mode 100644 index 0ce546f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-1-u8.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_1(uint8_t, 0) -DEF_SAT_U_ADD_IMM_FMT_1(uint8_t, 1) -DEF_SAT_U_ADD_IMM_FMT_1(uint8_t, 254) -DEF_SAT_U_ADD_IMM_FMT_1(uint8_t, 255) - -#define T uint8_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_1(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 254, 254, }, - { 1, 254, 255, }, - { 2, 254, 255, }, - { 0, 255, 255, }, - { 1, 255, 255, }, - { 2, 255, 255, }, - { 255, 255, 255, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 254, d[3][2]); - RUN (T, d[4][0], 254, d[4][2]); - RUN (T, d[5][0], 254, d[5][2]); - - RUN (T, d[6][0], 255, d[6][2]); - RUN (T, d[7][0], 255, d[7][2]); - RUN (T, d[8][0], 255, d[8][2]); - RUN (T, d[9][0], 255, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u16.c deleted file mode 100644 index 7b6bd73..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u16.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_2(uint16_t, 0) -DEF_SAT_U_ADD_IMM_FMT_2(uint16_t, 1) -DEF_SAT_U_ADD_IMM_FMT_2(uint16_t, 65534) -DEF_SAT_U_ADD_IMM_FMT_2(uint16_t, 65535) - -#define T uint16_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_2(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 65534, 65534, }, - { 1, 65534, 65535, }, - { 2, 65534, 65535, }, - { 0, 65535, 65535, }, - { 1, 65535, 65535, }, - { 2, 65535, 65535, }, - { 65535, 65535, 65535, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 65534, d[3][2]); - RUN (T, d[4][0], 65534, d[4][2]); - RUN (T, d[5][0], 65534, d[5][2]); - - RUN (T, d[6][0], 65535, d[6][2]); - RUN (T, d[7][0], 65535, d[7][2]); - RUN (T, d[8][0], 65535, d[8][2]); - RUN (T, d[9][0], 65535, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u32.c deleted file mode 100644 index 8024152..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u32.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_2(uint32_t, 0) -DEF_SAT_U_ADD_IMM_FMT_2(uint32_t, 1) -DEF_SAT_U_ADD_IMM_FMT_2(uint32_t, 4294967294) -DEF_SAT_U_ADD_IMM_FMT_2(uint32_t, 4294967295) - -#define T uint32_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_2(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 4294967294, 4294967294, }, - { 1, 4294967294, 4294967295, }, - { 2, 4294967294, 4294967295, }, - { 0, 4294967295, 4294967295, }, - { 1, 4294967295, 4294967295, }, - { 2, 4294967295, 4294967295, }, - { 4294967295, 4294967295, 4294967295, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 4294967294, d[3][2]); - RUN (T, d[4][0], 4294967294, d[4][2]); - RUN (T, d[5][0], 4294967294, d[5][2]); - - RUN (T, d[6][0], 4294967295, d[6][2]); - RUN (T, d[7][0], 4294967295, d[7][2]); - RUN (T, d[8][0], 4294967295, d[8][2]); - RUN (T, d[9][0], 4294967295, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u64.c deleted file mode 100644 index 4a76dbb..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u64.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_2(uint64_t, 0) -DEF_SAT_U_ADD_IMM_FMT_2(uint64_t, 1) -DEF_SAT_U_ADD_IMM_FMT_2(uint64_t, 18446744073709551614u) -DEF_SAT_U_ADD_IMM_FMT_2(uint64_t, 18446744073709551615u) - -#define T uint64_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_2(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 18446744073709551614u, 18446744073709551614u, }, - { 1, 18446744073709551614u, 18446744073709551615u, }, - { 2, 18446744073709551614u, 18446744073709551615u, }, - { 0, 18446744073709551615u, 18446744073709551615u, }, - { 1, 18446744073709551615u, 18446744073709551615u, }, - { 2, 18446744073709551615u, 18446744073709551615u, }, - { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 18446744073709551614u, d[3][2]); - RUN (T, d[4][0], 18446744073709551614u, d[4][2]); - RUN (T, d[5][0], 18446744073709551614u, d[5][2]); - - RUN (T, d[6][0], 18446744073709551615u, d[6][2]); - RUN (T, d[7][0], 18446744073709551615u, d[7][2]); - RUN (T, d[8][0], 18446744073709551615u, d[8][2]); - RUN (T, d[9][0], 18446744073709551615u, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u8.c deleted file mode 100644 index 8e8759c..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-2-u8.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_2(uint8_t, 0) -DEF_SAT_U_ADD_IMM_FMT_2(uint8_t, 1) -DEF_SAT_U_ADD_IMM_FMT_2(uint8_t, 254) -DEF_SAT_U_ADD_IMM_FMT_2(uint8_t, 255) - -#define T uint8_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_2(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 254, 254, }, - { 1, 254, 255, }, - { 2, 254, 255, }, - { 0, 255, 255, }, - { 1, 255, 255, }, - { 2, 255, 255, }, - { 255, 255, 255, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 254, d[3][2]); - RUN (T, d[4][0], 254, d[4][2]); - RUN (T, d[5][0], 254, d[5][2]); - - RUN (T, d[6][0], 255, d[6][2]); - RUN (T, d[7][0], 255, d[7][2]); - RUN (T, d[8][0], 255, d[8][2]); - RUN (T, d[9][0], 255, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u16.c deleted file mode 100644 index 64924a6..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u16.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_3(uint16_t, 0) -DEF_SAT_U_ADD_IMM_FMT_3(uint16_t, 1) -DEF_SAT_U_ADD_IMM_FMT_3(uint16_t, 65534) -DEF_SAT_U_ADD_IMM_FMT_3(uint16_t, 65535) - -#define T uint16_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_3(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 65534, 65534, }, - { 1, 65534, 65535, }, - { 2, 65534, 65535, }, - { 0, 65535, 65535, }, - { 1, 65535, 65535, }, - { 2, 65535, 65535, }, - { 65535, 65535, 65535, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 65534, d[3][2]); - RUN (T, d[4][0], 65534, d[4][2]); - RUN (T, d[5][0], 65534, d[5][2]); - - RUN (T, d[6][0], 65535, d[6][2]); - RUN (T, d[7][0], 65535, d[7][2]); - RUN (T, d[8][0], 65535, d[8][2]); - RUN (T, d[9][0], 65535, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u32.c deleted file mode 100644 index 04f3217..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u32.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_3(uint32_t, 0) -DEF_SAT_U_ADD_IMM_FMT_3(uint32_t, 1) -DEF_SAT_U_ADD_IMM_FMT_3(uint32_t, 4294967294) -DEF_SAT_U_ADD_IMM_FMT_3(uint32_t, 4294967295) - -#define T uint32_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_3(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 4294967294, 4294967294, }, - { 1, 4294967294, 4294967295, }, - { 2, 4294967294, 4294967295, }, - { 0, 4294967295, 4294967295, }, - { 1, 4294967295, 4294967295, }, - { 2, 4294967295, 4294967295, }, - { 4294967295, 4294967295, 4294967295, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 4294967294, d[3][2]); - RUN (T, d[4][0], 4294967294, d[4][2]); - RUN (T, d[5][0], 4294967294, d[5][2]); - - RUN (T, d[6][0], 4294967295, d[6][2]); - RUN (T, d[7][0], 4294967295, d[7][2]); - RUN (T, d[8][0], 4294967295, d[8][2]); - RUN (T, d[9][0], 4294967295, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u64.c deleted file mode 100644 index 8ef6c14..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u64.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_3(uint64_t, 0) -DEF_SAT_U_ADD_IMM_FMT_3(uint64_t, 1) -DEF_SAT_U_ADD_IMM_FMT_3(uint64_t, 18446744073709551614u) -DEF_SAT_U_ADD_IMM_FMT_3(uint64_t, 18446744073709551615u) - -#define T uint64_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_3(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 18446744073709551614u, 18446744073709551614u, }, - { 1, 18446744073709551614u, 18446744073709551615u, }, - { 2, 18446744073709551614u, 18446744073709551615u, }, - { 0, 18446744073709551615u, 18446744073709551615u, }, - { 1, 18446744073709551615u, 18446744073709551615u, }, - { 2, 18446744073709551615u, 18446744073709551615u, }, - { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 18446744073709551614u, d[3][2]); - RUN (T, d[4][0], 18446744073709551614u, d[4][2]); - RUN (T, d[5][0], 18446744073709551614u, d[5][2]); - - RUN (T, d[6][0], 18446744073709551615u, d[6][2]); - RUN (T, d[7][0], 18446744073709551615u, d[7][2]); - RUN (T, d[8][0], 18446744073709551615u, d[8][2]); - RUN (T, d[9][0], 18446744073709551615u, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u8.c deleted file mode 100644 index 8867361..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-3-u8.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_3(uint8_t, 0) -DEF_SAT_U_ADD_IMM_FMT_3(uint8_t, 1) -DEF_SAT_U_ADD_IMM_FMT_3(uint8_t, 254) -DEF_SAT_U_ADD_IMM_FMT_3(uint8_t, 255) - -#define T uint8_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_3(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 254, 254, }, - { 1, 254, 255, }, - { 2, 254, 255, }, - { 0, 255, 255, }, - { 1, 255, 255, }, - { 2, 255, 255, }, - { 255, 255, 255, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 254, d[3][2]); - RUN (T, d[4][0], 254, d[4][2]); - RUN (T, d[5][0], 254, d[5][2]); - - RUN (T, d[6][0], 255, d[6][2]); - RUN (T, d[7][0], 255, d[7][2]); - RUN (T, d[8][0], 255, d[8][2]); - RUN (T, d[9][0], 255, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u16.c deleted file mode 100644 index 0b75206..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u16.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_4(uint16_t, 0) -DEF_SAT_U_ADD_IMM_FMT_4(uint16_t, 1) -DEF_SAT_U_ADD_IMM_FMT_4(uint16_t, 65534) -DEF_SAT_U_ADD_IMM_FMT_4(uint16_t, 65535) - -#define T uint16_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_4(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 65534, 65534, }, - { 1, 65534, 65535, }, - { 2, 65534, 65535, }, - { 0, 65535, 65535, }, - { 1, 65535, 65535, }, - { 2, 65535, 65535, }, - { 65535, 65535, 65535, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 65534, d[3][2]); - RUN (T, d[4][0], 65534, d[4][2]); - RUN (T, d[5][0], 65534, d[5][2]); - - RUN (T, d[6][0], 65535, d[6][2]); - RUN (T, d[7][0], 65535, d[7][2]); - RUN (T, d[8][0], 65535, d[8][2]); - RUN (T, d[9][0], 65535, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u32.c deleted file mode 100644 index e548d0c..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u32.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_4(uint32_t, 0) -DEF_SAT_U_ADD_IMM_FMT_4(uint32_t, 1) -DEF_SAT_U_ADD_IMM_FMT_4(uint32_t, 4294967294) -DEF_SAT_U_ADD_IMM_FMT_4(uint32_t, 4294967295) - -#define T uint32_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_4(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 4294967294, 4294967294, }, - { 1, 4294967294, 4294967295, }, - { 2, 4294967294, 4294967295, }, - { 0, 4294967295, 4294967295, }, - { 1, 4294967295, 4294967295, }, - { 2, 4294967295, 4294967295, }, - { 4294967295, 4294967295, 4294967295, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 4294967294, d[3][2]); - RUN (T, d[4][0], 4294967294, d[4][2]); - RUN (T, d[5][0], 4294967294, d[5][2]); - - RUN (T, d[6][0], 4294967295, d[6][2]); - RUN (T, d[7][0], 4294967295, d[7][2]); - RUN (T, d[8][0], 4294967295, d[8][2]); - RUN (T, d[9][0], 4294967295, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u64.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u64.c deleted file mode 100644 index 4335d82..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u64.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_4(uint64_t, 0) -DEF_SAT_U_ADD_IMM_FMT_4(uint64_t, 1) -DEF_SAT_U_ADD_IMM_FMT_4(uint64_t, 18446744073709551614u) -DEF_SAT_U_ADD_IMM_FMT_4(uint64_t, 18446744073709551615u) - -#define T uint64_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_4(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 18446744073709551614u, 18446744073709551614u, }, - { 1, 18446744073709551614u, 18446744073709551615u, }, - { 2, 18446744073709551614u, 18446744073709551615u, }, - { 0, 18446744073709551615u, 18446744073709551615u, }, - { 1, 18446744073709551615u, 18446744073709551615u, }, - { 2, 18446744073709551615u, 18446744073709551615u, }, - { 18446744073709551615u, 18446744073709551615u, 18446744073709551615u, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 18446744073709551614u, d[3][2]); - RUN (T, d[4][0], 18446744073709551614u, d[4][2]); - RUN (T, d[5][0], 18446744073709551614u, d[5][2]); - - RUN (T, d[6][0], 18446744073709551615u, d[6][2]); - RUN (T, d[7][0], 18446744073709551615u, d[7][2]); - RUN (T, d[8][0], 18446744073709551615u, d[8][2]); - RUN (T, d[9][0], 18446744073709551615u, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u8.c deleted file mode 100644 index 872923e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm-run-4-u8.c +++ /dev/null @@ -1,46 +0,0 @@ -/* { dg-do run { target { riscv_v } } } */ -/* { dg-additional-options "-std=c99" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_FMT_4(uint8_t, 0) -DEF_SAT_U_ADD_IMM_FMT_4(uint8_t, 1) -DEF_SAT_U_ADD_IMM_FMT_4(uint8_t, 254) -DEF_SAT_U_ADD_IMM_FMT_4(uint8_t, 255) - -#define T uint8_t -#define RUN(T, op, imm, expect) RUN_SAT_U_ADD_IMM_FMT_4(T, op, imm, expect) - -T d[][3] = { - /* arg_0, arg_1, expect */ - { 0, 0, 0, }, - { 0, 1, 1, }, - { 1, 1, 2, }, - { 0, 254, 254, }, - { 1, 254, 255, }, - { 2, 254, 255, }, - { 0, 255, 255, }, - { 1, 255, 255, }, - { 2, 255, 255, }, - { 255, 255, 255, }, -}; - -int -main () -{ - RUN (T, d[0][0], 0, d[0][2]); - - RUN (T, d[1][0], 1, d[1][2]); - RUN (T, d[2][0], 1, d[2][2]); - - RUN (T, d[3][0], 254, d[3][2]); - RUN (T, d[4][0], 254, d[4][2]); - RUN (T, d[5][0], 254, d[5][2]); - - RUN (T, d[6][0], 255, d[6][2]); - RUN (T, d[7][0], 255, d[7][2]); - RUN (T, d[8][0], 255, d[8][2]); - RUN (T, d[9][0], 255, d[9][2]); - - return 0; -} diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-1.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-1.c deleted file mode 100644 index db4b0be..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-1.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 9) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-10.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-10.c deleted file mode 100644 index 37ec6e9..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-10.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 52767) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-11.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-11.c deleted file mode 100644 index 8dca3b2c..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-11.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 65534u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-12.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-12.c deleted file mode 100644 index f3cde55..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-12.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, -3) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-13.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-13.c deleted file mode 100644 index 61834e7..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-13.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 65549) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-14.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-14.c deleted file mode 100644 index 74e9298..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-14.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 67732u) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-15.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-15.c deleted file mode 100644 index f5d60e9..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-15.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 91) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-16.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-16.c deleted file mode 100644 index e7742b3..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-16.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 2147483644u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-17.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-17.c deleted file mode 100644 index 1437206..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-17.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 2147483944) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-18.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-18.c deleted file mode 100644 index 4ef47e2..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-18.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 4294967293u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-19.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-19.c deleted file mode 100644 index 3df6acf..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-19.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, -3433) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-2.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-2.c deleted file mode 100644 index ab69971..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-2.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 126u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-20.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-20.c deleted file mode 100644 index b504faf..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-20.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 4294967342ll) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-21.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-21.c deleted file mode 100644 index 55e5683..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-21.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint32_t, 4994967342ull) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-22.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-22.c deleted file mode 100644 index fdd6863..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-22.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint64_t, 439) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-23.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-23.c deleted file mode 100644 index f6e9b6b..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-23.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint64_t, 576460752303423482u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-24.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-24.c deleted file mode 100644 index 1d73286..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-24.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint64_t, 576460752303483482) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-25.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-25.c deleted file mode 100644 index 9f8dd6b..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-25.c +++ /dev/null @@ -1,9 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint64_t, 976460752303483482u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ - diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-26.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-26.c deleted file mode 100644 index 988a557..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-26.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint64_t, -39294) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-27.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-27.c deleted file mode 100644 index 9b14324..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-27.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 9) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-28.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-28.c deleted file mode 100644 index 781699c..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-28.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 126u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-29.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-29.c deleted file mode 100644 index 7aa0720..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-29.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 129) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-3.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-3.c deleted file mode 100644 index ea49c6b..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-3.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 129) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-30.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-30.c deleted file mode 100644 index 467b9d9..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-30.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 254u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-31.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-31.c deleted file mode 100644 index 6a144a7..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-31.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, -3) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-32.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-32.c deleted file mode 100644 index 2cc1912..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-32.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 267) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-33.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-33.c deleted file mode 100644 index c94716d..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-33.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint8_t, 287u) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-34.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-34.c deleted file mode 100644 index 9b38133..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-34.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 9) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-35.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-35.c deleted file mode 100644 index 4b5c6fa..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-35.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 32767u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-36.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-36.c deleted file mode 100644 index 903df49..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-36.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 52767) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-37.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-37.c deleted file mode 100644 index ff30c20..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-37.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 65534u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-38.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-38.c deleted file mode 100644 index 45e06e4..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-38.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, -3) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-39.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-39.c deleted file mode 100644 index 659352e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-39.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 65549) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-4.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-4.c deleted file mode 100644 index c9a33ed..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-4.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 254u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-40.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-40.c deleted file mode 100644 index a16776a..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-40.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint16_t, 67732u) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-41.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-41.c deleted file mode 100644 index edcad09..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-41.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 91) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-42.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-42.c deleted file mode 100644 index 8d37bba..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-42.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 2147483644u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-43.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-43.c deleted file mode 100644 index 5976d6e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-43.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 2147483944) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-44.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-44.c deleted file mode 100644 index f19edb2..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-44.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 4294967293u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-45.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-45.c deleted file mode 100644 index 0a48aca..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-45.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, -3433) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-46.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-46.c deleted file mode 100644 index 26d293e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-46.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 4294967342ll) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-47.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-47.c deleted file mode 100644 index 37bf026..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-47.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint32_t, 4994967342ull) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-48.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-48.c deleted file mode 100644 index f16c68e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-48.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint64_t, 439) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-49.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-49.c deleted file mode 100644 index ec2b557..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-49.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint64_t, 576460752303423482u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-5.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-5.c deleted file mode 100644 index 1e21831a..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-5.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, -3) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-50.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-50.c deleted file mode 100644 index 752ca6f..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-50.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint64_t, 576460752303483482) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-51.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-51.c deleted file mode 100644 index b9fe726..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-51.c +++ /dev/null @@ -1,9 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint64_t, 976460752303483482u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ - diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-52.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-52.c deleted file mode 100644 index f1afecb..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-52.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_2(uint64_t, -39294) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-53.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-53.c deleted file mode 100644 index c959eeb..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-53.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (0, uint8_t, -43) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (1, uint8_t, 269) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (2, uint8_t, 369u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (3, uint16_t, -4) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (4, uint16_t, 65579) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (5, uint16_t, 65679u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (6, uint32_t, -62) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (7, uint32_t, 4294967342ll) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (8, uint32_t, 4394967342ull) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-54.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-54.c deleted file mode 100644 index abc19e2..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-54.c +++ /dev/null @@ -1,27 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (0, uint8_t, 123u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (1, uint8_t, 9) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (2, uint8_t, 129) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (3, uint8_t, 234u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (4, uint16_t, 32763u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (5, uint16_t, 65532u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (6, uint16_t, 52767) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (7, uint16_t, 9) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (8, uint32_t, 4294967293u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (9, uint32_t, 2147483944) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (10, uint32_t, 4294967242) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (11, uint32_t, 2147483644u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (12, uint64_t, -6232) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (13, uint64_t, 6293232) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (14, uint64_t, 576460752303483482) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (15, uint64_t, 576460752303423482u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_1 (16, uint64_t, 976460752303483482u) - -/* { dg-final { scan-rtl-dump-times ".SAT_SUB " 34 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-55.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-55.c deleted file mode 100644 index e9c3fd5..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-55.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (0, uint8_t, -43) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (1, uint8_t, 269) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (2, uint8_t, 369u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (3, uint16_t, -4) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (4, uint16_t, 65579) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (5, uint16_t, 65679u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (6, uint32_t, -62) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (7, uint32_t, 4294967342ll) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (8, uint32_t, 4394967342ull) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-56.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-56.c deleted file mode 100644 index 3f8e3e1..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-56.c +++ /dev/null @@ -1,27 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (0, uint8_t, 126u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (1, uint8_t, 9) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (2, uint8_t, 129) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (3, uint8_t, 254u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (4, uint16_t, 32767u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (5, uint16_t, 65534u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (6, uint16_t, 52767) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (7, uint16_t, 9) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (8, uint32_t, 4294967293u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (9, uint32_t, 2147483944) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (10, uint32_t, 4294967242) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (11, uint32_t, 2147483644u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (12, uint64_t, -6232) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (13, uint64_t, 6293232) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (14, uint64_t, 576460752303483482) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (15, uint64_t, 576460752303423482u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_2 (16, uint64_t, 976460752303483482u) - -/* { dg-final { scan-rtl-dump-times ".SAT_SUB " 34 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-57.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-57.c deleted file mode 100644 index 1b193bc..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-57.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (0, uint8_t, -43) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (1, uint8_t, 269) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (2, uint8_t, 369u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (3, uint16_t, -4) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (4, uint16_t, 65579) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (5, uint16_t, 65679u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (6, uint32_t, -62l) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (7, uint32_t, 6294967342ll) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (8, uint32_t, 4394967342ull) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-58.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-58.c deleted file mode 100644 index b7dc71b..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-58.c +++ /dev/null @@ -1,27 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (0, uint8_t, 123u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (1, uint8_t, 9) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (2, uint8_t, 129) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (3, uint8_t, 234u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (4, uint16_t, 32763u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (5, uint16_t, 65532u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (6, uint16_t, 52767) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (7, uint16_t, 9) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (8, uint32_t, 4294967293u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (9, uint32_t, 2147483944) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (10, uint32_t, 4294967142ll) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (11, uint32_t, 2147483644u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (12, uint64_t, -6232) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (13, uint64_t, 6293232) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (14, uint64_t, 576460752303483482) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (15, uint64_t, 576460752303423482u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_3 (16, uint64_t, 976460752303483482u) - -/* { dg-final { scan-rtl-dump-times ".SAT_SUB " 34 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-59.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-59.c deleted file mode 100644 index 4f2fb30..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-59.c +++ /dev/null @@ -1,18 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (0, uint8_t, -43) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (1, uint8_t, 269) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (2, uint8_t, 369u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (3, uint16_t, -4) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (4, uint16_t, 65579) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (5, uint16_t, 65679u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (6, uint32_t, -62l) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (7, uint32_t, 4294967342ll) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (8, uint32_t, 4394967342ull) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-6.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-6.c deleted file mode 100644 index 0370857..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-6.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 267) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-60.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-60.c deleted file mode 100644 index b32e69e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-60.c +++ /dev/null @@ -1,27 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (0, uint8_t, 126u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (1, uint8_t, 9) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (2, uint8_t, 129) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (3, uint8_t, 253u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (4, uint16_t, 32767u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (5, uint16_t, 65532u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (6, uint16_t, 52767) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (7, uint16_t, 9) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (8, uint32_t, 4294967293u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (9, uint32_t, 2147483944) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (10, uint32_t, 4294967042ll) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (11, uint32_t, 2147483644u) - -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (12, uint64_t, -6232) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (13, uint64_t, 6293232) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (14, uint64_t, 576460752303483482) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (15, uint64_t, 576460752303423482u) -DEF_SAT_U_SUB_IMM_TYPE_CHECK_FMT_4 (16, uint64_t, 976460752303483482u) - -/* { dg-final { scan-rtl-dump-times ".SAT_SUB " 34 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-7.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-7.c deleted file mode 100644 index 660635e..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-7.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint8_t, 287u) - -/* { dg-final { scan-rtl-dump-not ".SAT_ADD " "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-8.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-8.c deleted file mode 100644 index 38da62d..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-8.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 9) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ diff --git a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-9.c b/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-9.c deleted file mode 100644 index baf81b4..0000000 --- a/gcc/testsuite/gcc.target/riscv/sat_u_add_imm_type_check-9.c +++ /dev/null @@ -1,8 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-march=rv64gc -mabi=lp64d -O3 -fdump-rtl-expand-details" } */ - -#include "sat_arith.h" - -DEF_SAT_U_ADD_IMM_TYPE_CHECK_FMT_1(uint16_t, 32767u) - -/* { dg-final { scan-rtl-dump-times ".SAT_ADD " 2 "expand" } } */ -- cgit v1.1