; 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-upgrade < $test | llvm-as | opt -constprop | llvm-dis | \
; RUN:   not grep {int 0}

int "test1"() {
	%R = xor int 123, -1
	ret int %R
}

int "test2"() {
	%R = xor int -123, -1
	ret int %R
}
