-
- Downloads
s390: arch15: Count leading/trailing zeros
Add vector single element 128-bit integer support utilizing new instructions vclzq and vctzq. Furthermore, add scalar 64-bit integer support utilizing new instructions clzg and ctzg. For ctzg, also define the resulting value if the input operand equals zero. gcc/ChangeLog: * config/s390/s390-builtins.def (s390_vec_cntlz): Add 128-bit integer overloads. (s390_vclzq): Add. (s390_vec_cnttz): Add 128-bit integer overloads. (s390_vctzq): Add. * config/s390/s390-builtin-types.def: Update accordingly. * config/s390/s390.h (CTZ_DEFINED_VALUE_AT_ZERO): Define. * config/s390/s390.md (*clzg): New insn. (clztidi2): Exploit new insn for target arch15. (ctzdi2): New insn. * config/s390/vector.md (clz<mode>2): Extend modes including 128-bit integer. (ctz<mode>2): Likewise.
Showing
- gcc/config/s390/s390-builtin-types.def 1 addition, 0 deletionsgcc/config/s390/s390-builtin-types.def
- gcc/config/s390/s390-builtins.def 8 additions, 2 deletionsgcc/config/s390/s390-builtins.def
- gcc/config/s390/s390.h 3 additions, 0 deletionsgcc/config/s390/s390.h
- gcc/config/s390/s390.md 31 additions, 9 deletionsgcc/config/s390/s390.md
- gcc/config/s390/vector.md 9 additions, 6 deletionsgcc/config/s390/vector.md
Loading
Please register or sign in to comment