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

Reply via email to