@@ -18,14 +18,6 @@ func.func @quad_dpp(%arg0: i32, %arg1: i32) -> i32 {
18
18
return %0 : i32
19
19
}
20
20
21
- func.func @quad_perm_dpp (%arg0: i32 , %arg1: i32 ) -> i32 {
22
- // CHECK-LABEL: func @quad_perm_dpp
23
- // CHECK: rocdl.update.dpp %arg0, %arg1 with 88, 15, 15, false : i32
24
- // CHECK: return %0 : i32
25
- %0 = amdgpu.dpp %arg0 %arg1 quad_perm ( [0 ,2 ,1 ,1 ] ) : i32
26
- return %0 : i32
27
- }
28
-
29
21
func.func @wave_shr_dpp (%arg0: i32 , %arg1: i32 ) -> i32 {
30
22
// CHECK-LABEL: func @wave_shr_dpp
31
23
// CHECK: rocdl.update.dpp %arg0, %arg1 with 312, 10, 1, true : i32
@@ -34,25 +26,6 @@ func.func @wave_shr_dpp(%arg0: i32, %arg1: i32) -> i32 {
34
26
return %0 : i32
35
27
}
36
28
37
- func.func @row_bcast_dpp (%arg0: i32 , %arg1: i32 ) -> i32 {
38
- // CHECK-LABEL: func @row_bcast_dpp
39
- // CHECK: rocdl.update.dpp %arg0, %arg1 with 323, 4, 1, false : i32
40
- // CHECK: return %0 : i32
41
- %0 = amdgpu.dpp %arg0 %arg1 row_bcast_31 { row_mask = 0x4 : i32 , bank_mask = 0x1 : i32 } : i32
42
- return %0 : i32
43
- }
44
-
45
- func.func @row_bcast_dpp_f32 (%arg0: f32 , %arg1: f32 ) -> f32 {
46
- // CHECK-LABEL: func @row_bcast_dpp_f32
47
- // CHECK: llvm.bitcast %arg1 : f32 to i32
48
- // CHECK: llvm.bitcast %arg0 : f32 to i32
49
- // CHECK: rocdl.update.dpp %1, %0 with 322, 15, 15, true : i32
50
- // CHECK: llvm.bitcast %2 : i32 to f32
51
- // CHECK: return %3 : f32
52
- %0 = amdgpu.dpp %arg0 %arg1 row_bcast_15 { bound_ctrl = true } : f32
53
- return %0 : f32
54
- }
55
-
56
29
func.func @row_half_mirror_update_dpp (%arg0: i32 , %arg1: i32 ) -> i32 {
57
30
// CHECK-LABEL: func @row_half_mirror_update_dpp
58
31
// CHECK: rocdl.update.dpp %arg0, %arg1 with 321, 15, 1, false : i32
@@ -69,17 +42,46 @@ func.func @wave_rol_update_dpp(%arg0: i32, %arg1: i32) -> i32 {
69
42
return %0 : i32
70
43
}
71
44
45
+ func.func @row_bcast_dpp_f32 (%arg0: f32 , %arg1: f32 ) -> f32 {
46
+ // CHECK-LABEL: func @row_bcast_dpp_f32
47
+ // CHECK: rocdl.update.dpp %arg0, %arg1 with 322, 15, 15, true : f32
48
+ // CHECK: return %0 : f32
49
+ %0 = amdgpu.dpp %arg0 %arg1 row_bcast_15 { bound_ctrl = true } : f32
50
+ return %0 : f32
51
+ }
52
+
72
53
func.func @test_dpp_f32 (%arg0: f32 , %arg1: f32 ) -> f32 {
73
54
// CHECK-LABEL: func @test_dpp_f32
74
- // CHECK: llvm.bitcast %arg1 : f32 to i32
75
- // CHECK: llvm.bitcast %arg0 : f32 to i32
76
- // CHECK: rocdl.update.dpp %1, %0 with 320, 1, 4, true : i32
77
- // CHECK: llvm.bitcast %2 : i32 to f32
78
- // CHECK: return %3 : f32
55
+ // CHECK: rocdl.update.dpp %arg0, %arg1 with 320, 1, 4, true : f32
56
+ // CHECK: return %0 : f32
79
57
%0 = amdgpu.dpp %arg0 %arg1 row_mirror { row_mask = 0x1 : i32 , bank_mask = 0x4 : i32 , bound_ctrl = true } : f32
80
58
return %0 : f32
81
59
}
82
60
61
+ func.func @quad_perm_update_dpp_f32 (%arg0: f32 , %arg1: f32 ) -> f32 {
62
+ // CHECK-LABEL: func @quad_perm_update_dpp_f32
63
+ // CHECK: rocdl.update.dpp %arg0, %arg1 with 88, 15, 1, false : f32
64
+ // CHECK: return %0 : f32
65
+ %0 = amdgpu.dpp %arg0 %arg1 quad_perm ( [0 ,2 ,1 ,1 ] ) { bank_mask = 0x1 : i32 } : f32
66
+ return %0 : f32
67
+ }
68
+
69
+ func.func @quad_perm_dpp (%arg0: i64 , %arg1: i64 ) -> i64 {
70
+ // CHECK-LABEL: func @quad_perm_dpp
71
+ // CHECK: rocdl.update.dpp %arg0, %arg1 with 88, 15, 15, false : i64
72
+ // CHECK: return %0 : i64
73
+ %0 = amdgpu.dpp %arg0 %arg1 quad_perm ( [0 ,2 ,1 ,1 ] ) : i64
74
+ return %0 : i64
75
+ }
76
+
77
+ func.func @row_bcast_dpp (%arg0: f64 , %arg1: f64 ) -> f64 {
78
+ // CHECK-LABEL: func @row_bcast_dpp
79
+ // CHECK: rocdl.update.dpp %arg0, %arg1 with 323, 4, 1, false : f64
80
+ // CHECK: return %0 : f64
81
+ %0 = amdgpu.dpp %arg0 %arg1 row_bcast_31 { row_mask = 0x4 : i32 , bank_mask = 0x1 : i32 } : f64
82
+ return %0 : f64
83
+ }
84
+
83
85
func.func @test_dpp_f16 (%arg0: f16 , %arg1: f16 ) -> f16 {
84
86
// CHECK-LABEL: func @test_dpp_f16
85
87
// CHECK: llvm.bitcast %arg1 : f16 to i16
@@ -117,17 +119,6 @@ func.func @row_shl_dpp_i16(%arg0: i16, %arg1: i16) -> i16 {
117
119
return %0 : i16
118
120
}
119
121
120
- func.func @quad_perm_update_dpp_f32 (%arg0: f32 , %arg1: f32 ) -> f32 {
121
- // CHECK-LABEL: func @quad_perm_update_dpp_f32
122
- // CHECK: llvm.bitcast %arg1 : f32 to i32
123
- // CHECK: llvm.bitcast %arg0 : f32 to i32
124
- // CHECK: rocdl.update.dpp %1, %0 with 88, 15, 1, false : i32
125
- // CHECK: llvm.bitcast %2 : i32 to f32
126
- // CHECK: return %3 : f32
127
- %0 = amdgpu.dpp %arg0 %arg1 quad_perm ( [0 ,2 ,1 ,1 ] ) { bank_mask = 0x1 : i32 } : f32
128
- return %0 : f32
129
- }
130
-
131
122
func.func @row_bcast_update_dpp_f16 (%arg0: f16 , %arg1: f16 ) -> f16 {
132
123
// CHECK-LABEL: func @row_bcast_update_dpp_f16
133
124
// CHECK: llvm.bitcast %arg1 : f16 to i16
0 commit comments