1*9880d681SAndroid Build Coastguard Worker; RUN: opt -S -instcombine < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdeclare float @llvm.ceil.f32(float) #0 4*9880d681SAndroid Build Coastguard Workerdeclare double @llvm.ceil.f64(double) #0 5*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.ceil.v4f32(<4 x float>) #0 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @constant_fold_ceil_f32_01 8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret float 1.000000e+00 9*9880d681SAndroid Build Coastguard Workerdefine float @constant_fold_ceil_f32_01() #0 { 10*9880d681SAndroid Build Coastguard Worker %x = call float @llvm.ceil.f32(float 1.00) #0 11*9880d681SAndroid Build Coastguard Worker ret float %x 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @constant_fold_ceil_f32_02 15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret float 2.000000e+00 16*9880d681SAndroid Build Coastguard Workerdefine float @constant_fold_ceil_f32_02() #0 { 17*9880d681SAndroid Build Coastguard Worker %x = call float @llvm.ceil.f32(float 1.25) #0 18*9880d681SAndroid Build Coastguard Worker ret float %x 19*9880d681SAndroid Build Coastguard Worker} 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @constant_fold_ceil_f32_03 22*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret float -1.000000e+00 23*9880d681SAndroid Build Coastguard Workerdefine float @constant_fold_ceil_f32_03() #0 { 24*9880d681SAndroid Build Coastguard Worker %x = call float @llvm.ceil.f32(float -1.25) #0 25*9880d681SAndroid Build Coastguard Worker ret float %x 26*9880d681SAndroid Build Coastguard Worker} 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @constant_fold_ceil_v4f32_01 29*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret <4 x float> <float 1.000000e+00, float 2.000000e+00, float -1.000000e+00, float -1.000000e+00> 30*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @constant_fold_ceil_v4f32_01() #0 { 31*9880d681SAndroid Build Coastguard Worker %x = call <4 x float> @llvm.ceil.v4f32(<4 x float> <float 1.00, float 1.25, float -1.25, float -1.00>) 32*9880d681SAndroid Build Coastguard Worker ret <4 x float> %x 33*9880d681SAndroid Build Coastguard Worker} 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @constant_fold_ceil_f64_01 36*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret double 1.000000e+00 37*9880d681SAndroid Build Coastguard Workerdefine double @constant_fold_ceil_f64_01() #0 { 38*9880d681SAndroid Build Coastguard Worker %x = call double @llvm.ceil.f64(double 1.0) #0 39*9880d681SAndroid Build Coastguard Worker ret double %x 40*9880d681SAndroid Build Coastguard Worker} 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @constant_fold_ceil_f64_02 43*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret double 2.000000e+00 44*9880d681SAndroid Build Coastguard Workerdefine double @constant_fold_ceil_f64_02() #0 { 45*9880d681SAndroid Build Coastguard Worker %x = call double @llvm.ceil.f64(double 1.3) #0 46*9880d681SAndroid Build Coastguard Worker ret double %x 47*9880d681SAndroid Build Coastguard Worker} 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @constant_fold_ceil_f64_03 50*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret double -1.000000e+00 51*9880d681SAndroid Build Coastguard Workerdefine double @constant_fold_ceil_f64_03() #0 { 52*9880d681SAndroid Build Coastguard Worker %x = call double @llvm.ceil.f64(double -1.75) #0 53*9880d681SAndroid Build Coastguard Worker ret double %x 54*9880d681SAndroid Build Coastguard Worker} 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind readnone } 57