Skip to content

Commit 0eb13ab

Browse files
committed
Added tests.
1 parent 2b73dad commit 0eb13ab

File tree

1 file changed

+46
-0
lines changed

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=instcombine -S | FileCheck %s
3+
4+
define i1 @addition_and_bitwise1(ptr %0) {
5+
; CHECK-LABEL: define i1 @addition_and_bitwise1(
6+
; CHECK-SAME: ptr [[TMP0:%.*]]) {
7+
; CHECK-NEXT: [[V0:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP0]], i64 4
8+
; CHECK-NEXT: [[V1:%.*]] = load i32, ptr [[V0]], align 4
9+
; CHECK-NEXT: [[V2:%.*]] = zext i32 [[V1]] to i64
10+
; CHECK-NEXT: [[V3:%.*]] = ptrtoint ptr [[V0]] to i64
11+
; CHECK-NEXT: [[V4:%.*]] = add i64 [[V2]], [[V3]]
12+
; CHECK-NEXT: [[V5:%.*]] = and i64 [[V4]], 2
13+
; CHECK-NEXT: [[V6:%.*]] = icmp eq i64 [[V5]], 0
14+
; CHECK-NEXT: ret i1 [[V6]]
15+
;
16+
%v0 = getelementptr inbounds nuw i8, ptr %0, i64 4
17+
%v1 = load i32, ptr %v0, align 4
18+
%v2 = zext i32 %v1 to i64
19+
%v3 = ptrtoint ptr %v0 to i64
20+
%v4 = add i64 %v2, %v3
21+
%v5 = and i64 %v4, 2
22+
%v6 = icmp eq i64 %v5, 0
23+
ret i1 %v6
24+
}
25+
26+
define i1 @addition_and_bitwise2(ptr %0) {
27+
; CHECK-LABEL: define i1 @addition_and_bitwise2(
28+
; CHECK-SAME: ptr [[TMP0:%.*]]) {
29+
; CHECK-NEXT: [[V0:%.*]] = getelementptr inbounds nuw i8, ptr [[TMP0]], i64 4
30+
; CHECK-NEXT: [[V1:%.*]] = load i32, ptr [[V0]], align 16
31+
; CHECK-NEXT: [[V2:%.*]] = zext i32 [[V1]] to i64
32+
; CHECK-NEXT: [[V3:%.*]] = ptrtoint ptr [[V0]] to i64
33+
; CHECK-NEXT: [[V4:%.*]] = add i64 [[V2]], [[V3]]
34+
; CHECK-NEXT: [[V5:%.*]] = and i64 [[V4]], 4
35+
; CHECK-NEXT: [[V6:%.*]] = icmp eq i64 [[V5]], 0
36+
; CHECK-NEXT: ret i1 [[V6]]
37+
;
38+
%v0 = getelementptr inbounds nuw i8, ptr %0, i64 4
39+
%v1 = load i32, ptr %v0, align 16
40+
%v2 = zext i32 %v1 to i64
41+
%v3 = ptrtoint ptr %v0 to i64
42+
%v4 = add i64 %v2, %v3
43+
%v5 = and i64 %v4, 4
44+
%v6 = icmp eq i64 %v5, 0
45+
ret i1 %v6
46+
}

0 commit comments

Comments
 (0)