@@ -2545,18 +2545,11 @@ define i1 @not_iszero_or_nan_f16(half %x) {
2545
2545
; GFX7SELDAG: ; %bb.0: ; %entry
2546
2546
; GFX7SELDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2547
2547
; GFX7SELDAG-NEXT: v_cvt_f16_f32_e32 v0, v0
2548
- ; GFX7SELDAG-NEXT: s_movk_i32 s4, 0x7c00
2549
- ; GFX7SELDAG-NEXT: s_movk_i32 s6, 0x7800
2548
+ ; GFX7SELDAG-NEXT: s_movk_i32 s4, 0x7c01
2550
2549
; GFX7SELDAG-NEXT: v_and_b32_e32 v0, 0x7fff, v0
2551
- ; GFX7SELDAG-NEXT: v_cmp_eq_u32_e32 vcc, s4, v0
2552
- ; GFX7SELDAG-NEXT: v_add_i32_e64 v1, s[4:5], -1, v0
2553
- ; GFX7SELDAG-NEXT: s_movk_i32 s4, 0x3ff
2554
- ; GFX7SELDAG-NEXT: v_cmp_gt_u32_e64 s[4:5], s4, v1
2555
- ; GFX7SELDAG-NEXT: s_or_b64 s[4:5], s[4:5], vcc
2556
- ; GFX7SELDAG-NEXT: v_add_i32_e32 v0, vcc, 0xfffffc00, v0
2557
- ; GFX7SELDAG-NEXT: v_and_b32_e32 v0, 0xffff, v0
2558
- ; GFX7SELDAG-NEXT: v_cmp_gt_u32_e32 vcc, s6, v0
2559
- ; GFX7SELDAG-NEXT: s_or_b64 s[4:5], s[4:5], vcc
2550
+ ; GFX7SELDAG-NEXT: v_cmp_gt_i32_e32 vcc, s4, v0
2551
+ ; GFX7SELDAG-NEXT: v_cmp_ne_u32_e64 s[4:5], 0, v0
2552
+ ; GFX7SELDAG-NEXT: s_and_b64 s[4:5], s[4:5], vcc
2560
2553
; GFX7SELDAG-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[4:5]
2561
2554
; GFX7SELDAG-NEXT: s_setpc_b64 s[30:31]
2562
2555
;
@@ -2619,18 +2612,11 @@ define i1 @not_iszero_or_nan_f_daz(half %x) #0 {
2619
2612
; GFX7SELDAG: ; %bb.0: ; %entry
2620
2613
; GFX7SELDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2621
2614
; GFX7SELDAG-NEXT: v_cvt_f16_f32_e32 v0, v0
2622
- ; GFX7SELDAG-NEXT: s_movk_i32 s4, 0x7c00
2623
- ; GFX7SELDAG-NEXT: s_movk_i32 s6, 0x7800
2615
+ ; GFX7SELDAG-NEXT: s_movk_i32 s4, 0x7c01
2624
2616
; GFX7SELDAG-NEXT: v_and_b32_e32 v0, 0x7fff, v0
2625
- ; GFX7SELDAG-NEXT: v_cmp_eq_u32_e32 vcc, s4, v0
2626
- ; GFX7SELDAG-NEXT: v_add_i32_e64 v1, s[4:5], -1, v0
2627
- ; GFX7SELDAG-NEXT: s_movk_i32 s4, 0x3ff
2628
- ; GFX7SELDAG-NEXT: v_cmp_gt_u32_e64 s[4:5], s4, v1
2629
- ; GFX7SELDAG-NEXT: s_or_b64 s[4:5], s[4:5], vcc
2630
- ; GFX7SELDAG-NEXT: v_add_i32_e32 v0, vcc, 0xfffffc00, v0
2631
- ; GFX7SELDAG-NEXT: v_and_b32_e32 v0, 0xffff, v0
2632
- ; GFX7SELDAG-NEXT: v_cmp_gt_u32_e32 vcc, s6, v0
2633
- ; GFX7SELDAG-NEXT: s_or_b64 s[4:5], s[4:5], vcc
2617
+ ; GFX7SELDAG-NEXT: v_cmp_gt_i32_e32 vcc, s4, v0
2618
+ ; GFX7SELDAG-NEXT: v_cmp_ne_u32_e64 s[4:5], 0, v0
2619
+ ; GFX7SELDAG-NEXT: s_and_b64 s[4:5], s[4:5], vcc
2634
2620
; GFX7SELDAG-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[4:5]
2635
2621
; GFX7SELDAG-NEXT: s_setpc_b64 s[30:31]
2636
2622
;
@@ -2693,18 +2679,11 @@ define i1 @not_iszero_or_nan_f_maybe_daz(half %x) #1 {
2693
2679
; GFX7SELDAG: ; %bb.0: ; %entry
2694
2680
; GFX7SELDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
2695
2681
; GFX7SELDAG-NEXT: v_cvt_f16_f32_e32 v0, v0
2696
- ; GFX7SELDAG-NEXT: s_movk_i32 s4, 0x7c00
2697
- ; GFX7SELDAG-NEXT: s_movk_i32 s6, 0x7800
2682
+ ; GFX7SELDAG-NEXT: s_movk_i32 s4, 0x7c01
2698
2683
; GFX7SELDAG-NEXT: v_and_b32_e32 v0, 0x7fff, v0
2699
- ; GFX7SELDAG-NEXT: v_cmp_eq_u32_e32 vcc, s4, v0
2700
- ; GFX7SELDAG-NEXT: v_add_i32_e64 v1, s[4:5], -1, v0
2701
- ; GFX7SELDAG-NEXT: s_movk_i32 s4, 0x3ff
2702
- ; GFX7SELDAG-NEXT: v_cmp_gt_u32_e64 s[4:5], s4, v1
2703
- ; GFX7SELDAG-NEXT: s_or_b64 s[4:5], s[4:5], vcc
2704
- ; GFX7SELDAG-NEXT: v_add_i32_e32 v0, vcc, 0xfffffc00, v0
2705
- ; GFX7SELDAG-NEXT: v_and_b32_e32 v0, 0xffff, v0
2706
- ; GFX7SELDAG-NEXT: v_cmp_gt_u32_e32 vcc, s6, v0
2707
- ; GFX7SELDAG-NEXT: s_or_b64 s[4:5], s[4:5], vcc
2684
+ ; GFX7SELDAG-NEXT: v_cmp_gt_i32_e32 vcc, s4, v0
2685
+ ; GFX7SELDAG-NEXT: v_cmp_ne_u32_e64 s[4:5], 0, v0
2686
+ ; GFX7SELDAG-NEXT: s_and_b64 s[4:5], s[4:5], vcc
2708
2687
; GFX7SELDAG-NEXT: v_cndmask_b32_e64 v0, 0, 1, s[4:5]
2709
2688
; GFX7SELDAG-NEXT: s_setpc_b64 s[30:31]
2710
2689
;
0 commit comments