%fneg = fsub <2 x float> <float -0.0, float -0.0>, %bitcast
ret <2 x float> %fneg
}
+
+define <4 x float> @undef_elts_v4f32(<4 x float> %x) {
+; X32-SSE-LABEL: undef_elts_v4f32:
+; X32-SSE: # %bb.0:
+; X32-SSE-NEXT: movaps {{.*#+}} xmm1 = <-0,u,u,-0>
+; X32-SSE-NEXT: subps %xmm0, %xmm1
+; X32-SSE-NEXT: movaps %xmm1, %xmm0
+; X32-SSE-NEXT: retl
+;
+; X64-SSE-LABEL: undef_elts_v4f32:
+; X64-SSE: # %bb.0:
+; X64-SSE-NEXT: movaps {{.*#+}} xmm1 = <-0,u,u,-0>
+; X64-SSE-NEXT: subps %xmm0, %xmm1
+; X64-SSE-NEXT: movaps %xmm1, %xmm0
+; X64-SSE-NEXT: retq
+ %r = fsub <4 x float> <float -0.0, float undef, float undef, float -0.0>, %x
+ ret <4 x float> %r
+}
+