On 2024-07-09 23:28 Jeff Law <jeffreya...@gmail.com> wrote: > > > >On 7/9/24 1:10 AM, Fei Gao wrote: >> According to Zc-1.0.4-3.pdf from >> https://github.com/riscvarchive/riscv-code-size-reduction/releases/tag/v1.0.4-3 >> The rule is that: >> - C always implies Zca >> - C+F implies Zcf (RV32 only) >> - C+D implies Zcd >> >> Signed-off-by: Fei Gao <gao...@eswincomputing.com> >> >> gcc/ChangeLog: >> >> * common/config/riscv/riscv-common.cc: >> c implies zca, and conditionally zcf & zcd. >> >> gcc/testsuite/ChangeLog: >> >> * gcc.target/riscv/attribute-15.c: adapt TC. >> * gcc.target/riscv/attribute-18.c: likewise. >> * gcc.target/riscv/pr110696.c: likewise. >> * gcc.target/riscv/rvv/base/abi-callee-saved-1-zcmp.c: likewise. >> * gcc.target/riscv/rvv/base/abi-callee-saved-2-zcmp.c: likewise. >> * gcc.target/riscv/rvv/base/pr114352-1.c: likewise. >> * gcc.target/riscv/rvv/base/pr114352-3.c: likewise. >> * gcc.target/riscv/arch-39.c: New test. >> * gcc.target/riscv/arch-40.c: New test. >It looks like this is failing the pre-commit testing:
I run the regression of gcc locally and compared the delta before submitting patches. But surprisingly, pre-commit CI reported failure. I dug further and found my binutils is out of date. Zaamo and Zalrsc were introduced recently in binutils and gcc configure checks if AS supports these new extensions, and print them into riscv attributes if supported. The old binutils fails to support, so some Zaamo and Zalrsc testcases failed in reference test, causing no difference in the comparison. I will send V2. BR Fei > >> New Failures Across All Affected Targets (8 targets / 8 total targets) >> FAIL: gcc.target/riscv/attribute-16.c -O0 scan-assembler .attribute >> arch, >> "rv32i2p1_m2p0_a2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-16.c -O1 scan-assembler .attribute >> arch, >> "rv32i2p1_m2p0_a2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-16.c -O2 scan-assembler .attribute >> arch, >> "rv32i2p1_m2p0_a2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-16.c -O2 -flto -fno-use-linker-plugin >> -flto-partition=none scan-assembler .attribute arch, >> "rv32i2p1_m2p0_a2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-16.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler .attribute arch, >> "rv32i2p1_m2p0_a2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-16.c -O3 -g scan-assembler .attribute >> arch, >> "rv32i2p1_m2p0_a2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-16.c -Os scan-assembler .attribute >> arch, >> "rv32i2p1_m2p0_a2p0_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-17.c -O0 scan-assembler .attribute >> arch, >> "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-17.c -O1 scan-assembler .attribute >> arch, >> "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-17.c -O2 scan-assembler .attribute >> arch, >> "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-17.c -O2 -flto -fno-use-linker-plugin >> -flto-partition=none scan-assembler .attribute arch, >> "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-17.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler .attribute arch, >> "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-17.c -O3 -g scan-assembler .attribute >> arch, >> "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/attribute-17.c -Os scan-assembler .attribute >> arch, >> "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1p0" >> FAIL: gcc.target/riscv/pr110696.c -O0 scan-assembler .attribute arch, >> "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0" >> FAIL: gcc.target/riscv/pr110696.c -O1 scan-assembler .attribute arch, >> "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0" >> FAIL: gcc.target/riscv/pr110696.c -O2 scan-assembler .attribute arch, >> "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0" >> FAIL: gcc.target/riscv/pr110696.c -O2 -flto -fno-use-linker-plugin >> -flto-partition=none scan-assembler .attribute arch, >> "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0" >> FAIL: gcc.target/riscv/pr110696.c -O2 -flto -fuse-linker-plugin >> -fno-fat-lto-objects scan-assembler .attribute arch, >> "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0" >> FAIL: gcc.target/riscv/pr110696.c -O3 -g scan-assembler .attribute arch, >> "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0" >> FAIL: gcc.target/riscv/pr110696.c -Os scan-assembler .attribute arch, >> "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0" >> FAIL: gcc.target/riscv/rvv/base/pr114352-1.c scan-assembler .attribute arch, >> "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0" >> FAIL: gcc.target/riscv/rvv/base/pr114352-1.c scan-assembler .option arch, >> rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0 >> FAIL: gcc.target/riscv/rvv/base/pr114352-3.c scan-assembler .attribute arch, >> "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0" >> FAIL: gcc.target/riscv/rvv/base/pr114352-3.c scan-assembler .option arch, >> rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0 >> FAIL: gcc.target/riscv/rvv/base/pr114352-3.c scan-assembler .option arch, >> rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0_zbb1p0 >> FAIL: gcc.target/riscv/rvv/base/pr114352-3.c scan-assembler .option arch, >> rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zfh1p0_zfhmin1p0_zaamo1p0_zalrsc1_zca1p0_zcd1p0 > > >You probably want to address those new failures before committing, even >with Kito's LGTM. > >jeff