4
4
// and the generic `convert-to-llvm` pass.
5
5
// RUN: mlir-opt --convert-to-llvm --split-input-file %s | FileCheck %s
6
6
7
- // todo: remove extra space between `CHECK/CHECK-LABEL` and `:`
8
-
9
7
// CHECK-LABEL: @init_mbarrier_arrive_expect_tx
10
8
llvm.func @init_mbarrier_arrive_expect_tx (%barrier : !llvm.ptr <3 >, %txcount : i32 ) {
11
9
//CHECK: llvm.inline_asm has_side_effects asm_dialect = att "mbarrier.arrive.expect_tx.shared.b64 _, [$0], $1;", "r,r"
@@ -20,34 +18,34 @@ llvm.func @init_mbarrier_arrive_expect_tx_generic(%barrier : !llvm.ptr, %txcount
20
18
llvm.return
21
19
}
22
20
23
- // CHECK-LABEL : @init_mbarrier_try_wait.parity.shared
21
+ // CHECK-LABEL: @init_mbarrier_try_wait_shared
24
22
llvm.func @init_mbarrier_try_wait_shared (%barrier : !llvm.ptr <3 >, %ticks : i32 , %phase : i32 ) {
25
- // CHECK : llvm.inline_asm has_side_effects asm_dialect = att "{\0A\09.reg .pred P1; \0A\09LAB_WAIT: \0A\09mbarrier.try_wait.parity.shared.b64 P1, [$0], $1, $2; \0A\09@P1 bra.uni DONE; \0A\09bra.uni LAB_WAIT; \0A\09DONE: \0A\09}", "r,r,r"
23
+ // CHECK: llvm.inline_asm has_side_effects asm_dialect = att "{\0A\09.reg .pred P1; \0A\09LAB_WAIT: \0A\09mbarrier.try_wait.parity.shared.b64 P1, [$0], $1, $2; \0A\09@P1 bra.uni DONE; \0A\09bra.uni LAB_WAIT; \0A\09DONE: \0A\09}", "r,r,r"
26
24
nvvm.mbarrier.try_wait.parity.shared %barrier , %phase , %ticks : !llvm.ptr <3 >, i32 , i32
27
25
llvm.return
28
26
}
29
27
30
- // CHECK-LABEL : @init_mbarrier_try_wait.parity
28
+ // CHECK-LABEL: @init_mbarrier_try_wait
31
29
llvm.func @init_mbarrier_try_wait (%barrier : !llvm.ptr , %ticks : i32 , %phase : i32 ){
32
- // CHECK : llvm.inline_asm has_side_effects asm_dialect = att "{\0A\09.reg .pred P1; \0A\09LAB_WAIT: \0A\09mbarrier.try_wait.parity.b64 P1, [$0], $1, $2; \0A\09@P1 bra.uni DONE; \0A\09bra.uni LAB_WAIT; \0A\09DONE: \0A\09}", "r ,r,r"
30
+ // CHECK: llvm.inline_asm has_side_effects asm_dialect = att "{\0A\09.reg .pred P1; \0A\09LAB_WAIT: \0A\09mbarrier.try_wait.parity.b64 P1, [$0], $1, $2; \0A\09@P1 bra.uni DONE; \0A\09bra.uni LAB_WAIT; \0A\09DONE: \0A\09}", "l ,r,r"
33
31
nvvm.mbarrier.try_wait.parity %barrier , %phase , %ticks : !llvm.ptr , i32 , i32
34
32
llvm.return
35
33
}
36
34
37
35
// CHECK-LABEL: @async_cp
38
36
func.func @async_cp (%dst: !llvm.ptr <3 >, %src: !llvm.ptr <1 >) {
39
- // CHECK : nvvm.cp.async.shared.global %{{.*}}, %{{.*}}, 16, cache = ca : !llvm.ptr<3>, !llvm.ptr<1>
37
+ // CHECK: nvvm.cp.async.shared.global %{{.*}}, %{{.*}}, 16, cache = ca : !llvm.ptr<3>, !llvm.ptr<1>
40
38
nvvm.cp.async.shared.global %dst , %src , 16 , cache = ca : !llvm.ptr <3 >, !llvm.ptr <1 >
41
- // CHECK : nvvm.cp.async.shared.global %{{.*}}, %{{.*}}, 16, cache = cg : !llvm.ptr<3>, !llvm.ptr<1>
39
+ // CHECK: nvvm.cp.async.shared.global %{{.*}}, %{{.*}}, 16, cache = cg : !llvm.ptr<3>, !llvm.ptr<1>
42
40
nvvm.cp.async.shared.global %dst , %src , 16 , cache = cg : !llvm.ptr <3 >, !llvm.ptr <1 >
43
41
return
44
42
}
45
43
46
44
// CHECK-LABEL: @async_cp_zfill
47
45
func.func @async_cp_zfill (%dst: !llvm.ptr <3 >, %src: !llvm.ptr <1 >, %cpSize: i32 ) {
48
- // CHECK : llvm.inline_asm has_side_effects asm_dialect = att "cp.async.cg.shared.global [$0], [$1], $2, $3;\0A", "r,l,r" %{{.*}}, %{{.*}}, %{{.*}} : (!llvm.ptr<3>, !llvm.ptr<1>, i32) -> !llvm.void
46
+ // CHECK: llvm.inline_asm has_side_effects asm_dialect = att "cp.async.cg.shared.global [$0], [$1], $2, $3;\0A", "r,l,n, r" %{{.*}}, %{{.*}}, %{{.*}} : (!llvm.ptr<3>, !llvm.ptr<1>, i32, i32 ) -> ()
49
47
nvvm.cp.async.shared.global %dst , %src , 16 , cache = cg , %cpSize : !llvm.ptr <3 >, !llvm.ptr <1 >, i32
50
- // CHECK : llvm.inline_asm has_side_effects asm_dialect = att "cp.async.ca.shared.global [$0], [$1], $2, $3;\0A", "r,l,r" %{{.*}}, %{{.*}}, %{{.*}} : (!llvm.ptr<3>, !llvm.ptr<1>, i32) -> !llvm.void
48
+ // CHECK: llvm.inline_asm has_side_effects asm_dialect = att "cp.async.ca.shared.global [$0], [$1], $2, $3;\0A", "r,l,n, r" %{{.*}}, %{{.*}}, %{{.*}} : (!llvm.ptr<3>, !llvm.ptr<1>, i32, i32 ) -> ()
51
49
nvvm.cp.async.shared.global %dst , %src , 4 , cache = ca , %cpSize : !llvm.ptr <3 >, !llvm.ptr <1 >, i32
52
50
return
53
51
}
@@ -122,25 +120,28 @@ func.func @tma_store_5d(%tmaDescriptor: !llvm.ptr, %src : !llvm.ptr<3>, %crd0: i
122
120
return
123
121
}
124
122
125
- // CHECK-LABEL : @wgmma_execute
123
+ // CHECK-LABEL: @wgmma_execute
126
124
func.func @wgmma_execute () {
127
125
nvvm.wgmma.fence.aligned
128
126
nvvm.wgmma.commit.group.sync.aligned
129
127
nvvm.wgmma.wait.group.sync.aligned 0
130
- // CHECK : llvm.inline_asm has_side_effects asm_dialect = att "wgmma.fence.sync.aligned;", ""
131
- // CHECK : llvm.inline_asm has_side_effects asm_dialect = att "wgmma.commit_group.sync.aligned;", ""
132
- // CHECK : llvm.inline_asm has_side_effects asm_dialect = att "wgmma.wait_group.sync.aligned %0;", "n" %{{.*}} : (i32)
128
+ // CHECK: llvm.inline_asm has_side_effects asm_dialect = att "wgmma.fence.sync.aligned;"
129
+ // CHECK: llvm.inline_asm has_side_effects asm_dialect = att "wgmma.commit_group.sync.aligned;"
130
+ // CHECK: %[[S0:.+]] = llvm.mlir.constant(0 : i32) : i32
131
+ // CHECK: llvm.inline_asm has_side_effects asm_dialect = att "wgmma.wait_group.sync.aligned $0;", "n" %[[S0]] : (i32)
133
132
134
133
135
134
nvvm.wgmma.fence.aligned
136
135
nvvm.wgmma.commit.group.sync.aligned
137
- nvvm.wgmma.wait.group.sync.aligned 1
138
- // CHECK : llvm.inline_asm has_side_effects asm_dialect = att "wgmma.fence.sync.aligned;", ""
139
- // CHECK : llvm.inline_asm has_side_effects asm_dialect = att "wgmma.commit_group.sync.aligned;", ""
140
- // CHECK : llvm.inline_asm has_side_effects asm_dialect = att "wgmma.wait_group.sync.aligned %0;", "n" %{{.*}} : (i32)
136
+ nvvm.wgmma.wait.group.sync.aligned 5
137
+ // CHECK: llvm.inline_asm has_side_effects asm_dialect = att "wgmma.fence.sync.aligned;"
138
+ // CHECK: llvm.inline_asm has_side_effects asm_dialect = att "wgmma.commit_group.sync.aligned;"
139
+ // CHECK: %[[S1:.+]] = llvm.mlir.constant(5 : i32) : i32
140
+ // CHECK: llvm.inline_asm has_side_effects asm_dialect = att "wgmma.wait_group.sync.aligned $0;", "n" %[[S1]] : (i32)
141
141
return
142
142
}
143
143
144
+
144
145
// -----
145
146
146
147
!mat64f32 = !llvm.struct <(
0 commit comments