<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/SystemZ/SystemZOperators.td, branch users/nico/python-2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[SystemZ] Implement i128 funnel shifts</title>
<updated>2025-03-15T17:28:44+00:00</updated>
<author>
<name>Ulrich Weigand</name>
<email>ulrich.weigand@de.ibm.com</email>
</author>
<published>2025-03-15T17:22:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f4ea1055ad574e0e17fe19662a8c8bcf17e64bfe'/>
<id>f4ea1055ad574e0e17fe19662a8c8bcf17e64bfe</id>
<content type='text'>
These can be handled via the VECTOR SHIFT LEFT/RIGHT DOUBLE
family of instructions, depending on architecture level.

Fixes: https://github.com/llvm/llvm-project/issues/129955
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These can be handled via the VECTOR SHIFT LEFT/RIGHT DOUBLE
family of instructions, depending on architecture level.

Fixes: https://github.com/llvm/llvm-project/issues/129955
</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ] Recognize carry/borrow computation</title>
<updated>2025-03-15T17:28:44+00:00</updated>
<author>
<name>Ulrich Weigand</name>
<email>ulrich.weigand@de.ibm.com</email>
</author>
<published>2025-03-15T17:19:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4155cc0fb3198b1aa4b8e6601980f418c0428cf7'/>
<id>4155cc0fb3198b1aa4b8e6601980f418c0428cf7</id>
<content type='text'>
Generate code using the VECTOR ADD COMPUTE CARRY and
VECTOR SUBTRACT COMPUTE BORROW INDICATION instructions
to implement open-coded IR with those semantics.

Handles integer vector types as well as i128.

Fixes: https://github.com/llvm/llvm-project/issues/129608
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Generate code using the VECTOR ADD COMPUTE CARRY and
VECTOR SUBTRACT COMPUTE BORROW INDICATION instructions
to implement open-coded IR with those semantics.

Handles integer vector types as well as i128.

Fixes: https://github.com/llvm/llvm-project/issues/129608
</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ] Optimize widening and high-word vector multiplication</title>
<updated>2025-03-15T17:28:44+00:00</updated>
<author>
<name>Ulrich Weigand</name>
<email>ulrich.weigand@de.ibm.com</email>
</author>
<published>2025-03-15T17:08:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cdc786498650c028c9c8ce23dfbff81bf2780d14'/>
<id>cdc786498650c028c9c8ce23dfbff81bf2780d14</id>
<content type='text'>
Detect (non-intrinsic) IR patterns corresponding to the semantics
of the various widening and high-word multiplication instructions.

Specifically, this is done by:
- Recognizing even/odd widening multiplication patterns in DAGCombine
- Recognizing widening multiply-and-add on top during ISel
- Implementing the standard MULHS/MUHLU IR opcodes
- Detecting high-word multiply-and-add (which common code does not)

Depending on architecture level, this can support all integer
vector types as well as the scalar i128 type.

Fixes: https://github.com/llvm/llvm-project/issues/129705
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Detect (non-intrinsic) IR patterns corresponding to the semantics
of the various widening and high-word multiplication instructions.

Specifically, this is done by:
- Recognizing even/odd widening multiplication patterns in DAGCombine
- Recognizing widening multiply-and-add on top during ISel
- Implementing the standard MULHS/MUHLU IR opcodes
- Detecting high-word multiply-and-add (which common code does not)

Depending on architecture level, this can support all integer
vector types as well as the scalar i128 type.

Fixes: https://github.com/llvm/llvm-project/issues/129705
</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ] Add support for new cpu architecture - arch15</title>
<updated>2025-01-20T18:30:21+00:00</updated>
<author>
<name>Ulrich Weigand</name>
<email>ulrich.weigand@de.ibm.com</email>
</author>
<published>2025-01-20T18:23:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8424bf207efd89eacf2fe893b67be98d535e1db6'/>
<id>8424bf207efd89eacf2fe893b67be98d535e1db6</id>
<content type='text'>
This patch adds support for the next-generation arch15
CPU architecture to the SystemZ backend.

This includes:
- Basic support for the new processor and its features.
- Detection of arch15 as host processor.
- Assembler/disassembler support for new instructions.
- Exploitation of new instructions for code generation.
- New vector (signed|unsigned|bool) __int128 data types.
- New LLVM intrinsics for certain new instructions.
- Support for low-level builtins mapped to new LLVM intrinsics.
- New high-level intrinsics in vecintrin.h.
- Indicate support by defining  __VEC__ == 10305.

Note: No currently available Z system supports the arch15
architecture.  Once new systems become available, the
official system name will be added as supported -march name.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds support for the next-generation arch15
CPU architecture to the SystemZ backend.

This includes:
- Basic support for the new processor and its features.
- Detection of arch15 as host processor.
- Assembler/disassembler support for new instructions.
- Exploitation of new instructions for code generation.
- New vector (signed|unsigned|bool) __int128 data types.
- New LLVM intrinsics for certain new instructions.
- Support for low-level builtins mapped to new LLVM intrinsics.
- New high-level intrinsics in vecintrin.h.
- Indicate support by defining  __VEC__ == 10305.

Note: No currently available Z system supports the arch15
architecture.  Once new systems become available, the
official system name will be added as supported -march name.
</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ] Use the same PatFrag for all "insert imm" fragments (NFC) (#119962)</title>
<updated>2024-12-14T17:22:00+00:00</updated>
<author>
<name>Sergei Barannikov</name>
<email>barannikov88@gmail.com</email>
</author>
<published>2024-12-14T17:22:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c0849218c43db152259a349aee130eda51057e4e'/>
<id>c0849218c43db152259a349aee130eda51057e4e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen][SystemZ] Correctly check the range of a leaf immediate (#119931)</title>
<updated>2024-12-14T10:58:23+00:00</updated>
<author>
<name>Sergei Barannikov</name>
<email>barannikov88@gmail.com</email>
</author>
<published>2024-12-14T10:58:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=97c3c32372bb8478c53ab9469585c7c6e531cbd2'/>
<id>97c3c32372bb8478c53ab9469585c7c6e531cbd2</id>
<content type='text'>
The "Size &gt;= 32" check probably dates back to when TableGen integers
were 32-bit. Delete it and simplify code by using `isInt`/`isUInt`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The "Size &gt;= 32" check probably dates back to when TableGen integers
were 32-bit. Delete it and simplify code by using `isInt`/`isUInt`.</pre>
</div>
</content>
</entry>
<entry>
<title>SystemZ: Add support for __builtin_setjmp and __builtin_longjmp. (#119257)</title>
<updated>2024-12-10T18:50:51+00:00</updated>
<author>
<name>anoopkg6</name>
<email>anoop.kumar6@ibm.com</email>
</author>
<published>2024-12-10T18:50:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dc04d414df9c243bb90d7cfc683a632a2c032c62'/>
<id>dc04d414df9c243bb90d7cfc683a632a2c032c62</id>
<content type='text'>
This pr includes fixes for original pr##116642.
Implementation for __builtin_setjmp and __builtin_longjmp for SystemZ..</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This pr includes fixes for original pr##116642.
Implementation for __builtin_setjmp and __builtin_longjmp for SystemZ..</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[SystemZ] Add support for __builtin_setjmp and __builtin_longjmp (#116642)"</title>
<updated>2024-12-06T23:55:54+00:00</updated>
<author>
<name>Ulrich Weigand</name>
<email>ulrich.weigand@de.ibm.com</email>
</author>
<published>2024-12-06T23:55:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8787bc72a61aa43a6e937647b6797ddb2ff287d2'/>
<id>8787bc72a61aa43a6e937647b6797ddb2ff287d2</id>
<content type='text'>
This reverts commit 030bbc92a705758f1131fb29cab5be6d6a27dd1f.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 030bbc92a705758f1131fb29cab5be6d6a27dd1f.
</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ] Add support for __builtin_setjmp and __builtin_longjmp (#116642)</title>
<updated>2024-12-06T22:33:33+00:00</updated>
<author>
<name>anoopkg6</name>
<email>anoop.kumar6@ibm.com</email>
</author>
<published>2024-12-06T22:33:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=030bbc92a705758f1131fb29cab5be6d6a27dd1f'/>
<id>030bbc92a705758f1131fb29cab5be6d6a27dd1f</id>
<content type='text'>
Implementation for __builtin_setjmp and __builtin_longjmp for SystemZ.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implementation for __builtin_setjmp and __builtin_longjmp for SystemZ.</pre>
</div>
</content>
</entry>
<entry>
<title>[SystemZ] Enable MachineCombiner for FP reassociation (#83546)</title>
<updated>2024-04-30T15:09:54+00:00</updated>
<author>
<name>Jonas Paulsson</name>
<email>paulson1@linux.ibm.com</email>
</author>
<published>2024-04-30T15:09:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6c32a1fdf712e58a324fc0f6e3dfc83ed7d56b1e'/>
<id>6c32a1fdf712e58a324fc0f6e3dfc83ed7d56b1e</id>
<content type='text'>
Enable MachineCombining for FP add, sub and mul.

In order for this to work, the default instruction selection of reg/mem opcodes is disabled for ISD nodes that carry the flags that allow reassociation. The reg/mem folding is instead done after MachineCombiner by PeepholeOptimizer. SystemZInstrInfo optimizeLoadInstr() and foldMemoryOperandImpl() ("LoadMI version") have been implemented for this purpose also by this patch.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enable MachineCombining for FP add, sub and mul.

In order for this to work, the default instruction selection of reg/mem opcodes is disabled for ISD nodes that carry the flags that allow reassociation. The reg/mem folding is instead done after MachineCombiner by PeepholeOptimizer. SystemZInstrInfo optimizeLoadInstr() and foldMemoryOperandImpl() ("LoadMI version") have been implemented for this purpose also by this patch.
</pre>
</div>
</content>
</entry>
</feed>
