@@ -35,7 +35,7 @@ llvm.func @blockload2d(%a: !llvm.ptr<1>, %base_width_a: i32, %base_height_a: i32
3535// -----
3636// CHECK-LABEL: llvm.func spir_funccc @_Z41intel_sub_group_2d_block_read_16b_8r16x1cPU3AS1viiiDv2_iPt(
3737llvm.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 =
3939 // CHECK-SAME: 6442 : i32, 0 : i32, 1 : i32, 0 : i32
4040 // CHECK-SAME: 6442 : i32, 1 : i32, 1 : i32, 0 : i32
4141 %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) {
345345 xevm.blockstore %ptr , %data <{cache_control =#xevm.store_cache_control <L1wt_L2uc_L3wb >}> : (!llvm.ptr <3 >, i64 )
346346 llvm.return
347347}
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