@@ -18,14 +18,6 @@ func.func @quad_dpp(%arg0: i32, %arg1: i32) -> i32 {
1818 return %0 : i32
1919}
2020
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-
2921func.func @wave_shr_dpp (%arg0: i32 , %arg1: i32 ) -> i32 {
3022 // CHECK-LABEL: func @wave_shr_dpp
3123 // 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 {
3426 return %0 : i32
3527}
3628
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-
5629func.func @row_half_mirror_update_dpp (%arg0: i32 , %arg1: i32 ) -> i32 {
5730 // CHECK-LABEL: func @row_half_mirror_update_dpp
5831 // 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 {
6942 return %0 : i32
7043}
7144
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+
7253func.func @test_dpp_f32 (%arg0: f32 , %arg1: f32 ) -> f32 {
7354 // 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
7957 %0 = amdgpu.dpp %arg0 %arg1 row_mirror { row_mask = 0x1 : i32 , bank_mask = 0x4 : i32 , bound_ctrl = true } : f32
8058 return %0 : f32
8159}
8260
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+
8385func.func @test_dpp_f16 (%arg0: f16 , %arg1: f16 ) -> f16 {
8486 // CHECK-LABEL: func @test_dpp_f16
8587 // CHECK: llvm.bitcast %arg1 : f16 to i16
@@ -117,17 +119,6 @@ func.func @row_shl_dpp_i16(%arg0: i16, %arg1: i16) -> i16 {
117119 return %0 : i16
118120}
119121
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-
131122func.func @row_bcast_update_dpp_f16 (%arg0: f16 , %arg1: f16 ) -> f16 {
132123 // CHECK-LABEL: func @row_bcast_update_dpp_f16
133124 // CHECK: llvm.bitcast %arg1 : f16 to i16
0 commit comments