forked from OSchip/llvm-project
[ConstFolding] move tests for copysign; NFC
InstCombine doesn't have any transforms for copysign currently.
This commit is contained in:
parent
11074bfffe
commit
8d20dd0b06
|
|
@ -0,0 +1,53 @@
|
||||||
|
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||||
|
; RUN: opt -S -constprop < %s | FileCheck %s
|
||||||
|
|
||||||
|
declare float @llvm.copysign.f32(float, float)
|
||||||
|
declare double @llvm.copysign.f64(double, double)
|
||||||
|
|
||||||
|
define float @f32_01() {
|
||||||
|
; CHECK-LABEL: @f32_01(
|
||||||
|
; CHECK-NEXT: ret float -1.000000e+00
|
||||||
|
;
|
||||||
|
%x = call float @llvm.copysign.f32(float 1.0, float -2.0)
|
||||||
|
ret float %x
|
||||||
|
}
|
||||||
|
|
||||||
|
define float @f32_02() {
|
||||||
|
; CHECK-LABEL: @f32_02(
|
||||||
|
; CHECK-NEXT: ret float 2.000000e+00
|
||||||
|
;
|
||||||
|
%x = call float @llvm.copysign.f32(float -2.0, float 1.0)
|
||||||
|
ret float %x
|
||||||
|
}
|
||||||
|
|
||||||
|
define float @f32_03() {
|
||||||
|
; CHECK-LABEL: @f32_03(
|
||||||
|
; CHECK-NEXT: ret float -2.000000e+00
|
||||||
|
;
|
||||||
|
%x = call float @llvm.copysign.f32(float -2.0, float -1.0)
|
||||||
|
ret float %x
|
||||||
|
}
|
||||||
|
|
||||||
|
define double @f64_01() {
|
||||||
|
; CHECK-LABEL: @f64_01(
|
||||||
|
; CHECK-NEXT: ret double -1.000000e+00
|
||||||
|
;
|
||||||
|
%x = call double @llvm.copysign.f64(double 1.0, double -2.0)
|
||||||
|
ret double %x
|
||||||
|
}
|
||||||
|
|
||||||
|
define double @f64_02() {
|
||||||
|
; CHECK-LABEL: @f64_02(
|
||||||
|
; CHECK-NEXT: ret double 1.000000e+00
|
||||||
|
;
|
||||||
|
%x = call double @llvm.copysign.f64(double -1.0, double 2.0)
|
||||||
|
ret double %x
|
||||||
|
}
|
||||||
|
|
||||||
|
define double @f64_03() {
|
||||||
|
; CHECK-LABEL: @f64_03(
|
||||||
|
; CHECK-NEXT: ret double -1.000000e+00
|
||||||
|
;
|
||||||
|
%x = call double @llvm.copysign.f64(double -1.0, double -2.0)
|
||||||
|
ret double %x
|
||||||
|
}
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
; RUN: opt -S -instcombine < %s | FileCheck %s
|
|
||||||
|
|
||||||
declare float @llvm.copysign.f32(float, float) #0
|
|
||||||
declare double @llvm.copysign.f64(double, double) #0
|
|
||||||
|
|
||||||
; CHECK-LABEL: @constant_fold_copysign_f32_01
|
|
||||||
; CHECK-NEXT: ret float -1.000000e+00
|
|
||||||
define float @constant_fold_copysign_f32_01() #0 {
|
|
||||||
%x = call float @llvm.copysign.f32(float 1.0, float -2.0) #0
|
|
||||||
ret float %x
|
|
||||||
}
|
|
||||||
|
|
||||||
; CHECK-LABEL: @constant_fold_copysign_f32_02
|
|
||||||
; CHECK-NEXT: ret float 2.000000e+00
|
|
||||||
define float @constant_fold_copysign_f32_02() #0 {
|
|
||||||
%x = call float @llvm.copysign.f32(float -2.0, float 1.0) #0
|
|
||||||
ret float %x
|
|
||||||
}
|
|
||||||
|
|
||||||
; CHECK-LABEL: @constant_fold_copysign_f32_03
|
|
||||||
; CHECK-NEXT: ret float -2.000000e+00
|
|
||||||
define float @constant_fold_copysign_f32_03() #0 {
|
|
||||||
%x = call float @llvm.copysign.f32(float -2.0, float -1.0) #0
|
|
||||||
ret float %x
|
|
||||||
}
|
|
||||||
|
|
||||||
; CHECK-LABEL: @constant_fold_copysign_f64_01
|
|
||||||
; CHECK-NEXT: ret double -1.000000e+00
|
|
||||||
define double @constant_fold_copysign_f64_01() #0 {
|
|
||||||
%x = call double @llvm.copysign.f64(double 1.0, double -2.0) #0
|
|
||||||
ret double %x
|
|
||||||
}
|
|
||||||
|
|
||||||
; CHECK-LABEL: @constant_fold_copysign_f64_02
|
|
||||||
; CHECK-NEXT: ret double 1.000000e+00
|
|
||||||
define double @constant_fold_copysign_f64_02() #0 {
|
|
||||||
%x = call double @llvm.copysign.f64(double -1.0, double 2.0) #0
|
|
||||||
ret double %x
|
|
||||||
}
|
|
||||||
|
|
||||||
; CHECK-LABEL: @constant_fold_copysign_f64_03
|
|
||||||
; CHECK-NEXT: ret double -1.000000e+00
|
|
||||||
define double @constant_fold_copysign_f64_03() #0 {
|
|
||||||
%x = call double @llvm.copysign.f64(double -1.0, double -2.0) #0
|
|
||||||
ret double %x
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
attributes #0 = { nounwind readnone }
|
|
||||||
Loading…
Reference in New Issue