Sanjay Patel | e104a5f | 2016-09-16 17:54:52 +0000 | [diff] [blame^] | 1 | ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py |
James Molloy | b6be1eb | 2015-09-24 16:06:32 +0000 | [diff] [blame] | 2 | ; RUN: opt -instsimplify -S < %s | FileCheck %s |
| 3 | |
James Molloy | b6be1eb | 2015-09-24 16:06:32 +0000 | [diff] [blame] | 4 | define i1 @test(i8 %p, i8* %pq) { |
Sanjay Patel | e104a5f | 2016-09-16 17:54:52 +0000 | [diff] [blame^] | 5 | ; CHECK-LABEL: @test( |
| 6 | ; CHECK-NEXT: ret i1 false |
| 7 | ; |
James Molloy | b6be1eb | 2015-09-24 16:06:32 +0000 | [diff] [blame] | 8 | %q = load i8, i8* %pq, !range !0 ; %q is known nonzero; no known bits |
| 9 | %1 = or i8 %p, 2 ; %1[1] = 1 |
| 10 | %2 = and i8 %1, 254 ; %2[0] = 0, %2[1] = 1 |
| 11 | %A = lshr i8 %2, 1 ; We should know that %A is nonzero. |
| 12 | %x = icmp eq i8 %A, 0 |
James Molloy | b6be1eb | 2015-09-24 16:06:32 +0000 | [diff] [blame] | 13 | ret i1 %x |
| 14 | } |
| 15 | |
| 16 | !0 = !{ i8 1, i8 5 } |