@@ -7149,7 +7149,7 @@ define amdgpu_kernel void @udiv_i64_oddk_denom(ptr addrspace(1) %out, i64 %x) {
7149
7149
; GFX6-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
7150
7150
; GFX6-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
7151
7151
; GFX6-NEXT: v_trunc_f32_e32 v1, v1
7152
- ; GFX6-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
7152
+ ; GFX6-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
7153
7153
; GFX6-NEXT: v_cvt_u32_f32_e32 v0, v0
7154
7154
; GFX6-NEXT: v_cvt_u32_f32_e32 v1, v1
7155
7155
; GFX6-NEXT: s_movk_i32 s8, 0x11f
@@ -7269,7 +7269,7 @@ define amdgpu_kernel void @udiv_i64_oddk_denom(ptr addrspace(1) %out, i64 %x) {
7269
7269
; GFX9-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
7270
7270
; GFX9-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
7271
7271
; GFX9-NEXT: v_trunc_f32_e32 v1, v1
7272
- ; GFX9-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
7272
+ ; GFX9-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
7273
7273
; GFX9-NEXT: v_cvt_u32_f32_e32 v0, v0
7274
7274
; GFX9-NEXT: v_cvt_u32_f32_e32 v1, v1
7275
7275
; GFX9-NEXT: v_readfirstlane_b32 s0, v0
@@ -7533,21 +7533,21 @@ define amdgpu_kernel void @udiv_v2i64_mixed_pow2k_denom(ptr addrspace(1) %out, <
7533
7533
; GFX6-NEXT: v_madak_f32 v0, 0, v0, 0x457ff000
7534
7534
; GFX6-NEXT: v_rcp_f32_e32 v0, v0
7535
7535
; GFX6-NEXT: s_movk_i32 s6, 0xf001
7536
- ; GFX6-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x9
7537
- ; GFX6-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0xd
7538
7536
; GFX6-NEXT: s_movk_i32 s8, 0xfff
7537
+ ; GFX6-NEXT: s_mov_b32 s7, 0xf000
7539
7538
; GFX6-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
7540
7539
; GFX6-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
7541
7540
; GFX6-NEXT: v_trunc_f32_e32 v1, v1
7542
- ; GFX6-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
7541
+ ; GFX6-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
7543
7542
; GFX6-NEXT: v_cvt_u32_f32_e32 v0, v0
7544
7543
; GFX6-NEXT: v_cvt_u32_f32_e32 v1, v1
7545
- ; GFX6-NEXT: s_waitcnt lgkmcnt(0)
7546
- ; GFX6-NEXT: s_lshr_b64 s[0:1], s[0:1], 12
7547
- ; GFX6-NEXT: s_mov_b32 s7, 0xf000
7544
+ ; GFX6-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x9
7545
+ ; GFX6-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0xd
7548
7546
; GFX6-NEXT: v_mul_hi_u32 v2, v0, s6
7549
7547
; GFX6-NEXT: v_mul_lo_u32 v4, v1, s6
7550
7548
; GFX6-NEXT: v_mul_lo_u32 v3, v0, s6
7549
+ ; GFX6-NEXT: s_waitcnt lgkmcnt(0)
7550
+ ; GFX6-NEXT: s_lshr_b64 s[0:1], s[0:1], 12
7551
7551
; GFX6-NEXT: v_sub_i32_e32 v2, vcc, v2, v0
7552
7552
; GFX6-NEXT: v_add_i32_e32 v2, vcc, v2, v4
7553
7553
; GFX6-NEXT: v_mul_hi_u32 v5, v0, v3
@@ -7647,7 +7647,7 @@ define amdgpu_kernel void @udiv_v2i64_mixed_pow2k_denom(ptr addrspace(1) %out, <
7647
7647
; GFX9-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
7648
7648
; GFX9-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
7649
7649
; GFX9-NEXT: v_trunc_f32_e32 v1, v1
7650
- ; GFX9-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
7650
+ ; GFX9-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
7651
7651
; GFX9-NEXT: v_cvt_u32_f32_e32 v0, v0
7652
7652
; GFX9-NEXT: v_cvt_u32_f32_e32 v1, v1
7653
7653
; GFX9-NEXT: s_waitcnt lgkmcnt(0)
@@ -7834,7 +7834,7 @@ define amdgpu_kernel void @urem_i64_oddk_denom(ptr addrspace(1) %out, i64 %x) {
7834
7834
; GFX6-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
7835
7835
; GFX6-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
7836
7836
; GFX6-NEXT: v_trunc_f32_e32 v1, v1
7837
- ; GFX6-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
7837
+ ; GFX6-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
7838
7838
; GFX6-NEXT: v_cvt_u32_f32_e32 v0, v0
7839
7839
; GFX6-NEXT: v_cvt_u32_f32_e32 v1, v1
7840
7840
; GFX6-NEXT: s_waitcnt lgkmcnt(0)
@@ -7954,7 +7954,7 @@ define amdgpu_kernel void @urem_i64_oddk_denom(ptr addrspace(1) %out, i64 %x) {
7954
7954
; GFX9-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
7955
7955
; GFX9-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
7956
7956
; GFX9-NEXT: v_trunc_f32_e32 v1, v1
7957
- ; GFX9-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
7957
+ ; GFX9-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
7958
7958
; GFX9-NEXT: v_cvt_u32_f32_e32 v0, v0
7959
7959
; GFX9-NEXT: v_cvt_u32_f32_e32 v1, v1
7960
7960
; GFX9-NEXT: v_readfirstlane_b32 s0, v0
@@ -8283,7 +8283,7 @@ define amdgpu_kernel void @sdiv_i64_oddk_denom(ptr addrspace(1) %out, i64 %x) {
8283
8283
; GFX6-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
8284
8284
; GFX6-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
8285
8285
; GFX6-NEXT: v_trunc_f32_e32 v1, v1
8286
- ; GFX6-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
8286
+ ; GFX6-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
8287
8287
; GFX6-NEXT: v_cvt_u32_f32_e32 v1, v1
8288
8288
; GFX6-NEXT: v_cvt_u32_f32_e32 v0, v0
8289
8289
; GFX6-NEXT: s_waitcnt lgkmcnt(0)
@@ -8399,7 +8399,7 @@ define amdgpu_kernel void @sdiv_i64_oddk_denom(ptr addrspace(1) %out, i64 %x) {
8399
8399
; GFX9-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
8400
8400
; GFX9-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
8401
8401
; GFX9-NEXT: v_trunc_f32_e32 v1, v1
8402
- ; GFX9-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
8402
+ ; GFX9-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
8403
8403
; GFX9-NEXT: v_cvt_u32_f32_e32 v1, v1
8404
8404
; GFX9-NEXT: v_cvt_u32_f32_e32 v0, v0
8405
8405
; GFX9-NEXT: v_readfirstlane_b32 s4, v1
@@ -8589,14 +8589,14 @@ define amdgpu_kernel void @sdiv_i64_pow2_shl_denom(ptr addrspace(1) %out, i64 %x
8589
8589
; GFX6-NEXT: s_sub_u32 s4, 0, s10
8590
8590
; GFX6-NEXT: s_subb_u32 s5, 0, s11
8591
8591
; GFX6-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x9
8592
- ; GFX6-NEXT: v_mac_f32_e32 v0, 0x4f800000, v1
8592
+ ; GFX6-NEXT: v_madmk_f32 v0, v1, 0x4f800000, v0
8593
8593
; GFX6-NEXT: v_rcp_f32_e32 v0, v0
8594
8594
; GFX6-NEXT: s_waitcnt lgkmcnt(0)
8595
8595
; GFX6-NEXT: s_ashr_i32 s12, s3, 31
8596
8596
; GFX6-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
8597
8597
; GFX6-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
8598
8598
; GFX6-NEXT: v_trunc_f32_e32 v1, v1
8599
- ; GFX6-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
8599
+ ; GFX6-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
8600
8600
; GFX6-NEXT: v_cvt_u32_f32_e32 v1, v1
8601
8601
; GFX6-NEXT: v_cvt_u32_f32_e32 v0, v0
8602
8602
; GFX6-NEXT: s_add_u32 s2, s2, s12
@@ -8724,13 +8724,13 @@ define amdgpu_kernel void @sdiv_i64_pow2_shl_denom(ptr addrspace(1) %out, i64 %x
8724
8724
; GFX9-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
8725
8725
; GFX9-NEXT: s_sub_u32 s0, 0, s8
8726
8726
; GFX9-NEXT: s_subb_u32 s1, 0, s9
8727
- ; GFX9-NEXT: v_mac_f32_e32 v0, 0x4f800000, v1
8727
+ ; GFX9-NEXT: v_madmk_f32 v0, v1, 0x4f800000, v0
8728
8728
; GFX9-NEXT: v_rcp_f32_e32 v1, v0
8729
8729
; GFX9-NEXT: v_mov_b32_e32 v0, 0
8730
8730
; GFX9-NEXT: v_mul_f32_e32 v1, 0x5f7ffffc, v1
8731
8731
; GFX9-NEXT: v_mul_f32_e32 v2, 0x2f800000, v1
8732
8732
; GFX9-NEXT: v_trunc_f32_e32 v2, v2
8733
- ; GFX9-NEXT: v_mac_f32_e32 v1, 0xcf800000, v2
8733
+ ; GFX9-NEXT: v_madmk_f32 v1, v2, 0xcf800000, v1
8734
8734
; GFX9-NEXT: v_cvt_u32_f32_e32 v2, v2
8735
8735
; GFX9-NEXT: v_cvt_u32_f32_e32 v1, v1
8736
8736
; GFX9-NEXT: v_readfirstlane_b32 s10, v2
@@ -8944,14 +8944,14 @@ define amdgpu_kernel void @ssdiv_v2i64_mixed_pow2k_denom(ptr addrspace(1) %out,
8944
8944
; GFX6-NEXT: v_mov_b32_e32 v1, 0x4f800000
8945
8945
; GFX6-NEXT: v_mac_f32_e32 v0, 0, v1
8946
8946
; GFX6-NEXT: v_rcp_f32_e32 v0, v0
8947
- ; GFX6-NEXT: s_movk_i32 s6, 0xf001
8948
8947
; GFX6-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x9
8949
8948
; GFX6-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0xd
8949
+ ; GFX6-NEXT: s_movk_i32 s6, 0xf001
8950
8950
; GFX6-NEXT: s_mov_b32 s7, 0xf000
8951
8951
; GFX6-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
8952
8952
; GFX6-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
8953
8953
; GFX6-NEXT: v_trunc_f32_e32 v1, v1
8954
- ; GFX6-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
8954
+ ; GFX6-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
8955
8955
; GFX6-NEXT: v_cvt_u32_f32_e32 v0, v0
8956
8956
; GFX6-NEXT: v_cvt_u32_f32_e32 v1, v1
8957
8957
; GFX6-NEXT: s_waitcnt lgkmcnt(0)
@@ -9073,7 +9073,7 @@ define amdgpu_kernel void @ssdiv_v2i64_mixed_pow2k_denom(ptr addrspace(1) %out,
9073
9073
; GFX9-NEXT: v_mul_f32_e32 v1, 0x5f7ffffc, v1
9074
9074
; GFX9-NEXT: v_mul_f32_e32 v2, 0x2f800000, v1
9075
9075
; GFX9-NEXT: v_trunc_f32_e32 v2, v2
9076
- ; GFX9-NEXT: v_mac_f32_e32 v1, 0xcf800000, v2
9076
+ ; GFX9-NEXT: v_madmk_f32 v1, v2, 0xcf800000, v1
9077
9077
; GFX9-NEXT: v_cvt_u32_f32_e32 v1, v1
9078
9078
; GFX9-NEXT: v_cvt_u32_f32_e32 v2, v2
9079
9079
; GFX9-NEXT: s_waitcnt lgkmcnt(0)
@@ -9789,7 +9789,7 @@ define amdgpu_kernel void @srem_i64_oddk_denom(ptr addrspace(1) %out, i64 %x) {
9789
9789
; GFX6-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
9790
9790
; GFX6-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
9791
9791
; GFX6-NEXT: v_trunc_f32_e32 v1, v1
9792
- ; GFX6-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
9792
+ ; GFX6-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
9793
9793
; GFX6-NEXT: v_cvt_u32_f32_e32 v1, v1
9794
9794
; GFX6-NEXT: v_cvt_u32_f32_e32 v0, v0
9795
9795
; GFX6-NEXT: s_mov_b32 s2, -1
@@ -9903,7 +9903,7 @@ define amdgpu_kernel void @srem_i64_oddk_denom(ptr addrspace(1) %out, i64 %x) {
9903
9903
; GFX9-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
9904
9904
; GFX9-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
9905
9905
; GFX9-NEXT: v_trunc_f32_e32 v1, v1
9906
- ; GFX9-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
9906
+ ; GFX9-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
9907
9907
; GFX9-NEXT: v_cvt_u32_f32_e32 v1, v1
9908
9908
; GFX9-NEXT: v_cvt_u32_f32_e32 v0, v0
9909
9909
; GFX9-NEXT: v_readfirstlane_b32 s4, v1
@@ -10093,14 +10093,14 @@ define amdgpu_kernel void @srem_i64_pow2_shl_denom(ptr addrspace(1) %out, i64 %x
10093
10093
; GFX6-NEXT: s_sub_u32 s4, 0, s8
10094
10094
; GFX6-NEXT: s_subb_u32 s5, 0, s9
10095
10095
; GFX6-NEXT: s_load_dwordx4 s[0:3], s[0:1], 0x9
10096
- ; GFX6-NEXT: v_mac_f32_e32 v0, 0x4f800000, v1
10096
+ ; GFX6-NEXT: v_madmk_f32 v0, v1, 0x4f800000, v0
10097
10097
; GFX6-NEXT: v_rcp_f32_e32 v0, v0
10098
10098
; GFX6-NEXT: s_waitcnt lgkmcnt(0)
10099
10099
; GFX6-NEXT: s_ashr_i32 s10, s3, 31
10100
10100
; GFX6-NEXT: v_mul_f32_e32 v0, 0x5f7ffffc, v0
10101
10101
; GFX6-NEXT: v_mul_f32_e32 v1, 0x2f800000, v0
10102
10102
; GFX6-NEXT: v_trunc_f32_e32 v1, v1
10103
- ; GFX6-NEXT: v_mac_f32_e32 v0, 0xcf800000, v1
10103
+ ; GFX6-NEXT: v_madmk_f32 v0, v1, 0xcf800000, v0
10104
10104
; GFX6-NEXT: v_cvt_u32_f32_e32 v1, v1
10105
10105
; GFX6-NEXT: v_cvt_u32_f32_e32 v0, v0
10106
10106
; GFX6-NEXT: s_add_u32 s2, s2, s10
@@ -10226,13 +10226,13 @@ define amdgpu_kernel void @srem_i64_pow2_shl_denom(ptr addrspace(1) %out, i64 %x
10226
10226
; GFX9-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x24
10227
10227
; GFX9-NEXT: s_sub_u32 s0, 0, s8
10228
10228
; GFX9-NEXT: s_subb_u32 s1, 0, s9
10229
- ; GFX9-NEXT: v_mac_f32_e32 v0, 0x4f800000, v1
10229
+ ; GFX9-NEXT: v_madmk_f32 v0, v1, 0x4f800000, v0
10230
10230
; GFX9-NEXT: v_rcp_f32_e32 v1, v0
10231
10231
; GFX9-NEXT: v_mov_b32_e32 v0, 0
10232
10232
; GFX9-NEXT: v_mul_f32_e32 v1, 0x5f7ffffc, v1
10233
10233
; GFX9-NEXT: v_mul_f32_e32 v2, 0x2f800000, v1
10234
10234
; GFX9-NEXT: v_trunc_f32_e32 v2, v2
10235
- ; GFX9-NEXT: v_mac_f32_e32 v1, 0xcf800000, v2
10235
+ ; GFX9-NEXT: v_madmk_f32 v1, v2, 0xcf800000, v1
10236
10236
; GFX9-NEXT: v_cvt_u32_f32_e32 v2, v2
10237
10237
; GFX9-NEXT: v_cvt_u32_f32_e32 v1, v1
10238
10238
; GFX9-NEXT: v_readfirstlane_b32 s2, v2
0 commit comments