@@ -1721,16 +1721,31 @@ define <2 x i1> @fcmp_une_sel_x_negx_with_any_fpzero_nnan_vec(<2 x i1> %cond, <2
1721
1721
1722
1722
; negative test - extra use
1723
1723
1724
- define i1 @fcmp_ueq_fsub_const_extra_use (float %x , float %y ) {
1725
- ; CHECK-LABEL: @fcmp_ueq_fsub_const_extra_use (
1726
- ; CHECK-NEXT: [[FS:%.*]] = fsub float [[X:%.*]], [[Y:%.*]]
1724
+ define i1 @fcmp_ueq_fsub_nnan_const_extra_use (float %x , float %y ) {
1725
+ ; CHECK-LABEL: @fcmp_ueq_fsub_nnan_const_extra_use (
1726
+ ; CHECK-NEXT: [[FS:%.*]] = fsub nnan float [[X:%.*]], [[Y:%.*]]
1727
1727
; CHECK-NEXT: call void @use(float [[FS]])
1728
- ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq float [[FS]], 0.000000e+00
1728
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan ueq float [[FS]], 0.000000e+00
1729
1729
; CHECK-NEXT: ret i1 [[CMP]]
1730
1730
;
1731
- %fs = fsub float %x , %y
1731
+ %fs = fsub nnan float %x , %y
1732
1732
call void @use (float %fs )
1733
- %cmp = fcmp ueq float %fs , 0 .000000e+00
1733
+ %cmp = fcmp nnan ueq float %fs , 0 .000000e+00
1734
+ ret i1 %cmp
1735
+ }
1736
+
1737
+ ; negative test - extra use
1738
+
1739
+ define i1 @fcmp_oeq_fsub_ninf_const_extra_use (float %x , float %y ) {
1740
+ ; CHECK-LABEL: @fcmp_oeq_fsub_ninf_const_extra_use(
1741
+ ; CHECK-NEXT: [[FS:%.*]] = fsub ninf float [[X:%.*]], [[Y:%.*]]
1742
+ ; CHECK-NEXT: call void @use(float [[FS]])
1743
+ ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf oeq float [[FS]], 0.000000e+00
1744
+ ; CHECK-NEXT: ret i1 [[CMP]]
1745
+ ;
1746
+ %fs = fsub ninf float %x , %y
1747
+ call void @use (float %fs )
1748
+ %cmp = fcmp ninf oeq float %fs , 0 .000000e+00
1734
1749
ret i1 %cmp
1735
1750
}
1736
1751
0 commit comments