1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| ; This bug has to do with the fact that constant propagation was implemented in
| ; terms of _logical_ not (! in C) instead of _bitwise_ not (~ in C). This was
| ; due to a spec change.
|
| ; Fix #2: The unary not instruction now no longer exists. Change to xor.
|
| ; RUN: opt < %s -constprop -S | \
| ; RUN: not grep "i32 0"
|
| define i32 @test1() {
| %R = xor i32 123, -1 ; <i32> [#uses=1]
| ret i32 %R
| }
|
| define i32 @test2() {
| %R = xor i32 -123, -1 ; <i32> [#uses=1]
| ret i32 %R
| }
|
|