[InstCombine] add tests for copysign; NFC
authorSanjay Patel <spatel@rotateright.com>
Sat, 15 Aug 2020 17:33:35 +0000 (13:33 -0400)
committerSanjay Patel <spatel@rotateright.com>
Sun, 16 Aug 2020 12:53:47 +0000 (08:53 -0400)
llvm/test/Transforms/InstCombine/copysign.ll

index 2d87c7b..f278be7 100644 (file)
@@ -89,3 +89,25 @@ define float @copysign_sign_arg(float %x, float %y, float %z) {
   %r = call ninf float @llvm.copysign.f32(float %x, float %s)
   ret float %r
 }
+
+define float @fneg_mag(float %x, float %y) {
+; CHECK-LABEL: @fneg_mag(
+; CHECK-NEXT:    [[N:%.*]] = fneg float [[X:%.*]]
+; CHECK-NEXT:    [[R:%.*]] = call float @llvm.copysign.f32(float [[N]], float [[Y:%.*]])
+; CHECK-NEXT:    ret float [[R]]
+;
+  %n = fneg float %x
+  %r = call float @llvm.copysign.f32(float %n, float %y)
+  ret float %r
+}
+
+define float @fabs_mag(float %x, float %y) {
+; CHECK-LABEL: @fabs_mag(
+; CHECK-NEXT:    [[A:%.*]] = call float @llvm.fabs.f32(float [[X:%.*]])
+; CHECK-NEXT:    [[R:%.*]] = call float @llvm.copysign.f32(float [[A]], float [[Y:%.*]])
+; CHECK-NEXT:    ret float [[R]]
+;
+  %a = call float @llvm.fabs.f32(float %x)
+  %r = call float @llvm.copysign.f32(float %a, float %y)
+  ret float %r
+}