@@ -385,27 +385,48 @@ func.func @load_gather_vc_3(%src: ui64) {
385385}
386386
387387// -----
388- func.func @load_offset (%src: ui64 ) {
388+ func.func @load_gather_offset_sg (%src: memref <?x f16 > ) {
389389 %offsets = arith.constant dense <[0 , 8 , 16 , 24 ]> : vector <4 xindex >
390390 %mask = arith.constant dense <1 >: vector <8 xi1 >
391391 // expected-error@+1 {{Mask should match value except the chunk size dim}}
392392 %2 = xegpu.load %src [%offsets ], %mask
393- : ui64 , vector <4 xindex >, vector <8 xi1 >
394- -> vector <4 x2 xf32 >
393+ : memref <?xf16 >, vector <4 xindex >, vector <8 xi1 >
394+ -> vector <4 x2 xf16 >
395+ return
396+ }
397+
398+ // -----
399+ func.func @load_gather_offset_wi (%src: ui64 ) {
400+ %mask = arith.constant dense <1 >: vector <1 xi1 >
401+ %offsets = arith.constant dense <[0 ]> : vector <1 xindex >
402+ // expected-error@+1 {{value elements must match chunk size}}
403+ %2 = xegpu.load %src [%offsets ], %mask <{chunk_size = 2 }> : ui64 , vector <1 xindex >, vector <1 xi1 > -> vector <4 xf32 >
404+ return
405+ }
406+
407+ // -----
408+ func.func @store_scatter_offset (%src: memref <?xf16 >) {
409+ %val = arith.constant dense <2.9 >: vector <4 xf16 >
410+ %offsets = arith.constant dense <[0 ]> : vector <1 xindex >
411+ %mask = arith.constant dense <1 >: vector <1 xi1 >
412+ // expected-error@+1 {{value elements must match chunk size}}
413+ xegpu.store %val , %src [%offsets ], %mask
414+ : vector <4 xf16 >, memref <?xf16 >, vector <1 xindex >, vector <1 xi1 >
395415 return
396416}
397417
418+
398419// -----
399- func.func @store_offset (%src: ui64 ) {
420+ func.func @load_gather_offset_wi (%src: ui64 ) {
400421 %val = arith.constant dense <2.9 >: vector <4 x2 xf16 >
401- %offsets = arith.constant dense <[0 , 8 , 16 , 24 ]> : vector <4 xindex >
402- %mask = arith.constant dense <1 >: vector <8 xi1 >
403- // expected-error@+1 {{Mask should match value except the chunk size dim}}
404- xegpu.store %val , %src [%offsets ], %mask
405- : vector <4 x2 xf16 >, ui64 , vector <4 xindex >, vector <8 xi1 >
422+ %mask = arith.constant dense <1 >: vector <1 xi1 >
423+ %offsets = arith.constant dense <[0 ]> : vector <1 xindex >
424+ // expected-error@+1 {{value elements must match chunk size}}
425+ %2 = xegpu.load %src [%offsets ], %mask <{chunk_size = 2 }> : ui64 , vector <1 xindex >, vector <1 xi1 > -> vector <4 xf32 >
406426 return
407427}
408428
429+
409430// -----
410431func.func @store_scatter_vc_1 (%src: memref <24 x32 xf32 >) {
411432 %0 = arith.constant dense <1 >: vector <4 xi1 >
0 commit comments