@@ -1034,6 +1034,19 @@ define void @experimental_constrained_fptrunc(double %s, <4 x double> %v) {
10341034 ret void
10351035}
10361036
1037+ ; CHECK-LABEL: experimental_constrained_fpext
1038+ define void @experimental_constrained_fpext (float %s , <4 x float > %v ) {
1039+ ; CHECK: llvm.intr.experimental.constrained.fpext %{{.*}} ignore : f32 to f64
1040+ %1 = call double @llvm.experimental.constrained.fpext.f64.f32 (float %s , metadata !"fpexcept.ignore" )
1041+ ; CHECK: llvm.intr.experimental.constrained.fpext %{{.*}} maytrap : f32 to f64
1042+ %2 = call double @llvm.experimental.constrained.fpext.f64.f32 (float %s , metadata !"fpexcept.maytrap" )
1043+ ; CHECK: llvm.intr.experimental.constrained.fpext %{{.*}} strict : f32 to f64
1044+ %3 = call double @llvm.experimental.constrained.fpext.f64.f32 (float %s , metadata !"fpexcept.strict" )
1045+ ; CHECK: llvm.intr.experimental.constrained.fpext %{{.*}} ignore : vector<4xf32> to vector<4xf64>
1046+ %6 = call <4 x double > @llvm.experimental.constrained.fpext.v4f64.v4f32 (<4 x float > %v , metadata !"fpexcept.ignore" )
1047+ ret void
1048+ }
1049+
10371050declare float @llvm.fmuladd.f32 (float , float , float )
10381051declare <8 x float > @llvm.fmuladd.v8f32 (<8 x float >, <8 x float >, <8 x float >)
10391052declare float @llvm.fma.f32 (float , float , float )
@@ -1278,3 +1291,5 @@ declare <vscale x 4 x float> @llvm.vector.insert.nxv4f32.v4f32(<vscale x 4 x flo
12781291declare <4 x float > @llvm.vector.extract.v4f32.nxv4f32 (<vscale x 4 x float >, i64 )
12791292declare <4 x half > @llvm.experimental.constrained.fptrunc.v4f16.v4f64 (<4 x double >, metadata , metadata )
12801293declare float @llvm.experimental.constrained.fptrunc.f32.f64 (double , metadata , metadata )
1294+ declare <4 x double > @llvm.experimental.constrained.fpext.v4f64.v4f32 (<4 x float >, metadata )
1295+ declare double @llvm.experimental.constrained.fpext.f64.f32 (float , metadata )
0 commit comments