@@ -35,7 +35,7 @@ llvm.func @blockload2d(%a: !llvm.ptr<1>, %base_width_a: i32, %base_height_a: i32
35
35
// -----
36
36
// CHECK-LABEL: llvm.func spir_funccc @_Z41intel_sub_group_2d_block_read_16b_8r16x1cPU3AS1viiiDv2_iPt(
37
37
llvm.func @blockload2d_cache_control (%a: !llvm.ptr <1 >, %base_width_a: i32 , %base_height_a: i32 , %base_pitch_a: i32 , %x: i32 , %y: i32 ) -> vector <8 xi16 > {
38
- // CHECK: xevm.DecorationCacheControl =
38
+ // CHECK: xevm.DecorationCacheControl =
39
39
// CHECK-SAME: 6442 : i32, 0 : i32, 1 : i32, 0 : i32
40
40
// CHECK-SAME: 6442 : i32, 1 : i32, 1 : i32, 0 : i32
41
41
%loaded_a = xevm.blockload2d %a , %base_width_a , %base_height_a , %base_pitch_a , %x , %y
@@ -345,3 +345,148 @@ llvm.func @blockstore_scalar(%ptr: !llvm.ptr<3>, %data: i64) {
345
345
xevm.blockstore %ptr , %data <{cache_control =#xevm.store_cache_control <L1wt_L2uc_L3wb >}> : (!llvm.ptr <3 >, i64 )
346
346
llvm.return
347
347
}
348
+
349
+ // -----
350
+ // CHECK-LABEL: llvm.func @local_id.x() -> i32 {
351
+ llvm.func @local_id.x () -> i32 {
352
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(0 : i32) : i32
353
+ // CHECK: %[[VAR1:.*]] = llvm.call spir_funccc @_Z12get_local_idj(%[[VAR0]])
354
+ // CHECK-SAME: {function_type = !llvm.func<i32 (i32)>, linkage = #llvm.linkage<external>,
355
+ // CHECK-SAME: memory_effects = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>,
356
+ // CHECK-SAME: no_unwind, sym_name = "_Z12get_local_idj", visibility_ = 0 : i64, will_return} : (i32) -> i32
357
+ %1 = xevm.local_id.x : i32
358
+ llvm.return %1 : i32
359
+ }
360
+
361
+ // -----
362
+ // CHECK-LABEL: llvm.func @local_id.y() -> i32 {
363
+ llvm.func @local_id.y () -> i32 {
364
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(1 : i32) : i32
365
+ %1 = xevm.local_id.y : i32
366
+ llvm.return %1 : i32
367
+ }
368
+
369
+ // -----
370
+ // CHECK-LABEL: llvm.func @local_id.z() -> i32 {
371
+ llvm.func @local_id.z () -> i32 {
372
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(2 : i32) : i32
373
+ %1 = xevm.local_id.z : i32
374
+ llvm.return %1 : i32
375
+ }
376
+
377
+ // -----
378
+ // CHECK-LABEL: llvm.func @local_size.x() -> i32 {
379
+ llvm.func @local_size.x () -> i32 {
380
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(0 : i32) : i32
381
+ // CHECK: %[[VAR1:.*]] = llvm.call spir_funccc @_Z14get_local_sizej(%[[VAR0]])
382
+ // CHECK-SAME: {function_type = !llvm.func<i32 (i32)>, linkage = #llvm.linkage<external>,
383
+ // CHECK-SAME: memory_effects = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>,
384
+ // CHECK-SAME: no_unwind, sym_name = "_Z14get_local_sizej", visibility_ = 0 : i64, will_return} : (i32) -> i32
385
+ %1 = xevm.local_size.x : i32
386
+ llvm.return %1 : i32
387
+ }
388
+
389
+ // -----
390
+ // CHECK-LABEL: llvm.func @local_size.y() -> i32 {
391
+ llvm.func @local_size.y () -> i32 {
392
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(1 : i32) : i32
393
+ %1 = xevm.local_size.y : i32
394
+ llvm.return %1 : i32
395
+ }
396
+
397
+ // -----
398
+ // CHECK-LABEL: llvm.func @local_size.z() -> i32 {
399
+ llvm.func @local_size.z () -> i32 {
400
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(2 : i32) : i32
401
+ %1 = xevm.local_size.z : i32
402
+ llvm.return %1 : i32
403
+ }
404
+
405
+ // -----
406
+ // CHECK-LABEL: llvm.func @group_id.x() -> i32 {
407
+ llvm.func @group_id.x () -> i32 {
408
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(0 : i32) : i32
409
+ // CHECK: %[[VAR1:.*]] = llvm.call spir_funccc @_Z12get_group_idj(%[[VAR0]])
410
+ // CHECK-SAME: {function_type = !llvm.func<i32 (i32)>, linkage = #llvm.linkage<external>,
411
+ // CHECK-SAME: memory_effects = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>,
412
+ // CHECK-SAME: no_unwind, sym_name = "_Z12get_group_idj", visibility_ = 0 : i64, will_return} : (i32) -> i32
413
+ %1 = xevm.group_id.x : i32
414
+ llvm.return %1 : i32
415
+ }
416
+
417
+ // -----
418
+ // CHECK-LABEL: llvm.func @group_id.y() -> i32 {
419
+ llvm.func @group_id.y () -> i32 {
420
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(1 : i32) : i32
421
+ %1 = xevm.group_id.y : i32
422
+ llvm.return %1 : i32
423
+ }
424
+
425
+ // -----
426
+ // CHECK-LABEL: llvm.func @group_id.z() -> i32 {
427
+ llvm.func @group_id.z () -> i32 {
428
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(2 : i32) : i32
429
+ %1 = xevm.group_id.z : i32
430
+ llvm.return %1 : i32
431
+ }
432
+
433
+ // -----
434
+ // CHECK-LABEL: llvm.func @group_count.x() -> i32 {
435
+ llvm.func @group_count.x () -> i32 {
436
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(0 : i32) : i32
437
+ // CHECK: %[[VAR1:.*]] = llvm.call spir_funccc @_Z14get_num_groupsj(%[[VAR0]])
438
+ // CHECK-SAME: {function_type = !llvm.func<i32 (i32)>, linkage = #llvm.linkage<external>,
439
+ // CHECK-SAME: memory_effects = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>,
440
+ // CHECK-SAME: no_unwind, sym_name = "_Z14get_num_groupsj", visibility_ = 0 : i64, will_return} : (i32) -> i32
441
+ %1 = xevm.group_count.x : i32
442
+ llvm.return %1 : i32
443
+ }
444
+
445
+ // -----
446
+ // CHECK-LABEL: llvm.func @group_count.y() -> i32 {
447
+ llvm.func @group_count.y () -> i32 {
448
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(1 : i32) : i32
449
+ %1 = xevm.group_count.y : i32
450
+ llvm.return %1 : i32
451
+ }
452
+
453
+ // -----
454
+ // CHECK-LABEL: llvm.func @group_count.z() -> i32 {
455
+ llvm.func @group_count.z () -> i32 {
456
+ // CHECK: %[[VAR0:.*]] = llvm.mlir.constant(2 : i32) : i32
457
+ %1 = xevm.group_count.z : i32
458
+ llvm.return %1 : i32
459
+ }
460
+
461
+ // -----
462
+ // CHECK-LABEL: llvm.func spir_funccc @_Z22get_sub_group_local_id() -> i32 attributes {no_unwind, will_return}
463
+ llvm.func @lane_id () -> i32 {
464
+ // CHECK: %[[VAR0:.*]] = llvm.call spir_funccc @_Z22get_sub_group_local_id()
465
+ // CHECK-SAME: {function_type = !llvm.func<i32 ()>, linkage = #llvm.linkage<external>,
466
+ // CHECK-SAME: memory_effects = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>,
467
+ // CHECK-SAME: no_unwind, sym_name = "_Z22get_sub_group_local_id", visibility_ = 0 : i64, will_return} : () -> i32
468
+ %1 = xevm.lane_id : i32
469
+ llvm.return %1 : i32
470
+ }
471
+
472
+ // -----
473
+ // CHECK-LABEL: llvm.func spir_funccc @_Z18get_sub_group_size() -> i32 attributes {no_unwind, will_return}
474
+ llvm.func @subgroup_size () -> i32 {
475
+ // CHECK: %[[VAR0:.*]] = llvm.call spir_funccc @_Z18get_sub_group_size()
476
+ // CHECK-SAME: {function_type = !llvm.func<i32 ()>, linkage = #llvm.linkage<external>,
477
+ // CHECK-SAME: memory_effects = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>,
478
+ // CHECK-SAME: no_unwind, sym_name = "_Z18get_sub_group_size", visibility_ = 0 : i64, will_return} : () -> i32
479
+ %1 = xevm.subgroup_size : i32
480
+ llvm.return %1 : i32
481
+ }
482
+
483
+ // -----
484
+ // CHECK-LABEL: llvm.func spir_funccc @_Z16get_sub_group_id() -> i32 attributes {no_unwind, will_return}
485
+ llvm.func @subgroup_id () -> i32 {
486
+ // CHECK: %[[VAR0:.*]] = llvm.call spir_funccc @_Z16get_sub_group_id()
487
+ // CHECK-SAME: {function_type = !llvm.func<i32 ()>, linkage = #llvm.linkage<external>,
488
+ // CHECK-SAME: memory_effects = #llvm.memory_effects<other = none, argMem = none, inaccessibleMem = none>,
489
+ // CHECK-SAME: no_unwind, sym_name = "_Z16get_sub_group_id", visibility_ = 0 : i64, will_return} : () -> i32
490
+ %1 = xevm.subgroup_id : i32
491
+ llvm.return %1 : i32
492
+ }
0 commit comments