@@ -642,39 +642,6 @@ llvm.func @kernel_func() attributes {nvvm.kernel, nvvm.maxntid = array<i32: 1, 2
642
642
// CHECK: {ptr @kernel_func, !"maxntidz", i32 32}
643
643
// CHECK: {ptr @kernel_func, !"minctasm", i32 16}
644
644
645
- // -----
646
-
647
- llvm.func @kernel_func (%numberOfThreads : i32 ) {
648
- // expected-error @below {{'nvvm.barrier' op barrier id is missing, it should be set between 0 to 15}}
649
- nvvm.barrier number_of_threads = %numberOfThreads
650
- }
651
-
652
- // -----
653
- // expected-error @below {{'"nvvm.minctasm"' attribute must be integer constant}}
654
- llvm.func @kernel_func () attributes {nvvm.kernel ,
655
- nvvm.minctasm = " foo" } {
656
- llvm.return
657
- }
658
-
659
-
660
- // -----
661
- // expected-error @below {{'"nvvm.maxnreg"' attribute must be integer constant}}
662
- llvm.func @kernel_func () attributes {nvvm.kernel ,
663
- nvvm.maxnreg = " boo" } {
664
- llvm.return
665
- }
666
- // -----
667
- // expected-error @below {{'"nvvm.reqntid"' attribute must be integer array with maximum 3 index}}
668
- llvm.func @kernel_func () attributes {nvvm.kernel , nvvm.reqntid = array<i32 : 3 , 4 , 5 , 6 >} {
669
- llvm.return
670
- }
671
-
672
- // -----
673
- // expected-error @below {{'"nvvm.maxntid"' attribute must be integer array with maximum 3 index}}
674
- llvm.func @kernel_func () attributes {nvvm.kernel , nvvm.maxntid = array<i32 : 3 , 4 , 5 , 6 >} {
675
- llvm.return
676
- }
677
-
678
645
// -----
679
646
// CHECK: !nvvm.annotations =
680
647
// CHECK: !1 = !{ptr @kernel_func, !"grid_constant", !2}
@@ -737,65 +704,3 @@ llvm.func @nvvm_breakpoint() {
737
704
nvvm.breakpoint
738
705
llvm.return
739
706
}
740
-
741
- // -----
742
-
743
- // CHECK-LABEL: @tma_prefetch_1d
744
- llvm.func @tma_prefetch_1d (%tma_desc : !llvm.ptr , %d0 : i32 , %ch : i64 ) {
745
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.tile.1d(ptr %0, i32 %{{.*}}, i64 undef, i1 false)
746
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.tile.1d(ptr %0, i32 %{{.*}}, i64 %{{.*}}, i1 true)
747
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 ] : !llvm.ptr
748
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 ] l2_cache_hint = %ch : !llvm.ptr
749
- llvm.return
750
- }
751
-
752
- // CHECK-LABEL: @tma_prefetch_2d
753
- llvm.func @tma_prefetch_2d (%tma_desc : !llvm.ptr , %d0 : i32 , %d1 : i32 , %ch : i64 ) {
754
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.tile.2d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i64 undef, i1 false)
755
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.tile.2d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i64 %{{.*}}, i1 true)
756
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 ] : !llvm.ptr
757
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 ] l2_cache_hint = %ch : !llvm.ptr
758
- llvm.return
759
- }
760
-
761
- // CHECK-LABEL: @tma_prefetch_3d
762
- llvm.func @tma_prefetch_3d (%tma_desc : !llvm.ptr , %d0 : i32 , %d1 : i32 , %d2 : i32 , %off0 : i16 , %ch : i64 ) {
763
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.tile.3d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i64 undef, i1 false)
764
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.tile.3d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i64 %{{.*}}, i1 true)
765
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 ] : !llvm.ptr
766
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 ] l2_cache_hint = %ch : !llvm.ptr
767
-
768
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.im2col.3d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i16 %{{.*}}, i64 undef, i1 false)
769
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.im2col.3d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i16 %{{.*}}, i64 %{{.*}}, i1 true)
770
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 ] im2col [%off0 ] : !llvm.ptr
771
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 ] im2col [%off0 ] l2_cache_hint = %ch : !llvm.ptr
772
- llvm.return
773
- }
774
-
775
- // CHECK-LABEL: @tma_prefetch_4d
776
- llvm.func @tma_prefetch_4d (%tma_desc : !llvm.ptr , %d0 : i32 , %d1 : i32 , %d2 : i32 , %d3 : i32 , %off0 : i16 , %off1 : i16 , %ch : i64 ) {
777
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.tile.4d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i64 undef, i1 false)
778
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.tile.4d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i64 %{{.*}}, i1 true)
779
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 , %d3 ] : !llvm.ptr
780
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 , %d3 ] l2_cache_hint = %ch : !llvm.ptr
781
-
782
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.im2col.4d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i16 %{{.*}}, i16 %{{.*}}, i64 undef, i1 false)
783
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.im2col.4d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i16 %{{.*}}, i16 %{{.*}}, i64 %{{.*}}, i1 true)
784
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 , %d3 ] im2col [%off0 , %off1 ] : !llvm.ptr
785
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 , %d3 ] im2col [%off0 , %off1 ] l2_cache_hint = %ch : !llvm.ptr
786
- llvm.return
787
- }
788
-
789
- // CHECK-LABEL: @tma_prefetch_5d
790
- llvm.func @tma_prefetch_5d (%tma_desc : !llvm.ptr , %d0 : i32 , %d1 : i32 , %d2 : i32 , %d3 : i32 , %d4 : i32 , %off0 : i16 , %off1 : i16 , %off2 : i16 , %ch : i64 ) {
791
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.tile.5d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i64 undef, i1 false)
792
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.tile.5d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i64 %{{.*}}, i1 true)
793
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 , %d3 , %d4 ] : !llvm.ptr
794
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 , %d3 , %d4 ] l2_cache_hint = %ch : !llvm.ptr
795
-
796
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.im2col.5d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i16 %{{.*}}, i16 %{{.*}}, i16 %{{.*}}, i64 undef, i1 false)
797
- // CHECK-LLVM: call void @llvm.nvvm.cp.async.bulk.tensor.prefetch.im2col.5d(ptr %0, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i32 %{{.*}}, i16 %{{.*}}, i16 %{{.*}}, i16 %{{.*}}, i64 %{{.*}}, i1 true)
798
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 , %d3 , %d4 ] im2col [%off0 , %off1 , %off2 ] : !llvm.ptr
799
- nvvm.cp.async.bulk.tensor.prefetch %tma_desc , box [%d0 , %d1 , %d2 , %d3 , %d4 ] im2col [%off0 , %off1 , %off2 ] l2_cache_hint = %ch : !llvm.ptr
800
- llvm.return
801
- }
0 commit comments