forked from OSchip/llvm-project
				
			[ConstantFolding] Add new test cases for transcendentals (NFC)
llvm-svn: 371246
This commit is contained in:
		
							parent
							
								
									c1105111b3
								
							
						
					
					
						commit
						88a98ea3f7
					
				| 
						 | 
					@ -0,0 +1,197 @@
 | 
				
			||||||
 | 
					; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
 | 
				
			||||||
 | 
					; RUN: opt -early-cse -S -o - %s | FileCheck %s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @acos(double)
 | 
				
			||||||
 | 
					define double @f_acos() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_acos(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 0.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @acos(double 1.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @asinf(float)
 | 
				
			||||||
 | 
					define float @f_asinf() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_asinf(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 0x3FF921FB{{.+}}
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @asinf(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @atan(double)
 | 
				
			||||||
 | 
					define double @f_atan() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_atan(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    [[RES:%.*]] = tail call fast double @atan(double 1.000000e+00)
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 0x3FE921FB
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @atan(double 1.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @cosf(float)
 | 
				
			||||||
 | 
					define float @f_cosf() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_cosf(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 0x3FE14A2{{.+}}
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @cosf(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @llvm.cos.f32(float)
 | 
				
			||||||
 | 
					define float @i_cosf() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @i_cosf(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 0x3FE14A2
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @llvm.cos.f32(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @cosh(double)
 | 
				
			||||||
 | 
					define double @f_cosh() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_cosh(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 0x3FF8B075{{.+}}
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @cosh(double 1.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @expf(float)
 | 
				
			||||||
 | 
					define float @f_expf() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_expf(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 0x4005BF0A{{.+}}
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @expf(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @llvm.exp.f32(float)
 | 
				
			||||||
 | 
					define float @i_expf() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @i_expf(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 0x4005BF0A{{.+}}
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @llvm.exp.f32(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @exp2(double)
 | 
				
			||||||
 | 
					define double @f_exp2() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_exp2(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 2.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @exp2(double 1.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @llvm.exp2.f64(double)
 | 
				
			||||||
 | 
					define double @i_exp2() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @i_exp2(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 2.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @llvm.exp2.f64(double 1.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; FIXME
 | 
				
			||||||
 | 
					declare float @exp10f(float)
 | 
				
			||||||
 | 
					define float @f_exp10f() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_exp10f(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    [[RES:%.*]] = tail call fast float @exp10f(float 1.000000e+00)
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float [[RES]]
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @exp10f(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @log(double)
 | 
				
			||||||
 | 
					define double @f_log() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_log(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 0.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @log(double 1.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @llvm.log.f64(double)
 | 
				
			||||||
 | 
					define double @i_log() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @i_log(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 0.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @llvm.log.f64(double 1.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; FIXME
 | 
				
			||||||
 | 
					declare float @log2f(float)
 | 
				
			||||||
 | 
					define float @f_log2f() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_log2f(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    [[RES:%.*]] = tail call fast float @log2f(float 1.000000e+00)
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float [[RES]]
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @log2f(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @llvm.log2.f32(float)
 | 
				
			||||||
 | 
					define float @i_log2f() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @i_log2f(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 0.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @llvm.log2.f32(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @log10(double)
 | 
				
			||||||
 | 
					define double @f_log10() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_log10(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 0.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @log10(double 1.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @sinf(float)
 | 
				
			||||||
 | 
					define float @f_sinf() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_sinf(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 0x3FEAED54{{.+}}
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @sinf(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @sinh(double)
 | 
				
			||||||
 | 
					define double @f_sinh() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_sinh(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 0x3FF2CD9F{{.+}}
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @sinh(double 1.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @sqrtf(float)
 | 
				
			||||||
 | 
					define float @f_sqrtf() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_sqrtf(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 1.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @sqrtf(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @tan(double)
 | 
				
			||||||
 | 
					define double @f_tan() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_tan(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 0x3FF8EB24{{.+}}
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @tan(double 1.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @tanhf(float)
 | 
				
			||||||
 | 
					define float @f_tanhf() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_tanhf(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    [[RES:%.*]] = tail call fast float @tanhf(float 1.000000e+00)
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 0x3FE85EFA{{.+}}
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @tanhf(float 1.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,48 @@
 | 
				
			||||||
 | 
					; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
 | 
				
			||||||
 | 
					; RUN: opt -early-cse -S -o - %s | FileCheck %s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @atan2(double, double)
 | 
				
			||||||
 | 
					define double @f_atan2() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_atan2(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    [[RES:%.*]] = tail call fast double @atan2(double 1.000000e+00, double 2.000000e+00)
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 0x3FDDAC6{{.+}}
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @atan2(double 1.0, double 2.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @fmodf(float, float)
 | 
				
			||||||
 | 
					define float @f_fmodf() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_fmodf(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 1.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @fmodf(float 1.0, float 2.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @pow(double, double)
 | 
				
			||||||
 | 
					define double @f_pow() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @f_pow(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 1.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @pow(double 1.0, double 2.0)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare float @llvm.pow.f32(float, float)
 | 
				
			||||||
 | 
					define float @i_powf() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @i_powf(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret float 1.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast float @llvm.pow.f32(float 1.0, float 2.0)
 | 
				
			||||||
 | 
					  ret float %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare double @llvm.powi.f64(double, i32)
 | 
				
			||||||
 | 
					define double @i_powi() {
 | 
				
			||||||
 | 
					; CHECK-LABEL: @i_powi(
 | 
				
			||||||
 | 
					; CHECK-NEXT:    ret double 1.000000e+00
 | 
				
			||||||
 | 
					;
 | 
				
			||||||
 | 
					  %res = tail call fast double @llvm.powi.f64(double 1.0, i32 2)
 | 
				
			||||||
 | 
					  ret double %res
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue