forked from M-Labs/artiq
py2llvm/values: support 'not' on VInt
This commit is contained in:
parent
2ef187b7d3
commit
64c29bcfa6
|
@ -96,16 +96,19 @@ class VInt(_Value):
|
||||||
def set_const_value(self, builder, n):
|
def set_const_value(self, builder, n):
|
||||||
self.set_ssa_value(builder, lc.Constant.int(self.get_llvm_type(), n))
|
self.set_ssa_value(builder, lc.Constant.int(self.get_llvm_type(), n))
|
||||||
|
|
||||||
def o_bool(self, builder):
|
def o_bool(self, builder, inv=False):
|
||||||
r = VBool()
|
r = VBool()
|
||||||
if builder is not None:
|
if builder is not None:
|
||||||
r.set_ssa_value(
|
r.set_ssa_value(
|
||||||
builder, builder.icmp(
|
builder, builder.icmp(
|
||||||
lc.ICMP_NE,
|
lc.ICMP_EQ if inv else lc.ICMP_NE,
|
||||||
self.get_ssa_value(builder),
|
self.get_ssa_value(builder),
|
||||||
lc.Constant.int(self.get_llvm_type(), 0)))
|
lc.Constant.int(self.get_llvm_type(), 0)))
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
def o_not(self, builder):
|
||||||
|
return self.o_bool(builder, True)
|
||||||
|
|
||||||
def o_intx(self, target_bits, builder):
|
def o_intx(self, target_bits, builder):
|
||||||
r = VInt(target_bits)
|
r = VInt(target_bits)
|
||||||
if builder is not None:
|
if builder is not None:
|
||||||
|
|
Loading…
Reference in New Issue