@@ -1276,6 +1276,34 @@ llvm.func @experimental_constrained_fpext(%s: f32, %v: vector<4xf32>) {
12761276 llvm.return
12771277}
12781278
1279+ // CHECK-LABEL: @ucmp
1280+ llvm.func @ucmp (%a: i32 , %b: i32 ) -> i2 {
1281+ // CHECK: call i2 @llvm.ucmp.i2.i32
1282+ %r = llvm.intr.ucmp (%a , %b ) : (i32 , i32 ) -> i2
1283+ llvm.return %r : i2
1284+ }
1285+
1286+ // CHECK-LABEL: @vector_ucmp
1287+ llvm.func @vector_ucmp (%a: vector <4 x i32 >, %b: vector <4 x i32 >) -> vector <4 x i32 > {
1288+ // CHECK: call <4 x i32> @llvm.ucmp.v4i32.v4i32
1289+ %0 = llvm.intr.ucmp (%a , %b ) : (vector <4 x i32 >, vector <4 x i32 >) -> vector <4 x i32 >
1290+ llvm.return %0 : vector <4 x i32 >
1291+ }
1292+
1293+ // CHECK-LABEL: @scmp
1294+ llvm.func @scmp (%a: i32 , %b: i32 ) -> i2 {
1295+ // CHECK: call i2 @llvm.scmp.i2.i32
1296+ %r = llvm.intr.scmp (%a , %b ) : (i32 , i32 ) -> i2
1297+ llvm.return %r : i2
1298+ }
1299+
1300+ // CHECK-LABEL: @vector_scmp
1301+ llvm.func @vector_scmp (%a: vector <4 x i32 >, %b: vector <4 x i32 >) -> vector <4 x i32 > {
1302+ // CHECK: call <4 x i32> @llvm.scmp.v4i32.v4i32
1303+ %0 = llvm.intr.scmp (%a , %b ) : (vector <4 x i32 >, vector <4 x i32 >) -> vector <4 x i32 >
1304+ llvm.return %0 : vector <4 x i32 >
1305+ }
1306+
12791307// Check that intrinsics are declared with appropriate types.
12801308// CHECK-DAG: declare float @llvm.fma.f32(float, float, float)
12811309// CHECK-DAG: declare <8 x float> @llvm.fma.v8f32(<8 x float>, <8 x float>, <8 x float>) #0
@@ -1464,3 +1492,7 @@ llvm.func @experimental_constrained_fpext(%s: f32, %v: vector<4xf32>) {
14641492// CHECK-DAG: declare <4 x half> @llvm.experimental.constrained.fptrunc.v4f16.v4f32(<4 x float>, metadata, metadata)
14651493// CHECK-DAG: declare double @llvm.experimental.constrained.fpext.f64.f32(float, metadata)
14661494// CHECK-DAG: declare <4 x double> @llvm.experimental.constrained.fpext.v4f64.v4f32(<4 x float>, metadata)
1495+ // CHECK-DAG: declare range(i2 -1, -2) i2 @llvm.ucmp.i2.i32(i32, i32)
1496+ // CHECK-DAG: declare range(i32 -1, 2) <4 x i32> @llvm.ucmp.v4i32.v4i32(<4 x i32>, <4 x i32>)
1497+ // CHECK-DAG: declare range(i2 -1, -2) i2 @llvm.scmp.i2.i32(i32, i32)
1498+ // CHECK-DAG: declare range(i32 -1, 2) <4 x i32> @llvm.scmp.v4i32.v4i32(<4 x i32>, <4 x i32>)
0 commit comments