Skip to content

Commit 7c32d24

Browse files
committed
[ConstantRange] Add pre-commit tests. NFC.
1 parent 9536a62 commit 7c32d24

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

llvm/test/Transforms/SCCP/pr79696.ll

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
2+
; RUN: opt < %s -passes=ipsccp -S | FileCheck %s
3+
4+
; Tests from PR79696
5+
6+
define i1 @constant_range_xor(i64 %a) {
7+
; CHECK-LABEL: define i1 @constant_range_xor(
8+
; CHECK-SAME: i64 [[A:%.*]]) {
9+
; CHECK-NEXT: entry:
10+
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i64 [[A]], 8192
11+
; CHECK-NEXT: br i1 [[CMP]], label [[THEN:%.*]], label [[ELSE:%.*]]
12+
; CHECK: then:
13+
; CHECK-NEXT: [[CTLZ:%.*]] = call i64 @llvm.ctlz.i64(i64 [[A]], i1 true)
14+
; CHECK-NEXT: [[CONV:%.*]] = xor i64 [[CTLZ]], 63
15+
; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i64 [[CONV]], 13
16+
; CHECK-NEXT: ret i1 [[CMP1]]
17+
; CHECK: else:
18+
; CHECK-NEXT: ret i1 false
19+
;
20+
entry:
21+
%cmp = icmp ugt i64 %a, 8192
22+
br i1 %cmp, label %then, label %else
23+
then:
24+
%ctlz = call i64 @llvm.ctlz.i64(i64 %a, i1 true) ;[0, 50]
25+
%conv = xor i64 %ctlz, 63 ;[13, 63]
26+
%cmp1 = icmp ult i64 %conv, 13
27+
ret i1 %cmp1
28+
else:
29+
ret i1 false
30+
}
31+
32+
define i1 @constant_range_xor_negative(i64 %a) {
33+
; CHECK-LABEL: define i1 @constant_range_xor_negative(
34+
; CHECK-SAME: i64 [[A:%.*]]) {
35+
; CHECK-NEXT: entry:
36+
; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i64 [[A]], 8192
37+
; CHECK-NEXT: br i1 [[CMP]], label [[THEN:%.*]], label [[ELSE:%.*]]
38+
; CHECK: then:
39+
; CHECK-NEXT: [[CTLZ:%.*]] = call i64 @llvm.ctlz.i64(i64 [[A]], i1 true)
40+
; CHECK-NEXT: [[CONV:%.*]] = xor i64 [[CTLZ]], 62
41+
; CHECK-NEXT: [[CMP1:%.*]] = icmp ult i64 [[CONV]], 13
42+
; CHECK-NEXT: ret i1 [[CMP1]]
43+
; CHECK: else:
44+
; CHECK-NEXT: ret i1 false
45+
;
46+
entry:
47+
%cmp = icmp ugt i64 %a, 8192
48+
br i1 %cmp, label %then, label %else
49+
then:
50+
%ctlz = call i64 @llvm.ctlz.i64(i64 %a, i1 true) ;[0, 50]
51+
%conv = xor i64 %ctlz, 62 ;[12, 63]
52+
%cmp1 = icmp ult i64 %conv, 13
53+
ret i1 %cmp1
54+
else:
55+
ret i1 false
56+
}

0 commit comments

Comments
 (0)