Skip to content

Commit 141008e

Browse files
YuriPlyakhinigcbot
authored andcommitted
Fix Cooperative Matrix prefetch resolving
joint_matrix_prefetch spec was updated removing unused X and Y coordinates parameters. Updated JointMatrixFuncsResolution pass and lit tests to match new interface and make SYCL test pass again.
1 parent 1c20fe5 commit 141008e

File tree

5 files changed

+75
-79
lines changed

5 files changed

+75
-79
lines changed

IGC/Compiler/Optimizer/OpenCLPasses/JointMatrixFuncsResolutionPass/JointMatrixFuncsResolutionPass.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1207,17 +1207,13 @@ static int resolveCacheControlDecorations(CodeGenContext *ctx, Value *pointerVal
12071207
Instruction *JointMatrixFuncsResolutionPass::ResolvePrefetch(CallInst *CI)
12081208
{
12091209
Value *ptrVal = CI->getArgOperand(0);
1210-
Value *coordXVal = CI->getArgOperand(1); // unused
1211-
Value *coordYVal = CI->getArgOperand(2); // unused
1212-
Value *numRowsVal = CI->getArgOperand(3);
1213-
Value *numColsVal = CI->getArgOperand(4);
1214-
Value *cacheLevelVal = CI->getArgOperand(5);
1215-
Value *layoutVal = CI->getArgOperand(6); // unused
1216-
Value *strideVal = CI->getArgOperand(7);
1210+
Value *numRowsVal = CI->getArgOperand(1);
1211+
Value *numColsVal = CI->getArgOperand(2);
1212+
Value *cacheLevelVal = CI->getArgOperand(3);
1213+
Value *layoutVal = CI->getArgOperand(4);
1214+
Value *strideVal = CI->getArgOperand(5);
12171215
unsigned loadLayout = (unsigned)constIntValue(layoutVal);
12181216
unsigned cacheLevel = (unsigned)constIntValue(cacheLevelVal);
1219-
(void)coordXVal; // This argument will be removed in future SPIRV translator versions
1220-
(void)coordYVal; // This argument will be removed in future SPIRV translator versions
12211217

12221218
JointMatrixTypeDescription desc;
12231219
desc.rows = (unsigned)constIntValue(numRowsVal);

IGC/Compiler/tests/JointMatrixFuncsResolutionPass/ErrorsReporting/validate-prefetch-address-space.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
; JointMatrixFuncsResolutionPass
1212
; ------------------------------------------------
1313

14-
declare spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flllliil(float addrspace(3)*, i64, i64, i64, i64, i32, i32, i64)
14+
declare spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flliil(float addrspace(3)*, i64, i64, i32, i32, i64)
1515

1616
define spir_kernel void @matrix_prefetch(float addrspace(3)* %src) {
1717
; CHECK-LABEL: define spir_kernel void @matrix_prefetch(
1818
entry:
19-
call spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flllliil(float addrspace(3)* %src, i64 0, i64 0, i64 8, i64 16, i32 1, i32 0, i64 64)
19+
call spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flliil(float addrspace(3)* %src, i64 8, i64 16, i32 1, i32 0, i64 64)
2020
ret void
2121
; CHECK: error: Unsupported address space. Matrix prefetch supports generic and global pointers
2222
}

IGC/Compiler/tests/JointMatrixFuncsResolutionPass/ErrorsReporting/validate-prefetch-sg8.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
; JointMatrixFuncsResolutionPass
1212
; ------------------------------------------------
1313

14-
declare spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flllliil(float addrspace(1)*, i64, i64, i64, i64, i32, i32, i64)
14+
declare spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flliil(float addrspace(1)*, i64, i64, i32, i32, i64)
1515

1616
define spir_kernel void @matrix_prefetch(float addrspace(1)* %src) {
1717
; CHECK-LABEL: define spir_kernel void @matrix_prefetch(
1818
entry:
19-
call spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flllliil(float addrspace(1)* %src, i64 0, i64 0, i64 8, i64 16, i32 1, i32 0, i64 64)
19+
call spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flliil(float addrspace(1)* %src, i64 8, i64 16, i32 1, i32 0, i64 64)
2020
ret void
2121
; CHECK: error: SYCL Joint Matrix prefetch API is not supported on targeted GPU device
2222
}

IGC/Compiler/tests/JointMatrixFuncsResolutionPass/ErrorsReporting/validate-prefetch.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
; JointMatrixFuncsResolutionPass
1212
; ------------------------------------------------
1313

14-
declare spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flllliil(float addrspace(1)*, i64, i64, i64, i64, i32, i32, i64)
14+
declare spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flliil(float addrspace(1)*, i64, i64, i32, i32, i64)
1515

1616
define spir_kernel void @matrix_prefetch(float addrspace(1)* %src) {
1717
; CHECK-LABEL: define spir_kernel void @matrix_prefetch(
1818
entry:
19-
call spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flllliil(float addrspace(1)* %src, i64 0, i64 0, i64 52, i64 128, i32 1, i32 0, i64 64)
19+
call spir_func void @_Z38__spirv_CooperativeMatrixPrefetchINTELPU3AS4flliil(float addrspace(1)* %src, i64 52, i64 128, i32 1, i32 0, i64 64)
2020
ret void
2121
; CHECK: error: Unsupported row parameter for matrix prefetch: 52
2222
; CHECK: error: Unsupported column parameter for matrix prefetch: 128. Supported values: 8, 16, 32, 64.

0 commit comments

Comments
 (0)