llvm.org GIT mirror llvm / 31dc49d test / Transforms / ConstProp / 2002-05-03-NotOperator.ll
31dc49d

Tree @31dc49d (Download .tar.gz)

2002-05-03-NotOperator.ll @31dc49draw · history · blame

; This bug has to do with the fact that constant propogation 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: llvm-as < %s | opt -constprop | llvm-dis | \
; 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
}