[llvm] 8a4d05d - [ConstantFolding] add copysign tests for more FP types; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 4 08:46:54 PDT 2021


Author: Sanjay Patel
Date: 2021-06-04T11:42:53-04:00
New Revision: 8a4d05ddb3ff25c53299ff440032547d68b36397

URL: https://github.com/llvm/llvm-project/commit/8a4d05ddb3ff25c53299ff440032547d68b36397
DIFF: https://github.com/llvm/llvm-project/commit/8a4d05ddb3ff25c53299ff440032547d68b36397.diff

LOG: [ConstantFolding] add copysign tests for more FP types; NFC

D102673 proposes to ease the current type check, but
there doesn't appear to be any test coverage for that.

Added: 
    

Modified: 
    llvm/test/Transforms/InstSimplify/ConstProp/copysign.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstSimplify/ConstProp/copysign.ll b/llvm/test/Transforms/InstSimplify/ConstProp/copysign.ll
index 52eb743d827b5..6c0dfbbf881ac 100644
--- a/llvm/test/Transforms/InstSimplify/ConstProp/copysign.ll
+++ b/llvm/test/Transforms/InstSimplify/ConstProp/copysign.ll
@@ -3,6 +3,9 @@
 
 declare float @llvm.copysign.f32(float, float)
 declare double @llvm.copysign.f64(double, double)
+declare bfloat @llvm.copysign.bf16(bfloat, bfloat)
+declare fp128 @llvm.copysign.f128(fp128, fp128)
+declare ppc_fp128 @llvm.copysign.ppcf128(ppc_fp128, ppc_fp128)
 
 define float @f32_01() {
 ; CHECK-LABEL: @f32_01(
@@ -51,3 +54,84 @@ define double @f64_03() {
   %x = call double @llvm.copysign.f64(double -1.0, double -2.0)
   ret double %x
 }
+
+define bfloat @bf16_01() {
+; CHECK-LABEL: @bf16_01(
+; CHECK-NEXT:    [[X:%.*]] = call bfloat @llvm.copysign.bf16(bfloat 0xR3F80, bfloat 0xRC000)
+; CHECK-NEXT:    ret bfloat [[X]]
+;
+  %x = call bfloat @llvm.copysign.bf16(bfloat 1.0, bfloat -2.0)
+  ret bfloat %x
+}
+
+define bfloat @bf16_02() {
+; CHECK-LABEL: @bf16_02(
+; CHECK-NEXT:    [[X:%.*]] = call bfloat @llvm.copysign.bf16(bfloat 0xRC000, bfloat 0xR3F80)
+; CHECK-NEXT:    ret bfloat [[X]]
+;
+  %x = call bfloat @llvm.copysign.bf16(bfloat -2.0, bfloat 1.0)
+  ret bfloat %x
+}
+
+define bfloat @bf16_03() {
+; CHECK-LABEL: @bf16_03(
+; CHECK-NEXT:    [[X:%.*]] = call bfloat @llvm.copysign.bf16(bfloat 0xRC000, bfloat 0xRBF80)
+; CHECK-NEXT:    ret bfloat [[X]]
+;
+  %x = call bfloat @llvm.copysign.bf16(bfloat -2.0, bfloat -1.0)
+  ret bfloat %x
+}
+
+define fp128 @f128_01() {
+; CHECK-LABEL: @f128_01(
+; CHECK-NEXT:    [[X:%.*]] = call fp128 @llvm.copysign.f128(fp128 0xL00000000000000000000000000000001, fp128 0xL00000000000000008000000000000002)
+; CHECK-NEXT:    ret fp128 [[X]]
+;
+  %x = call fp128 @llvm.copysign.f128(fp128 0xL00000000000000000000000000000001, fp128 0xL00000000000000008000000000000002)
+  ret fp128 %x
+}
+
+define fp128 @f128_02() {
+; CHECK-LABEL: @f128_02(
+; CHECK-NEXT:    [[X:%.*]] = call fp128 @llvm.copysign.f128(fp128 0xL00000000000000008000000000000003, fp128 0xL00000000000000000000000000000004)
+; CHECK-NEXT:    ret fp128 [[X]]
+;
+  %x = call fp128 @llvm.copysign.f128(fp128 0xL00000000000000008000000000000003, fp128 0xL00000000000000000000000000000004)
+  ret fp128 %x
+}
+
+define fp128 @f128_03() {
+; CHECK-LABEL: @f128_03(
+; CHECK-NEXT:    [[X:%.*]] = call fp128 @llvm.copysign.f128(fp128 0xL00000000000000008000000000000005, fp128 0xL00000000000000008000000000000006)
+; CHECK-NEXT:    ret fp128 [[X]]
+;
+  %x = call fp128 @llvm.copysign.f128(fp128 0xL00000000000000008000000000000005, fp128 0xL00000000000000008000000000000006)
+  ret fp128 %x
+}
+
+define ppc_fp128 @ppc128_01() {
+; CHECK-LABEL: @ppc128_01(
+; CHECK-NEXT:    [[X:%.*]] = call ppc_fp128 @llvm.copysign.ppcf128(ppc_fp128 0xM00000000000000000000000000000001, ppc_fp128 0xM80000000000000000000000000000002)
+; CHECK-NEXT:    ret ppc_fp128 [[X]]
+;
+  %x = call ppc_fp128 @llvm.copysign.ppcf128(ppc_fp128 0xM00000000000000000000000000000001, ppc_fp128 0xM80000000000000000000000000000002)
+  ret ppc_fp128 %x
+}
+
+define ppc_fp128 @ppc128_02() {
+; CHECK-LABEL: @ppc128_02(
+; CHECK-NEXT:    [[X:%.*]] = call ppc_fp128 @llvm.copysign.ppcf128(ppc_fp128 0xM80000000000000000000000000000003, ppc_fp128 0xM00000000000000000000000000000004)
+; CHECK-NEXT:    ret ppc_fp128 [[X]]
+;
+  %x = call ppc_fp128 @llvm.copysign.ppcf128(ppc_fp128 0xM80000000000000000000000000000003, ppc_fp128 0xM00000000000000000000000000000004)
+  ret ppc_fp128 %x
+}
+
+define ppc_fp128 @ppc128_03() {
+; CHECK-LABEL: @ppc128_03(
+; CHECK-NEXT:    [[X:%.*]] = call ppc_fp128 @llvm.copysign.ppcf128(ppc_fp128 0xM80000000000000000000000000000005, ppc_fp128 0xM80000000000000000000000000000006)
+; CHECK-NEXT:    ret ppc_fp128 [[X]]
+;
+  %x = call ppc_fp128 @llvm.copysign.ppcf128(ppc_fp128 0xM80000000000000000000000000000005, ppc_fp128 0xM80000000000000000000000000000006)
+  ret ppc_fp128 %x
+}


        


More information about the llvm-commits mailing list