add neg nuw nsw

This commit is contained in:
Siu Kwan Lam 2013-08-12 16:16:38 -05:00
commit 1ed3c77310
2 changed files with 9 additions and 2 deletions

View file

@ -2186,8 +2186,8 @@ class Builder(llvm.Wrapper):
def xor(self, lhs, rhs, name=""):
return _make_value(self._ptr.CreateXor(lhs._ptr, rhs._ptr, name))
def neg(self, val, name=""):
return _make_value(self._ptr.CreateNeg(val._ptr, name))
def neg(self, val, name="", nuw=False, nsw=False):
return _make_value(self._ptr.CreateNeg(val._ptr, name, nuw, nsw))
def not_(self, val, name=""):
return _make_value(self._ptr.CreateNot(val._ptr, name))

View file

@ -1509,6 +1509,13 @@ class TestNUWNSW(TestCase):
def test_shl_nuw_nsw(self):
self._test_template(Builder.shl, 'shl')
def test_neg_nuw_nsw(self):
mod, func, bldr = self.make_module()
a, b = func.args
self.has_nsw(bldr.neg(a, nsw=True), 'sub')
self.has_nuw(bldr.neg(a, nuw=True), 'sub')
tests.append(TestNUWNSW)