@@ -642,39 +642,6 @@ llvm.func @kernel_func() attributes {nvvm.kernel, nvvm.maxntid = array<i32: 1, 2
642642// CHECK: {ptr @kernel_func, !"maxntidz", i32 32}
643643// CHECK: {ptr @kernel_func, !"minctasm", i32 16}
644644
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-
678645// -----
679646// CHECK: !nvvm.annotations =
680647// CHECK: !1 = !{ptr @kernel_func, !"grid_constant", !2}
@@ -737,65 +704,3 @@ llvm.func @nvvm_breakpoint() {
737704 nvvm.breakpoint
738705 llvm.return
739706}
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