RISC-V: Make bit manipulation value / round number and shift amount types for builtins unsigned
For bit manipulation operations, input(s) and the manipulated output are better to be unsigned like other target-independent builtins like __builtin_bswap32 and __builtin_popcount. Although this is not completely compatible as before (as the type changes), most code will run normally, even without warnings (with -Wall -Wextra). To make consistent to the LLVM commit 599421ae36c3 ("[RISCV] Use unsigned instead of signed types for Zk* and Zb* builtins."), round numbers and shift amount on the scalar crypto instructions are also changed to unsigned. gcc/ChangeLog: * config/riscv/riscv-builtins.cc (RISCV_ATYPE_UQI): New for uint8_t. (RISCV_ATYPE_UHI): New for uint16_t. (RISCV_ATYPE_QI, RISCV_ATYPE_HI, RISCV_ATYPE_SI, RISCV_ATYPE_DI): Removed as no longer used. (RISCV_ATYPE_UDI): New for uint64_t. * config/riscv/riscv-cmo.def: Make types unsigned for not working "zicbop_cbo_prefetchi" and working bit manipulation clmul builtin argument/return types. * config/riscv/riscv-ftypes.def: Make bit manipulation, round number and shift amount types unsigned. * config/riscv/riscv-scalar-crypto.def: Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/zbc32.c: Make signed type to unsigned. * gcc.target/riscv/zbc64.c: Ditto. * gcc.target/riscv/zbkb32.c: Ditto. * gcc.target/riscv/zbkb64.c: Ditto. * gcc.target/riscv/zbkc32.c: Ditto. * gcc.target/riscv/zbkc64.c: Ditto. * gcc.target/riscv/zbkx32.c: Ditto. * gcc.target/riscv/zbkx64.c: Ditto. * gcc.target/riscv/zknd32.c: Ditto. * gcc.target/riscv/zknd64.c: Ditto. * gcc.target/riscv/zkne32.c: Ditto. * gcc.target/riscv/zkne64.c: Ditto. * gcc.target/riscv/zknh-sha256.c: Ditto. * gcc.target/riscv/zknh-sha512-32.c: Ditto. * gcc.target/riscv/zknh-sha512-64.c: Ditto. * gcc.target/riscv/zksed32.c: Ditto. * gcc.target/riscv/zksed64.c: Ditto. * gcc.target/riscv/zksh32.c: Ditto. * gcc.target/riscv/zksh64.c: Ditto.
Showing
- gcc/config/riscv/riscv-builtins.cc 3 additions, 4 deletionsgcc/config/riscv/riscv-builtins.cc
- gcc/config/riscv/riscv-cmo.def 8 additions, 8 deletionsgcc/config/riscv/riscv-cmo.def
- gcc/config/riscv/riscv-ftypes.def 12 additions, 12 deletionsgcc/config/riscv/riscv-ftypes.def
- gcc/config/riscv/riscv-scalar-crypto.def 52 additions, 52 deletionsgcc/config/riscv/riscv-scalar-crypto.def
- gcc/testsuite/gcc.target/riscv/zbc32.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/riscv/zbc32.c
- gcc/testsuite/gcc.target/riscv/zbc64.c 3 additions, 3 deletionsgcc/testsuite/gcc.target/riscv/zbc64.c
- gcc/testsuite/gcc.target/riscv/zbkb32.c 5 additions, 5 deletionsgcc/testsuite/gcc.target/riscv/zbkb32.c
- gcc/testsuite/gcc.target/riscv/zbkb64.c 4 additions, 4 deletionsgcc/testsuite/gcc.target/riscv/zbkb64.c
- gcc/testsuite/gcc.target/riscv/zbkc32.c 2 additions, 2 deletionsgcc/testsuite/gcc.target/riscv/zbkc32.c
- gcc/testsuite/gcc.target/riscv/zbkc64.c 2 additions, 2 deletionsgcc/testsuite/gcc.target/riscv/zbkc64.c
- gcc/testsuite/gcc.target/riscv/zbkx32.c 2 additions, 2 deletionsgcc/testsuite/gcc.target/riscv/zbkx32.c
- gcc/testsuite/gcc.target/riscv/zbkx64.c 2 additions, 2 deletionsgcc/testsuite/gcc.target/riscv/zbkx64.c
- gcc/testsuite/gcc.target/riscv/zknd32.c 2 additions, 2 deletionsgcc/testsuite/gcc.target/riscv/zknd32.c
- gcc/testsuite/gcc.target/riscv/zknd64.c 5 additions, 5 deletionsgcc/testsuite/gcc.target/riscv/zknd64.c
- gcc/testsuite/gcc.target/riscv/zkne32.c 2 additions, 2 deletionsgcc/testsuite/gcc.target/riscv/zkne32.c
- gcc/testsuite/gcc.target/riscv/zkne64.c 4 additions, 4 deletionsgcc/testsuite/gcc.target/riscv/zkne64.c
- gcc/testsuite/gcc.target/riscv/zknh-sha256.c 4 additions, 4 deletionsgcc/testsuite/gcc.target/riscv/zknh-sha256.c
- gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c 6 additions, 6 deletionsgcc/testsuite/gcc.target/riscv/zknh-sha512-32.c
- gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c 4 additions, 4 deletionsgcc/testsuite/gcc.target/riscv/zknh-sha512-64.c
- gcc/testsuite/gcc.target/riscv/zksed32.c 2 additions, 2 deletionsgcc/testsuite/gcc.target/riscv/zksed32.c
Loading
Please register or sign in to comment