@@ -312,3 +312,42 @@ llvm.func @nvvm_prefetch_uniform_with_invalid_addr_space(%global_ptr: !llvm.ptr<
312312 nvvm.prefetch level = L1 uniform , %global_ptr : !llvm.ptr <1 >
313313 llvm.return
314314}
315+
316+ // -----
317+
318+ llvm.func @st_matrix (%arg0: !llvm.ptr <3 >, %r1: i32 , %r2: i32 , %r3: i32 , %r4: i32 ) {
319+ // expected-error@+1 {{'nvvm.stmatrix' op expected num attribute to be 1, 2 or 4}}
320+ nvvm.stmatrix %arg0 , %r1 , %r2 , %r3 {layout = #nvvm.mma_layout <row >, shape = #nvvm.ld_st_matrix_shape <m = 8 , n = 8 >, eltType = #nvvm.ld_st_matrix_elt_type <b16 >} : !llvm.ptr <3 >, i32 , i32 , i32
321+ llvm.return
322+ }
323+
324+ // -----
325+
326+ llvm.func @st_matrix (%arg0: !llvm.ptr <3 >, %r1: i32 , %r2: i32 , %r3: i32 , %r4: i32 ) {
327+ // expected-error@+1 {{'nvvm.stmatrix' op expected shape to be 8x8 or 16x8}}
328+ nvvm.stmatrix %arg0 , %r1 {layout = #nvvm.mma_layout <row >, shape = #nvvm.ld_st_matrix_shape <m = 16 , n = 16 >, eltType = #nvvm.ld_st_matrix_elt_type <b16 >} : !llvm.ptr <3 >, i32
329+ llvm.return
330+ }
331+
332+ // -----
333+
334+ llvm.func @st_matrix (%arg0: !llvm.ptr <3 >, %r1: i32 , %r2: i32 , %r3: i32 , %r4: i32 ) {
335+ // expected-error@+1 {{'nvvm.stmatrix' op expected element type to be B16 for 8x8 matrix}}
336+ nvvm.stmatrix %arg0 , %r1 {layout = #nvvm.mma_layout <row >, shape = #nvvm.ld_st_matrix_shape <m = 8 , n = 8 >, eltType = #nvvm.ld_st_matrix_elt_type <b8 >} : !llvm.ptr <3 >, i32
337+ llvm.return
338+ }
339+ // -----
340+
341+ llvm.func @st_matrix (%arg0: !llvm.ptr <3 >, %r1: i32 , %r2: i32 , %r3: i32 , %r4: i32 ) {
342+ // expected-error@+1 {{'nvvm.stmatrix' op expected element type to be B8 for 16x8 matrix}}
343+ nvvm.stmatrix %arg0 , %r1 {layout = #nvvm.mma_layout <col >, shape = #nvvm.ld_st_matrix_shape <m = 16 , n = 8 >, eltType = #nvvm.ld_st_matrix_elt_type <b16 >} : !llvm.ptr <3 >, i32
344+ llvm.return
345+ }
346+
347+ // -----
348+
349+ llvm.func @st_matrix (%arg0: !llvm.ptr <3 >, %r1: i32 , %r2: i32 , %r3: i32 , %r4: i32 ) {
350+ // expected-error@+1 {{'nvvm.stmatrix' op expected layout to be col for 16x8 matrix}}
351+ nvvm.stmatrix %arg0 , %r1 {layout = #nvvm.mma_layout <row >, shape = #nvvm.ld_st_matrix_shape <m = 16 , n = 8 >, eltType = #nvvm.ld_st_matrix_elt_type <b8 >} : !llvm.ptr <3 >, i32
352+ llvm.return
353+ }
0 commit comments