11; REQUIRES: dxil-1-9
22; RUN: not %dxv %s 2>&1 | FileCheck %s
33
4+ ;Original Source: D:\git\github\DirectXShaderCompiler-acFork\DirectXShaderCompiler\tools\clang\test\CodeGenHLSL\linalg\outer-product-accumulate-matrix-layout.hlsl
5+
46target datalayout = "e-m:e-p:32:32-i1:32-i8:8-i16:16-i32:32-i64:64-f16:16-f32:32-f64:64-n8:16:32:64"
57target triple = "dxil-ms-dx"
68
@@ -15,7 +17,7 @@ target triple = "dxil-ms-dx"
1517; an order different from the IR. So listed them here in the
1618; order they appear and added comments for correlation
1719
18-
20+ ;CHECK: error: matrix stride must be zero for optimal layouts
1921;CHECK: error: matrix stride must be zero for optimal layouts
2022;CHECK-NOT: error: matrix layout value 'OuterProductOptimal' is not valid for outerproductaccumulate, must be 'OuterProductOptimal'
2123;CHECK: error: matrix layout value 'MulOptimal' is not valid for outerproductaccumulate, must be 'OuterProductOptimal'
@@ -42,6 +44,8 @@ define void @main() {
4244 call void @dx.op.outerProductAccumulate.v8f16.v8f16 (i32 307 , <8 x half > %6 , <8 x half > %9 , %dx.types.Handle %10 , i32 0 , i32 8 , i32 2 , i32 0 ) ; OuterProductAccumulate(inputVector1,inputVector2,matrixBuffer,matrixOffset,matrixIntepretation,matrixLayout,matrixStride)
4345 ; error: matrix stride must be zero for optimal layouts
4446 call void @dx.op.outerProductAccumulate.v8f16.v8f16 (i32 307 , <8 x half > %6 , <8 x half > %9 , %dx.types.Handle %10 , i32 0 , i32 8 , i32 3 , i32 64 ) ; OuterProductAccumulate(inputVector1,inputVector2,matrixBuffer,matrixOffset,matrixIntepretation,matrixLayout,matrixStride)
47+ ; error: matrix stride must be zero for optimal layouts
48+ call void @dx.op.outerProductAccumulate.v8f16.v8f16 (i32 307 , <8 x half > %6 , <8 x half > %9 , %dx.types.Handle %10 , i32 0 , i32 8 , i32 3 , i32 63 ) ; OuterProductAccumulate(inputVector1,inputVector2,matrixBuffer,matrixOffset,matrixIntepretation,matrixLayout,matrixStride)
4549 ret void
4650}
4751
0 commit comments