Add ways to get the value of a ConstantInt
- property z_ext_value gets the zero-extended value using LLVMConstIntGetZExtValue - property s_ext_value gets the sign-extended value using LLVMConstIntGetSExtValue - add test case for both
This commit is contained in:
parent
3b22d5accf
commit
41953602bf
3 changed files with 28 additions and 2 deletions
|
|
@ -37,7 +37,9 @@ entry:
|
|||
%tmp1 = call i32 @prod(i32 %0, i32 %1)
|
||||
%tmp2 = add i32 %tmp1, %2
|
||||
%tmp3 = add i32 %tmp2, 1
|
||||
ret i32 %tmp3
|
||||
%tmp4 = add i32 %tmp3, -1
|
||||
%tmp5 = add i64 -81985529216486895, 12297829382473034410
|
||||
ret i32 %tmp4
|
||||
}
|
||||
"""
|
||||
def test_operands(self):
|
||||
|
|
@ -49,10 +51,20 @@ entry:
|
|||
# test operands
|
||||
i1 = test_func.basic_blocks[0].instructions[0]
|
||||
i2 = test_func.basic_blocks[0].instructions[1]
|
||||
i3 = test_func.basic_blocks[0].instructions[2]
|
||||
i4 = test_func.basic_blocks[0].instructions[3]
|
||||
i5 = test_func.basic_blocks[0].instructions[4]
|
||||
|
||||
self.assertEqual(i1.operand_count, 3)
|
||||
self.assertEqual(i2.operand_count, 2)
|
||||
|
||||
self.assertEqual(i3.operands[1].z_ext_value, 1)
|
||||
self.assertEqual(i3.operands[1].s_ext_value, 1)
|
||||
self.assertEqual(i4.operands[1].z_ext_value, 0xffffffff)
|
||||
self.assertEqual(i4.operands[1].s_ext_value, -1)
|
||||
self.assertEqual(i5.operands[0].s_ext_value, -81985529216486895)
|
||||
self.assertEqual(i5.operands[1].z_ext_value, 12297829382473034410)
|
||||
|
||||
self.assert_(i1.operands[-1] is prod)
|
||||
self.assert_(i1.operands[0] is test_func.args[0])
|
||||
self.assert_(i1.operands[1] is test_func.args[1])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue