@@ -586,6 +586,103 @@ func.func @testserialop(%a: memref<10xf32>, %b: memref<10xf32>, %c: memref<10x10
586
586
587
587
// -----
588
588
589
+
590
+ func.func @testserialop (%a: memref <10 xf32 >, %b: memref <10 xf32 >, %c: memref <10 x10 xf32 >) -> () {
591
+ %i64value = arith.constant 1 : i64
592
+ %i32value = arith.constant 1 : i32
593
+ %idxValue = arith.constant 1 : index
594
+ acc.kernels async (%i64value: i64 ) {
595
+ }
596
+ acc.kernels async (%i32value: i32 ) {
597
+ }
598
+ acc.kernels async (%idxValue: index ) {
599
+ }
600
+ acc.kernels wait (%i64value: i64 ) {
601
+ }
602
+ acc.kernels wait (%i32value: i32 ) {
603
+ }
604
+ acc.kernels wait (%idxValue: index ) {
605
+ }
606
+ acc.kernels wait (%i64value , %i32value , %idxValue : i64 , i32 , index ) {
607
+ }
608
+ acc.kernels copyin (%a , %b : memref <10 xf32 >, memref <10 xf32 >) {
609
+ }
610
+ acc.kernels copyin_readonly (%a , %b : memref <10 xf32 >, memref <10 xf32 >) {
611
+ }
612
+ acc.kernels copyin (%a: memref <10 xf32 >) copyout_zero (%b , %c : memref <10 xf32 >, memref <10 x10 xf32 >) {
613
+ }
614
+ acc.kernels copyout (%b , %c : memref <10 xf32 >, memref <10 x10 xf32 >) create (%a: memref <10 xf32 >) {
615
+ }
616
+ acc.kernels copyout_zero (%b , %c : memref <10 xf32 >, memref <10 x10 xf32 >) create_zero (%a: memref <10 xf32 >) {
617
+ }
618
+ acc.kernels no_create (%a: memref <10 xf32 >) present (%b , %c : memref <10 xf32 >, memref <10 x10 xf32 >) {
619
+ }
620
+ acc.kernels deviceptr (%a: memref <10 xf32 >) attach (%b , %c : memref <10 xf32 >, memref <10 x10 xf32 >) {
621
+ }
622
+ acc.kernels {
623
+ } attributes {defaultAttr = #acc <defaultvalue none >}
624
+ acc.kernels {
625
+ } attributes {defaultAttr = #acc <defaultvalue present >}
626
+ acc.kernels {
627
+ } attributes {asyncAttr }
628
+ acc.kernels {
629
+ } attributes {waitAttr }
630
+ acc.kernels {
631
+ } attributes {selfAttr }
632
+ acc.kernels {
633
+ acc.terminator
634
+ } attributes {selfAttr }
635
+ return
636
+ }
637
+
638
+ // CHECK: func @testserialop([[ARGA:%.*]]: memref<10xf32>, [[ARGB:%.*]]: memref<10xf32>, [[ARGC:%.*]]: memref<10x10xf32>) {
639
+ // CHECK: [[I64VALUE:%.*]] = arith.constant 1 : i64
640
+ // CHECK: [[I32VALUE:%.*]] = arith.constant 1 : i32
641
+ // CHECK: [[IDXVALUE:%.*]] = arith.constant 1 : index
642
+ // CHECK: acc.kernels async([[I64VALUE]] : i64) {
643
+ // CHECK-NEXT: }
644
+ // CHECK: acc.kernels async([[I32VALUE]] : i32) {
645
+ // CHECK-NEXT: }
646
+ // CHECK: acc.kernels async([[IDXVALUE]] : index) {
647
+ // CHECK-NEXT: }
648
+ // CHECK: acc.kernels wait([[I64VALUE]] : i64) {
649
+ // CHECK-NEXT: }
650
+ // CHECK: acc.kernels wait([[I32VALUE]] : i32) {
651
+ // CHECK-NEXT: }
652
+ // CHECK: acc.kernels wait([[IDXVALUE]] : index) {
653
+ // CHECK-NEXT: }
654
+ // CHECK: acc.kernels wait([[I64VALUE]], [[I32VALUE]], [[IDXVALUE]] : i64, i32, index) {
655
+ // CHECK-NEXT: }
656
+ // CHECK: acc.kernels copyin([[ARGA]], [[ARGB]] : memref<10xf32>, memref<10xf32>) {
657
+ // CHECK-NEXT: }
658
+ // CHECK: acc.kernels copyin_readonly([[ARGA]], [[ARGB]] : memref<10xf32>, memref<10xf32>) {
659
+ // CHECK-NEXT: }
660
+ // CHECK: acc.kernels copyin([[ARGA]] : memref<10xf32>) copyout_zero([[ARGB]], [[ARGC]] : memref<10xf32>, memref<10x10xf32>) {
661
+ // CHECK-NEXT: }
662
+ // CHECK: acc.kernels copyout([[ARGB]], [[ARGC]] : memref<10xf32>, memref<10x10xf32>) create([[ARGA]] : memref<10xf32>) {
663
+ // CHECK-NEXT: }
664
+ // CHECK: acc.kernels copyout_zero([[ARGB]], [[ARGC]] : memref<10xf32>, memref<10x10xf32>) create_zero([[ARGA]] : memref<10xf32>) {
665
+ // CHECK-NEXT: }
666
+ // CHECK: acc.kernels no_create([[ARGA]] : memref<10xf32>) present([[ARGB]], [[ARGC]] : memref<10xf32>, memref<10x10xf32>) {
667
+ // CHECK-NEXT: }
668
+ // CHECK: acc.kernels attach([[ARGB]], [[ARGC]] : memref<10xf32>, memref<10x10xf32>) deviceptr([[ARGA]] : memref<10xf32>) {
669
+ // CHECK-NEXT: }
670
+ // CHECK: acc.kernels {
671
+ // CHECK-NEXT: } attributes {defaultAttr = #acc<defaultvalue none>}
672
+ // CHECK: acc.kernels {
673
+ // CHECK-NEXT: } attributes {defaultAttr = #acc<defaultvalue present>}
674
+ // CHECK: acc.kernels {
675
+ // CHECK-NEXT: } attributes {asyncAttr}
676
+ // CHECK: acc.kernels {
677
+ // CHECK-NEXT: } attributes {waitAttr}
678
+ // CHECK: acc.kernels {
679
+ // CHECK-NEXT: } attributes {selfAttr}
680
+ // CHECK: acc.kernels {
681
+ // CHECK: acc.terminator
682
+ // CHECK-NEXT: } attributes {selfAttr}
683
+
684
+ // -----
685
+
589
686
func.func @testdataop (%a: memref <10 xf32 >, %b: memref <10 xf32 >, %c: memref <10 x10 xf32 >) -> () {
590
687
%ifCond = arith.constant true
591
688
acc.data if (%ifCond ) present (%a : memref <10 xf32 >) {
0 commit comments