• Home
  • Raw
  • Download

Lines Matching +full:- +full:ne

1 ; RUN: opt < %s -instcombine -S | FileCheck %s
3-p:64:64:64-p1:16:16:16-p2:32:32:32-p3:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32…
5 ; CHECK-LABEL: @lshr_eq_msb_low_last_zero
6 ; CHECK-NEXT: icmp ugt i8 %a, 6
13 ; CHECK-LABEL: @ashr_eq_msb_low_second_zero
14 ; CHECK-NEXT: icmp ugt i8 %a, 6
21 ; CHECK-LABEL: @lshr_ne_msb_low_last_zero
22 ; CHECK-NEXT: icmp ult i8 %a, 7
25 %cmp = icmp ne i8 %shr, 0
29 ; CHECK-LABEL: @ashr_ne_msb_low_second_zero
30 ; CHECK-NEXT: icmp ult i8 %a, 7
33 %cmp = icmp ne i8 %shr, 0
37 ; CHECK-LABEL: @ashr_eq_both_equal
38 ; CHECK-NEXT: icmp eq i8 %a, 0
45 ; CHECK-LABEL: @ashr_ne_both_equal
46 ; CHECK-NEXT: icmp ne i8 %a, 0
49 %cmp = icmp ne i8 %shr, 128
53 ; CHECK-LABEL: @lshr_eq_both_equal
54 ; CHECK-NEXT: icmp eq i8 %a, 0
61 ; CHECK-LABEL: @lshr_ne_both_equal
62 ; CHECK-NEXT: icmp ne i8 %a, 0
65 %cmp = icmp ne i8 %shr, 127
69 ; CHECK-LABEL: @exact_ashr_eq_both_equal
70 ; CHECK-NEXT: icmp eq i8 %a, 0
77 ; CHECK-LABEL: @exact_ashr_ne_both_equal
78 ; CHECK-NEXT: icmp ne i8 %a, 0
81 %cmp = icmp ne i8 %shr, 128
85 ; CHECK-LABEL: @exact_lshr_eq_both_equal
86 ; CHECK-NEXT: icmp eq i8 %a, 0
93 ; CHECK-LABEL: @exact_lshr_ne_both_equal
94 ; CHECK-NEXT: icmp ne i8 %a, 0
97 %cmp = icmp ne i8 %shr, 126
101 ; CHECK-LABEL: @exact_lshr_eq_opposite_msb
102 ; CHECK-NEXT: icmp eq i8 %a, 7
104 %shr = lshr exact i8 -128, %a
109 ; CHECK-LABEL: @lshr_eq_opposite_msb
110 ; CHECK-NEXT: icmp eq i8 %a, 7
112 %shr = lshr i8 -128, %a
117 ; CHECK-LABEL: @exact_lshr_ne_opposite_msb
118 ; CHECK-NEXT: icmp ne i8 %a, 7
120 %shr = lshr exact i8 -128, %a
121 %cmp = icmp ne i8 %shr, 1
125 ; CHECK-LABEL: @lshr_ne_opposite_msb
126 ; CHECK-NEXT: icmp ne i8 %a, 7
128 %shr = lshr i8 -128, %a
129 %cmp = icmp ne i8 %shr, 1
133 ; CHECK-LABEL: @exact_ashr_eq
134 ; CHECK-NEXT: icmp eq i8 %a, 7
136 %shr = ashr exact i8 -128, %a
137 %cmp = icmp eq i8 %shr, -1
141 ; CHECK-LABEL: @exact_ashr_ne
142 ; CHECK-NEXT: icmp ne i8 %a, 7
144 %shr = ashr exact i8 -128, %a
145 %cmp = icmp ne i8 %shr, -1
149 ; CHECK-LABEL: @exact_lshr_eq
150 ; CHECK-NEXT: icmp eq i8 %a, 2
157 ; CHECK-LABEL: @exact_lshr_ne
158 ; CHECK-NEXT: icmp ne i8 %a, 2
161 %cmp = icmp ne i8 %shr, 1
165 ; CHECK-LABEL: @nonexact_ashr_eq
166 ; CHECK-NEXT: icmp eq i8 %a, 7
168 %shr = ashr i8 -128, %a
169 %cmp = icmp eq i8 %shr, -1
173 ; CHECK-LABEL: @nonexact_ashr_ne
174 ; CHECK-NEXT: icmp ne i8 %a, 7
176 %shr = ashr i8 -128, %a
177 %cmp = icmp ne i8 %shr, -1
181 ; CHECK-LABEL: @nonexact_lshr_eq
182 ; CHECK-NEXT: icmp eq i8 %a, 2
189 ; CHECK-LABEL: @nonexact_lshr_ne
190 ; CHECK-NEXT: icmp ne i8 %a, 2
193 %cmp = icmp ne i8 %shr, 1
197 ; CHECK-LABEL: @exact_lshr_eq_exactdiv
198 ; CHECK-NEXT: icmp eq i8 %a, 4
205 ; CHECK-LABEL: @exact_lshr_ne_exactdiv
206 ; CHECK-NEXT: icmp ne i8 %a, 4
209 %cmp = icmp ne i8 %shr, 5
213 ; CHECK-LABEL: @nonexact_lshr_eq_exactdiv
214 ; CHECK-NEXT: icmp eq i8 %a, 4
221 ; CHECK-LABEL: @nonexact_lshr_ne_exactdiv
222 ; CHECK-NEXT: icmp ne i8 %a, 4
225 %cmp = icmp ne i8 %shr, 5
229 ; CHECK-LABEL: @exact_ashr_eq_exactdiv
230 ; CHECK-NEXT: icmp eq i8 %a, 4
232 %shr = ashr exact i8 -80, %a
233 %cmp = icmp eq i8 %shr, -5
237 ; CHECK-LABEL: @exact_ashr_ne_exactdiv
238 ; CHECK-NEXT: icmp ne i8 %a, 4
240 %shr = ashr exact i8 -80, %a
241 %cmp = icmp ne i8 %shr, -5
245 ; CHECK-LABEL: @nonexact_ashr_eq_exactdiv
246 ; CHECK-NEXT: icmp eq i8 %a, 4
248 %shr = ashr i8 -80, %a
249 %cmp = icmp eq i8 %shr, -5
253 ; CHECK-LABEL: @nonexact_ashr_ne_exactdiv
254 ; CHECK-NEXT: icmp ne i8 %a, 4
256 %shr = ashr i8 -80, %a
257 %cmp = icmp ne i8 %shr, -5
261 ; CHECK-LABEL: @exact_lshr_eq_noexactdiv
262 ; CHECK-NEXT: ret i1 false
269 ; CHECK-LABEL: @exact_lshr_ne_noexactdiv
270 ; CHECK-NEXT: ret i1 true
273 %cmp = icmp ne i8 %shr, 31
277 ; CHECK-LABEL: @nonexact_lshr_eq_noexactdiv
278 ; CHECK-NEXT: ret i1 false
285 ; CHECK-LABEL: @nonexact_lshr_ne_noexactdiv
286 ; CHECK-NEXT: ret i1 true
289 %cmp = icmp ne i8 %shr, 31
293 ; CHECK-LABEL: @exact_ashr_eq_noexactdiv
294 ; CHECK-NEXT: ret i1 false
296 %shr = ashr exact i8 -80, %a
297 %cmp = icmp eq i8 %shr, -31
301 ; CHECK-LABEL: @exact_ashr_ne_noexactdiv
302 ; CHECK-NEXT: ret i1 true
304 %shr = ashr exact i8 -80, %a
305 %cmp = icmp ne i8 %shr, -31
309 ; CHECK-LABEL: @nonexact_ashr_eq_noexactdiv
310 ; CHECK-NEXT: ret i1 false
312 %shr = ashr i8 -80, %a
313 %cmp = icmp eq i8 %shr, -31
317 ; CHECK-LABEL: @nonexact_ashr_ne_noexactdiv
318 ; CHECK-NEXT: ret i1 true
320 %shr = ashr i8 -80, %a
321 %cmp = icmp ne i8 %shr, -31
325 ; CHECK-LABEL: @nonexact_lshr_eq_noexactlog
326 ; CHECK-NEXT: ret i1 false
333 ; CHECK-LABEL: @nonexact_lshr_ne_noexactlog
334 ; CHECK-NEXT: ret i1 true
337 %cmp = icmp ne i8 %shr, 30
341 ; CHECK-LABEL: @nonexact_ashr_eq_noexactlog
342 ; CHECK-NEXT: ret i1 false
344 %shr = ashr i8 -90, %a
345 %cmp = icmp eq i8 %shr, -30
349 ; CHECK-LABEL: @nonexact_ashr_ne_noexactlog
350 ; CHECK-NEXT: ret i1 true
352 %shr = ashr i8 -90, %a
353 %cmp = icmp ne i8 %shr, -30
364 ; CHECK-LABEL: @PR20945(
365 ; CHECK: icmp ne i32 %B, 1
367 %shr = ashr i32 -9, %B
368 %cmp = icmp ne i32 %shr, -5
372 ; CHECK-LABEL: @PR21222
375 %shr = ashr i32 -93, %B
376 %cmp = icmp eq i32 %shr, -2
380 ; CHECK-LABEL: @PR24873(
382 ; CHECK-NEXT: ret i1 %[[icmp]]
384 %ashr = ashr i64 -4611686018427387904, %V
385 %icmp = icmp eq i64 %ashr, -1