Verify that constant negation works with a partial undef vector.
Also, remove a bogus TODO comment on a related test.
ret double %r
}
+define <2 x double> @fsub_nnan_inf_op1_vec(<2 x double> %x) {
+; CHECK-LABEL: @fsub_nnan_inf_op1_vec(
+; CHECK-NEXT: ret <2 x double> <double 0x7FF0000000000000, double poison>
+;
+ %r = fsub nnan <2 x double> %x, <double 0xfff0000000000000, double poison>
+ ret <2 x double> %r
+}
+
define <2 x double> @fsub_nnan_neginf_op0(<2 x double> %x) {
; CHECK-LABEL: @fsub_nnan_neginf_op0(
; CHECK-NEXT: ret <2 x double> <double 0xFFF0000000000000, double poison>
ret double %r
}
-; TODO: Should simplify to -inf.
+; This can't simplify - the result is infinity, but the sign is unknown.
define double @fmul_nnan_inf_op1(double %x) {
; CHECK-LABEL: @fmul_nnan_inf_op1(