Skip to content

Commit ae8f280

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent 69a661c commit ae8f280

File tree

1 file changed

+200
-0
lines changed

1 file changed

+200
-0
lines changed
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
2+
; RUN: opt < %s -passes=instcombine -S | FileCheck %s
3+
4+
define i1 @olt_pinf(half %x) {
5+
; CHECK-LABEL: define i1 @olt_pinf(
6+
; CHECK-SAME: half [[X:%.*]]) {
7+
; CHECK-NEXT: [[CMP:%.*]] = fcmp olt half [[X]], 0xH7C00
8+
; CHECK-NEXT: ret i1 [[CMP]]
9+
;
10+
%cmp = fcmp olt half %x, 0xH7c00
11+
ret i1 %cmp
12+
}
13+
14+
define i1 @ole_pinf(half %x) {
15+
; CHECK-LABEL: define i1 @ole_pinf(
16+
; CHECK-SAME: half [[X:%.*]]) {
17+
; CHECK-NEXT: [[CMP:%.*]] = fcmp ole half [[X]], 0xH7C00
18+
; CHECK-NEXT: ret i1 [[CMP]]
19+
;
20+
%cmp = fcmp ole half %x, 0xH7c00
21+
ret i1 %cmp
22+
}
23+
24+
define i1 @ogt_pinf(half %x) {
25+
; CHECK-LABEL: define i1 @ogt_pinf(
26+
; CHECK-SAME: half [[X:%.*]]) {
27+
; CHECK-NEXT: ret i1 false
28+
;
29+
%cmp = fcmp ogt half %x, 0xH7c00
30+
ret i1 %cmp
31+
}
32+
33+
define i1 @oge_pinf(half %x) {
34+
; CHECK-LABEL: define i1 @oge_pinf(
35+
; CHECK-SAME: half [[X:%.*]]) {
36+
; CHECK-NEXT: [[CMP:%.*]] = fcmp oge half [[X]], 0xH7C00
37+
; CHECK-NEXT: ret i1 [[CMP]]
38+
;
39+
%cmp = fcmp oge half %x, 0xH7c00
40+
ret i1 %cmp
41+
}
42+
43+
define i1 @ult_pinf(half %x) {
44+
; CHECK-LABEL: define i1 @ult_pinf(
45+
; CHECK-SAME: half [[X:%.*]]) {
46+
; CHECK-NEXT: [[CMP:%.*]] = fcmp ult half [[X]], 0xH7C00
47+
; CHECK-NEXT: ret i1 [[CMP]]
48+
;
49+
%cmp = fcmp ult half %x, 0xH7c00
50+
ret i1 %cmp
51+
}
52+
53+
define i1 @ule_pinf(half %x) {
54+
; CHECK-LABEL: define i1 @ule_pinf(
55+
; CHECK-SAME: half [[X:%.*]]) {
56+
; CHECK-NEXT: ret i1 true
57+
;
58+
%cmp = fcmp ule half %x, 0xH7c00
59+
ret i1 %cmp
60+
}
61+
62+
define i1 @ugt_pinf(half %x) {
63+
; CHECK-LABEL: define i1 @ugt_pinf(
64+
; CHECK-SAME: half [[X:%.*]]) {
65+
; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt half [[X]], 0xH7C00
66+
; CHECK-NEXT: ret i1 [[CMP]]
67+
;
68+
%cmp = fcmp ugt half %x, 0xH7c00
69+
ret i1 %cmp
70+
}
71+
72+
define i1 @uge_pinf(half %x) {
73+
; CHECK-LABEL: define i1 @uge_pinf(
74+
; CHECK-SAME: half [[X:%.*]]) {
75+
; CHECK-NEXT: [[CMP:%.*]] = fcmp uge half [[X]], 0xH7C00
76+
; CHECK-NEXT: ret i1 [[CMP]]
77+
;
78+
%cmp = fcmp uge half %x, 0xH7c00
79+
ret i1 %cmp
80+
}
81+
82+
define i1 @olt_ninf(half %x) {
83+
; CHECK-LABEL: define i1 @olt_ninf(
84+
; CHECK-SAME: half [[X:%.*]]) {
85+
; CHECK-NEXT: ret i1 false
86+
;
87+
%cmp = fcmp olt half %x, 0xHfc00
88+
ret i1 %cmp
89+
}
90+
91+
define i1 @ole_ninf(half %x) {
92+
; CHECK-LABEL: define i1 @ole_ninf(
93+
; CHECK-SAME: half [[X:%.*]]) {
94+
; CHECK-NEXT: [[CMP:%.*]] = fcmp ole half [[X]], 0xHFC00
95+
; CHECK-NEXT: ret i1 [[CMP]]
96+
;
97+
%cmp = fcmp ole half %x, 0xHfc00
98+
ret i1 %cmp
99+
}
100+
101+
define i1 @ogt_ninf(half %x) {
102+
; CHECK-LABEL: define i1 @ogt_ninf(
103+
; CHECK-SAME: half [[X:%.*]]) {
104+
; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt half [[X]], 0xHFC00
105+
; CHECK-NEXT: ret i1 [[CMP]]
106+
;
107+
%cmp = fcmp ogt half %x, 0xHfc00
108+
ret i1 %cmp
109+
}
110+
111+
define i1 @oge_ninf(half %x) {
112+
; CHECK-LABEL: define i1 @oge_ninf(
113+
; CHECK-SAME: half [[X:%.*]]) {
114+
; CHECK-NEXT: [[CMP:%.*]] = fcmp oge half [[X]], 0xHFC00
115+
; CHECK-NEXT: ret i1 [[CMP]]
116+
;
117+
%cmp = fcmp oge half %x, 0xHfc00
118+
ret i1 %cmp
119+
}
120+
121+
define i1 @ult_ninf(half %x) {
122+
; CHECK-LABEL: define i1 @ult_ninf(
123+
; CHECK-SAME: half [[X:%.*]]) {
124+
; CHECK-NEXT: [[CMP:%.*]] = fcmp ult half [[X]], 0xHFC00
125+
; CHECK-NEXT: ret i1 [[CMP]]
126+
;
127+
%cmp = fcmp ult half %x, 0xHfc00
128+
ret i1 %cmp
129+
}
130+
131+
define i1 @ule_ninf(half %x) {
132+
; CHECK-LABEL: define i1 @ule_ninf(
133+
; CHECK-SAME: half [[X:%.*]]) {
134+
; CHECK-NEXT: [[CMP:%.*]] = fcmp ule half [[X]], 0xHFC00
135+
; CHECK-NEXT: ret i1 [[CMP]]
136+
;
137+
%cmp = fcmp ule half %x, 0xHfc00
138+
ret i1 %cmp
139+
}
140+
141+
define i1 @ugt_ninf(half %x) {
142+
; CHECK-LABEL: define i1 @ugt_ninf(
143+
; CHECK-SAME: half [[X:%.*]]) {
144+
; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt half [[X]], 0xHFC00
145+
; CHECK-NEXT: ret i1 [[CMP]]
146+
;
147+
%cmp = fcmp ugt half %x, 0xHfc00
148+
ret i1 %cmp
149+
}
150+
151+
define i1 @uge_ninf(half %x) {
152+
; CHECK-LABEL: define i1 @uge_ninf(
153+
; CHECK-SAME: half [[X:%.*]]) {
154+
; CHECK-NEXT: ret i1 true
155+
;
156+
%cmp = fcmp uge half %x, 0xHfc00
157+
ret i1 %cmp
158+
}
159+
160+
define i1 @olt_pinf_fmf(half %x) {
161+
; CHECK-LABEL: define i1 @olt_pinf_fmf(
162+
; CHECK-SAME: half [[X:%.*]]) {
163+
; CHECK-NEXT: [[CMP:%.*]] = fcmp nsz olt half [[X]], 0xH7C00
164+
; CHECK-NEXT: ret i1 [[CMP]]
165+
;
166+
%cmp = fcmp nsz olt half %x, 0xH7c00
167+
ret i1 %cmp
168+
}
169+
170+
define i1 @oge_pinf_fmf(half %x) {
171+
; CHECK-LABEL: define i1 @oge_pinf_fmf(
172+
; CHECK-SAME: half [[X:%.*]]) {
173+
; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan oge half [[X]], 0xH7C00
174+
; CHECK-NEXT: ret i1 [[CMP]]
175+
;
176+
%cmp = fcmp nnan oge half %x, 0xH7c00
177+
ret i1 %cmp
178+
}
179+
180+
; Negative tests
181+
182+
define i1 @ord_pinf(half %x) {
183+
; CHECK-LABEL: define i1 @ord_pinf(
184+
; CHECK-SAME: half [[X:%.*]]) {
185+
; CHECK-NEXT: [[CMP:%.*]] = fcmp ord half [[X]], 0xH0000
186+
; CHECK-NEXT: ret i1 [[CMP]]
187+
;
188+
%cmp = fcmp ord half %x, 0xH7c00
189+
ret i1 %cmp
190+
}
191+
192+
define i1 @olt_one(half %x) {
193+
; CHECK-LABEL: define i1 @olt_one(
194+
; CHECK-SAME: half [[X:%.*]]) {
195+
; CHECK-NEXT: [[CMP:%.*]] = fcmp olt half [[X]], 0xH3C00
196+
; CHECK-NEXT: ret i1 [[CMP]]
197+
;
198+
%cmp = fcmp olt half %x, 1.0
199+
ret i1 %cmp
200+
}

0 commit comments

Comments
 (0)