57 lines · plain
1; RUN: opt -S -passes=instcombine < %s | FileCheck %s2 3declare float @llvm.ceil.f32(float) #04declare double @llvm.ceil.f64(double) #05declare <4 x float> @llvm.ceil.v4f32(<4 x float>) #06 7; CHECK-LABEL: @constant_fold_ceil_f32_018; CHECK-NEXT: ret float 1.000000e+009define float @constant_fold_ceil_f32_01() #0 {10 %x = call float @llvm.ceil.f32(float 1.00) #011 ret float %x12}13 14; CHECK-LABEL: @constant_fold_ceil_f32_0215; CHECK-NEXT: ret float 2.000000e+0016define float @constant_fold_ceil_f32_02() #0 {17 %x = call float @llvm.ceil.f32(float 1.25) #018 ret float %x19}20 21; CHECK-LABEL: @constant_fold_ceil_f32_0322; CHECK-NEXT: ret float -1.000000e+0023define float @constant_fold_ceil_f32_03() #0 {24 %x = call float @llvm.ceil.f32(float -1.25) #025 ret float %x26}27 28; CHECK-LABEL: @constant_fold_ceil_v4f32_0129; CHECK-NEXT: ret <4 x float> <float 1.000000e+00, float 2.000000e+00, float -1.000000e+00, float -1.000000e+00>30define <4 x float> @constant_fold_ceil_v4f32_01() #0 {31 %x = call <4 x float> @llvm.ceil.v4f32(<4 x float> <float 1.00, float 1.25, float -1.25, float -1.00>)32 ret <4 x float> %x33}34 35; CHECK-LABEL: @constant_fold_ceil_f64_0136; CHECK-NEXT: ret double 1.000000e+0037define double @constant_fold_ceil_f64_01() #0 {38 %x = call double @llvm.ceil.f64(double 1.0) #039 ret double %x40}41 42; CHECK-LABEL: @constant_fold_ceil_f64_0243; CHECK-NEXT: ret double 2.000000e+0044define double @constant_fold_ceil_f64_02() #0 {45 %x = call double @llvm.ceil.f64(double 1.3) #046 ret double %x47}48 49; CHECK-LABEL: @constant_fold_ceil_f64_0350; CHECK-NEXT: ret double -1.000000e+0051define double @constant_fold_ceil_f64_03() #0 {52 %x = call double @llvm.ceil.f64(double -1.75) #053 ret double %x54}55 56attributes #0 = { nounwind readnone }57