@@ -3272,9 +3272,10 @@ define double @v_fmaximum3_f64_fabs0(double %a, double %b, double %c) {
3272
3272
; GFX9-LABEL: v_fmaximum3_f64_fabs0:
3273
3273
; GFX9: ; %bb.0:
3274
3274
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3275
- ; GFX9-NEXT: v_max_f64 v[6:7], |v[0:1]|, v[2:3]
3275
+ ; GFX9-NEXT: v_and_b32_e32 v1, 0x7fffffff, v1
3276
+ ; GFX9-NEXT: v_max_f64 v[6:7], v[0:1], v[2:3]
3276
3277
; GFX9-NEXT: v_mov_b32_e32 v8, 0x7ff80000
3277
- ; GFX9-NEXT: v_cmp_u_f64_e64 vcc, | v[0:1]| , v[2:3]
3278
+ ; GFX9-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
3278
3279
; GFX9-NEXT: s_nop 1
3279
3280
; GFX9-NEXT: v_cndmask_b32_e32 v1, v7, v8, vcc
3280
3281
; GFX9-NEXT: v_cndmask_b32_e64 v0, v6, 0, vcc
@@ -3306,9 +3307,10 @@ define double @v_fmaximum3_f64_fabs1(double %a, double %b, double %c) {
3306
3307
; GFX9-LABEL: v_fmaximum3_f64_fabs1:
3307
3308
; GFX9: ; %bb.0:
3308
3309
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3309
- ; GFX9-NEXT: v_max_f64 v[6:7], v[0:1], |v[2:3]|
3310
+ ; GFX9-NEXT: v_and_b32_e32 v3, 0x7fffffff, v3
3311
+ ; GFX9-NEXT: v_max_f64 v[6:7], v[0:1], v[2:3]
3310
3312
; GFX9-NEXT: v_mov_b32_e32 v8, 0x7ff80000
3311
- ; GFX9-NEXT: v_cmp_u_f64_e64 vcc, v[0:1], | v[2:3]|
3313
+ ; GFX9-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
3312
3314
; GFX9-NEXT: s_nop 1
3313
3315
; GFX9-NEXT: v_cndmask_b32_e32 v1, v7, v8, vcc
3314
3316
; GFX9-NEXT: v_cndmask_b32_e64 v0, v6, 0, vcc
@@ -3343,11 +3345,12 @@ define double @v_fmaximum3_f64_fabs2(double %a, double %b, double %c) {
3343
3345
; GFX9-NEXT: v_max_f64 v[6:7], v[0:1], v[2:3]
3344
3346
; GFX9-NEXT: v_mov_b32_e32 v8, 0x7ff80000
3345
3347
; GFX9-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
3346
- ; GFX9-NEXT: s_nop 1
3348
+ ; GFX9-NEXT: v_and_b32_e32 v5, 0x7fffffff, v5
3349
+ ; GFX9-NEXT: s_nop 0
3347
3350
; GFX9-NEXT: v_cndmask_b32_e32 v1, v7, v8, vcc
3348
3351
; GFX9-NEXT: v_cndmask_b32_e64 v0, v6, 0, vcc
3349
- ; GFX9-NEXT: v_max_f64 v[2:3], v[0:1], | v[4:5]|
3350
- ; GFX9-NEXT: v_cmp_u_f64_e64 vcc, v[0:1], | v[4:5]|
3352
+ ; GFX9-NEXT: v_max_f64 v[2:3], v[0:1], v[4:5]
3353
+ ; GFX9-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]
3351
3354
; GFX9-NEXT: s_nop 1
3352
3355
; GFX9-NEXT: v_cndmask_b32_e64 v0, v2, 0, vcc
3353
3356
; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v8, vcc
@@ -3374,14 +3377,17 @@ define double @v_fmaximum3_f64_fabs_all(double %a, double %b, double %c) {
3374
3377
; GFX9-LABEL: v_fmaximum3_f64_fabs_all:
3375
3378
; GFX9: ; %bb.0:
3376
3379
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3377
- ; GFX9-NEXT: v_max_f64 v[6:7], |v[0:1]|, |v[2:3]|
3380
+ ; GFX9-NEXT: v_and_b32_e32 v1, 0x7fffffff, v1
3381
+ ; GFX9-NEXT: v_and_b32_e32 v3, 0x7fffffff, v3
3382
+ ; GFX9-NEXT: v_max_f64 v[6:7], v[0:1], v[2:3]
3378
3383
; GFX9-NEXT: v_mov_b32_e32 v8, 0x7ff80000
3379
- ; GFX9-NEXT: v_cmp_u_f64_e64 vcc, |v[0:1]|, |v[2:3]|
3380
- ; GFX9-NEXT: s_nop 1
3384
+ ; GFX9-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[2:3]
3385
+ ; GFX9-NEXT: v_and_b32_e32 v5, 0x7fffffff, v5
3386
+ ; GFX9-NEXT: s_nop 0
3381
3387
; GFX9-NEXT: v_cndmask_b32_e32 v1, v7, v8, vcc
3382
3388
; GFX9-NEXT: v_cndmask_b32_e64 v0, v6, 0, vcc
3383
- ; GFX9-NEXT: v_max_f64 v[2:3], v[0:1], | v[4:5]|
3384
- ; GFX9-NEXT: v_cmp_u_f64_e64 vcc, v[0:1], | v[4:5]|
3389
+ ; GFX9-NEXT: v_max_f64 v[2:3], v[0:1], v[4:5]
3390
+ ; GFX9-NEXT: v_cmp_u_f64_e32 vcc, v[0:1], v[4:5]
3385
3391
; GFX9-NEXT: s_nop 1
3386
3392
; GFX9-NEXT: v_cndmask_b32_e64 v0, v2, 0, vcc
3387
3393
; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v8, vcc
@@ -3446,14 +3452,17 @@ define double @v_fmaximum3_f64_fneg_fabs_all(double %a, double %b, double %c) {
3446
3452
; GFX9-LABEL: v_fmaximum3_f64_fneg_fabs_all:
3447
3453
; GFX9: ; %bb.0:
3448
3454
; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
3449
- ; GFX9-NEXT: v_max_f64 v[6:7], -|v[0:1]|, -|v[2:3]|
3455
+ ; GFX9-NEXT: v_and_b32_e32 v1, 0x7fffffff, v1
3456
+ ; GFX9-NEXT: v_and_b32_e32 v3, 0x7fffffff, v3
3457
+ ; GFX9-NEXT: v_max_f64 v[6:7], -v[0:1], -v[2:3]
3450
3458
; GFX9-NEXT: v_mov_b32_e32 v8, 0x7ff80000
3451
- ; GFX9-NEXT: v_cmp_u_f64_e64 vcc, -|v[0:1]|, -|v[2:3]|
3452
- ; GFX9-NEXT: s_nop 1
3459
+ ; GFX9-NEXT: v_cmp_u_f64_e64 vcc, -v[0:1], -v[2:3]
3460
+ ; GFX9-NEXT: v_and_b32_e32 v5, 0x7fffffff, v5
3461
+ ; GFX9-NEXT: s_nop 0
3453
3462
; GFX9-NEXT: v_cndmask_b32_e32 v1, v7, v8, vcc
3454
3463
; GFX9-NEXT: v_cndmask_b32_e64 v0, v6, 0, vcc
3455
- ; GFX9-NEXT: v_max_f64 v[2:3], v[0:1], -| v[4:5]|
3456
- ; GFX9-NEXT: v_cmp_u_f64_e64 vcc, v[0:1], -| v[4:5]|
3464
+ ; GFX9-NEXT: v_max_f64 v[2:3], v[0:1], -v[4:5]
3465
+ ; GFX9-NEXT: v_cmp_u_f64_e64 vcc, v[0:1], -v[4:5]
3457
3466
; GFX9-NEXT: s_nop 1
3458
3467
; GFX9-NEXT: v_cndmask_b32_e64 v0, v2, 0, vcc
3459
3468
; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v8, vcc
0 commit comments