Fix buggy fcopysign lowering.
[oota-llvm.git] / test / CodeGen / ARM / neon_minmax.ll
index 64349d650e978c17af4bfa8c36797d29ad59d339..d301c6a4ca90b4509abfa491064e2f6c98b24482 100644 (file)
@@ -8,6 +8,14 @@ define float @fmin_ole(float %x) nounwind {
   ret float %min1
 }
 
+define float @fmin_ole_zero(float %x) nounwind {
+;CHECK: fmin_ole_zero:
+;CHECK-NOT: vmin.f32
+  %cond = fcmp ole float 0.0, %x
+  %min1 = select i1 %cond, float 0.0, float %x
+  ret float %min1
+}
+
 define float @fmin_ult(float %x) nounwind {
 ;CHECK: fmin_ult:
 ;CHECK: vmin.f32
@@ -32,6 +40,14 @@ define float @fmax_uge(float %x) nounwind {
   ret float %max1
 }
 
+define float @fmax_uge_zero(float %x) nounwind {
+;CHECK: fmax_uge_zero:
+;CHECK-NOT: vmax.f32
+  %cond = fcmp uge float %x, 0.0
+  %max1 = select i1 %cond, float %x, float 0.0
+  ret float %max1
+}
+
 define float @fmax_olt_reverse(float %x) nounwind {
 ;CHECK: fmax_olt_reverse:
 ;CHECK: vmax.f32