Skip to content

Commit a21ce63

Browse files
committed
[InstSimplify] Add constant folding tests for UCMP/SCMP intrinsics
1 parent 0cd2bf3 commit a21ce63

File tree

1 file changed

+46
-0
lines changed
  • llvm/test/Transforms/InstSimplify

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2+
; RUN: opt < %s -passes=instsimplify -S | FileCheck %s
3+
define i8 @scmp_lt() {
4+
; CHECK-LABEL: define i8 @scmp_lt() {
5+
; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.scmp.i8.i32(i32 -7, i32 3)
6+
; CHECK-NEXT: ret i8 [[TMP1]]
7+
;
8+
%1 = call i8 @llvm.scmp(i32 -7, i32 3)
9+
ret i8 %1
10+
}
11+
12+
define i2 @ucmp_eq() {
13+
; CHECK-LABEL: define i2 @ucmp_eq() {
14+
; CHECK-NEXT: [[TMP1:%.*]] = call i2 @llvm.ucmp.i2.i32(i32 12, i32 12)
15+
; CHECK-NEXT: ret i2 [[TMP1]]
16+
;
17+
%1 = call i2 @llvm.ucmp(i32 12, i32 12)
18+
ret i2 %1
19+
}
20+
21+
define i100 @ucmp_gt() {
22+
; CHECK-LABEL: define i100 @ucmp_gt() {
23+
; CHECK-NEXT: [[TMP1:%.*]] = call i100 @llvm.ucmp.i100.i32(i32 7, i32 3)
24+
; CHECK-NEXT: ret i100 [[TMP1]]
25+
;
26+
%1 = call i100 @llvm.ucmp(i32 7, i32 3)
27+
ret i100 %1
28+
}
29+
30+
define <4 x i8> @ucmp_lt_splat() {
31+
; CHECK-LABEL: define <4 x i8> @ucmp_lt_splat() {
32+
; CHECK-NEXT: [[TMP1:%.*]] = call <4 x i8> @llvm.ucmp.v4i8.v4i32(<4 x i32> <i32 1, i32 1, i32 1, i32 1>, <4 x i32> <i32 3, i32 3, i32 3, i32 3>)
33+
; CHECK-NEXT: ret <4 x i8> [[TMP1]]
34+
;
35+
%1 = call <4 x i8> @llvm.ucmp(<4 x i32> splat(i32 1), <4 x i32> splat(i32 3))
36+
ret <4 x i8> %1
37+
}
38+
39+
define <4 x i8> @scmp_nonsplat() {
40+
; CHECK-LABEL: define <4 x i8> @scmp_nonsplat() {
41+
; CHECK-NEXT: [[TMP1:%.*]] = call <4 x i8> @llvm.scmp.v4i8.v4i32(<4 x i32> <i32 0, i32 1, i32 2, i32 3>, <4 x i32> <i32 -1, i32 1, i32 -2, i32 4>)
42+
; CHECK-NEXT: ret <4 x i8> [[TMP1]]
43+
;
44+
%1 = call <4 x i8> @llvm.scmp(<4 x i32> <i32 0, i32 1, i32 2, i32 3>, <4 x i32> <i32 -1, i32 1, i32 -2, i32 4>)
45+
ret <4 x i8> %1
46+
}

0 commit comments

Comments
 (0)