@@ -1052,6 +1052,23 @@ define void @experimental_constrained_fptrunc(double %s, <4 x double> %v) {
1052
1052
ret void
1053
1053
}
1054
1054
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
+
1055
1072
; CHECK-LABEL: experimental_constrained_sitofp
1056
1073
define void @experimental_constrained_sitofp (i32 %s , <4 x i32 > %v ) {
1057
1074
; CHECK: llvm.intr.experimental.constrained.sitofp %{{.*}} towardzero ignore : i32 to f32
@@ -1328,8 +1345,10 @@ declare ptr @llvm.ptrmask.p0.i64(ptr, i64)
1328
1345
declare <8 x ptr > @llvm.ptrmask.v8p0.v8i64 (<8 x ptr >, <8 x i64 >)
1329
1346
declare <vscale x 4 x float > @llvm.vector.insert.nxv4f32.v4f32 (<vscale x 4 x float >, <4 x float >, i64 )
1330
1347
declare <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 )
1333
1352
declare <4 x half > @llvm.experimental.constrained.fptrunc.v4f16.v4f64 (<4 x double >, metadata , metadata )
1334
1353
declare float @llvm.experimental.constrained.fptrunc.f32.f64 (double , metadata , metadata )
1335
1354
declare <4 x double > @llvm.experimental.constrained.fpext.v4f64.v4f32 (<4 x float >, metadata )
0 commit comments