[ConstFolding] move tests for copysign; NFC

InstCombine doesn't have any transforms for copysign currently.
This commit is contained in:
Sanjay Patel 2019-11-26 16:52:18 -05:00
parent 11074bfffe
commit 8d20dd0b06
2 changed files with 53 additions and 49 deletions

View File

@ -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
}

View File

@ -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 }