b6199548fd
Changes in code.
2025-10-23 15:59:29 +02:00
db7015317a
ADD, MUL, SUB i32 instructions added to IGCVectorizer
...
ADD, MUL, SUB i32 instructions added to IGCVectorizer
2025-10-22 11:53:09 +02:00
0b9518e019
Fix for IGCVectorizer insertpoint
...
Now for small blocks consisting of 2 special case instructions
PHI & Terminator (BR or RET for example) we return not
firstnonPHI but the last PHI.
2025-09-03 16:07:45 +02:00
cca2a9fe60
IGCVectorizer now supports I32 PHI
...
IGCVectorizer now supports I32 Phi instructions.
2025-08-28 16:00:49 +02:00
4458a3bfcc
Stub vectorization for IGCVectorizer
...
Allow certain instructions to be "stub-vectorized"
New tests are added to cover for additional flexibitlity of
vectorization.
2025-08-13 14:54:45 +02:00
71d72694ae
IGCVectorizer do not process <1 x float>
...
Additional check that fixes the bug with <1 x float>
dpases.
2025-07-30 19:20:03 +02:00
420b632df9
Update IGC code format
...
Update IGC code format
2025-07-20 06:20:11 +02:00
cd15d75829
IGCVectorizer: exp2, maxnum supported and partial
...
vectorization functionality has been added under flag
IGCVectorizer:
exp2, maxnum support has been added under flag.
partial vectorization functionality with different deletion strategies has been
added under flag.
2025-06-16 13:15:06 +02:00
8a8d752708
Additional explicit SIMD16 checks have been implemented for
...
IGCVectorizer
IGCVectorizer only supports simd16 as of now, explicit checks and
asserts has been added
2025-05-28 10:29:58 +02:00
d33224e6d0
IGCVectorizer only supports floats, explicit check has been added
...
IGCVectorizer vector emission only supports floats, we do not add to
vectorization tree everything that is not a float. Now check is
explicit.
2025-05-16 20:15:32 +02:00
5771bd0384
Remove unused includes
...
Try to clean some unused includes to improve build times.
2025-05-09 17:30:34 +02:00
d89764ffd5
Vectorizer refactoring
...
Vectorizer now preallocates chain vector. And removes
unnecessary parameters from functions.
2025-04-16 12:41:48 +02:00
810444c697
IGCVectorizer MAD emission and vectorized MAD pattern
...
matching
Pattern Match inside EmitVisaPass now can match vectorized FADD + FMUL
and form vector MAD instructions. Vector emission of such instructions
supported added to EmitVisaPass as well.
2025-04-07 11:08:49 +02:00
173839cc85
IGC Vectorizer now implements cycle-proof deletion strategy
...
Bug fix, IGC Vectorizer has cycle-proof deletion strategy. Now we
always can clean up in case vectorizer chain is discarded.
2025-03-19 21:48:18 +01:00
9c8de86050
Initialize variables. Reduce copying. Promote types.
...
Addresses Coverity issues.
2025-03-05 15:51:08 +01:00
6c471b3e81
Vectorizer quality of life update
...
Add flags and make more uniform type building in vectorizer.
2025-02-24 14:37:16 +01:00
1fe31c8b87
Vectorizer update FDIV insturctions enabled
...
Support for FDIV insturctions inside IGCVectorizer has been added.
We only support FDIV that is converted to INV, due to current emitter.
2025-02-20 15:38:33 +01:00
a6fda9ec34
FADD vector emission is added
...
VISA emitter now can process vectorized fadd instructions.
2025-01-17 18:55:35 +01:00
61b96b3339
Bugfix inside IGCVectorizer.cpp
...
Assertion with unnecessary llvm::cast fixed, more general type is used
instead.
2025-01-15 12:48:01 +01:00
055f2cbf65
Vectorizer update fptrunc is added back to vectorizer
...
Vectorizer now can support vector emission of ftrunc instructions.
Implemented for triton flash attention kernel.
2024-12-20 12:50:46 +01:00
ae00cfb79e
Fixed bug in vectorizer
...
Wider extract elements are treated correctly now.
2024-12-19 13:57:50 +01:00
d047fc5e25
Vectorizer Update fmul instruction vectorized
...
Vectorizer now can support vector emission of fmul instructions.
Implemented for triton flash attention kernel. Regression that
led to autobackout fixed, check that phi's come from the same block
have been implemented.
2024-12-12 16:31:54 +01:00
b050853f3a
[Autobackout][FunctionalRegression]Revert of change: 0b8394d757: Vectorizer Update fmul instruction vectorized
...
Vectorizer now can support vector emission of fmul instructions.
Implemented for triton flash attention kernel.
2024-12-11 00:53:34 +01:00
0b8394d757
Vectorizer Update fmul instruction vectorized
...
Vectorizer now can support vector emission of fmul instructions.
Implemented for triton flash attention kernel.
2024-12-09 22:50:43 +01:00
26c11d944f
Revert: New vectorization pattern for IGCVectorizer
...
.
2024-11-19 14:47:28 +01:00
e1b2c755e6
IGCVectorizer update
...
This update brings ability to merge incompletely
scalarized vector paths across multiple basic blocks.
2024-10-22 13:44:19 +02:00
e2b46264e2
New vectorization pattern for IGCVectorizer
...
New vectorization pattern with FPTrunc instruction for IGCVectorizer
has been implemented.
2024-10-18 18:14:11 +02:00
437b13f0da
[LLVM16] Replacing getInstList calls(), ZeroBehavior drop, getUserCost, setUndef, array_lengthof, GreatestCommonDivisor64
...
Porting IGC code to LLVM16
* Replace getInstList() calls
* Replace GreatestCommonDivisor64 with std::gcd https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20220822/1071390.html
* Replace llvm::array_lengthof with std::size https://reviews.llvm.org/D133429
* Replace getUserCost with getInstructionCost https://reviews.llvm.org/D79483
* Replace setUndef with setKillLocation https://reviews.llvm.org/D140903
* Drop ZeroBehavior parameter https://reviews.llvm.org/D141798
2024-09-27 09:09:47 +02:00
be3445ecc1
Signed-zero bug is fixed for IGCVectorizer
...
Fixed problem of bundling -0.0 with 0.0 and substituting them
with vectorized zero_initializer. Which is not technically correct,
and might cause some problems with precise arithmetic.
2024-09-03 14:13:04 +02:00
46c61c8aec
Vectorization for dpas & BlockWrite implemented
...
Vectorization for dpas & BlockWrite intrinsics implemented.
Unnecessary insert element & extract elements are removed now.
2024-08-26 10:59:56 +02:00