Skip to content
Snippets Groups Projects
Commit 0f0b91ef authored by Stefan Schulze Frielinghaus's avatar Stefan Schulze Frielinghaus
Browse files

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.
parent 41a69915
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment