[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.
This commit is contained in:
parent
c84a5448b5
commit
8a4d05ddb3
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue