@@ -1052,6 +1052,23 @@ define void @experimental_constrained_fptrunc(double %s, <4 x double> %v) {
10521052 ret void
10531053}
10541054
1055+ ; CHECK-LABEL: experimental_constrained_uitofp
1056+ define void @experimental_constrained_uitofp (i32 %s , <4 x i32 > %v ) {
1057+ ; CHECK: llvm.intr.experimental.constrained.uitofp %{{.*}} towardzero ignore : i32 to f32
1058+ %1 = call float @llvm.experimental.constrained.uitofp.f32.i32 (i32 %s , metadata !"round.towardzero" , metadata !"fpexcept.ignore" )
1059+ ; CHECK: llvm.intr.experimental.constrained.uitofp %{{.*}} tonearest maytrap : i32 to f32
1060+ %2 = call float @llvm.experimental.constrained.uitofp.f32.i32 (i32 %s , metadata !"round.tonearest" , metadata !"fpexcept.maytrap" )
1061+ ; CHECK: llvm.intr.experimental.constrained.uitofp %{{.*}} upward strict : i32 to f32
1062+ %3 = call float @llvm.experimental.constrained.uitofp.f32.i32 (i32 %s , metadata !"round.upward" , metadata !"fpexcept.strict" )
1063+ ; CHECK: llvm.intr.experimental.constrained.uitofp %{{.*}} downward ignore : i32 to f32
1064+ %4 = call float @llvm.experimental.constrained.uitofp.f32.i32 (i32 %s , metadata !"round.downward" , metadata !"fpexcept.ignore" )
1065+ ; CHECK: llvm.intr.experimental.constrained.uitofp %{{.*}} tonearestaway ignore : i32 to f32
1066+ %5 = call float @llvm.experimental.constrained.uitofp.f32.i32 (i32 %s , metadata !"round.tonearestaway" , metadata !"fpexcept.ignore" )
1067+ ; CHECK: llvm.intr.experimental.constrained.uitofp %{{.*}} tonearestaway ignore : vector<4xi32> to vector<4xf32>
1068+ %6 = call <4 x float > @llvm.experimental.constrained.uitofp.v4f32.v4i32 (<4 x i32 > %v , metadata !"round.tonearestaway" , metadata !"fpexcept.ignore" )
1069+ ret void
1070+ }
1071+
10551072; CHECK-LABEL: experimental_constrained_sitofp
10561073define void @experimental_constrained_sitofp (i32 %s , <4 x i32 > %v ) {
10571074 ; CHECK: llvm.intr.experimental.constrained.sitofp %{{.*}} towardzero ignore : i32 to f32
@@ -1328,8 +1345,10 @@ declare ptr @llvm.ptrmask.p0.i64(ptr, i64)
13281345declare <8 x ptr > @llvm.ptrmask.v8p0.v8i64 (<8 x ptr >, <8 x i64 >)
13291346declare <vscale x 4 x float > @llvm.vector.insert.nxv4f32.v4f32 (<vscale x 4 x float >, <4 x float >, i64 )
13301347declare <4 x float > @llvm.vector.extract.v4f32.nxv4f32 (<vscale x 4 x float >, i64 )
1331- declare <4 x float > @llvm.experimental.constrained.fptrunc.v4f32.v4i32 (<4 x i32 >, metadata , metadata )
1332- declare float @llvm.experimental.constrained.fptrunc.f32.i32 (i32 , metadata , metadata )
1348+ declare <4 x float > @llvm.experimental.constrained.uitofp.v4f32.v4i32 (<4 x i32 >, metadata , metadata )
1349+ declare float @llvm.experimental.constrained.uitofp.f32.i32 (i32 , metadata , metadata )
1350+ declare <4 x float > @llvm.experimental.constrained.sitofp.v4f32.v4i32 (<4 x i32 >, metadata , metadata )
1351+ declare float @llvm.experimental.constrained.sitofp.f32.i32 (i32 , metadata , metadata )
13331352declare <4 x half > @llvm.experimental.constrained.fptrunc.v4f16.v4f64 (<4 x double >, metadata , metadata )
13341353declare float @llvm.experimental.constrained.fptrunc.f32.f64 (double , metadata , metadata )
13351354declare <4 x double > @llvm.experimental.constrained.fpext.v4f64.v4f32 (<4 x float >, metadata )
0 commit comments